summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/pages/builds/delete.php')
-rw-r--r--frontend/pages/builds/delete.php23
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.');
+ }
}
?>