Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision fec09045

Von Moritz Bunkus vor mehr als 17 Jahren hinzugefügt

  • ID fec0904532e2136a1a769f568c351f4875257d56
  • Vorgänger 27852f0e
  • Nachfolger 431181fc

Den Dialog zum Bearbeiten der Mahnungskonfiguration auf die Verwendung von HTML-Vorlagen umgestellt.

Unterschiede anzeigen:

bin/mozilla/dn.pl
36 36
use SL::DN;
37 37
use Data::Dumper;
38 38

  
39
require "bin/mozilla/common.pl";
39 40
require "bin/mozilla/io.pl";
40 41
require "bin/mozilla/arap.pl";
41 42

  
......
44 45
sub edit_config {
45 46
  $lxdebug->enter_sub();
46 47

  
47
  # edit all dunning config data
48

  
49
  $form->header;
50 48
  DN->get_config(\%myconfig, \%$form);
51
  $form->{title} = $locale->text('Edit Dunning Process Config');
52
  
53
  $form->{callback} =
54
    "$form->{script}?action=edit_config&login=$form->{login}&password=$form->{password}"
55
    unless $form->{callback};
56

  
57
  @column_index = qw(dunning_level dunning_description active auto email payment_terms terms fee interest_rate template);
58

  
59
  $column_header{dunning_level} =
60
      qq|<th class=listheading>|
61
    . $locale->text('Dunning Level')
62
    . qq|</th>|;
63
  $column_header{dunning_description} =
64
      qq|<th class=listheading>|
65
    . $locale->text('Dunning Description')
66
    . qq|</th>|;
67
  $column_header{active} =
68
      qq|<th class=listheading>|
69
    . $locale->text('Active?')
70
    . qq|</th>|;
71
  $column_header{auto} =
72
      qq|<th class=listheading>|
73
    . $locale->text('Auto Send?')
74
    . qq|</th>|;
75
  $column_header{email} =
76
      qq|<th class=listheading>|
77
    . $locale->text('eMail Send?')
78
    . qq|</th>|;
79
  $column_header{payment_terms} =
80
      qq|<th class=listheading>|
81
    . $locale->text('Fristsetzung')
82
    . qq|</th>|;
83
  $column_header{terms} =
84
      qq|<th class=listheading>|
85
    . $locale->text('Duedate +Days')
86
    . qq|</th>|;
87
  $column_header{fee} =
88
      qq|<th class=listheading>|
89
    . $locale->text('Fee')
90
    . qq|</th>|;
91
  $column_header{interest_rate} =
92
      qq|<th class=listheading>|
93
    . $locale->text('Interest Rate')
94
    . qq|</th>|;
95
  $column_header{template} =
96
      qq|<th class=listheading>|
97
    . $locale->text('Template')
98
    . qq|</th>|;
99
  print qq|
100
<body>
101
<script type="text/javascript" src="js/common.js"></script>
102
<script type="text/javascript" src="js/dunning.js"></script>
103
<form method=post action=$form->{script}>
104

  
105

  
106
<table width=100%>
107
  <tr>
108
    <th class=listtop colspan=10>$form->{title}</th>
109
  </tr>
110
  <tr height="5"></tr>
111
  <tr>|;
112
  map { print "$column_header{$_}\n" } @column_index;
113

  
114
  print qq|
115
        </tr>
116
|;
117
  my $i = 0;
118
  foreach $ref (@{ $form->{DUNNING} }) {
119

  
120
    $i++;
121
    my $j = $i % 2;
122

  
123
    print qq|
124
        <tr valign=top class=listrow$j>
125
|;
126

  
127

  
128
    $column_data{dunning_level} =
129
      qq|<td><input type=hidden name=dunning_level_$i size=2 value="$i"><input type=hidden name=id_$i value="$ref->{id}">$i</td>|;
130
    $column_data{dunning_description}           = qq|<td><input name=dunning_description_$i value="$ref->{dunning_description}"></td>|;
131
    my $active = ($ref->{active}) ? "checked" : "";
132
    $column_data{active} =
133
      qq|<td><input type=checkbox name=active_$i value=1 $active></td>|;
134
    my $email = ($ref->{email}) ? "checked" : "";
135
  $column_data{email} =
136
    qq|<td><input type=checkbox name=email_$i value=1 $email><button type="button" onclick="set_email_window('email_subject_$i', 'email_body_$i', 'email_attachment_$i')">| . $locale->text('L') . qq|</button><input type=hidden name=email_body_$i value="$ref->{email_body}"><input type=hidden name=email_subject_$i value="$ref->{email_subject}"><input type=hidden name=email_attachment_$i value="$ref->{email_attachment}"></td>|;
137

  
138
    my $auto = ($ref->{auto}) ? "checked" : "";
139
    $column_data{auto} =
140
      qq|<td><input type=checkbox name=auto_$i value=1 $auto></td>|;
141
    $column_data{payment_terms}           = qq|<td><input name=payment_terms_$i size=3 value="$ref->{payment_terms}"></td>|;
142
    $column_data{terms}           = qq|<td><input name=terms_$i size=3 value="$ref->{terms}"></td>|;
143
    $column_data{fee}           = qq|<td><input name=fee_$i size=5 value="$ref->{fee}"></td>|;
144
    $column_data{interest_rate}           = qq|<td><input name=interest_rate_$i size=4 value="$ref->{interest}">%</td>|;
145
    $column_data{template}           = qq|<td><input name=template_$i value="$ref->{template}"></td>|;
146

  
147

  
148

  
149
    map { print "$column_data{$_}\n" } @column_index;
150

  
151
    print qq|
152
	</tr>
153
|;
154
  }
155
  $i++;
156
  my $j = $i % 2;
157

  
158
  print qq|
159
        <tr valign=top class=listrow$j>
160
|;
161

  
162

  
163
  $column_data{dunning_level} =
164
    qq|<td><input type=hidden size=2 name=dunning_level_$i value=$i>$i</td>|;
165
  $column_data{dunning_description}           = qq|<td><input name=dunning_description_$i ></td>|;
166
  $column_data{active} =
167
    qq|<td><input type=checkbox name=active_$i value=1></td>|;
168
  my $email = "";
169
  $column_data{email} =
170
    qq|<td><input type=checkbox name=email_$i value=1 $email><button type="button" onclick="set_email_window('email_subject_$i', 'email_body_$i', 'email_attachment_$i')">| . $locale->text('L') . qq|</button><input type=hidden name=email_body_$i><input type=hidden name=email_subject_$i><input type=hidden name=email_attachment_$i></td>|;
171
  my $auto = "";
172
  $column_data{auto} =
173
    qq|<td><input type=checkbox name=auto_$i value=1 $auto></td>|;
174
  $column_data{payment_terms}           = qq|<td><input  size=3 name=payment_terms_$i></td>|;
175
  $column_data{terms}           = qq|<td><input  size=3 name=terms_$i></td>|;
176
  $column_data{fee}           = qq|<td><input  size=5 name=fee_$i></td>|;
177
  $column_data{interest_rate}           = qq|<td><input  size=4 name=interest_rate_$i>%</td>|;
178
  $column_data{template}           = qq|<td><input name=template_$i></td>|;
179

  
180

  
181
  $form->{rowcount} = $i;
182
  map { print "$column_data{$_}\n" } @column_index;
183

  
184
  print qq|
185
      </tr>
186
|;
187

  
188

  
189
  print qq|
190
      </table>
191
    </td>
192
  </tr>
193
  <tr>
194
  <td><hr size=3 noshade></td>
195
  </tr>
196
</table>
197

  
198
<br>
199
<form method=post action=$form->{script}>
200

  
201
<input name=callback type=hidden value="$form->{callback}">
202
<input name=rowcount type=hidden value="$form->{rowcount}">
203

  
204
<input type=hidden name=login value=$form->{login}>
205
<input type=hidden name=password value=$form->{password}>
206 49

  
207
<input class=submit type=submit name=action value="|
208
    . $locale->text('Save') . qq|">
209

  
210
  </form>
50
  $form->{title}          = $locale->text('Edit Dunning Process Config');
51
  $form->{callback}     ||= build_std_url("action=edit_config");
52
  $form->{rowcount}       = 1 + scalar @{ $form->{DUNNING} };
53
  $form->{rowcount_odd}   = $form->{rowcount} % 2;
211 54

  
212
  </body>
213
  </html>
214
|;
55
  $form->header();
56
  print $form->parse_html_template("dunning/edit_config");
215 57

  
216 58
  $lxdebug->leave_sub();
217 59
}
locale/de/all
922 922
  'Save and Order'              => 'Speichern und Auftrag erfassen',
