Webmasken individuell anpassen » Historie » Revision 4
« Zurück |
Revision 4/8
(diff)
| Weiter »
Andreas Rudin, 20.12.2016 22:02
Webmasken individuell anpassen¶
Ich zeige hier einige Beispiele, wie Eingabemasken in kivitendo den eigenen Bedürfnissen angepasst werden können.Ziel dabei:
- bessere Übersicht
- weniger Eingabefehler
- schnelleres Arbeiten
Als Beispiel verwende ich die Maske zum Erfassen und Editieren von KundInnen/LieferantInnen.
Die dafür benötigten Dateien finden wir im Pfadtemplates/webpages/customer_vendor/
Nicht benötigte Felder ausblenden:¶
Fax-Nummern von KundInnen und LieferantInnen werden nicht benötigt, da kein Fax vorhanden ist:
./tabs/billing.html, Zeilen 140ff:
<!-- Fax auskommentiert <tr> <th align="right" nowrap>[% 'Fax' | $T8 %]</th> <td> [% L.input_tag('cv.fax', SELF.cv.fax, size = 30) %] </td> </tr> -->
Felder umplatzieren:¶
Der Kundentyp soll direkt unter dem Kundennamen erscheinen, damit nicht vergessen wird, diesen auszufüllen:
1. ./tabs/billing.html, Zeilen 269ff auskommentieren und <tr> und </tr> Tags versetzen, um "Sprache" und "Lieferbedingungen" eine Zeile nach oben zu verschieben:
./tabs/billing.html, Zeilen 257ff:
<!-- Tabellenzeilenbeginn nach oben verschoben --> <tr> [% IF ( SELF.all_currencies.size ) %] <!-- <tr> --> <th align="right">[% 'Currency' | $T8 %]</th> <td> [% L.select_tag('cv.currency_id', SELF.all_currencies, title_key = 'name', value_key = 'id', default = SELF.cv.currency_id) %] </td> <!-- </tr> --> [% END %] <!-- <tr> --> <!-- Kunden- bzw. Lieferantentyp nach oben verschoben [% IF ( !INSTANCE_CONF.get_vertreter ) %] <th align="right"> [% IF ( SELF.is_vendor() ) %] [% 'Type of Vendor' | $T8 %] [% ELSE %] [% 'Type of Customer' | $T8 %] [% END %] </th> <td> [% L.select_tag('cv.business_id', SELF.all_business, default = SELF.cv.business_id, value_key = 'id', title_key = 'description', with_empty = 1) %] </td> [% END %] --> <th align="right">[% 'Language' | $T8 %]</th>
2. Kundentypfeld hinter Kundennamen einfügen:
./tabs/billing.html, Zeilen 75ff:
<!-- Kundentyp hier eingefuegt --> <tr> [% IF ( !INSTANCE_CONF.get_vertreter ) %] <th align="right"> [% IF ( SELF.is_vendor() ) %] [% 'Type of Vendor' | $T8 %] [% ELSE %] [% 'Type of Customer' | $T8 %] [% END %] </th> <td> [% L.select_tag('cv.business_id', SELF.all_business, default = SELF.cv.business_id, value_key = 'id', title_key = 'description', with_empty = 1) %] </td> [% END %] </tr>
Benutzerdefinierte Variablen in Hauptseite integrieren¶
Als benutzerdefinierte Variable wurde definiert: Datenfeldbezeichnung: "Vorname", Datenfeldname: "vorname", Typ: "Textzeile"
Diese soll unter dem Kundennamen, aber über dem neu platzierten Kundentyp eingefügt werden.
1. Benutzerdefinierte Variable "Vorname" in ./tabs/billing.html einfügen:
./tabs/billing.html, Zeilen 75ff:
<!-- Vorname hier eingefuegt --> [% FOREACH var = SELF.cv.cvars_by_config %] [% IF ( var.config.name == 'vorname' ) %] <tr> <th align="right" valign="top" nowrap>[% var.config.description | html %]</th> <td valign="top"> [% INCLUDE 'common/render_cvar_input.html' cvar_name_prefix = 'cv_cvars.' var_name = '' %] </td> </tr> [% END %] [% END %]
=> Da die Ausgabe der benutzerdefinierten Variablen in einer FOREACH-Schleife erfolgt, wird innerhalb der FOREACH-Schleife mit einer IF-Abfrage der gewüschte Datenfeldname abgefragt und nur dann der entsprechende HTML-Code erzeugt.
2. Benutzerdefinierte Variable "Vorname" im Tab "Benutzerdefinierte Variablen" nicht mehr anzeigen:
Dies ist wichtig, da sonst beim Speichern der Wert, der hier in der Maske steht die Eingabe im Haupt-Tab wieder überschreibt!
./tabs/custom_variables.html, Zeilen 6ff:
[% FOREACH var = SELF.cv.cvars_by_config %] <!-- Vorname ausschliessen --> [% IF ( var.config.name != 'vorname' ) %] <tr> <th align="right" valign="top" nowrap>[% var.config.description | html %]</th> <td valign="top"> [% INCLUDE 'common/render_cvar_input.html' cvar_name_prefix = 'cv_cvars.' var_name = '' %] </td> </tr> [% END %] [% END %]
=> Umgekehrtes Vorgehen wie oben: HTML-Ausgabe erfolgt nur, wenn der Datenfeldname ungleich 'vorname'.
Von Andreas Rudin vor fast 8 Jahren aktualisiert · 4 Revisionen