NAME
Prty::JQuery::Form::ViewEdit - Formular zum Ansehen und Bearbeiten von persistenten Daten
BASE CLASS
DESCRIPTION
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.
CSS-Klassen
editCheckbox
saveButton
deleteButton
enabled
disabled
Beschriftungen
Speichern
Löschen
Bearbeiten
ATTRIBUTES
- action => $url (Default: undef)
-
URL, an den die Daten bei bei Betätigung des Save- oder des Delete-Buttons geschickt werden.
- id (Default: undef)
-
Die DOM-Id des Formulars.
- instantiate => $bool (Default: 0)
-
Füge die Plugin-Instantiierung beim Aufruf von html() zum HTML-Code hinzu.
- layout => $html (Default: '')
-
Der HTML-Code des Layouts. In das Layout wird der HTML-Code der Widgets eingesetzt.
- onSucces => $javaScript (Default: undef)
-
JavaScript-Methode, die nach einem erfolgreichen Ajax-Aufruf ausgeführt wird. Parameter: onSuccess(data,textStatus,jqXHR,op), wobei op 'save' oder 'delete' ist.
- state => 'update' | 'insert' (Default: 'update')
-
Anfänglicher Zusatand des Formulars:
- text => \@keyVal (Default: s. Text)
-
Die Beschriftungen der intern generierten Widgets:
saveButton=>'Speichern', deleteButton=>'Löschen', editCheckBox=>'Bearbeiten',
- widgets => \@widgets (Default: [])
-
Liste der Widgets, die in das Layout eingesetzt werden.
EXAMPLE
$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,
),
],
);
METHODS
Konstruktor
new() - Instantiiere Objekt
Synopsis
$e = $class->new(@keyVal);
Description
Instantiiere ein Formular-Objekt und liefere eine Referenz auf dieses Objekt zurück.
Klassenmethoden
pluginCode() - JavaScript-Code des Plugin
Synopsis
$javascript = $e->pluginCode;
Description
Liefere den JavaScript-Code des jQuery UI Plugin. Dieser Code kann auf einer HTML-Seite inline verwendet oder - besser - vom Webserver ausgeliefert werden.
Objektmethoden
html() - Generiere HTML für die Widget-Instanz
Synopsis
$html = $e->html($h);
$html = $class->html($h,@keyVal);
Description
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.
instantiate() - JavaScript-Code, der das Widget instantiiert
Synopsis
$javaScript = $e->instantiate;
VERSION
1.087
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2016 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.