diff options
Diffstat (limited to 'frontend/pages/builds/delete.php')
-rw-r--r-- | frontend/pages/builds/delete.php | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/frontend/pages/builds/delete.php b/frontend/pages/builds/delete.php index 5ff1d9a..6fc6ae3 100644 --- a/frontend/pages/builds/delete.php +++ b/frontend/pages/builds/delete.php @@ -9,14 +9,27 @@ function init_builds_delete(&$S) { return array('title' => 'Delete Build'); } function body_builds_delete(&$S) { - if ($S['build']->status >= 0 || $S['build']->status == INGENUE_BUILD_QUEUED) { + switch($S['build']->status) { + case 'queued': + if (isset($S['build']->backend)) + die(print_warning('Oops', 'You tried to delete this build just as it was about to start being built. Please try to cancel it in a moment.')); + case 'upload_failed': + case 'canceled': + case 'failed': + case 'complete': + case 'got_signal': $S['build']->delete(); echo print_success('Build deleted.'); - } elseif ($S['build']->status != INGENUE_BUILD_CANCEL) { - $S['build']->status=INGENUE_BUILD_CANCEL; + break; + case 'cancel': + echo print_error('This build is already queued for cancellation.'); + break; + case 'uploading': + case 'building': + default: + $S['build']->status='cancel'; $S['build']->write(); echo print_success('Build queued for cancellation.'); - } else - echo print_error('This build is already queued for cancellation.'); + } } ?> |