2016-04-28 5 views
-1

Meine Firma hat einen Kunden, der ein etwas komplexes Asset-System von sich selbst referenzierenden Elementen benötigt. Stellen Sie sich das wie ein Gebäude vor, das die Wände aus Ziegeln hat, es hat eine Heizungsanlage mit einem Kessel und Rohren und Heizkörpern und jeder von diesen ist auch in Komponenten unterteilt. Jede dieser Komponenten, das Gebäude, die Mauer und ihre Bausteine, werden getrennt als Instanzen des Asset-Moduls gespeichert.SugarCRM Popup-Fenster snapshotForm

Wenn Sie die Beziehung zwischen diesen Assets ausfüllen, können Sie das übliche Doodad-Popup-Selektorfenster verwenden, aber sobald wir nach etwas suchen, fängt das System plötzlich an, von der Navigation weg zu blättern.

Jetzt habe ich genau verfolgt, was hier vor sich geht, es gibt eine JS-Funktion in src_files \ include \ javascript \ sugar_3.js namens snapshotForm, die aufzeichnet, was das Popup-Formular beim Laden enthält und vergleicht dann diesen aufgezeichneten Wert mit Es ist State on-close oder navigieren Sie weg, um zu sehen, ob es in Ordnung ist, nur weiterzugehen oder wenn es einen Wutanfall auslösen sollte.

Jetzt kann ich nicht überall in dem Modul sehen, entweder Zucker/custom/module/udef_asset oder Zucker/module/udef_asset wo etwas in der Art und Weise dieser Schnappschuss bekommen würde, so meine Frage ist einfach:

Wo kann ich den Snapshot so aktualisieren, dass die gesamte Seite zuerst geladen wird? Hat jemand alternative Ideen?

Antwort

0

Ich habe die Lösung für mein Problem gefunden, es war aufgrund eines abhängigen Dropdown-Formulars im Formular erstellen.

Die Dropdown-Liste hatte einen leeren Standardwert und wurde daher mit diesem leeren Wert als Snapshot erstellt. Als die Sugar-Systeme jedoch einen zweiten Blick bekamen, erkannten sie: "Hey, du kannst nicht leer sein, das ist kein Wert, wenn du deine Abhängigkeiten bedenkst!" und änderte es so.

Bei der Suche nach einem anderen Datensatz wurde daher die Bestätigung ausgelöst.

Um den Fehler zu finden lief ich folgendes in der Chrome js Konsole:

snapshotForm(document.getElementById("form_QuickCreate_udef_asset")) 

, die mir zeigte, was die aktuelle Momentaufnahme wäre und:

editViewSnapshots[document.getElementById("form_QuickCreate_udef_asset").id] 

, die mir das Original zeigte Schnappschuss gemacht. Ich entdeckte den Fehler in der etwas komplexen Zeichenfolge ...s_1_nameasset_statusDraftasset_imagedescriptio..., wo wir das Asset_status = Draft-Bit finden. Im Original hatte es dort den Entwurf nicht.

Um zu beheben, hätte ich als Option zu den standardabhängigen Optionen eine leere Option hinzufügen können, aber stattdessen setze ich den Wert als Standard weg von leer, so dass es mit dem entsprechenden Wert geladen würde.