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