diff options
| -rw-r--r-- | src/admin/contest.php | 36 | ||||
| -rw-r--r-- | src/fcontest.php | 24 |
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); |