--- /dev/null
+[% USE HTML %][% USE L %][% USE LxERP %]
+
+<body>
+ <div class="listtop">[% FORM.title %]</div>
+
+[%- INCLUDE 'common/flash.html' %]
+
+ <form method="post" action="controller.pl">
+ [% IF !ENTRIES.size %]
+ <p>
+ [%- LxERP.t8('There are no entries in the background job history.') %]
+ </p>
+
+ [%- ELSE %]
+ <table id="background_job_history_list" class="background_job_history_list" width="100%">
+ <thead>
+ <tr class="listheading">
+ <th>[%- LxERP.t8('Package name') %]</th>
+ <th>[%- LxERP.t8('Run at') %]</th>
+ <th>[%- LxERP.t8('Execution status') %]</th>
+ <th>[%- LxERP.t8('Result') %]</th>
+ <th>[%- LxERP.t8('Error') %]</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ [%- FOREACH entry = ENTRIES %]
+ <tr class="listrow[% loop.count % 2 %]" id="background_job_history_id_[% entry.id %]">
+ <td>
+ <a href="[% SELF.url_for(action => 'show', id => entry.id) %]">
+ [%- HTML.escape(entry.package_name) %]
+ </a>
+ </td>
+ <td>[%- HTML.escape(entry.run_at.to_lxoffice('precision' => 'second')) %]</td>
+ <td>
+ [%- IF entry.status == 'success' %]
+ [%- LxERP.t8('succeeded') %]
+ [%- ELSIF entry.status == 'failure' %]
+ [%- LxERP.t8('failed') %]
+ [%- ELSE %]
+ [%- HTML.escape(entry.status) %]
+ [%- END %]
+ </td>
+ <td>[%- HTML.escape(entry.result) %]</td>
+ <td>[% IF entry.error_col %]<pre>[%- HTML.escape(L.truncate(entry.error_col)) %]</pre>[%- END %]</td>
+ </tr>
+ [%- END %]
+ </tbody>
+ </table>
+ [%- END %]
+
+ <hr size="3" noshade>
+
+ <p>
+ <a href="[% SELF.url_for(controller => 'BackgroundJob', action => 'list') %]">[%- LxERP.t8('View background jobs') %]</a>
+ |
+ <a href="[% SELF.url_for(controller => 'TaskServer', action => 'show') %]">[%- LxERP.t8('Task server control') %]</a>
+ </p>
+ </form>
+</body>
+</html>