923 923
  'Save and Quotation'          => 'Speichern und Angebot',
924 924
  'Save and RFQ'                => 'Speichern und Lieferantenanfrage',
925
  'Save and close'              => 'Speichern und schlie&szlig;en',
925 926
  'Save as new'                 => 'als neu speichern',
926 927
  'Save draft'                  => 'Entwurf speichern',
927 928
  'Saving the file \'%s\' failed. OS error message: %s' => 'Das Speichern der Datei \'%s\' schlug fehl. Fehlermeldung des Betriebssystems: %s',
locale/de/dn
15 15
  'Attempt to call an undefined sub named \'%s\'' => 'Es wurde versucht, eine nicht definierte Unterfunktion namens \'%s\' aufzurufen.',
16 16
  'Aug'                         => 'Aug',
17 17
  'August'                      => 'August',
18
  'Auto Send?'                  => 'Auto. Versand?',
19 18
  'Billing Address'             => 'Rechnungsadresse',
20 19
  'Bin'                         => 'Lagerplatz',
21 20
  'Bin List'                    => 'Lagerliste',
......
44 43
  'Dependency loop detected:'   => 'Schleife in den Abh&auml;ngigkeiten entdeckt:',
45 44
  'Description'                 => 'Beschreibung',
46 45
  'Discount'                    => 'Rabatt',
