Wiki-Quellcode von Export als Persistence-Datei


Verstecke letzte Bearbeiter
jdr 11.6 1 {{figure image="export_persistence_de.png" width="400" clear="h1"}}
jdr 11.5 2 Nutzeroberfläche für Aktionen des Typs //Export als Persistence-Datei//
jdr 11.3 3 {{/figure}}
gru 1.1 4
jdr 11.5 5 Aktion des Typs //Export als Persistence-Datei// ermöglicht es, die Daten eines Vorgangs als persistierte Struktur bereitzustellen. Diese kann später erneut geladen werden, um das Formular wiederherzustellen. Mit dieser Aktion und Javascript-Code für das Laden der gespeicherten Werte kann damit das Speichern von Formulardaten umgesetzt werden.
gru 1.1 6
jdr 11.5 7 == Parameter ==
jdr 5.3 8
jdr 11.5 9 === Ablage der erzeugten Dateien ===
jdr 5.3 10
jdr 11.5 11 ; Name der Ausgabedatei
12 : Dateiname, unter dem der exportierte Vorgang gespeichert werden soll.
gru 1.1 13
jdr 11.5 14 ; An den Vorgang anhängen
15 : Legt fest, ob die erzeugte Ausgabedatei an den Vorgang angehangen werden soll.
gru 1.1 16
jdr 11.5 17 == Aktionsplatzhalter ==
gru 1.1 18
jdr 11.5 19 Aktionen vom Typ //Export als Persistence-Datei// stellen [[Aktionsplatzhalter>>Formcycle.UserInterface.Variables||anchor="HAktionsplatzhalter"]] bereit, welche in darauf folgenden Aktionen verwendet werden können.
jdr 3.2 20
jdr 11.5 21 === Standardplatzhalter ===
jdr 3.2 22
jdr 11.5 23 ; [%$<Aktionsname>.SUCCESS%]
24 : Rückgabe ob Aktion erfolgreich ausgeführt wurde. Liefert Boolean (true/false) zurück.
25 ; [%$<Aktionsname>.RESULT%]
26 : Rückgabe aller von der Aktion bereitgestellten Ergebnisse in strukturierter Form.
jdr 3.2 27
jdr 11.5 28 ; [%$<Aktionsname>.ERROR_CODE%]
29 : Der geworfene Fehler-Code im Fehlerfall der Aktion. Leer wenn kein Fehler aufgetreten ist.
30 ; [%$<Aktionsname>.ERROR_MESSAGE%]
31 : Die geworfene Fehler-Nachricht im Fehlerfall der Aktion. Leer wenn kein Fehler aufgetreten ist.
jdr 3.2 32
jdr 11.5 33 === Aktionsspezifische Platzhalter ===
jdr 3.2 34
jdr 11.5 35 ; [%$<Aktionsname>.RESULT.fileSize%]
36 : Größe der erstellten Persistence-Datei, in Bytes.
37 ; [%$<Aktionsname>.ERROR.message%]
38 : Fehlercode, der zurückgeliefert wird, wenn die Persistence-Datei nicht in das Dateisystem geschrieben werden konnte.
jdr 3.2 39
jdr 11.5 40 == Formulardaten aus Exportdatei importieren ==
gru 1.1 41
jdr 11.5 42 Wird ein Formular aufgerufen und befindet sich ein nicht-leeres Uploadfeld mit dem Namen {{code language="none"}}fcp_persistence{{/code}} im Formular bzw. gibt es eine Datei mit dem Namen {{code language="none"}}fcp-persistence{{/code}} in einem anderen Uploadfeld, so werden beim Ausliefern des Formulars die Werte aus der Persistence-Datei in Formular geschrieben und so Felder vorbefüllt.
gru 1.1 43
jdr 11.5 44 Der folgende Beispielcode ermöglicht es, diesen Vorgang mit einem Button zu realisieren. Dabei wird das Ziel des Formulars beim Absenden auf seine eigene URL gesetzt und alle Eingabefelder außer der Uploadfeld deaktiviert. Anschließend wird ein Submit der Form ausgeführt, durch welchen die Inhalte der Datei geladen werden.
gru 1.1 45
46 {{code language="javascript"}}
47 $('BUTTON[name="btnLoad"]').on('click', function(){
48 $('.xm-form').attr('action', window.location);
49 $('.xm-form input').not('[name=fcp_persistence]').attr('disabled', "disabled");
50 $('.xm-form textarea').attr('disabled', "disabled");
51 $('.xm-form select').attr('disabled', "disabled");
awa 13.2 52 xm_validator.disable();
53 $('.xm-form').trigger("submit");
gru 1.1 54 });
55 $('[xn="fcp_persistence"] .img-uploaded-preview').visible(false);
56 {{/code}}
57
jdr 11.5 58 Alternativ kann folgender Code verwendet werden:
gru 1.1 59
60 {{code language="javascript"}}
61 $('document').ready(function(){
jdr 11.5 62 var nameOfTriggerButton= "btnLoad";
gru 1.1 63
64 var form = $("<form>", {
65 action:"?",
jdr 11.5 66 method:"post",
67 enctype:"multipart/form-data"
gru 1.1 68 }).appendTo('body');
69
70 var upload = $("<input>", {
jdr 11.5 71 type:"file",
72 name:"fcp_persistence"
gru 1.1 73 }).appendTo(form);
74
75 upload.change(function(){form.submit()});
76 $('BUTTON[name="'+nameOfTriggerButton+'"]').click(function(){upload.trigger('click')});
77 })
78 {{/code}}