Revision 8fa78029
Von Hans Peter Schlaepfer vor etwa 4 Jahren hinzugefügt
templates/webpages/email_journal/_filter.html | ||
---|---|---|
1 |
[%- USE L %][%- USE LxERP %][%- USE HTML %] |
|
2 |
<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> |
|
1 |
[% USE L %] |
|
2 |
[% USE LxERP %] |
|
3 |
[% USE HTML %] |
|
7 | 4 |
|
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("From") %]</th> |
|
13 |
<td>[% L.input_tag("filter.from:substr::ilike", filter.from_substr__ilike, size = 20) %]</td> |
|
14 |
</tr> |
|
15 |
<tr> |
|
16 |
<th align="right">[% LxERP.t8("Recipients") %]</th> |
|
17 |
<td>[% L.input_tag("filter.recipients:substr::ilike", filter.recipients_substr__ilike, size = 20) %]</td> |
|
18 |
</tr> |
|
19 |
<tr> |
|
20 |
<th align="right">[% LxERP.t8("Sent on") %]</th> |
|
21 |
<td> |
|
22 |
[% L.date_tag("filter.sent_on:date::ge", filter.sent_on_date__ge) %] |
|
23 |
[% LxERP.t8("To Date") %] |
|
24 |
[% L.date_tag("filter.sent_on:date::le", filter.sent_on_date__le) %] |
|
25 |
</td> |
|
26 |
</tr> |
|
27 |
<tr> |
|
28 |
<th align="right">[% LxERP.t8("Status") %]</th> |
|
29 |
<td>[% L.select_tag("filter.status:eq_ignore_empty", [ [ "", "" ], [ "failed", LxERP.t8("failed") ], [ "ok", LxERP.t8("succeeded") ] ], default=filter.status_eq_ignore_empty) %]</td> |
|
30 |
</tr> |
|
5 |
[% BLOCK filter_toggle_panel %] |
|
6 |
<table id="filter_table" class="tbl-horizontal"> |
|
7 |
<tbody> |
|
8 |
<tr> |
|
9 |
<th>[% LxERP.t8("From") %]</th> |
|
10 |
<td>[% L.input_tag("filter.from:substr::ilike", filter.from_substr__ilike, size = 20) %] |
|
11 |
</td> |
|
12 |
</tr> |
|
13 |
<tr> |
|
14 |
<th>[% LxERP.t8("Recipients") %]</th> |
|
15 |
<td>[% L.input_tag("filter.recipients:substr::ilike", filter.recipients_substr__ilike, size = 20) %] |
|
16 |
</td> |
|
17 |
</tr> |
|
18 |
<tr> |
|
19 |
<th>[% LxERP.t8("Sent on") %]</th> |
|
20 |
<td>[% L.date_tag("filter.sent_on:date::ge", filter.sent_on_date__ge) %] [% LxERP.t8("To Date") %] [% L.date_tag("filter.sent_on:date::le", filter.sent_on_date__le) %] |
|
21 |
</td> |
|
22 |
</tr> |
|
23 |
<tr> |
|
24 |
<th>[% LxERP.t8("Status") %]</th> |
|
25 |
<td>[% L.select_tag("filter.status:eq_ignore_empty", [ [ "", "" ], [ "failed", LxERP.t8("failed") ], [ "ok", LxERP.t8("succeeded") ] ], default=filter.status_eq_ignore_empty) %] |
|
26 |
</td> |
|
27 |
</tr> |
|
28 |
</tbody> |
|
31 | 29 |
</table> |
32 |
|
|
33 | 30 |
[% L.hidden_tag("sort_by", FORM.sort_by) %] |
34 | 31 |
[% L.hidden_tag("sort_dir", FORM.sort_dir) %] |
35 | 32 |
[% L.hidden_tag("page", FORM.page) %] |
33 |
<div class="buttons">[% L.button_tag('$("#filter_form").resetForm()', LxERP.t8('Reset')) %]</div> |
|
34 |
[% END %] |
|
35 |
|
|
36 |
<div class="wrapper"> |
|
37 |
<form action="controller.pl" method="post" id="filter_form"> |
|
38 |
|
|
39 |
[% INCLUDE common/toggle_panel.html %] |
|
40 |
|
|
36 | 41 |
|
37 |
[% L.button_tag('$("#filter_form").resetForm()', LxERP.t8('Reset')) %] |
|
38 | 42 |
|
39 |
</div>
|
|
43 |
</div> |
|
40 | 44 |
|
41 | 45 |
</form> |
46 |
</div> |
templates/webpages/email_journal/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' %] |
|
6 |
|
|
7 |
[%- PROCESS 'email_journal/_filter.html' filter=SELF.models.filtered.laundered %] |
|
7 |
[% INCLUDE 'common/flash.html' %] |
|
8 |
[% PROCESS 'email_journal/_filter.html' filter=SELF.models.filtered.laundered %] |
|
8 | 9 |
|
9 | 10 |
[% IF !ENTRIES.size %] |
10 |
<p>
|
|
11 |
[%- LxERP.t8('There are no entries that match the filter.') %] |
|
12 |
</p>
|
|
11 |
<p>[% LxERP.t8('There are no entries that match the filter.') %]</p>
|
|
12 |
|
|
13 |
[% ELSE %]
|
|
13 | 14 |
|
14 |
[%- ELSE %] |
|
15 |
<table id="email_journal_list" width="100%"> |
|
15 |
<table id="email_journal_list" class="tbl-list wi-moderate"> |
|
16 | 16 |
<thead> |
17 |
<tr class="listheading">
|
|
18 |
[% IF SELF.can_view_all %] |
|
19 |
<th>[% L.sortable_table_header("sender") %]</th> |
|
20 |
[% END %] |
|
21 |
<th>[% L.sortable_table_header("from") %]</th> |
|
22 |
<th>[% L.sortable_table_header("recipients") %]</th> |
|
23 |
<th>[% L.sortable_table_header("subject") %]</th> |
|
24 |
<th>[% L.sortable_table_header("sent_on") %]</th> |
|
25 |
<th>[% L.sortable_table_header("status") %]</th> |
|
26 |
<th>[% L.sortable_table_header("extended_status") %]</th> |
|
27 |
</tr> |
|
17 |
<tr>
|
|
18 |
[% IF SELF.can_view_all %]
|
|
19 |
<th>[% L.sortable_table_header("sender") %]</th>
|
|
20 |
[% END %]
|
|
21 |
<th>[% L.sortable_table_header("from") %]</th>
|
|
22 |
<th>[% L.sortable_table_header("recipients") %]</th>
|
|
23 |
<th>[% L.sortable_table_header("subject") %]</th>
|
|
24 |
<th>[% L.sortable_table_header("sent_on") %]</th>
|
|
25 |
<th>[% L.sortable_table_header("status") %]</th>
|
|
26 |
<th>[% L.sortable_table_header("extended_status") %]</th>
|
|
27 |
</tr>
|
|
28 | 28 |
</thead> |
29 |
|
|
30 | 29 |
<tbody> |
31 |
[%- FOREACH entry = ENTRIES %] |
|
32 |
<tr class="listrow[% IF entry.status != 'ok' %]_error[% END %]" id="email_journal_id_[% entry.id %]"> |
|
33 |
[% IF SELF.can_view_all %] |
|
34 |
<td> |
|
35 |
[% IF entry.sender %] |
|
36 |
[% HTML.escape(entry.sender.name) %] |
|
37 |
[% ELSE %] |
|
38 |
[% LxERP.t8("kivitendo") %] |
|
39 |
[% END %] |
|
40 |
</td> |
|
41 |
[% END %] |
|
42 |
<td> |
|
43 |
<a href="[% SELF.url_for(action => 'show', id => entry.id, back_to => SELF.get_callback) %]"> |
|
44 |
[%- HTML.escape(entry.from) %] |
|
45 |
</a> |
|
46 |
</td> |
|
47 |
<td>[%- HTML.escape(entry.recipients) %]</td> |
|
48 |
<td> |
|
49 |
<a href="[% SELF.url_for(action => 'show', id => entry.id, back_to => SELF.get_callback) %]"> |
|
50 |
[%- HTML.escape(entry.subject) %] |
|
51 |
</a> |
|
52 |
</td> |
|
53 |
<td>[%- HTML.escape(entry.sent_on.to_lxoffice('precision' => 'second')) %]</td> |
|
54 |
<td> |
|
55 |
[%- IF entry.status == 'ok' %] |
|
56 |
[%- LxERP.t8('succeeded') %] |
|
57 |
[% ELSE %] |
|
58 |
[%- LxERP.t8('failed') %] |
|
59 |
[%- END %] |
|
60 |
</td> |
|
61 |
<td>[%- HTML.escape(entry.extended_status) %]</td> |
|
62 |
</tr> |
|
63 |
[%- END %] |
|
30 |
[% FOREACH entry = ENTRIES %] |
|
31 |
<tr[% IF entry.status != 'ok' %] class="row_error[% END %]" id="email_journal_id_[% entry.id %]"> |
|
32 |
[% IF SELF.can_view_all %] |
|
33 |
<td>[% IF entry.sender %] [% HTML.escape(entry.sender.name) %] [% ELSE %] [% LxERP.t8("kivitendo") %] [% END %]</td> |
|
34 |
[% END %] |
|
35 |
<td><a href="[% SELF.url_for(action => 'show', id => entry.id, back_to => SELF.get_callback) %]"> [% HTML.escape(entry.from) %] </a></td> |
|
36 |
<td>[% HTML.escape(entry.recipients) %]</td> |
|
37 |
<td><a href="[% SELF.url_for(action => 'show', id => entry.id, back_to => SELF.get_callback) %]"> [% HTML.escape(entry.subject) %] </a></td> |
|
38 |
<td>[% HTML.escape(entry.sent_on.to_lxoffice('precision' => 'second')) %]</td> |
|
39 |
<td>[% IF entry.status == 'ok' %] [% LxERP.t8('succeeded') %] [% ELSE %] [% LxERP.t8('failed') %] [% END %]</td> |
|
40 |
<td>[% HTML.escape(entry.extended_status) %]</td> |
|
41 |
</tr> |
|
42 |
[% END %] |
|
64 | 43 |
</tbody> |
65 |
</table> |
|
66 |
[%- END %] |
|
44 |
</table> |
|
45 |
|
|
46 |
[% END %] |
|
67 | 47 |
|
68 | 48 |
[% L.paginate_controls %] |
templates/webpages/email_journal/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="email_journal_details" class="email_journal_details"> |
|
8 |
<tbody> |
|
9 |
<tr class="listrow"> |
|
10 |
<th>[%- LxERP.t8("From") %]</th> |
|
11 |
<td>[%- HTML.escape(SELF.entry.from) %]</td> |
|
12 |
</tr> |
|
13 |
|
|
14 |
<tr class="listrow"> |
|
15 |
<th>[%- LxERP.t8("Recipients") %]</th> |
|
16 |
<td>[%- HTML.escape(SELF.entry.recipients) %]</td> |
|
17 |
</tr> |
|
18 |
|
|
19 |
<tr class="listrow"> |
|
20 |
<th>[%- LxERP.t8("Subject") %]</th> |
|
21 |
<td>[%- HTML.escape(SELF.entry.subject) %]</td> |
|
22 |
</tr> |
|
23 |
|
|
24 |
<tr class="listrow"> |
|
25 |
<th>[%- LxERP.t8("Sent on") %]</th> |
|
26 |
<td>[%- HTML.escape(SELF.entry.sent_on.to_lxoffice("precision" => "second")) %]</td> |
|
27 |
</tr> |
|
28 | 9 |
|
29 |
<tr class="listrow"> |
|
30 |
<th>[%- LxERP.t8("Status") %]</th> |
|
31 |
<td> |
|
32 |
[%- IF SELF.entry.status == "ok" %] |
|
33 |
[%- LxERP.t8("succeeded") %] |
|
34 |
[%- ELSE %] |
|
35 |
[%- LxERP.t8("failed") %] |
|
36 |
[%- END %] |
|
37 |
</td> |
|
38 |
</tr> |
|
39 |
|
|
40 |
<tr class="listrow"> |
|
41 |
<th>[%- LxERP.t8("Extended status") %]</th> |
|
42 |
<td><pre>[%- HTML.escape(SELF.entry.extended_status) %]</pre></td> |
|
43 |
</tr> |
|
44 |
|
|
45 |
<tr class="listrow"> |
|
46 |
<th>[%- LxERP.t8("Headers") %]</th> |
|
47 |
<td><pre>[% HTML.escape(SELF.entry.headers) %]</pre></td> |
|
48 |
</tr> |
|
10 |
<table id="email_journal_details" class="tbl-horizontal email_journal_details"> |
|
11 |
<tbody> |
|
12 |
<tr> |
|
13 |
<th>[% LxERP.t8("From") %]</th> |
|
14 |
<td>[% HTML.escape(SELF.entry.from) %]</td> |
|
15 |
</tr> |
|
16 |
<tr> |
|
17 |
<th>[% LxERP.t8("Recipients") %]</th> |
|
18 |
<td>[% HTML.escape(SELF.entry.recipients) %]</td> |
|
19 |
</tr> |
|
20 |
<tr> |
|
21 |
<th>[% LxERP.t8("Subject") %]</th> |
|
22 |
<td>[% HTML.escape(SELF.entry.subject) %]</td> |
|
23 |
</tr> |
|
24 |
<tr> |
|
25 |
<th>[% LxERP.t8("Sent on") %]</th> |
|
26 |
<td>[% HTML.escape(SELF.entry.sent_on.to_lxoffice("precision" => "second")) %]</td> |
|
27 |
</tr> |
|
28 |
<tr> |
|
29 |
<th>[% LxERP.t8("Status") %]</th> |
|
30 |
<td> [% IF SELF.entry.status == "ok" %] [% LxERP.t8("succeeded") %] [% ELSE %] [% LxERP.t8("failed") %] [% END %]</td> |
|
31 |
</tr> |
|
32 |
<tr> |
|
33 |
<th>[% LxERP.t8("Extended status") %]</th> |
|
34 |
<td><pre>[% HTML.escape(SELF.entry.extended_status) %]</pre></td> |
|
35 |
</tr> |
|
36 |
<tr> |
|
37 |
<th>[% LxERP.t8("Headers") %]</th> |
|
38 |
<td><pre>[% HTML.escape(SELF.entry.headers) %]</pre></td> |
|
39 |
</tr> |
|
40 |
<tr> |
|
41 |
<th>[% LxERP.t8("Body") %]</th> |
|
42 |
<td><pre>[% HTML.escape(SELF.entry.body) %]</pre></td> |
|
43 |
</tr> |
|
44 |
</tbody> |
|
45 |
</table> |
|
49 | 46 |
|
50 |
<tr class="listrow"> |
|
51 |
<th>[%- LxERP.t8("Body") %]</th> |
|
52 |
<td><pre>[% HTML.escape(SELF.entry.body) %]</pre></td> |
|
53 |
</tr> |
|
54 |
</table> |
|
55 | 47 |
|
56 |
[% SET attachments = SELF.entry.attachments_sorted %] |
|
57 |
[% IF attachments.size %] |
|
58 |
<h2>[% LxERP.t8("Attachments") %]</h2> |
|
48 |
[% SET attachments = SELF.entry.attachments_sorted %] |
|
49 |
[% IF attachments.size %] |
|
59 | 50 |
|
60 |
<table id="email_journal_details" class="email_journal_details"> |
|
61 |
<thead> |
|
51 |
<table id="email_journal_details" class="tbl-list email_journal_details"> |
|
52 |
<caption>[% LxERP.t8("Attachments") %]</caption> |
|
53 |
<thead> |
|
62 | 54 |
<tr> |
63 |
<th>[% LxERP.t8("Attachment name") %]</th> |
|
64 |
<th>[% LxERP.t8("MIME type") %]</th> |
|
65 |
<th>[% LxERP.t8("Size") %]</th> |
|
55 |
<th>[% LxERP.t8("Attachment name") %]</th>
|
|
56 |
<th>[% LxERP.t8("MIME type") %]</th>
|
|
57 |
<th>[% LxERP.t8("Size") %]</th>
|
|
66 | 58 |
</tr> |
67 |
</thead> |
|
68 |
|
|
69 |
<tbody> |
|
59 |
</thead> |
|
60 |
<tbody> |
|
70 | 61 |
[% FOREACH attachment = attachments %] |
71 |
<tr class="listrow">
|
|
62 |
<tr>
|
|
72 | 63 |
<td>[% L.link(SELF.url_for(action="download_attachment", id=attachment.id), attachment.name) %]</td> |
73 | 64 |
<td>[% HTML.escape(attachment.mime_type) %]</td> |
74 | 65 |
<td>[% HTML.escape(LxERP.format_amount(attachment.content.length, 0)) %]</td> |
75 |
</tr>
|
|
66 |
</tr> |
|
76 | 67 |
[% END %] |
77 |
</tbody> |
|
78 |
</table> |
|
79 |
[% END %] |
|
68 |
</tbody> |
|
69 |
</table> |
|
70 |
|
|
71 |
[% END %] |
templates/webpages/employee/_list.html | ||
---|---|---|
1 |
[%- USE T8 %]
|
|
1 |
[% USE T8 %] |
|
2 | 2 |
<table> |
3 |
<tr class='listheading'>
|
|
3 |
<tr> |
|
4 | 4 |
<th>[% 'Login of User' | $T8 %]</th> |
5 | 5 |
<th>[% 'Name' | $T8 %]</th> |
6 | 6 |
<th>[% 'Deleted' | $T8 %]</th> |
7 | 7 |
</tr> |
8 |
[%- FOREACH row IN SELF.employees %]
|
|
8 |
[% FOREACH row IN SELF.employees %] |
|
9 | 9 |
<tr class='listrow[% loop.count % 2 %]'> |
10 | 10 |
<td><a href='[% SELF.url_for(action="edit", "employee.id"=row.id) %]'>[% row.login | html %]</a></td> |
11 | 11 |
<td>[% row.name | html %]</td> |
12 | 12 |
<td>[% row.deleted_as_bool_yn | html %]</td> |
13 | 13 |
</tr> |
14 |
[%- END %]
|
|
14 |
[% END %] |
|
15 | 15 |
</table> |
Auch abrufbar als: Unified diff
Neues kivitendo Design Aenderungen in templates/webpages/e*
Dateien in email_journal/* employee/*