47
  'Duedate +Days'               => 'F?llikeitsdatum +Tage',
48 46
  'Dunning Date'                => 'Mahndatum',
49 47
  'Dunning Date from'           => 'Mahnungen von',
50
  'Dunning Description'         => 'Mahnstufenbeschreibung',
51 48
  'Dunning Description missing in row ' => 'Mahnstufenbeschreibung fehlt in Zeile ',
52 49
  'Dunning Duedate'             => 'Zahlbar bis',
53 50
  'Dunning Level'               => 'Mahnlevel',
......
67 64
  'Fax'                         => 'Fax',
68 65
  'Feb'                         => 'Feb',
69 66
  'February'                    => 'Februar',
70
  'Fee'                         => 'Geb?hr',
71
  'Fristsetzung'                => 'Fristsetzung',
72 67
  'Group'                       => 'Warengruppe',
73 68
  'Group Invoices'              => 'Rechnungen zusammenfassen',
74 69
  'History'                     => 'Historie',
75 70
  'In-line'                     => 'im Text',
76 71
  'Interest'                    => 'Zinsen',
77
  'Interest Rate'               => 'Zinssatz',
78 72
  'Inv. Duedate'                => 'Rg. F?lligkeit',
79 73
  'Invdate'                     => 'Rechnungsdatum',
80 74
  'Invdate from'                => 'Rechnungen von',
......
161 155
  'SAVED FOR DUNNING'           => 'Gespeichert',
162 156
  'SCREENED'                    => 'Angezeigt',
163 157
  'Sales Order'                 => 'Kundenauftrag',
164
  'Save'                        => 'Speichern',
165 158
  'Screen'                      => 'Bildschirm',
166 159
  'Search Dunning'              => 'Mahnung suchen',
167 160
  'Select a Customer'           => 'Endkunde ausw?hlen',
......
188 181
  'Storno Packing List'         => 'Stornolieferschein',
189 182
  'Street'                      => 'Stra?e',
190 183
  'Subtotal'                    => 'Zwischensumme',
191
  'Template'                    => 'Druckvorlage',
192 184
  'Terms missing in row '       => '+Tage fehlen in Zeile ',
193 185
  'The \'tag\' field must only consist of alphanumeric characters or the carachters - _ ( )' => 'Das Feld \'tag\' darf nur aus alphanumerischen Zeichen und den Zeichen - _ ( ) bestehen.',
194 186
  'The dunning process started' => 'Der Mahnprozess ist gestartet.',
......
206 198
  'Zipcode'                     => 'PLZ',
207 199
  'bin_list'                    => 'Lagerliste',
208 200
  'button'                      => '?',
209
  'eMail Send?'                 => 'eMail-Versand?',
210 201
  'eMail?'                      => 'eMail?',
211 202
  'emailed to'                  => 'gemailt an',
212 203
  'invoice'                     => 'Rechnung',
