Combo und dialog.input Beispiel

Das Combo Input Plugin ist alleine schon sehr mächtig. In Kombination mit dialog.input können sogar individuelle Daten Felder erzeugt werden, ähnlich wie beim Multiple Input Plugin, allerdings mit den optischen Vorteilen des Combo Input Plugins (und der Möglichkeit Elemente per Drag & Drop zu verschieben).

Zunächst definieren wir ein Combo Input Plugin:

{input type="combo" name="contact" title="Kontakte" limit=3 full=1 no_pages=1 no_users=1 no_rights=1 no_text=1 custom.1.click="contact_add()" custom.1.name="Kontakt hinzufügen" editFunc="contact_edit"}

Und definieren nun die Javascript Funktionen (contact_add, contact_edit):

// Wird verwendet, um für die Dialoge in contact_add und contact_edit einfach die anzuzeigenenden Input Plugins zu definieren function contact_input(data) { data = data || {}; return [{ type : 'text', title : main_window.dialog.translate('Anrede'), name : 'intro', width : 225, labelWidth : 150, value : data.intro || '' }, { type : 'select', title : main_window.dialog.translate('Person'), name : 'person', width : 225, labelWidth : 150, options : ['Person A', 'Person B', 'Person C', 'Person D', 'Person E'], value : data.key || '', mandatory : true }]; } // Kontakt hinzufügen function contact_add() { main_window.dialog.input({ title : main_window.dialog.translate('Kontakt hinzufügen'), input : contact_input(), onConfirm : function(result, inputs) { combo_add({ key : result.person, name : (result.intro ? result.intro + ' ' : '') + inputs.person.get('displayedValue'), intro : result.intro }); } }); } // Kontakt bearbeiten function contact_edit(data, combo) { main_window.dialog.input({ title : main_window.dialog.translate('Kontakt hinzufügen'), input : contact_input(data), onConfirm : function(result, inputs) { combo_edit(data.key, { key : result.person, name : (result.intro ? result.intro + ' ' : '') + inputs.person.get('displayedValue'), intro : result.intro }); } }); }