summaryrefslogtreecommitdiff
path: root/core/views
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2008-12-28 23:48:15 +0000
committerBharat Mediratta <bharat@menalto.com>2008-12-28 23:48:15 +0000
commited8689f768f81d2c3ed8bee70c43d4f7c71c108e (patch)
tree35fccdad514cd834cc0b7cea86966604e617d3f0 /core/views
parent1d76689e4b3ea68cada5154d1c0e17b00dec6bd7 (diff)
Expand on the maintenance code to make it more robust and give the
admin more control. You can now track running tasks, resume stalled tasks, cancel running tasks, and remove finished tasks. Added graphics::compose() as a placeholder for future watermark operations. Added CSRF protection to maintenance urls.
Diffstat (limited to 'core/views')
-rw-r--r--core/views/admin_maintenance.html.php138
-rw-r--r--core/views/admin_maintenance_task.html.php2
2 files changed, 134 insertions, 6 deletions
diff --git a/core/views/admin_maintenance.html.php b/core/views/admin_maintenance.html.php
index 0d9f6adb..263fea10 100644
--- a/core/views/admin_maintenance.html.php
+++ b/core/views/admin_maintenance.html.php
@@ -2,19 +2,34 @@
<div id="gMaintenance">
<h1> <?= _("Maintenance Tasks") ?> </h1>
<p>
- <?= _("Occasionally your Gallery will require some maintenance. Here are some tasks you can run to keep it running smoothly.") ?>
+ <?= _("Occasionally your Gallery will require some maintenance. Here are some tasks you can use to keep it running smoothly.") ?>
</p>
<div id="gAvailableTasks">
<h2> <?= _("Available Tasks") ?> </h2>
- <table style="width: 400px">
- <? foreach ($available_tasks as $task) ?>
+ <table style="width: 680px" border="1">
<tr>
+ <th>
+ <?= _("Name") ?>
+ </th>
+ <th>
+ <?= _("Description") ?>
+ </th>
+ <th>
+ <?= _("Action") ?>
+ </th>
+ </tr>
+ <? foreach ($task_definitions as $task) ?>
+ <tr class="<?= log::severity_class($task->severity) ?>">
+ <td>
+ <?= $task->name ?>
+ </td>
<td>
<?= $task->description ?>
</td>
<td>
- <a href="<?= url::site("admin/maintenance/start/$task->name") ?>" class="gDialogLink">
+ <a href="<?= url::site("admin/maintenance/start/$task->callback?csrf=$csrf") ?>"
+ class="gDialogLink">
<?= _("run") ?>
</a>
</td>
@@ -25,6 +40,119 @@
<div id="gRunningTasks">
<h2> <?= _("Running Tasks") ?> </h2>
- <i> Task list goes here </i>
+ <table style="width: 680px" border="1">
+ <tr>
+ <th>
+ <?= _("Last Updated") ?>
+ </th>
+ <th>
+ <?= _("Name") ?>
+ </th>
+ <th>
+ <?= _("Status") ?>
+ </th>
+ <th>
+ <?= _("Info") ?>
+ </th>
+ <th>
+ <?= _("Action") ?>
+ </th>
+ </tr>
+ <? foreach ($running_tasks as $task): ?>
+ <tr class="<?= $task->state == "stalled" ? "gWarning" : "" ?>">
+ <td>
+ <?= date("M j, Y H:i:s", $task->updated) ?>
+ </td>
+ <td>
+ <?= $task->name ?>
+ </td>
+ <td>
+ <? if ($task->done): ?>
+ <? if ($task->state == "cancelled"): ?>
+ <?= _("Cancelled") ?>
+ <? endif ?>
+ <?= _("Done") ?>
+ <? elseif ($task->state == "stalled"): ?>
+ <?= _("Stalled") ?>
+ <? else: ?>
+ <?= sprintf(_("%d%% Complete"), $task->percent_complete) ?>
+ <? endif ?>
+ </td>
+ <td>
+ <?= $task->status ?>
+ </td>
+ <td>
+ <? if ($task->state == "stalled"): ?>
+ <a href="<?= url::site("admin/maintenance/resume/$task->id?csrf=$csrf") ?>" class="gDialogLink">
+ <?= _("resume") ?>
+ </a>
+ <? endif ?>
+ <a href="<?= url::site("admin/maintenance/cancel/$task->id?csrf=$csrf") ?>">
+ <?= _("cancel") ?>
+ </a>
+ </td>
+ </tr>
+ <? endforeach ?>
+ </table>
+ </div>
+
+ <div id="gFinishedTasks">
+ <h2> <?= _("Finished Tasks") ?> </h2>
+
+ <table style="width: 680px" border="1">
+ <tr>
+ <th>
+ <?= _("Last Updated") ?>
+ </th>
+ <th>
+ <?= _("Name") ?>
+ </th>
+ <th>
+ <?= _("Status") ?>
+ </th>
+ <th>
+ <?= _("Info") ?>
+ </th>
+ <th>
+ <?= _("Action") ?>
+ </th>
+ </tr>
+ <? foreach ($finished_tasks as $task): ?>
+ <tr class="<?= $task->state == "success" ? "gSuccess" : "gError" ?>">
+ <td>
+ <?= date("M j, Y H:i:s", $task->updated) ?>
+ </td>
+ <td>
+ <?= $task->name ?>
+ </td>
+ <td>
+ <? if ($task->state == "success"): ?>
+ <?= _("Success") ?>
+ <? elseif ($task->state == "error"): ?>
+ <?= _("Failed") ?>
+ <? elseif ($task->state == "cancelled"): ?>
+ <?= _("Cancelled") ?>
+ <? endif ?>
+ </td>
+ <td>
+ <?= $task->status ?>
+ </td>
+ <td>
+ <? if ($task->done): ?>
+ <a href="<?= url::site("admin/maintenance/remove/$task->id?csrf=$csrf") ?>">
+ <?= _("remove") ?>
+ </a>
+ <? else: ?>
+ <a href="<?= url::site("admin/maintenance/resume/$task->id?csrf=$csrf") ?>">
+ <?= _("resume") ?>
+ </a>
+ <a href="<?= url::site("admin/maintenance/cancel/$task->id?csrf=$csrf") ?>">
+ <?= _("cancel") ?>
+ </a>
+ <? endif ?>
+ </td>
+ </tr>
+ <? endforeach ?>
+ </table>
</div>
</div>
diff --git a/core/views/admin_maintenance_task.html.php b/core/views/admin_maintenance_task.html.php
index 4776ecaa..c31de876 100644
--- a/core/views/admin_maintenance_task.html.php
+++ b/core/views/admin_maintenance_task.html.php
@@ -3,7 +3,7 @@
<script type="text/javascript">
update = function() {
$.ajax({
- url: "<?= url::site("admin/maintenance/run/$task->id") ?>",
+ url: "<?= url::site("admin/maintenance/run/$task->id?csrf=$csrf") ?>",
dataType: "json",
success: function(data) {
$("#gStatus").html("" + data.task.status);