locale/de/menuv3
1 1
$self->{texts} = {
2 2
  'Logout'                      => 'Abmeldung',
3
  'User'                        => 'Benutzer',
3 4
};
4 5

  
5 6
$self->{subs} = {
templates/webpages/dunning/edit_config_de.html
1
<body>
2
 <script type="text/javascript" src="js/common.js"></script>
3
 <script type="text/javascript" src="js/dunning.js"></script>
4

  
5
 <div class="listtop" width="100%"><TMPL_VAR title></div>
6

  
7
 <form method="post" action="dn.pl">
8
  <table>
9
   <tr height="5"></tr>
10

  
11
   <tr>
12
    <th class="listheading">Mahnlevel</th>
13
    <th class="listheading">Mahnstufenbeschreibung</th>
14
    <th class="listheading">Aktiviert?</th>
15
    <th class="listheading">Auto. Versand?</th>
16
    <th class="listheading">eMail-Versand?</th>
17
    <th class="listheading">Fristsetzung</th>
18
    <th class="listheading">F?llikeitsdatum +Tage</th>
19
    <th class="listheading">Geb?hr</th>
20
    <th class="listheading">Zinssatz</th>
21
    <th class="listheading">Druckvorlage</th>
22
   </tr>
23

  
24
   <TMPL_LOOP DUNNING>
25
    <tr valign="top" class="listrow<TMPL_IF __odd__>1<TMPL_ELSE>0</TMPL_IF>">
26
     <td>
27
      <input type="hidden" name="dunning_level_<TMPL_VAR __counter__>" size="2" value="<TMPL_VAR __counter__>">
28
      <input type="hidden" name="id_<TMPL_VAR __counter__>" value="<TMPL_VAR id ESCAPE=HTML>">
29
      <TMPL_VAR __counter__>
30
     </td>
31

  
32
     <td><input name="dunning_description_<TMPL_VAR __counter__>" value="<TMPL_VAR dunning_description ESCAPE=HTML>"></td>
33
     <td><input type="checkbox" name="active_<TMPL_VAR __counter__>" value="1" <TMPL_IF active>checked</TMPL_IF>></td>
34

  
35
     <td>
36
      <input type="checkbox" name="email_<TMPL_VAR __counter__>" value="1" <TMPL_IF email>checked</TMPL_IF>>
37
      <button type="button" onclick="set_email_window('email_subject_<TMPL_VAR __counter__>', 'email_body_<TMPL_VAR __counter__>', 'email_attachment_<TMPL_VAR __counter__>')">
38
       L</button>
39
      <input type="hidden" name="email_body_<TMPL_VAR __counter__>" value="<TMPL_VAR email_body ESCAPE=HTML>">
40
      <input type="hidden" name="email_subject_<TMPL_VAR __counter__>" value="<TMPL_VAR email_subject ESCAPE=HTML>">
41
      <input type="hidden" name="email_attachment_<TMPL_VAR __counter__>" value="<TMPL_VAR email_attachment ESCAPE=HTML>">
42
     </td>
43

  
44
     <td><input type="checkbox" name="auto_<TMPL_VAR __counter__>" value="1" <TMPL_IF auto>checked</TMPL_IF>></td>
45
     <td><input name="payment_terms_<TMPL_VAR __counter__>" size="3" value="<TMPL_VAR payment_terms ESCAPE=HTML>"></td>
46
     <td><input name="terms_<TMPL_VAR __counter__>" size="3" value="<TMPL_VAR terms ESCAPE=HTML>"></td>
47
     <td><input name="fee_<TMPL_VAR __counter__>" size="5" value="<TMPL_VAR fee ESCAPE=HTML>"></td>
48
     <td><input name="interest_rate_<TMPL_VAR __counter__>" size="4" value="<TMPL_VAR interest ESCAPE=HTML>">%</td>
49
     <td><input name="template_<TMPL_VAR __counter__>" value="<TMPL_VAR template ESCAPE=HTML>"></td>
50
    </tr>
51
   </TMPL_LOOP>
52

  
53
   <tr valign="top" class="listrow<TMPL_IF rowcount_odd>1<TMPL_ELSE>0</TMPL_IF>">
54
    <td>
55
     <input type="hidden" name="dunning_level_<TMPL_VAR rowcount>" size="2">
56
     <input type="hidden" name="id_<TMPL_VAR rowcount>">
57
     <TMPL_VAR rowcount>
58
    </td>
59

  
60
    <td><input name="dunning_description_<TMPL_VAR rowcount>"></td>
61
    <td><input type="checkbox" name="active_<TMPL_VAR rowcount>" value="1" checked></td>
62

  
63
    <td>
64
     <input type="checkbox" name="email_<TMPL_VAR rowcount>" value="1" checked>
65
     <button type="button" onclick="set_email_window('email_subject_<TMPL_VAR rowcount>', 'email_body_<TMPL_VAR rowcount>', 'email_attachment_<TMPL_VAR rowcount>')">
66
      L</button>
67
     <input type="hidden" name="email_body_<TMPL_VAR rowcount>">
68
     <input type="hidden" name="email_subject_<TMPL_VAR rowcount>">
69
     <input type="hidden" name="email_attachment_<TMPL_VAR rowcount>">
70
    </td>
71

  
72
    <td><input type="checkbox" name="auto_<TMPL_VAR rowcount>" value="1" checked></td>
73
    <td><input name="payment_terms_<TMPL_VAR rowcount>" size="3"></td>
74
    <td><input name="terms_<TMPL_VAR rowcount>" size="3"></td>
75
    <td><input name="fee_<TMPL_VAR rowcount>" size="5"></td>
76
    <td><input name="interest_rate_<TMPL_VAR rowcount>" size="4">%</td>
77
    <td><input name="template_<TMPL_VAR rowcount>"></td>
78
   </tr>
79
  </table>
80

  
81
  <hr size="3" noshade>
82

  
83
  <input type="hidden" name="rowcount" value="<TMPL_VAR rowcount ESCAPE=HTML>">
84
  <input type="hidden" name="callback" value="<TMPL_VAR callback ESCAPE=HTML>">
85

  
86
  <input type="hidden" name="login" value="<TMPL_VAR login ESCAPE=HTML>">
87
  <input type="hidden" name="password" value="<TMPL_VAR password ESCAPE=HTML>">
88

  
89
  <input class="submit" type="submit" name="action" value="Speichern">
90

  
91
 </form>
92
</body>
93

  
94
</html>
templates/webpages/dunning/edit_config_master.html
1
<body>
2
 <script type="text/javascript" src="js/common.js"></script>
3
 <script type="text/javascript" src="js/dunning.js"></script>
4

  
5
 <div class="listtop" width="100%"><TMPL_VAR title></div>
6

  
7
 <form method="post" action="dn.pl">
8
  <table>
9
   <tr height="5"></tr>
10

  
11
   <tr>
12
    <th class="listheading"><translate>Dunning Level</translate></th>
13
    <th class="listheading"><translate>Dunning Description</translate></th>
14
    <th class="listheading"><translate>Active?</translate></th>
15
    <th class="listheading"><translate>Auto Send?</translate></th>
16
    <th class="listheading"><translate>eMail Send?</translate></th>
17
    <th class="listheading"><translate>Fristsetzung</translate></th>
18
    <th class="listheading"><translate>Duedate +Days</translate></th>
19
    <th class="listheading"><translate>Fee</translate></th>
20
    <th class="listheading"><translate>Interest Rate</translate></th>
21
    <th class="listheading"><translate>Template</translate></th>
22
   </tr>
23

  
24
   <TMPL_LOOP DUNNING>
25
    <tr valign="top" class="listrow<TMPL_IF __odd__>1<TMPL_ELSE>0</TMPL_IF>">
26
     <td>
27
      <input type="hidden" name="dunning_level_<TMPL_VAR __counter__>" size="2" value="<TMPL_VAR __counter__>">
28
      <input type="hidden" name="id_<TMPL_VAR __counter__>" value="<TMPL_VAR id ESCAPE=HTML>">
29
      <TMPL_VAR __counter__>
30
     </td>
31

  
32
     <td><input name="dunning_description_<TMPL_VAR __counter__>" value="<TMPL_VAR dunning_description ESCAPE=HTML>"></td>
33
     <td><input type="checkbox" name="active_<TMPL_VAR __counter__>" value="1" <TMPL_IF active>checked</TMPL_IF>></td>
34

  
35
     <td>
36
      <input type="checkbox" name="email_<TMPL_VAR __counter__>" value="1" <TMPL_IF email>checked</TMPL_IF>>
37
      <button type="button" onclick="set_email_window('email_subject_<TMPL_VAR __counter__>', 'email_body_<TMPL_VAR __counter__>', 'email_attachment_<TMPL_VAR __counter__>')">
38
       <translate>L</translate></button>
39
      <input type="hidden" name="email_body_<TMPL_VAR __counter__>" value="<TMPL_VAR email_body ESCAPE=HTML>">
40
      <input type="hidden" name="email_subject_<TMPL_VAR __counter__>" value="<TMPL_VAR email_subject ESCAPE=HTML>">
41
      <input type="hidden" name="email_attachment_<TMPL_VAR __counter__>" value="<TMPL_VAR email_attachment ESCAPE=HTML>">
42
     </td>
43

  
44
     <td><input type="checkbox" name="auto_<TMPL_VAR __counter__>" value="1" <TMPL_IF auto>checked</TMPL_IF>></td>
45
     <td><input name="payment_terms_<TMPL_VAR __counter__>" size="3" value="<TMPL_VAR payment_terms ESCAPE=HTML>"></td>
46
     <td><input name="terms_<TMPL_VAR __counter__>" size="3" value="<TMPL_VAR terms ESCAPE=HTML>"></td>
47
     <td><input name="fee_<TMPL_VAR __counter__>" size="5" value="<TMPL_VAR fee ESCAPE=HTML>"></td>
48
     <td><input name="interest_rate_<TMPL_VAR __counter__>" size="4" value="<TMPL_VAR interest ESCAPE=HTML>">%</td>
49
     <td><input name="template_<TMPL_VAR __counter__>" value="<TMPL_VAR template ESCAPE=HTML>"></td>
50
    </tr>
51
   </TMPL_LOOP>
52

  
53
   <tr valign="top" class="listrow<TMPL_IF rowcount_odd>1<TMPL_ELSE>0</TMPL_IF>">
54
    <td>
55
     <input type="hidden" name="dunning_level_<TMPL_VAR rowcount>" size="2">
56
     <input type="hidden" name="id_<TMPL_VAR rowcount>">
57
     <TMPL_VAR rowcount>
58
    </td>
59

  
60
    <td><input name="dunning_description_<TMPL_VAR rowcount>"></td>
61
    <td><input type="checkbox" name="active_<TMPL_VAR rowcount>" value="1" checked></td>
62

  
63
    <td>
64
     <input type="checkbox" name="email_<TMPL_VAR rowcount>" value="1" checked>
65
     <button type="button" onclick="set_email_window('email_subject_<TMPL_VAR rowcount>', 'email_body_<TMPL_VAR rowcount>', 'email_attachment_<TMPL_VAR rowcount>')">
66
      <translate>L</translate></button>
67
     <input type="hidden" name="email_body_<TMPL_VAR rowcount>">
68
     <input type="hidden" name="email_subject_<TMPL_VAR rowcount>">
69
     <input type="hidden" name="email_attachment_<TMPL_VAR rowcount>">
70
    </td>
71

  
72
    <td><input type="checkbox" name="auto_<TMPL_VAR rowcount>" value="1" checked></td>
73
    <td><input name="payment_terms_<TMPL_VAR rowcount>" size="3"></td>
74
    <td><input name="terms_<TMPL_VAR rowcount>" size="3"></td>
75
    <td><input name="fee_<TMPL_VAR rowcount>" size="5"></td>
76
    <td><input name="interest_rate_<TMPL_VAR rowcount>" size="4">%</td>
77
    <td><input name="template_<TMPL_VAR rowcount>"></td>
78
   </tr>
79
  </table>
80

  
81
  <hr size="3" noshade>
82

  
83
  <input type="hidden" name="rowcount" value="<TMPL_VAR rowcount ESCAPE=HTML>">
84
  <input type="hidden" name="callback" value="<TMPL_VAR callback ESCAPE=HTML>">
85

  
86
  <input type="hidden" name="login" value="<TMPL_VAR login ESCAPE=HTML>">
87
  <input type="hidden" name="password" value="<TMPL_VAR password ESCAPE=HTML>">
88

  
89
  <input class="submit" type="submit" name="action" value="<translate>Save</translate>">
90

  
91
 </form>
92
</body>
93

  
94
</html>

Auch abrufbar als: Unified diff