Webmasken individuell anpassen » Historie » Version 4
Andreas Rudin, 20.12.2016 22:02
1 | 1 | Andreas Rudin | h1. Webmasken individuell anpassen |
---|---|---|---|
2 | |||
3 | Ich zeige hier einige Beispiele, wie Eingabemasken in kivitendo den eigenen Bedürfnissen angepasst werden können. |
||
4 | Ziel dabei: |
||
5 | * bessere Übersicht |
||
6 | * weniger Eingabefehler |
||
7 | * schnelleres Arbeiten |
||
8 | |||
9 | 3 | Andreas Rudin | Als Beispiel verwende ich die Maske zum Erfassen und Editieren von KundInnen/LieferantInnen. |
10 | 1 | Andreas Rudin | Die dafür benötigten Dateien finden wir im Pfad |
11 | @templates/webpages/customer_vendor/@ |
||
12 | |||
13 | h2. Nicht benötigte Felder ausblenden: |
||
14 | |||
15 | Fax-Nummern von KundInnen und LieferantInnen werden nicht benötigt, da kein Fax vorhanden ist: |
||
16 | |||
17 | @./tabs/billing.html, Zeilen 140ff:@ |
||
18 | <pre> |
||
19 | <!-- Fax auskommentiert |
||
20 | <tr> |
||
21 | <th align="right" nowrap>[% 'Fax' | $T8 %]</th> |
||
22 | |||
23 | <td> |
||
24 | [% L.input_tag('cv.fax', SELF.cv.fax, size = 30) %] |
||
25 | </td> |
||
26 | </tr> |
||
27 | --> |
||
28 | </pre> |
||
29 | 2 | Andreas Rudin | |
30 | h2. Felder umplatzieren: |
||
31 | |||
32 | Der Kundentyp soll direkt unter dem Kundennamen erscheinen, damit nicht vergessen wird, diesen auszufüllen: |
||
33 | |||
34 | 3 | Andreas Rudin | 1. ./tabs/billing.html, Zeilen 269ff auskommentieren und <tr> und </tr> Tags versetzen, um "Sprache" und "Lieferbedingungen" eine Zeile nach oben zu verschieben: |
35 | 2 | Andreas Rudin | |
36 | @./tabs/billing.html, Zeilen 257ff:@ |
||
37 | <pre> |
||
38 | <!-- Tabellenzeilenbeginn nach oben verschoben --> |
||
39 | <tr> |
||
40 | [% IF ( SELF.all_currencies.size ) %] |
||
41 | <!-- <tr> --> |
||
42 | <th align="right">[% 'Currency' | $T8 %]</th> |
||
43 | |||
44 | <td> |
||
45 | [% L.select_tag('cv.currency_id', SELF.all_currencies, title_key = 'name', value_key = 'id', default = SELF.cv.currency_id) %] |
||
46 | </td> |
||
47 | <!-- </tr> --> |
||
48 | [% END %] |
||
49 | |||
50 | <!-- <tr> --> |
||
51 | <!-- Kunden- bzw. Lieferantentyp nach oben verschoben |
||
52 | [% IF ( !INSTANCE_CONF.get_vertreter ) %] |
||
53 | <th align="right"> |
||
54 | [% IF ( SELF.is_vendor() ) %] |
||
55 | [% 'Type of Vendor' | $T8 %] |
||
56 | [% ELSE %] |
||
57 | [% 'Type of Customer' | $T8 %] |
||
58 | [% END %] |
||
59 | </th> |
||
60 | |||
61 | <td> |
||
62 | [% L.select_tag('cv.business_id', SELF.all_business, default = SELF.cv.business_id, value_key = 'id', title_key = 'description', with_empty = 1) %] |
||
63 | </td> |
||
64 | [% END %] |
||
65 | 1 | Andreas Rudin | --> |
66 | <th align="right">[% 'Language' | $T8 %]</th> |
||
67 | 3 | Andreas Rudin | </pre> |
68 | |||
69 | 2. Kundentypfeld hinter Kundennamen einfügen: |
||
70 | |||
71 | @./tabs/billing.html, Zeilen 75ff:@ |
||
72 | <pre> |
||
73 | 4 | Andreas Rudin | <!-- Kundentyp hier eingefuegt --> |
74 | 3 | Andreas Rudin | <tr> |
75 | [% IF ( !INSTANCE_CONF.get_vertreter ) %] |
||
76 | <th align="right"> |
||
77 | [% IF ( SELF.is_vendor() ) %] |
||
78 | [% 'Type of Vendor' | $T8 %] |
||
79 | [% ELSE %] |
||
80 | [% 'Type of Customer' | $T8 %] |
||
81 | [% END %] |
||
82 | </th> |
||
83 | |||
84 | <td> |
||
85 | [% L.select_tag('cv.business_id', SELF.all_business, default = SELF.cv.business_id, value_key = 'id', title_key = 'description', with_empty = 1) %] |
||
86 | </td> |
||
87 | [% END %] |
||
88 | </tr> |
||
89 | 1 | Andreas Rudin | </pre> |
90 | 4 | Andreas Rudin | |
91 | h2. Benutzerdefinierte Variablen in Hauptseite integrieren |
||
92 | |||
93 | Als benutzerdefinierte Variable wurde definiert: Datenfeldbezeichnung: "Vorname", Datenfeldname: "vorname", Typ: "Textzeile" |
||
94 | Diese soll unter dem Kundennamen, aber über dem neu platzierten Kundentyp eingefügt werden. |
||
95 | |||
96 | 1. Benutzerdefinierte Variable "Vorname" in ./tabs/billing.html einfügen: |
||
97 | |||
98 | @./tabs/billing.html, Zeilen 75ff:@ |
||
99 | <pre> |
||
100 | <!-- Vorname hier eingefuegt --> |
||
101 | [% FOREACH var = SELF.cv.cvars_by_config %] |
||
102 | [% IF ( var.config.name == 'vorname' ) %] |
||
103 | <tr> |
||
104 | <th align="right" valign="top" nowrap>[% var.config.description | html %]</th> |
||
105 | |||
106 | <td valign="top"> |
||
107 | [% INCLUDE 'common/render_cvar_input.html' |
||
108 | cvar_name_prefix = 'cv_cvars.' |
||
109 | var_name = '' |
||
110 | %] |
||
111 | </td> |
||
112 | </tr> |
||
113 | [% END %] |
||
114 | [% END %] |
||
115 | </pre> |
||
116 | |||
117 | => 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. |
||
118 | |||
119 | 2. Benutzerdefinierte Variable "Vorname" im Tab "Benutzerdefinierte Variablen" nicht mehr anzeigen: |
||
120 | Dies ist wichtig, da sonst beim Speichern der Wert, der hier in der Maske steht die Eingabe im Haupt-Tab wieder überschreibt! |
||
121 | |||
122 | @./tabs/custom_variables.html, Zeilen 6ff:@ |
||
123 | <pre> |
||
124 | [% FOREACH var = SELF.cv.cvars_by_config %] |
||
125 | <!-- Vorname ausschliessen --> |
||
126 | [% IF ( var.config.name != 'vorname' ) %] |
||
127 | <tr> |
||
128 | <th align="right" valign="top" nowrap>[% var.config.description | html %]</th> |
||
129 | |||
130 | <td valign="top"> |
||
131 | [% INCLUDE 'common/render_cvar_input.html' |
||
132 | cvar_name_prefix = 'cv_cvars.' |
||
133 | var_name = '' |
||
134 | %] |
||
135 | </td> |
||
136 | </tr> |
||
137 | [% END %] |
||
138 | [% END %] |
||
139 | </pre> |
||
140 | => Umgekehrtes Vorgehen wie oben: HTML-Ausgabe erfolgt nur, wenn der Datenfeldname ungleich 'vorname'. |