diff options
Diffstat (limited to 'modules/gallery/views')
| -rw-r--r-- | modules/gallery/views/admin_maintenance.html.php | 15 | ||||
| -rw-r--r-- | modules/gallery/views/admin_maintenance_task.html.php | 20 | 
2 files changed, 30 insertions, 5 deletions
| diff --git a/modules/gallery/views/admin_maintenance.html.php b/modules/gallery/views/admin_maintenance.html.php index 4bfc57f0..c28def1d 100644 --- a/modules/gallery/views/admin_maintenance.html.php +++ b/modules/gallery/views/admin_maintenance.html.php @@ -109,16 +109,21 @@              <?= html::clean($task->owner()->name) ?>            </td>            <td> -            <a href="<?= url::site("admin/maintenance/cancel/$task->id?csrf=$csrf") ?>" -               class="g-button g-right ui-icon-left ui-state-default ui-corner-all"> -              <?= t("cancel") ?> -            </a>              <? if ($task->state == "stalled"): ?>              <a class="g-dialog-link g-button ui-icon-left ui-state-default ui-corner-all"                 href="<?= url::site("admin/maintenance/resume/$task->id?csrf=$csrf") ?>">                <?= t("resume") ?>              </a>              <? endif ?> +            <? if ($task->get_log()): ?> +            <a href="<?= url::site("admin/maintenance/show_log/$task->id?csrf=$csrf") ?>" class="g-dialog-link g-button ui-state-default ui-corner-all"> +              <?= t("view log") ?> +            </a> +            <? endif ?> +            <a href="<?= url::site("admin/maintenance/cancel/$task->id?csrf=$csrf") ?>" +               class="g-button ui-icon-left ui-state-default ui-corner-all"> +              <?= t("cancel") ?> +            </a>            </td>          </tr>          <? endforeach ?> @@ -183,7 +188,7 @@              </a>              <? if ($task->get_log()): ?>              <a href="<?= url::site("admin/maintenance/show_log/$task->id?csrf=$csrf") ?>" class="g-dialog-link g-button ui-state-default ui-corner-all"> -              <?= t("browse log") ?> +              <?= t("view log") ?>              </a>              <? endif ?>              <? else: ?> diff --git a/modules/gallery/views/admin_maintenance_task.html.php b/modules/gallery/views/admin_maintenance_task.html.php index 76756b66..013ac01f 100644 --- a/modules/gallery/views/admin_maintenance_task.html.php +++ b/modules/gallery/views/admin_maintenance_task.html.php @@ -3,6 +3,7 @@    var target_value;    var animation = null;    var delta = 1; +  var consecutive_error_count = 0;    animate_progress_bar = function() {      var current_value = parseInt($(".g-progress-bar div").css("width").replace("%", ""));      if (target_value > current_value) { @@ -26,12 +27,15 @@      $.fn.gallery_hover_init();    } +  var FAILED_MSG = <?= t("Something went wrong...sorry!  <a>Retry</a> or check the task log for details")->for_js() ?>; +  var ERROR_MSG = <?= t("Something went wrong!  Trying again in a moment... (__COUNT__)")->for_js() ?>;    update = function() {      $.ajax({        url: <?= html::js_string(url::site("admin/maintenance/run/$task->id?csrf=$csrf")) ?>,        dataType: "json",        success: function(data) {          target_value = data.task.percent_complete; +        consecutive_error_count = 0;          if (!animation) {            animate_progress_bar();          } @@ -42,6 +46,22 @@          } else {            setTimeout(update, 100);          } +      }, +      error: function(req, textStatus, errorThrown) { +        if (textStatus == "timeout" || textStatus == "parsererror") { +          consecutive_error_count++; +          if (consecutive_error_count == 5) { +            $("#g-status").html(FAILED_MSG); +            $("#g-pause-button").hide(); +            $("#g-done-button").show(); +            consecutive_error_count = 0;  // in case of a manual retry +            $("#g-status a").attr("href", "javascript:update()"); +          } else { +            $("#g-status").html(ERROR_MSG.replace("__COUNT__", consecutive_error_count)); +            // Give a little time to back off before retrying +            setTimeout(update, 1500 * consecutive_error_count); +          } +        }        }      });    } | 
