aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/admin/contest.php36
-rw-r--r--src/fcontest.php24
2 files changed, 48 insertions, 12 deletions
diff --git a/src/admin/contest.php b/src/admin/contest.php
index 58df217..fda17da 100644
--- a/src/admin/contest.php
+++ b/src/admin/contest.php
@@ -26,6 +26,37 @@ $localsite=$ct["contestlocalsite"];
$mainsite=$ct["contestmainsite"];
if ($localsite == $mainsite) $main=true; else $main=false;
+if($main) {
+ if (isset($_POST["SubmitDC"]) && $_POST["SubmitDC"] == "Delete ALL clars") {
+ if ($_POST["confirmation"] == "confirm") {
+ DBSiteDeleteAllClars ($_SESSION["usertable"]["contestnumber"], -1,
+ $_SESSION["usertable"]["usernumber"], $_SESSION["usertable"]["usersitenumber"]);
+ }
+ ForceLoad("contest.php");
+ }
+ if (isset($_POST["SubmitDR"]) && $_POST["SubmitDR"] == "Delete ALL runs") {
+ if ($_POST["confirmation"] == "confirm") {
+ DBSiteDeleteAllRuns ($_SESSION["usertable"]["contestnumber"], -1,
+ $_SESSION["usertable"]["usernumber"], $_SESSION["usertable"]["usersitenumber"]);
+ }
+ ForceLoad("contest.php");
+ }
+ if (isset($_POST["SubmitDT"]) && $_POST["SubmitDT"] == "Delete ALL tasks") {
+ if ($_POST["confirmation"] == "confirm") {
+ DBSiteDeleteAllTasks ($_SESSION["usertable"]["contestnumber"], -1,
+ $_SESSION["usertable"]["usernumber"], $_SESSION["usertable"]["usersitenumber"]);
+ }
+ ForceLoad("contest.php");
+ }
+ if (isset($_POST["SubmitDB"]) && $_POST["SubmitDB"] == "Delete ALL bkps") {
+ if ($_POST["confirmation"] == "confirm") {
+ DBSiteDeleteAllBkps ($_SESSION["usertable"]["contestnumber"], -1,
+ $_SESSION["usertable"]["usernumber"], $_SESSION["usertable"]["usersitenumber"]);
+ }
+ ForceLoad("contest.php");
+ }
+}
+
if (isset($_POST["Submit3"]) && isset($_POST["penalty"]) && is_numeric($_POST["penalty"]) &&
isset($_POST["maxfilesize"]) && isset($_POST["mainsite"]) && isset($_POST["name"]) &&
$_POST["name"] != "" && isset($_POST["lastmileanswer"]) && is_numeric($_POST["lastmileanswer"]) &&
@@ -254,6 +285,11 @@ echo $contest;
<input type="submit" name="Submit3" value="Update" onClick="conf()">
<input type="submit" name="Submit3" value="Update Contest and All Sites" onClick="conf2()">
<input type="reset" name="Submit4" value="Clear">
+<br><br>
+ <input type="submit" name="SubmitDC" value="Delete ALL clars" onClick="conf2()">
+ <input type="submit" name="SubmitDR" value="Delete ALL runs" onClick="conf2()">
+ <input type="submit" name="SubmitDT" value="Delete ALL tasks" onClick="conf2()">
+ <input type="submit" name="SubmitDB" value="Delete ALL bkps" onClick="conf2()">
<?php } else { ?>
<input type="submit" name="Submit3" value="Update" onClick="conf()">
<input type="submit" name="Submit3" value="Become Main Site" onClick="conf3()">
diff --git a/src/fcontest.php b/src/fcontest.php
index 5c14277..29b5ed9 100644
--- a/src/fcontest.php
+++ b/src/fcontest.php
@@ -502,11 +502,11 @@ function DBSiteDeleteAllClars ($contest, $site, $user, $usersite, $c=null) {
DBExec($c, "lock table sitetable");
DBExec($c, "lock table clartable");
DBExec($c, "select * from sitetable where contestnumber=$contest and sitenumber=$site for update");
- $r = DBExec($c, "select * from clartable as c where c.contestnumber=$contest and " .
- "c.clarsitenumber=$site for update");
- DBExec($c, "delete from clartable where contestnumber=$contest and clarsitenumber=$site");
+ $r = DBExec($c, "select * from clartable as c where c.contestnumber=$contest " .
+ " and (c.clarsitenumber=$site or $site < 0) for update");
+ DBExec($c, "delete from clartable where contestnumber=$contest and (clarsitenumber=$site or $site < 0)");
DBExec($c, "update sitetable set sitenextclar=0, updatetime=".time()." " .
- "where contestnumber=$contest and sitenumber=$site");
+ "where contestnumber=$contest and (sitenumber=$site or $site < 0)");
if($cw) {
DBExec($c, "commit work");
LOGLevel("All Clarifications deleted (site=$site, contest=$contest, user=$user(site=$usersite)).", 3);
@@ -524,10 +524,10 @@ function DBSiteDeleteAllTasks ($contest, $site, $user, $usersite,$c=null) {
DBExec($c, "lock table tasktable");
DBExec($c, "select * from sitetable where contestnumber=$contest and sitenumber=$site for update");
$r = DBExec($c, "select * from tasktable as t where t.contestnumber=$contest and " .
- "t.sitenumber=$site for update");
- DBExec($c, "delete from tasktable where contestnumber=$contest and sitenumber=$site");
+ "(t.sitenumber=$site or $site < 0) for update");
+ DBExec($c, "delete from tasktable where contestnumber=$contest and (sitenumber=$site or $site < 0)");
DBExec($c, "update sitetable set sitenexttask=0, updatetime=".time()." " .
- "where contestnumber=$contest and sitenumber=$site");
+ "where contestnumber=$contest and (sitenumber=$site or $site < 0)");
if($cw) {
DBExec($c, "commit work");
LOGLevel("All Tasks deleted (site=$site, contest=$contest, user=$user(site=$usersite)).", 3);
@@ -542,13 +542,13 @@ function DBSiteDeleteAllBkps ($contest, $site, $user, $usersite,$c=null) {
DBExec($c, "begin work");
}
DBExec($c, "lock table bkptable");
- $r = DBExec($c, "select bkpdata from bkptable where contestnumber=$contest and sitenumber=$site and bkpstatus='active'");
+ $r = DBExec($c, "select bkpdata from bkptable where contestnumber=$contest and (sitenumber=$site or $site < 0) and bkpstatus='active'");
$n = DBnlines($r);
for ($i=0;$i<$n;$i++) {
$a = DBRow($r,$i);
DB_lo_unlink($c,$a["bkpdata"]);
}
- DBExec($c, "delete from bkptable where contestnumber=$contest and sitenumber=$site");
+ DBExec($c, "delete from bkptable where contestnumber=$contest and (sitenumber=$site or $site < 0)");
if($cw) {
DBExec($c, "commit work");
LOGLevel("All Bkps deleted (site=$site, contest=$contest, user=$user(site=$usersite)).", 3);
@@ -564,13 +564,13 @@ function DBSiteDeleteAllRuns ($contest, $site, $user, $usersite,$c=null) {
}
DBExec($c, "lock table sitetable");
DBExec($c, "lock table runtable");
- DBExec($c, "select * from sitetable where contestnumber=$contest and sitenumber=$site for update");
+ DBExec($c, "select * from sitetable where contestnumber=$contest and (sitenumber=$site or $site < 0) for update");
$sql = "select * from runtable as r where r.contestnumber=$contest and " .
"r.runsitenumber=$site";
$r = DBExec ($c, $sql . " for update");
- DBExec($c, "delete from runtable where contestnumber=$contest and runsitenumber=$site");
+ DBExec($c, "delete from runtable where contestnumber=$contest and (runsitenumber=$site or $site < 0)");
DBExec($c, "update sitetable set sitenextrun=0, updatetime=".time()." " .
- "where contestnumber=$contest and sitenumber=$site");
+ "where contestnumber=$contest and (sitenumber=$site or $site < 0)");
if($cw) {
DBExec($c, "commit work");
LOGLevel("All Runs deleted (site=$site, contest=$contest, user=$user(site=$usersite)).", 3);