Prty::JQuery::Form::ViewEdit - Formular zum Ansehen und Bearbeiten von persistenten Daten
Prty::Hash
Die Klasse implementiert ein jQuery UI Plugin zum Ansehen und Bearbeiten von persistenten Daten, die typischerweise aus einer Datenbank stammen.
Das Layout muss die Platzhalter __SAVE__, __DELETE__ und __EDIT__ enthalten. Für diese werden intern drei Widgets generiert: für __SAVE__ und __DELETE__ ein Button zum Speichern bzw. Löschen, für __EDIT__ eine Checkbox zum Umschalten zwischen Ansehen und Bearbeiten.
Bei Betätigung einer der beiden Button werden die Formulardaten an den action-URL gepostet. Im Erfolgsfall wird anschließend die onSuccess-Methode aufgerufen.
editCheckbox
saveButton
deleteButton
enabled
disabled
Speichern
Löschen
Bearbeiten
URL, an den die Daten bei bei Betätigung des Save- oder des Delete-Buttons geschickt werden.
Die DOM-Id des Formulars.
Füge die Plugin-Instantiierung beim Aufruf von html() zum HTML-Code hinzu.
Der HTML-Code des Layouts. In das Layout wird der HTML-Code der Widgets eingesetzt.
JavaScript-Methode, die nach einem erfolgreichen Ajax-Aufruf ausgeführt wird. Parameter: onSuccess(data,textStatus,jqXHR,op), wobei op 'save' oder 'delete' ist.
Anfänglicher Zusatand des Formulars:
Der Save- und der Delete-Button werden im Edit-Modus freigeschaltet.
Nur der Save-Button wird im Edit-Modus freigeschaltet.
Die Beschriftungen der intern generierten Widgets:
saveButton=>'Speichern', deleteButton=>'Löschen', editCheckBox=>'Bearbeiten',
Liste der Widgets, die in das Layout eingesetzt werden.
$html = Prty::JQuery::Form::ViewEdit->html($h, instantiate=>1, id=>'basisdatenForm', state=>'insert', action=>$c->url_for('/mandant/speichern'), onSuccess=>q| function () { var d = new Date; var date = d.getFullYear()+'-' +('0'+(d.getMonth()+1)).slice(-2)+'-' +('0'+d.getDate()).slice(-2)+' ' +('0'+d.getHours()).slice(-2)+':' +('0'+d.getMinutes()).slice(-2)+':' +('0'+d.getSeconds()).slice(-2); $('input[name=zeit]').val(date); } |, text=>{ saveButton=>'Speichern', deleteButton=>'Löschen', editCheckbox=>'Bearbeiten', }, layout=>$h->cat( Prty::Html::Table::Simple->html($h, class=>'form', rows=>[ ['form-section',[colspan=>2,'Basisdaten']], ['form-widget',['Mandanten-Id:'],['__MANID__']], ['form-widget',['Mandanten-Kürzel:'],['__KUERZEL__']], ['form-widget',['Mandanten-Parent:'],['__PARENT__']], ['form-widget',['Mandant/Firma:'],['__NAMEINTERN__']], ['form-widget',['Zusatz:'],['__ZUSATZ__']], ['form-widget',['Portal:'],['__PORTALNAME__']], ['form-widget',['Faktura-Mandant:'], ['__FAKTURAMANDANT__']], ['form-widget',['Deaktiviert:'],['__INAKTIV__']], ['form-widget',['Austausch-Kennwort:'], ['__AUSTAUSCHKENNWORT__']], ], ), Prty::Html::Table::Simple->html($h, class=>'form', rows=>[ [['__SAVE__ __DELETE__ __EDIT__']], ], ), ), widgets=>[ Prty::Html::Widget::Hidden->new( name=>'formular', value=>'basisdaten', ), Prty::Html::Widget::Hidden->new( name=>'zeit', value=>$zeit, ), Prty::Html::Widget::ReadOnly->new( name=>'manId', value=>$man->id, ), Prty::Html::Widget::TextField->new( name=>'kuerzel', size=>10, value=>$man->kuerzel, ), Prty::Html::Widget::SelectMenu->new( name=>'parent', options=>[$tab->values('id')], texts=>[$tab->values('kuerzelPfad')], value=>$man->parent, ), Prty::Html::Widget::TextField->new( name=>'nameintern', size=>45, maxLength=>100, value=>$man->nameintern, ), Prty::Html::Widget::TextField->new( name=>'zusatz', size=>45, maxLength=>4000, value=>$man->zusatz, ), Prty::Html::Widget::TextField->new( name=>'portalname', size=>45, maxLength=>50, value=>$man->portalname, ), Prty::Html::Widget::CheckBox->new( name=>'fakturamandant', option=>1, value=>$man->fakturamandant, ), Prty::Html::Widget::CheckBox->new( name=>'inaktiv', option=>1, value=>$man->inaktiv, ), Prty::Html::Widget::TextField->new( name=>'austauschkennwort', size=>15, maxLength=>30, value=>$man->austauschkennwort, ), ], );
$e = $class->new(@keyVal);
Instantiiere ein Formular-Objekt und liefere eine Referenz auf dieses Objekt zurück.
$javascript = $e->pluginCode;
Liefere den JavaScript-Code des jQuery UI Plugin. Dieser Code kann auf einer HTML-Seite inline verwendet oder - besser - vom Webserver ausgeliefert werden.
$html = $e->html($h); $html = $class->html($h,@keyVal);
Generiere den HTML-Code des Formular-Objekts und liefere diesen zurück. Als Klassenmethode gerufen, wird das Objekt intern erzeugt und mit den Attributen @keyVal instantiiert.
$javaScript = $e->instantiate;
1.087
Frank Seitz, http://fseitz.de/
Copyright (C) 2016 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Prty, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Prty
CPAN shell
perl -MCPAN -e shell install Prty
For more information on module installation, please visit the detailed CPAN module installation guide.