Projekt

Allgemein

Profil

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'.