Revision 2707d93c
Von Hans Peter Schlaepfer vor mehr als 5 Jahren hinzugefügt
templates/webpages/background_job/form.html | ||
---|---|---|
1 |
[% USE HTML %][% USE L %][% USE LxERP %] |
|
1 |
[% USE HTML %] |
|
2 |
[% USE L %] |
|
3 |
[% USE LxERP %] |
|
2 | 4 |
|
3 |
<h1>[% FORM.title %]</h1>
|
|
5 |
<h1>[% FORM.title %]</h1> |
|
4 | 6 |
|
5 |
[%- INCLUDE 'common/flash.html' %]
|
|
7 |
[% INCLUDE 'common/flash.html' %] |
|
6 | 8 |
|
7 |
<form method="post" action="controller.pl" id="form">
|
|
9 |
<form method="post" action="controller.pl" id="form"> |
|
8 | 10 |
[% L.hidden_tag("id", SELF.background_job.id) %] |
9 | 11 |
[% L.hidden_tag("back_to", SELF.back_to) %] |
10 | 12 |
|
11 | 13 |
<table> |
12 |
<tr> |
|
13 |
<th align="right">[%- LxERP.t8('Active') %]</th> |
|
14 |
<td>[% L.yes_no_tag("background_job.active", SELF.background_job.active) %]</td> |
|
15 |
</tr> |
|
16 |
|
|
17 |
<tr> |
|
18 |
<th align="right">[%- LxERP.t8('Execution type') %]</th> |
|
19 |
<td> |
|
20 |
[% L.select_tag('background_job.type', [ |
|
21 |
[ 'once', LxERP.t8('one-time execution') ], |
|
22 |
[ 'interval', LxERP.t8('repeated execution') ] |
|
23 |
], |
|
24 |
'default' = SELF.background_job.type) %] |
|
25 |
</td> |
|
26 |
</tr> |
|
27 |
|
|
28 |
<tr> |
|
29 |
<th align="right">[%- LxERP.t8('Package name') %]</th> |
|
30 |
<td>[% L.select_tag("background_job.package_name", JOB_CLASSES, 'default' => SELF.background_job.package_name) %]</td> |
|
31 |
</tr> |
|
32 |
|
|
33 |
<tr> |
|
34 |
<th align="right">[%- LxERP.t8('Execution schedule') %]</th> |
|
35 |
<td>[% L.input_tag("background_job.cron_spec", SELF.background_job.cron_spec, 'size' => 40) %]</td> |
|
36 |
</tr> |
|
37 |
|
|
38 |
<tr> |
|
39 |
<th align="right" valign="top">[%- LxERP.t8('Data') %]</th> |
|
40 |
<td valign="top">[% L.textarea_tag("background_job.data", SELF.background_job.data, 'cols' => 80, 'rows' => 10) %]</td> |
|
41 |
</tr> |
|
42 |
|
|
14 |
<tbody> |
|
15 |
<tr> |
|
16 |
<th>[% LxERP.t8('Active') %]</th> |
|
17 |
<td>[% L.yes_no_tag("background_job.active", SELF.background_job.active) %]</td> |
|
18 |
</tr> |
|
19 |
<tr> |
|
20 |
<th>[% LxERP.t8('Execution type') %]</th> |
|
21 |
<td>[% |
|
22 |
L.select_tag('background_job.type', [ |
|
23 |
[ 'once', LxERP.t8('one-time execution') ], |
|
24 |
[ 'interval', LxERP.t8('repeated execution') ] |
|
25 |
], |
|
26 |
'default' = SELF.background_job.type) |
|
27 |
%]</td> |
|
28 |
</tr> |
|
29 |
<tr> |
|
30 |
<th>[% LxERP.t8('Package name') %]</th> |
|
31 |
<td>[% L.select_tag("background_job.package_name", JOB_CLASSES, 'default' => SELF.background_job.package_name) %]</td> |
|
32 |
</tr> |
|
33 |
<tr> |
|
34 |
<th>[% LxERP.t8('Execution schedule') %]</th> |
|
35 |
<td>[% L.input_tag("background_job.cron_spec", SELF.background_job.cron_spec, 'size' => 40) %]</td> |
|
36 |
</tr> |
|
37 |
<tr> |
|
38 |
<th>[% LxERP.t8('Data') %]</th> |
|
39 |
<td>[% L.textarea_tag("background_job.data", SELF.background_job.data, 'cols' => 80, 'rows' => 10) %]</td> |
|
40 |
</tr> |
|
41 |
</tbody> |
|
43 | 42 |
</table> |
44 |
</form> |
|
43 |
|
|
44 |
</form> |
templates/webpages/background_job/list.html | ||
---|---|---|
1 |
[% USE HTML %][% USE L %][% USE LxERP %] |
|
1 |
[% USE HTML %] |
|
2 |
[% USE L %] |
|
3 |
[% USE LxERP %] |
|
2 | 4 |
|
3 |
<h1>[% FORM.title %]</h1>
|
|
5 |
<h1>[% FORM.title %]</h1> |
|
4 | 6 |
|
5 |
[%- INCLUDE 'common/flash.html' %]
|
|
7 |
[% INCLUDE 'common/flash.html' %] |
|
6 | 8 |
|
7 |
[% IF !BACKGROUND_JOBS.size %] |
|
8 |
<p> |
|
9 |
[%- LxERP.t8('No background job has been created yet.') %] |
|
10 |
</p> |
|
9 |
[% IF !BACKGROUND_JOBS.size %] |
|
10 |
<p>[% LxERP.t8('No background job has been created yet.') %]</p> |
|
11 | 11 |
|
12 |
[%- ELSE %]
|
|
13 |
<table id="background_job_list" width="100%">
|
|
12 |
[% ELSE %]
|
|
13 |
<table id="background_job_list" width="100%"> |
|
14 | 14 |
<thead> |
15 |
<tr class="listheading">
|
|
16 |
<th>[% L.sortable_table_header('package_name') %]</th> |
|
17 |
<th>[% L.sortable_table_header('type') %]</th> |
|
18 |
<th>[% L.sortable_table_header('active') %]</th> |
|
19 |
<th>[% L.sortable_table_header('cron_spec') %]</th> |
|
20 |
<th>[% L.sortable_table_header('last_run_at') %]</th> |
|
21 |
<th>[% L.sortable_table_header('next_run_at') %]</th> |
|
22 |
</tr> |
|
15 |
<tr>
|
|
16 |
<th>[% L.sortable_table_header('package_name') %]</th>
|
|
17 |
<th>[% L.sortable_table_header('type') %]</th>
|
|
18 |
<th>[% L.sortable_table_header('active') %]</th>
|
|
19 |
<th>[% L.sortable_table_header('cron_spec') %]</th>
|
|
20 |
<th>[% L.sortable_table_header('last_run_at') %]</th>
|
|
21 |
<th>[% L.sortable_table_header('next_run_at') %]</th>
|
|
22 |
</tr>
|
|
23 | 23 |
</thead> |
24 | 24 |
|
25 | 25 |
<tbody> |
26 |
[%- FOREACH background_job = BACKGROUND_JOBS %] |
|
27 |
<tr class="listrow[% loop.count % 2 %]" id="background_job_id_[% background_job.id %]"> |
|
28 |
<td> |
|
29 |
<a href="[% SELF.url_for(action => 'edit', id => background_job.id, back_to => SELF.get_callback) %]"> |
|
30 |
[%- HTML.escape(background_job.package_name) %] |
|
31 |
</a> |
|
32 |
</td> |
|
33 |
<td> |
|
34 |
[%- IF background_job.type == 'once' %] |
|
35 |
[%- LxERP.t8('one-time execution') %] |
|
36 |
[%- ELSIF background_job.type == 'interval' %] |
|
37 |
[%- LxERP.t8('repeated execution') %] |
|
38 |
[% ELSE %] |
|
39 |
[%- HTML.escape(background_job.type) %] |
|
40 |
[%- END %] |
|
41 |
</td> |
|
42 |
<td align="right">[% IF background_job.active %][%- LxERP.t8('yes') %][% ELSE %][%- LxERP.t8('no') %][%- END %]</td> |
|
43 |
<td>[%- HTML.escape(background_job.cron_spec) %]</td> |
|
44 |
<td> |
|
45 |
[%- IF background_job.last_run_at %] |
|
46 |
[%- HTML.escape(background_job.last_run_at.to_lxoffice('precision' => 'second')) %] |
|
47 |
[%- ELSE %] |
|
48 |
[%- LxERP.t8('never') %] |
|
49 |
[%- END %] |
|
50 |
</td> |
|
26 |
[% FOREACH background_job = BACKGROUND_JOBS %] |
|
27 |
<tr class="listrow[% loop.count % 2 %]" id="background_job_id_[% background_job.id %]"> |
|
28 |
<td><a href="[% SELF.url_for(action => 'edit', id => background_job.id, back_to => SELF.get_callback) %]">[% HTML.escape(background_job.package_name) %]</a></td> |
|
29 |
<td> |
|
30 |
[% IF background_job.type == 'once' %] |
|
31 |
[% LxERP.t8('one-time execution') %] |
|
32 |
[% ELSIF background_job.type == 'interval' %] |
|
33 |
[% LxERP.t8('repeated execution') %] |
|
34 |
[% ELSE %] |
|
35 |
[% HTML.escape(background_job.type) %] |
|
36 |
[% END %] |
|
37 |
</td> |
|
38 |
<td>[% IF background_job.active %][% LxERP.t8('yes') %][% ELSE %][% LxERP.t8('no') %][% END %]</td> |
|
39 |
<td>[% HTML.escape(background_job.cron_spec) %]</td> |
|
40 |
<td> |
|
41 |
[% IF background_job.last_run_at %] |
|
42 |
[% HTML.escape(background_job.last_run_at.to_lxoffice('precision' => 'second')) %] |
|
43 |
[% ELSE %] |
|
44 |
[% LxERP.t8('never') %] |
|
45 |
[% END %] |
|
46 |
</td> |
|
51 | 47 |
|
52 |
<td> |
|
53 |
[%- IF background_job.next_run_at %]
|
|
54 |
[%- HTML.escape(background_job.next_run_at.to_lxoffice('precision' => 'second')) %]
|
|
55 |
[%- ELSE %]
|
|
56 |
[%- LxERP.t8('not set') %]
|
|
57 |
[%- END %]
|
|
58 |
</td> |
|
59 |
</tr> |
|
60 |
[%- END %]
|
|
48 |
<td>
|
|
49 |
[% IF background_job.next_run_at %]
|
|
50 |
[% HTML.escape(background_job.next_run_at.to_lxoffice('precision' => 'second')) %]
|
|
51 |
[% ELSE %]
|
|
52 |
[% LxERP.t8('not set') %]
|
|
53 |
[% END %]
|
|
54 |
</td>
|
|
55 |
</tr>
|
|
56 |
[% END %] |
|
61 | 57 |
</tbody> |
62 |
</table>
|
|
63 |
[%- END %]
|
|
58 |
</table> |
|
59 |
[% END %]
|
|
64 | 60 |
|
65 |
[% L.paginate_controls %] |
|
61 |
[% L.paginate_controls %] |
templates/webpages/background_job_history/_filter.html | ||
---|---|---|
1 |
[%- USE L %][%- USE LxERP %][%- USE HTML %] |
|
1 |
[% USE L %] |
|
2 |
[% USE LxERP %] |
|
3 |
[% USE HTML %] |
|
4 |
|
|
2 | 5 |
<form action="controller.pl" method="post" id="filter_form"> |
3 |
<div class="filter_toggle"> |
|
4 |
<a href="#" onClick="javascript:$('.filter_toggle').toggle()">[% LxERP.t8('Show Filter') %]</a> |
|
5 |
[% IF SELF.filter_summary %]([% LxERP.t8("Current filter") %]: [% SELF.filter_summary %])[% END %] |
|
6 |
</div> |
|
7 |
|
|
8 |
<div class="filter_toggle" style="display:none"> |
|
9 |
<a href="#" onClick="javascript:$('.filter_toggle').toggle()">[% LxERP.t8('Hide Filter') %]</a> |
|
10 |
<table id="filter_table"> |
|
11 |
<tr> |
|
12 |
<th align="right">[% LxERP.t8('Package name') %]</th> |
|
13 |
<td>[% L.input_tag('filter.package_name:substr::ilike', filter.package_name_substr__ilike, size = 20) %]</td> |
|
14 |
</tr> |
|
15 |
<tr> |
|
16 |
<th align="right">[% LxERP.t8('Result') %]</th> |
|
17 |
<td>[% L.input_tag('filter.result:substr::ilike', filter.result_substr__ilike, size = 20) %]</td> |
|
18 |
</tr> |
|
19 |
<tr> |
|
20 |
<th align="right">[% LxERP.t8('Error') %]</th> |
|
21 |
<td>[% L.input_tag('filter.error:substr::ilike', filter.error_substr__ilike, size = 20) %]</td> |
|
22 |
</tr> |
|
23 |
<tr> |
|
24 |
<th align="right">[% LxERP.t8('Status') %]</th> |
|
25 |
<td>[% L.select_tag('filter.status:eq_ignore_empty', [ [ '', '' ], [ 'failure', LxERP.t8('failed') ], [ 'success', LxERP.t8('succeeded') ] ], default=filter.status_eq_ignore_empty) %]</td> |
|
26 |
</tr> |
|
27 |
<tr> |
|
28 |
<th align="right">[% LxERP.t8('Execution date from') %]</th> |
|
29 |
<td>[% L.date_tag('filter.run_at:date::ge', filter.run_at_date__ge) %]</td> |
|
30 |
</tr> |
|
31 |
<tr> |
|
32 |
<th align="right">[% LxERP.t8('Execution date to') %]</th> |
|
33 |
<td>[% L.date_tag('filter.run_at:date::le', filter.run_at_date__le) %]</td> |
|
34 |
</tr> |
|
35 |
</table> |
|
36 |
|
|
37 |
[% L.hidden_tag('action', 'BackgroundJobHistory/dispatch') %] |
|
38 |
[% L.hidden_tag('sort_by', FORM.sort_by) %] |
|
39 |
[% L.hidden_tag('sort_dir', FORM.sort_dir) %] |
|
40 |
[% L.hidden_tag('page', FORM.page) %] |
|
41 |
[% L.submit_tag('action_list', LxERP.t8('Continue'))%] |
|
42 | 6 |
|
7 |
<div class="wrapper"> |
|
8 |
|
|
9 |
[% BLOCK filter_toggle_panel %] |
|
10 |
<table id="filter_table" class="tbl-horizontal"> |
|
11 |
<tr> |
|
12 |
<th>[% LxERP.t8('Package name') %]</th> |
|
13 |
<td>[% L.input_tag('filter.package_name:substr::ilike', filter.package_name_substr__ilike, size = 10, class='wi-lightwide') %]</td> |
|
14 |
</tr> |
|
15 |
<tr> |
|
16 |
<th>[% LxERP.t8('Result') %]</th> |
|
17 |
<td>[% L.input_tag('filter.result:substr::ilike', filter.result_substr__ilike, size = 10, class='wi-lightwide') %]</td> |
|
18 |
</tr> |
|
19 |
<tr> |
|
20 |
<th>[% LxERP.t8('Error') %]</th> |
|
21 |
<td>[% L.input_tag('filter.error:substr::ilike', filter.error_substr__ilike, size = 10, class='wi-lightwide') %]</td> |
|
22 |
</tr> |
|
23 |
<tr> |
|
24 |
<th>[% LxERP.t8('Status') %]</th> |
|
25 |
<td>[% L.select_tag('filter.status:eq_ignore_empty', [ [ '', '' ], [ 'failure', LxERP.t8('failed') ], [ 'success', LxERP.t8('succeeded') ] ], default=filter.status_eq_ignore_empty, class='wi-lightwide') %]</td> |
|
26 |
</tr> |
|
27 |
<tr> |
|
28 |
<th>[% LxERP.t8('Execution date from') %]</th> |
|
29 |
<td>[% L.date_tag('filter.run_at:date::ge', filter.run_at_date__ge, class='wi-date') %]</td> |
|
30 |
</tr> |
|
31 |
<tr> |
|
32 |
<th>[% LxERP.t8('Execution date to') %]</th> |
|
33 |
<td>[% L.date_tag('filter.run_at:date::le', filter.run_at_date__le, class='wi-date') %]</td> |
|
34 |
</tr> |
|
35 |
</table> |
|
36 |
|
|
37 |
|
|
38 |
[% L.hidden_tag('action', 'BackgroundJobHistory/dispatch') %] |
|
39 |
[% L.hidden_tag('sort_by', FORM.sort_by) %] |
|
40 |
[% L.hidden_tag('sort_dir', FORM.sort_dir) %] |
|
41 |
[% L.hidden_tag('page', FORM.page) %] |
|
42 |
<div class="buttons"> |
|
43 |
[% L.submit_tag('action_list', LxERP.t8('Continue'))%] |
|
43 | 44 |
[% L.button_tag("\$('#filter_form').resetForm();", LxERP.t8('Reset')) %] |
45 |
</div> |
|
46 |
|
|
47 |
[% END # /BLOCK filter_toggle_panel %] |
|
48 |
|
|
49 |
[% INCLUDE 'common/toggle_panel.html' %] |
|
50 |
</div><!-- /.wrapper --> |
|
44 | 51 |
|
45 |
</div> |
|
46 | 52 |
|
47 | 53 |
</form> |
templates/webpages/background_job_history/list.html | ||
---|---|---|
1 |
[% USE HTML %][% USE L %][% USE LxERP %] |
|
1 |
[% USE HTML %] |
|
2 |
[% USE L %] |
|
3 |
[% USE LxERP %] |
|
2 | 4 |
|
3 | 5 |
<h1>[% FORM.title %]</h1> |
4 | 6 |
|
5 |
[%- INCLUDE 'common/flash.html' %]
|
|
7 |
[% INCLUDE 'common/flash.html' %] |
|
6 | 8 |
|
7 |
[%- PROCESS 'background_job_history/_filter.html' filter=SELF.models.filtered.laundered %]
|
|
9 |
[% PROCESS 'background_job_history/_filter.html' filter=SELF.models.filtered.laundered %] |
|
8 | 10 |
|
11 |
<div class="wrapper"> |
|
9 | 12 |
[% IF !ENTRIES.size %] |
10 |
<p> |
|
11 |
[%- LxERP.t8('There are no entries in the background job history.') %] |
|
12 |
</p> |
|
13 |
|
|
14 |
[%- ELSE %] |
|
15 |
<table id="background_job_history_list" class="background_job_list" width="100%"> |
|
16 |
<thead> |
|
17 |
<tr class="listheading"> |
|
18 |
<th>[% L.sortable_table_header('package_name') %]</th> |
|
19 |
<th>[% L.sortable_table_header('run_at') %]</th> |
|
20 |
<th>[% L.sortable_table_header('status') %]</th> |
|
21 |
<th>[% L.sortable_table_header('result') %]</th> |
|
22 |
<th>[% L.sortable_table_header('error') %]</th> |
|
23 |
</tr> |
|
24 |
</thead> |
|
25 |
|
|
26 |
<tbody> |
|
27 |
[%- FOREACH entry = ENTRIES %] |
|
28 |
<tr class="listrow[% loop.count % 2 %]" id="background_job_history_id_[% entry.id %]"> |
|
29 |
<td> |
|
30 |
<a href="[% SELF.url_for(action => 'show', id => entry.id, back_to => SELF.models.get_callback) %]"> |
|
31 |
[%- HTML.escape(entry.package_name) %] |
|
32 |
</a> |
|
33 |
</td> |
|
34 |
<td>[%- HTML.escape(entry.run_at.to_lxoffice('precision' => 'second')) %]</td> |
|
35 |
<td> |
|
36 |
[%- IF entry.status == 'success' %] |
|
37 |
[%- LxERP.t8('succeeded') %] |
|
38 |
[%- ELSIF entry.status == 'failure' %] |
|
39 |
[%- LxERP.t8('failed') %] |
|
40 |
[%- ELSE %] |
|
41 |
[%- HTML.escape(entry.status) %] |
|
42 |
[%- END %] |
|
43 |
</td> |
|
44 |
<td>[%- HTML.escape(entry.result) %]</td> |
|
45 |
<td>[% IF entry.error_col %]<pre>[%- HTML.escape(L.truncate(entry.error_col)) %]</pre>[%- END %]</td> |
|
46 |
</tr> |
|
47 |
[%- END %] |
|
48 |
</tbody> |
|
49 |
</table> |
|
50 |
[%- END %] |
|
13 |
<p>[% LxERP.t8('There are no entries in the background job history.') %]</p> |
|
14 |
|
|
15 |
[% ELSE %] |
|
16 |
<table id="background_job_history_list" class="background_job_list tbl-list wi-moderate"> |
|
17 |
<thead> |
|
18 |
<tr> |
|
19 |
<th>[% L.sortable_table_header('package_name') %]</th> |
|
20 |
<th>[% L.sortable_table_header('run_at') %]</th> |
|
21 |
<th>[% L.sortable_table_header('status') %]</th> |
|
22 |
<th>[% L.sortable_table_header('result') %]</th> |
|
23 |
<th>[% L.sortable_table_header('error') %]</th> |
|
24 |
</tr> |
|
25 |
</thead> |
|
26 |
|
|
27 |
<tbody> |
|
28 |
[% FOREACH entry = ENTRIES %] |
|
29 |
<tr class="listrow[% loop.count % 2 %]" id="background_job_history_id_[% entry.id %]"> |
|
30 |
<td><a href="[% SELF.url_for(action => 'show', id => entry.id, back_to => SELF.models.get_callback) %]">[% HTML.escape(entry.package_name) %]</a></td> |
|
31 |
<td>[% HTML.escape(entry.run_at.to_lxoffice('precision' => 'second')) %]</td> |
|
32 |
<td> |
|
33 |
[% IF entry.status == 'success' %] |
|
34 |
[% LxERP.t8('succeeded') %] |
|
35 |
[% ELSIF entry.status == 'failure' %] |
|
36 |
[% LxERP.t8('failed') %] |
|
37 |
[% ELSE %] |
|
38 |
[% HTML.escape(entry.status) %] |
|
39 |
[% END %] |
|
40 |
</td> |
|
41 |
<td>[% HTML.escape(entry.result) %]</td> |
|
42 |
<td>[% IF entry.error_col %]<pre>[% HTML.escape(L.truncate(entry.error_col)) %]</pre>[% END %]</td> |
|
43 |
</tr> |
|
44 |
[% END %] |
|
45 |
</tbody> |
|
46 |
</table> |
|
47 |
|
|
48 |
[% END %] |
|
51 | 49 |
|
52 | 50 |
[% L.paginate_controls %] |
51 |
</div><!-- /.wrapper --> |
|
52 |
|
templates/webpages/background_job_history/show.html | ||
---|---|---|
1 |
[% USE HTML %][% USE L %][% USE LxERP %] |
|
1 |
[% USE HTML %] |
|
2 |
[% USE L %] |
|
3 |
[% USE LxERP %] |
|
2 | 4 |
|
3 |
<h1>[% FORM.title %]</h1>
|
|
5 |
<h1>[% FORM.title %]</h1> |
|
4 | 6 |
|
5 |
[%- INCLUDE 'common/flash.html' %]
|
|
7 |
[% INCLUDE 'common/flash.html' %] |
|
6 | 8 |
|
7 |
<table id="background_job_history_details" class="background_job_details">
|
|
9 |
<table id="background_job_history_details" class="background_job_details"> |
|
8 | 10 |
<tbody> |
9 |
<tr class="listrow0"> |
|
10 |
<th>[%- LxERP.t8('Package name') %]</th> |
|
11 |
<td>[%- HTML.escape(SELF.history.package_name) %]</td> |
|
12 |
</tr> |
|
13 |
|
|
14 |
<tr class="listrow1"> |
|
15 |
<th>[%- LxERP.t8('Run at') %]</th> |
|
16 |
<td>[%- HTML.escape(SELF.history.run_at.to_lxoffice('precision' => 'second')) %]</td> |
|
17 |
</tr> |
|
18 |
|
|
19 |
<tr class="listrow0"> |
|
20 |
<th>[%- LxERP.t8('Execution status') %]</th> |
|
21 |
<td> |
|
22 |
[%- IF SELF.history.status == 'success' %] |
|
23 |
[%- LxERP.t8('succeeded') %] |
|
24 |
[%- ELSIF SELF.history.status == 'failed' %] |
|
25 |
[%- LxERP.t8('failed') %] |
|
26 |
[%- ELSE %] |
|
27 |
[%- HTML.escape(SELF.history.status) %] |
|
28 |
[%- END %] |
|
29 |
</td> |
|
30 |
</tr> |
|
31 |
|
|
32 |
<tr class="listrow1"> |
|
33 |
<th>[%- LxERP.t8('Result') %]</th> |
|
34 |
<td>[%- HTML.escape(SELF.history.result) %]</td> |
|
35 |
</tr> |
|
36 |
|
|
37 |
<tr class="listrow0"> |
|
38 |
<th>[%- LxERP.t8('Error') %]</th> |
|
39 |
<td>[% IF SELF.history.error_col %]<pre>[%- HTML.escape(SELF.history.error_col) %]</pre>[%- END %]</td> |
|
40 |
</tr> |
|
41 |
|
|
42 |
<tr class="listrow1"> |
|
43 |
<th>[%- LxERP.t8('Data') %]</th> |
|
44 |
<td>[% IF SELF.history.data %]<pre>[%- HTML.escape(SELF.history.data) %]</pre>[%- END %]</td> |
|
45 |
</tr> |
|
11 |
<tr> |
|
12 |
<th>[% LxERP.t8('Package name') %]</th> |
|
13 |
<td>[% HTML.escape(SELF.history.package_name) %]</td> |
|
14 |
</tr> |
|
15 |
<tr> |
|
16 |
<th>[% LxERP.t8('Run at') %]</th> |
|
17 |
<td>[% HTML.escape(SELF.history.run_at.to_lxoffice('precision' => 'second')) %]</td> |
|
18 |
</tr> |
|
19 |
<tr> |
|
20 |
<th>[% LxERP.t8('Execution status') %]</th> |
|
21 |
<td> |
|
22 |
[% IF SELF.history.status == 'success' %] |
|
23 |
[% LxERP.t8('succeeded') %] |
|
24 |
[% ELSIF SELF.history.status == 'failed' %] |
|
25 |
[% LxERP.t8('failed') %] |
|
26 |
[% ELSE %] |
|
27 |
[% HTML.escape(SELF.history.status) %] |
|
28 |
[% END %] |
|
29 |
</td> |
|
30 |
</tr> |
|
31 |
<tr> |
|
32 |
<th>[% LxERP.t8('Result') %]</th> |
|
33 |
<td>[% HTML.escape(SELF.history.result) %]</td> |
|
34 |
</tr> |
|
35 |
<tr> |
|
36 |
<th>[% LxERP.t8('Error') %]</th> |
|
37 |
<td>[% IF SELF.history.error_col %]<pre>[% HTML.escape(SELF.history.error_col) %] |
|
38 |
</pre> |
|
39 |
[% END %]</td> |
|
40 |
</tr> |
|
41 |
<tr> |
|
42 |
<th>[% LxERP.t8('Data') %]</th> |
|
43 |
<td>[% IF SELF.history.data %]<pre>[% HTML.escape(SELF.history.data) %] |
|
44 |
</pre> |
|
45 |
[% END %]</td> |
|
46 |
</tr> |
|
46 | 47 |
</tbody> |
47 | 48 |
</table> |
templates/webpages/bankimport/form.html | ||
---|---|---|
1 |
[%- USE HTML %]
|
|
2 |
[%- USE LxERP %]
|
|
3 |
[%- USE L %]
|
|
4 |
[%- USE T8 %]
|
|
1 |
[% USE HTML %] |
|
2 |
[% USE LxERP %] |
|
3 |
[% USE L %] |
|
4 |
[% USE T8 %] |
|
5 | 5 |
|
6 |
<div class="listtop">[% FORM.title %]</div>
|
|
6 |
<h1>[% FORM.title %]</h1>
|
|
7 | 7 |
|
8 |
[% IF profile %] |
|
9 |
<p> |
|
10 |
[% "Import a MT940 file:" | $T8 %] |
|
11 |
</p> |
|
12 |
|
|
13 |
<form method="post" action="controller.pl" enctype="multipart/form-data" id="form"> |
|
8 |
<div class="wrapper"> |
|
9 |
[% IF profile %] |
|
10 |
<h3 class="caption">[% "Import a MT940 file" | $T8 %]</h3> |
|
11 |
<form method="post" action="controller.pl" enctype="multipart/form-data" id="form" class="box"> |
|
14 | 12 |
[% L.input_tag('file', '', type => 'file', accept => '*') %] |
15 |
</form> |
|
16 |
[% ELSE %] |
|
17 |
<p> |
|
18 |
[% "Please create a CSV import profile called \"MT940\" for the import type bank transactions:" | $T8 %] <a href="[% SELF.url_for(controller => 'CsvImport', action => 'new', 'profile.type' => 'bank_transactions' ) %]">CsvImport</a> |
|
19 |
</p> |
|
20 |
[% END %] |
|
13 |
</form> |
|
14 |
[% ELSE %] |
|
15 |
<p>[% "Please create a CSV import profile called \"MT940\" for the import type bank transactions:" | $T8 %] <a href="[% SELF.url_for(controller => 'CsvImport', action => 'new', 'profile.type' => 'bank_transactions' ) %]">CsvImport</a></p> |
|
16 |
[% END %] |
|
17 |
</div> |
templates/webpages/bp/list_spool.html | ||
---|---|---|
1 |
[%- USE L %]
|
|
2 |
[%- USE HTML %]
|
|
3 |
[%- USE LxERP %]
|
|
4 |
[%- USE T8 %]
|
|
5 |
[%- USE url %]
|
|
6 |
[%- SET list_spool__callback = href _ '&sort=' _ sort %]
|
|
1 |
[% USE L %] |
|
2 |
[% USE HTML %] |
|
3 |
[% USE LxERP %] |
|
4 |
[% USE T8 %] |
|
5 |
[% USE url %] |
|
6 |
[% SET list_spool__callback = href _ '&sort=' _ sort %] |
|
7 | 7 |
|
8 | 8 |
<h1>[% title | html %]</h1> |
9 | 9 |
|
10 | 10 |
<form method="post" action="bp.pl" id="form"> |
11 | 11 |
|
12 |
<p> |
|
13 |
[% LxERP.t8("Printer") %]: [% L.select_tag('printer', ALL_PRINTERS, title_key = 'printer_description') %] |
|
14 |
</p> |
|
15 |
|
|
16 |
<p> |
|
17 |
[% FOREACH option IN options %] |
|
18 |
[% option %] |
|
19 |
[% ', ' UNLESS loop.last %] |
|
20 |
[% END %] |
|
21 |
</p> |
|
22 |
|
|
23 |
<table width=100%> |
|
24 |
<tr> |
|
25 |
<td class="listheading">[% L.checkbox_tag('checkall_box', checkall='input.check_all') %]</td> |
|
26 |
<td class="listheading">[% L.link(href _ '&sort=transdate', LxERP.t8('Date')) %]</td> |
|
27 |
[%- IF is_invoice %] |
|
28 |
<td class="listheading">[% L.link(href _ '&sort=invoice', LxERP.t8('Invoice')) %]</td> |
|
29 |
[%- END %] |
|
30 |
[%- IF is_order %] |
|
31 |
<td class="listheading">[% L.link(href _ '&sort=ordnumber', LxERP.t8('Order')) %]</td> |
|
32 |
[%- END %] |
|
33 |
[%- IF is_quotation %] |
|
34 |
<td class="listheading">[% L.link(href _ '&sort=quonumber', LxERP.t8('Quotation')) %]</td> |
|
35 |
[%- END %] |
|
36 |
<td class="listheading">[% L.link(href _ '&sort=name', vc == 'customer' ? LxERP.t8('Customer') : LxERP.t8('Vendor')) %]</td> |
|
37 |
<td class="listheading">[% 'Spoolfile' | $T8 %]</td> |
|
38 |
</tr> |
|
39 |
[%- FOREACH row = SPOOL %] |
|
40 |
<tr class="listrow[% loop.count %]"> |
|
41 |
<td>[% SET list_spool__checked='checked_' _ loop.count; L.checkbox_tag(list_spool__checked, checked=$list_spool__checked, class='check_all') IF row.new_file %]</td> |
|
42 |
<td>[% row.transdate %]</td> |
|
43 |
[%- IF is_invoice %] |
|
44 |
<td>[% L.link(url(row.module _ '.pl', action='edit' ,type=type, callback=list_spool__callback, id=row.id), row.invnumber) %]</td> |
|
45 |
[%- END %] |
|
46 |
[%- IF is_order %] |
|
47 |
<td>[% L.link(url(row.module _ '.pl', action='edit' ,type=type, callback=list_spool__callback, id=row.id), row.ordnumber) %]</td> |
|
48 |
[%- END %] |
|
49 |
[%- IF is_quotation %] |
|
50 |
<td>[% L.link(url(row.module _ '.pl', action='edit' ,type=type, callback=list_spool__callback, id=row.id), row.quonumber) %]</td> |
|
51 |
[%- END %] |
|
52 |
<td>[% row.name | html %]</td> |
|
53 |
<td>[% L.link(LXCONFIG.paths.spool _ '/' _ row.spoolfile, row.spoolfile) %][% L.hidden_tag('spoolfile_' _ loop.count, row.spoolfile) %]</td> |
|
54 |
</tr> |
|
55 |
[%- END %] |
|
12 |
<div class="wrapper"> |
|
13 |
<table class="tbl-horizontal"> |
|
14 |
<tr> |
|
15 |
<th>[% LxERP.t8("Printer") %]</th> |
|
16 |
<td>[% L.select_tag('printer', ALL_PRINTERS, title_key = 'printer_description') %]</td> |
|
17 |
</tr> |
|
18 |
<tr> |
|
19 |
<th>[% 'Options' | $T8 %]</th> |
|
20 |
<td>[% FOREACH option IN options %][% option %][% ', ' UNLESS loop.last %][% END %]</td> |
|
21 |
</tr> |
|
22 |
</table> |
|
23 |
</div> |
|
56 | 24 |
|
57 |
[% L.hidden_tag('rowcount', SPOOL.size) %]
|
|
25 |
<div class="wrapper">
|
|
58 | 26 |
|
27 |
<table class="tbl-list"> |
|
28 |
<thead> |
|
29 |
<tr> |
|
30 |
<th>[% L.checkbox_tag('checkall_box', checkall='input.check_all') %]</td> |
|
31 |
<th>[% L.link(href _ '&sort=transdate', LxERP.t8('Date')) %]</td> |
|
32 |
[% IF is_invoice %] |
|
33 |
<th>[% L.link(href _ '&sort=invoice', LxERP.t8('Invoice')) %]</td> |
|
34 |
[% END %] |
|
35 |
[% IF is_order %] |
|
36 |
<th>[% L.link(href _ '&sort=ordnumber', LxERP.t8('Order')) %]</td> |
|
37 |
[% END %] |
|
38 |
[% IF is_quotation %] |
|
39 |
<th>[% L.link(href _ '&sort=quonumber', LxERP.t8('Quotation')) %]</td> |
|
40 |
[% END %] |
|
41 |
<th>[% L.link(href _ '&sort=name', vc == 'customer' ? LxERP.t8('Customer') : LxERP.t8('Vendor')) %]</td> |
|
42 |
<th>[% 'Spoolfile' | $T8 %]</td> |
|
43 |
</tr> |
|
44 |
</thead> |
|
45 |
<tbody> |
|
46 |
[% FOREACH row = SPOOL %] |
|
47 |
<tr> |
|
48 |
<td>[% SET list_spool__checked='checked_' _ loop.count; L.checkbox_tag(list_spool__checked, checked=$list_spool__checked, class='check_all') IF row.new_file %]</td> |
|
49 |
<td>[% row.transdate %]</td> |
|
50 |
[% IF is_invoice %] |
|
51 |
<td>[% L.link(url(row.module _ '.pl', action='edit' ,type=type, callback=list_spool__callback, id=row.id), row.invnumber) %]</td> |
|
52 |
[% END %] |
|
53 |
[% IF is_order %] |
|
54 |
<td>[% L.link(url(row.module _ '.pl', action='edit' ,type=type, callback=list_spool__callback, id=row.id), row.ordnumber) %]</td> |
|
55 |
[% END %] |
|
56 |
[% IF is_quotation %] |
|
57 |
<td>[% L.link(url(row.module _ '.pl', action='edit' ,type=type, callback=list_spool__callback, id=row.id), row.quonumber) %]</td> |
|
58 |
[% END %] |
|
59 |
<td>[% row.name | html %]</td> |
|
60 |
<td>[% L.link(LXCONFIG.paths.spool _ '/' _ row.spoolfile, row.spoolfile) %][% L.hidden_tag('spoolfile_' _ loop.count, row.spoolfile) %]</td> |
|
61 |
</tr> |
|
62 |
[% END %] |
|
63 |
</tbody> |
|
59 | 64 |
</table> |
65 |
[% L.hidden_tag('rowcount', SPOOL.size) %] |
|
60 | 66 |
|
61 | 67 |
[% L.hidden_tag('callback', callback) %] |
62 | 68 |
[% L.hidden_tag('title', title) %] |
... | ... | |
72 | 78 |
[% L.hidden_tag('quonumber', quonumber) %] |
73 | 79 |
[% L.hidden_tag('customer', customer) %] |
74 | 80 |
[% L.hidden_tag('vendor', vendor) %] |
81 |
|
|
82 |
</div><!-- /.wrapper --> |
|
75 | 83 |
</form> |
templates/webpages/bp/search.html | ||
---|---|---|
1 |
[%- USE L %] |
|
2 |
[%- USE T8 %] |
|
3 |
[%- USE LxERP %] |
|
4 |
[%- USE HTML %] |
|
1 |
[% USE L %] |
|
2 |
[% USE T8 %] |
|
3 |
[% USE LxERP %] |
|
4 |
[% USE HTML %] |
|
5 |
|
|
6 |
<h1>[% 'Print' | $T8 %] [% label.$type.title %]</h1> |
|
7 |
|
|
5 | 8 |
<form method="post" action="bp.pl" id="form"> |
6 | 9 |
|
7 |
<h1>[% 'Print' | $T8 %] [% label.$type.title %]</h1>[% L.hidden_tag('title', LxERP.t8('Print') _ ' ' _ label.$type.title) %]
|
|
10 |
[% L.hidden_tag('title', LxERP.t8('Print') _ ' ' _ label.$type.title) %] |
|
8 | 11 |
|
9 |
<table> |
|
10 |
<tr> |
|
11 |
<th align=right>[% 'Customer' | $T8 %]</th> |
|
12 |
<td colspan=3>[% L.input_tag(vc, '', size=35) %]</td> |
|
13 |
</tr> |
|
14 |
[% IF show_accounts %] |
|
15 |
<tr> |
|
16 |
<th align=right>[% 'Account' | $T8 %]</th> |
|
17 |
<td colspan=3>[% L.select_tag('account', accounts, value_title_sub=\account_sub) %]</td> |
|
18 |
</tr> |
|
19 |
[% END %] |
|
20 |
[%- IF label.$type.invnumber %] |
|
21 |
<tr> |
|
22 |
<th align=right nowrap>[% 'Invoice Number' | $T8 %]</th> |
|
23 |
<td colspan=3>[% L.input_tag('invnumber', '', size=20) %]</td> |
|
24 |
</tr> |
|
25 |
[%- END %] |
|
26 |
[%- IF label.$type.ordnumber %] |
|
27 |
<tr> |
|
28 |
<th align=right nowrap>[% 'Order Number' | $T8 %]</th> |
|
29 |
<td colspan=3>[% L.input_tag('ordnumber', '', size=20) %]</td> |
|
30 |
</tr> |
|
31 |
[%- END %] |
|
32 |
[%- IF label.$type.quonumber %] |
|
33 |
<tr> |
|
34 |
<th align=right nowrap>[% 'Quotation Number' | $T8 %]</th> |
|
35 |
<td colspan=3>[% L.input_tag('quonumber', '', size=20) %]</td> |
|
36 |
</tr> |
|
37 |
[%- END %] |
|
38 |
[%- IF label.$type.donumber %] |
|
39 |
<tr> |
|
40 |
<th align=right nowrap>[% 'Delivery Order Number' | $T8 %]</th> |
|
41 |
<td colspan=3>[% L.input_tag('donumber', '', size=20) %]</td> |
|
42 |
</tr> |
|
43 |
[%- END %] |
|
44 |
[%- IF label.$type.chknumber %] |
|
45 |
<tr> |
|
46 |
<th align=right nowrap>[% 'Reference' | $T8 %]</th> |
|
47 |
<td colspan=3>[% L.input_tag('chknumber', '', size=20) %]</td> |
|
48 |
</tr> |
|
49 |
[%- END %] |
|
50 |
<tr> |
|
51 |
<th align=right nowrap>[% 'From' | $T8 %]</th> |
|
52 |
<td>[% L.date_tag('transdatefrom') %]</td> |
|
53 |
<th align=right>[% 'Bis' | $T8 %]</th> |
|
54 |
<td>[% L.date_tag('transdateto') %]</td> |
|
55 |
</tr> |
|
56 |
</table> |
|
12 |
<div class="wrapper"> |
|
57 | 13 |
|
14 |
<table class="tbl-horizontal"> |
|
15 |
<colgroup><col class="wi-small"><col class="wi-verywide"></colgroup> |
|
16 |
<tbody> |
|
17 |
<tr> |
|
18 |
<th>[% 'Customer' | $T8 %]</th> |
|
19 |
<td>[% L.input_tag(vc, '', class='wi-normal') %]</td> |
|
20 |
</tr> |
|
21 |
[% IF show_accounts %] |
|
22 |
<tr> |
|
23 |
<th>[% 'Account' | $T8 %]</th> |
|
24 |
<td>[% L.select_tag('account', accounts, value_title_sub=\account_sub, class='wi-verywide') %]</td> |
|
25 |
</tr> |
|
26 |
[% END %] |
|
27 |
[% IF label.$type.invnumber %] |
|
28 |
<tr> |
|
29 |
<th>[% 'Invoice Number' | $T8 %]</th> |
|
30 |
<td>[% L.input_tag('invnumber', '', class='wi-normal') %]</td> |
|
31 |
</tr> |
|
32 |
[% END %] |
|
33 |
[% IF label.$type.ordnumber %] |
|
34 |
<tr> |
|
35 |
<th>[% 'Order Number' | $T8 %]</th> |
|
36 |
<td>[% L.input_tag('ordnumber', '', class='wi-normal') %]</td> |
|
37 |
</tr> |
|
38 |
[% END %] |
|
39 |
[% IF label.$type.quonumber %] |
|
40 |
<tr> |
|
41 |
<th>[% 'Quotation Number' | $T8 %]</th> |
|
42 |
<td>[% L.input_tag('quonumber', '', class='wi-normal') %]</td> |
|
43 |
</tr> |
|
44 |
[% END %] |
|
45 |
[% IF label.$type.donumber %] |
|
46 |
<tr> |
|
47 |
<th>[% 'Delivery Order Number' | $T8 %]</th> |
|
48 |
<td>[% L.input_tag('donumber', '', class='wi-normal') %]</td> |
|
49 |
</tr> |
|
50 |
[% END %] |
|
51 |
[% IF label.$type.chknumber %] |
|
52 |
<tr> |
|
53 |
<th>[% 'Reference' | $T8 %]</th> |
|
54 |
<td>[% L.input_tag('chknumber', '', class='wi-normal') %]</td> |
|
55 |
</tr> |
|
56 |
[% END %] |
|
57 |
<tr> |
|
58 |
<th>[% 'Date' | $T8 %] [% 'from' | $T8 %] </th> |
|
59 |
<td class="wi-date">[% L.date_tag('transdatefrom') %] [% 'Bis' | $T8 %] [% L.date_tag('transdateto') %]</td> |
|
60 |
</tr> |
|
61 |
</tbody> |
|
62 |
</table> |
|
58 | 63 |
|
59 | 64 |
[% L.hidden_tag('sort', 'transdate') %] |
60 | 65 |
[% L.hidden_tag('vc', vc) %] |
61 | 66 |
[% L.hidden_tag('type', type) %] |
67 |
</div> |
|
62 | 68 |
</form> |
templates/webpages/buchungsgruppen/form.html | ||
---|---|---|
1 |
[%- USE HTML -%][%- USE LxERP -%][%- USE L -%][%- USE T8 -%][%- USE P -%] |
|
1 |
[% USE HTML %] |
|
2 |
[% USE LxERP %] |
|
3 |
[% USE L %] |
|
4 |
[% USE T8 %] |
|
5 |
[% USE P %] |
|
6 |
|
|
2 | 7 |
[% SET style="width: 400px" %] |
3 | 8 |
|
4 | 9 |
<h1>[% HTML.escape(title) %]</h1> |
5 | 10 |
|
6 | 11 |
<form action="controller.pl" method="post" id="form"> |
7 |
[%- L.hidden_tag("id", SELF.config.id) %] |
|
12 |
[% L.hidden_tag("id", SELF.config.id) %] |
|
13 |
|
|
14 |
<div class="wrapper"> |
|
15 |
|
|
16 |
<table class="tbl-horizontal"> |
|
17 |
<caption>[% 'Entry Group' | $T8 %]</caption> |
|
18 |
<tbody> |
|
19 |
<tr> |
|
20 |
<th>[% 'Description' | $T8 %]</th> |
|
21 |
<td>[% L.input_tag("config.description", SELF.config.description, "data-validate"="required", "data-title"=LxERP.t8("Description")) %]</td> |
|
22 |
</tr> |
|
23 |
<tr> |
|
24 |
<th>[% 'Inventory Account' | $T8 %]</th> |
|
25 |
[% IF NOT SELF.config.id %] |
|
26 |
<td>[% P.chart.picker("config.inventory_accno_id", SELF.defaults.inventory_accno_id, choose=1, type='IC', style=style) %]</td> |
|
27 |
[% ELSIF SELF.config.id AND SELF.config.orphaned %] |
|
28 |
<td>[% P.chart.picker("config.inventory_accno_id", SELF.config.inventory_accno_id, choose=1, type='IC', style=style) %]</td> |
|
29 |
[% ELSE %] |
|
30 |
<td>[% CHARTLIST.inventory_accno_description %]</td> |
|
31 |
[% END %] |
|
32 |
</tr> |
|
33 |
[% FOREACH tz = TAXZONES %] |
|
34 |
<tr> |
|
35 |
<th>[% 'Revenue' | $T8 %]</th><th>[% HTML.escape(tz.description) %]</th> |
|
36 |
[% IF NOT SELF.config.id %] |
|
37 |
<td>[% P.chart.picker('income_accno_id_' _ tz.id, SELF.defaults.income_accno_id, choose=1, type='IC_income,IC_sale', style=style) %]</td> |
|
38 |
[% ELSIF SELF.config.id AND SELF.config.orphaned %] |
|
39 |
<td>[% P.chart.picker('income_accno_id_' _ tz.id, CHARTLIST.${tz.id}.income_accno_id, choose=1, type='IC_income,IC_sale', style=style) %]</td> |
|
40 |
[% ELSE %] |
|
41 |
<td>[% CHARTLIST.${tz.id}.income_accno_description %]</td> |
|
42 |
[% END %] |
|
43 |
</tr> |
|
44 |
<tr> |
|
45 |
<th>[% 'Expense' | $T8 %]</th><th>[% HTML.escape(tz.description) %]</th> |
|
46 |
[% IF NOT SELF.config.id %] |
|
47 |
<td>[% P.chart.picker('expense_accno_id_' _ tz.id, SELF.defaults.expense_accno_id, choose=1, type='IC_expense,IC_cogs', style=style) %]</td> |
|
48 |
[% ELSIF SELF.config.id AND SELF.config.orphaned %] |
|
49 |
<td>[% P.chart.picker('expense_accno_id_' _ tz.id, CHARTLIST.${tz.id}.expense_accno_id, choose=1, type='IC_expense,IC_cogs', style=style) %]</td> |
|
50 |
[% ELSE %] |
|
51 |
<td>[% CHARTLIST.${tz.id}.expense_accno_description %]</td> |
|
52 |
[% END %] |
|
53 |
</tr> |
|
54 |
[% END %] |
|
55 |
<tbody> |
|
56 |
</table> |
|
57 |
|
|
58 |
</div><!-- /.wrapper --> |
|
8 | 59 |
|
9 |
<table> |
|
10 |
<tr> |
|
11 |
<th align="right">[% 'Description' | $T8 %]</th> |
|
12 |
<td>[%- L.input_tag("config.description", SELF.config.description, "data-validate"="required", "data-title"=LxERP.t8("Description")) %]</td> |
|
13 |
</tr> |
|
14 |
<tr> |
|
15 |
<th align="right">[% 'Inventory Account' | $T8 %]</th> |
|
16 |
[%- IF NOT SELF.config.id %] |
|
17 |
<td>[% P.chart.picker("config.inventory_accno_id", SELF.defaults.inventory_accno_id, choose=1, type='IC', style=style) %]</td> |
|
18 |
[%- ELSIF SELF.config.id AND SELF.config.orphaned %] |
|
19 |
<td>[% P.chart.picker("config.inventory_accno_id", SELF.config.inventory_accno_id, choose=1, type='IC', style=style) %]</td> |
|
20 |
[%- ELSE %] |
|
21 |
<td>[%- CHARTLIST.inventory_accno_description %]</td> |
|
22 |
[%- END %] |
|
23 |
</tr> |
|
24 |
[%- FOREACH tz = TAXZONES %] |
|
25 |
<tr> |
|
26 |
<th align="right">[% 'Revenue' | $T8 %] [% HTML.escape(tz.description) %]</th> |
|
27 |
[%- IF NOT SELF.config.id %] |
|
28 |
<td>[% P.chart.picker('income_accno_id_' _ tz.id, SELF.defaults.income_accno_id, choose=1, type='IC_income,IC_sale', style=style) %]</td> |
|
29 |
[%- ELSIF SELF.config.id AND SELF.config.orphaned %] |
|
30 |
<td>[% P.chart.picker('income_accno_id_' _ tz.id, CHARTLIST.${tz.id}.income_accno_id, choose=1, type='IC_income,IC_sale', style=style) %]</td> |
|
31 |
[%- ELSE %] |
|
32 |
<td>[% CHARTLIST.${tz.id}.income_accno_description %]</td> |
|
33 |
[%- END %] |
|
34 |
</tr> |
|
35 |
<tr> |
|
36 |
<th align="right">[% 'Expense' | $T8 %] [% HTML.escape(tz.description) %]</th> |
|
37 |
[%- IF NOT SELF.config.id %] |
|
38 |
<td>[% P.chart.picker('expense_accno_id_' _ tz.id, SELF.defaults.expense_accno_id, choose=1, type='IC_expense,IC_cogs', style=style) %]</td> |
|
39 |
[%- ELSIF SELF.config.id AND SELF.config.orphaned %] |
|
40 |
<td>[% P.chart.picker('expense_accno_id_' _ tz.id, CHARTLIST.${tz.id}.expense_accno_id, choose=1, type='IC_expense,IC_cogs', style=style) %]</td> |
|
41 |
[%- ELSE %] |
|
42 |
<td>[% CHARTLIST.${tz.id}.expense_accno_description %]</td> |
|
43 |
[%- END %] |
|
44 |
</tr> |
|
45 |
[%- END %] |
|
46 |
</table> |
|
47 | 60 |
</form> |
templates/webpages/buchungsgruppen/list.html | ||
---|---|---|
1 |
[%- USE HTML -%][%- USE LxERP -%][%- USE L -%][%- USE T8 -%][%- INCLUDE 'common/flash.html' %] |
|
1 |
[% USE HTML %] |
|
2 |
[% USE LxERP %] |
|
3 |
[% USE L %] |
|
4 |
[% USE T8 %] |
|
5 |
[% INCLUDE 'common/flash.html' %] |
|
2 | 6 |
|
3 | 7 |
<h1>[% title %]</h1> |
4 | 8 |
|
5 |
<p> |
|
6 |
<table width="100%" id="buchungsgruppen_list"> |
|
9 |
<table id="buchungsgruppen_list" class="tbl-list wi-moderate"> |
|
7 | 10 |
<thead> |
8 |
<tr class="listheading">
|
|
9 |
<th align="center" width="1%"><img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]"></th>
|
|
10 |
<th width="20%">[% 'Description' | $T8 %]</th>
|
|
11 |
<th width="20%">[% 'Inventory Account' | $T8 %]</th>
|
|
12 |
[%- FOREACH tz = TAXZONES %]
|
|
13 |
<th width="20%">[% 'Revenue' | $T8 %] [% HTML.escape(tz.description) %]</th>
|
|
14 |
<th width="20%">[% 'Expense' | $T8 %] [% HTML.escape(tz.description) %]</th>
|
|
15 |
[%- END %]
|
|
16 |
</tr> |
|
11 |
<tr>
|
|
12 |
<th><img src="image/updown.png" alt="[% LxERP.t8('reorder item') %]"></th>
|
|
13 |
<th>[% 'Description' | $T8 %]</th>
|
|
14 |
<th>[% 'Inventory Account' | $T8 %]</th>
|
|
15 |
[% FOREACH tz = TAXZONES %]
|
|
16 |
<th>[% 'Revenue' | $T8 %] [% HTML.escape(tz.description) %]</th>
|
|
17 |
<th>[% 'Expense' | $T8 %] [% HTML.escape(tz.description) %]</th>
|
|
18 |
[% END %]
|
|
19 |
</tr>
|
|
17 | 20 |
</thead> |
18 |
|
|
19 | 21 |
<tbody> |
20 |
[%- FOREACH bg = BUCHUNGSGRUPPEN %]
|
|
21 |
<tr class="listrow" id="bg_id_[% bg.id %]">
|
|
22 |
<td align="center" class="dragdrop"><img src="image/updown.png" alt="[%- LxERP.t8('reorder item') %]"></td>
|
|
23 |
<td><a href="[% SELF.url_for(action='edit', id=bg.id) %]">[% HTML.escape(bg.description) %]</a></td>
|
|
24 |
<td>[% HTML.escape(CHARTLIST.${bg.id}.inventory_accno) %]</td> |
|
25 |
[%- FOREACH tz = TAXZONES %]
|
|
26 |
<td>[% HTML.escape(CHARTLIST.${bg.id}.${tz.id}.income_accno) %]</td>
|
|
27 |
<td>[% HTML.escape(CHARTLIST.${bg.id}.${tz.id}.expense_accno) %]</td>
|
|
28 |
[%- END %]
|
|
29 |
[%- END %]
|
|
22 |
[% FOREACH bg = BUCHUNGSGRUPPEN %]
|
|
23 |
<tr id="bg_id_[% bg.id %]"> |
|
24 |
<td class="center dragdrop"><img src="image/updown.png" alt="[% LxERP.t8('reorder item') %]"></td>
|
|
25 |
<td class="nowrap"><a href="[% SELF.url_for(action='edit', id=bg.id) %]">[% HTML.escape(bg.description) %]</a></td>
|
|
26 |
<td>[% HTML.escape(CHARTLIST.${bg.id}.inventory_accno) %]</td>
|
|
27 |
[% FOREACH tz = TAXZONES %]
|
|
28 |
<td>[% HTML.escape(CHARTLIST.${bg.id}.${tz.id}.income_accno) %]</td> |
|
29 |
<td>[% HTML.escape(CHARTLIST.${bg.id}.${tz.id}.expense_accno) %]</td> |
|
30 |
[% END %]
|
|
31 |
[% END %]
|
|
30 | 32 |
</tbody> |
31 |
</table> |
|
32 |
</p> |
|
33 |
</table> |
|
33 | 34 |
|
34 | 35 |
[% L.sortable_element('#buchungsgruppen_list tbody', url=SELF.url_for(action='reorder'), with='bg_id') %] |
Auch abrufbar als: Unified diff
Neues kivitendo Design restliche Aenderungen in templates/webpages/b*
Dateien in background_job/* bankimport/* bp/* und buchungsgruppen/*