$reason = defval($_REQUEST, "emailNote", ""); } Dbl::qe("update Paper set timeWithdrawn={$Now}, timeSubmitted=if(timeSubmitted>0,-100,0), withdrawReason=? where paperId={$prow->paperId}", $reason != "" ? $reason : null); $numreviews = Dbl::fetch_ivalue("select count(*) from PaperReview where paperId={$prow->paperId} and reviewNeedsSubmit!=0"); $Conf->update_papersub_setting(false); loadRows(); // email contact authors themselves if (!$Me->privChair || defval($_REQUEST, "doemail") > 0) { HotCRPMailer::send_contacts($prow->conflictType >= CONFLICT_AUTHOR ? "@authorwithdraw" : "@adminwithdraw", $prow, array("reason" => $reason, "infoNames" => 1)); } // email reviewers if ($numreviews > 0 && $Conf->time_review_open() || $prow->num_reviews_assigned() > 0) { HotCRPMailer::send_reviewers("@withdrawreviewer", $prow, array("reason" => $reason)); } // remove voting tags so people don't have phantom votes if (TagInfo::has_vote()) { $q = array(); foreach (TagInfo::vote_tags() as $t => $v) { $q[] = "tag='" . sqlq($t) . "' or tag like '%~" . sqlq_for_like($t) . "'"; } Dbl::qe_raw("delete from PaperTag where paperId={$prow->paperId} and (" . join(" or ", $q) . ")"); } $Me->log_activity("Withdrew", $prow->paperId); redirectSelf(); } else { Conf::msg_error(whyNotText($whyNot, "withdraw")); } } if (isset($_REQUEST["revive"]) && !$newPaper && check_post()) { if (!($whyNot = $Me->perm_revive_paper($prow))) { Dbl::qe("update Paper set timeWithdrawn=0, timeSubmitted=if(timeSubmitted=-100,{$Now},0), withdrawReason=null where paperId={$prow->paperId}");
function initialize_paper_columns() { global $Conf; PaperColumn::register(new SelectorPaperColumn("sel", array("minimal" => true))); PaperColumn::register(new SelectorPaperColumn("selon", array("minimal" => true, "className" => "pl_sel"))); PaperColumn::register(new SelectorPaperColumn("selconf", array("className" => "pl_confselector"))); PaperColumn::register(new SelectorPaperColumn("selunlessconf", array("minimal" => true, "className" => "pl_sel"))); PaperColumn::register(new IdPaperColumn()); PaperColumn::register(new TitlePaperColumn()); PaperColumn::register(new StatusPaperColumn("status", false)); PaperColumn::register(new StatusPaperColumn("statusfull", true)); PaperColumn::register(new ReviewerTypePaperColumn("revtype")); PaperColumn::register(new ReviewStatusPaperColumn()); PaperColumn::register(new ReviewSubmittedPaperColumn()); PaperColumn::register(new ReviewDelegationPaperColumn()); PaperColumn::register(new AssignReviewPaperColumn()); PaperColumn::register(new TopicScorePaperColumn()); PaperColumn::register(new TopicListPaperColumn()); PaperColumn::register(new PreferencePaperColumn("pref", false)); PaperColumn::register_synonym("revpref", "pref"); PaperColumn::register(new PreferenceListPaperColumn("allpref", false)); PaperColumn::register_synonym("allrevpref", "allpref"); PaperColumn::register(new PreferenceListPaperColumn("alltopicpref", true)); PaperColumn::register_synonym("allrevtopicpref", "alltopicpref"); PaperColumn::register(new DesirabilityPaperColumn()); PaperColumn::register(new ReviewerListPaperColumn()); PaperColumn::register(new AuthorsPaperColumn()); PaperColumn::register(new CollabPaperColumn()); PaperColumn::register_synonym("co", "collab"); PaperColumn::register(new TagListPaperColumn(false)); PaperColumn::register(new SearchOptsPaperColumn()); PaperColumn::register(new AbstractPaperColumn()); PaperColumn::register(new LeadPaperColumn()); PaperColumn::register(new ShepherdPaperColumn()); PaperColumn::register(new PCConflictListPaperColumn()); PaperColumn::register(new ConflictMatchPaperColumn("authorsmatch", "authorInformation")); PaperColumn::register(new ConflictMatchPaperColumn("collabmatch", "collaborators")); PaperColumn::register(new TimestampPaperColumn()); PaperColumn::register(new FoldAllPaperColumn()); PaperColumn::register_factory("tag:", new TagPaperColumn(null, null, false)); PaperColumn::register_factory("tagval:", new TagPaperColumn(null, null, true)); PaperColumn::register_factory("opt:", new OptionPaperColumn(null)); PaperColumn::register_factory("#", new TagPaperColumn(null, null, null)); PaperColumn::register_factory("pref:", new PreferencePaperColumn(null, false)); if (PaperOption::count_option_list()) { PaperColumn::register_factory("", new OptionPaperColumn(null)); } foreach (ReviewForm::all_fields() as $f) { if ($f->has_options) { PaperColumn::register_factory("", new ScorePaperColumn(null)); break; } } if ($Conf && $Conf->setting("formulas")) { $result = Dbl::q("select * from Formula order by lower(name)"); while ($result && ($row = Formula::fetch($result))) { $fid = $row->formulaId; FormulaPaperColumn::register(new FormulaPaperColumn("formula{$fid}", $row)); } } PaperColumn::register_factory("", new FormulaPaperColumn("", null)); $tagger = new Tagger(); if ($Conf && (TagInfo::has_vote() || TagInfo::has_approval() || TagInfo::has_rank())) { $vt = array(); foreach (TagInfo::defined_tags() as $v) { if ($v->vote || $v->approval || $v->rank) { $vt[] = $v->tag; } } foreach ($vt as $n) { TagReportPaperColumn::register(new TagReportPaperColumn($n)); } } }
function _currentVoteTags() { if (TagInfo::has_vote()) { $votetags = " (currently "; foreach (TagInfo::vote_tags() as $tag => $v) { $votetags .= "“<a href=\"" . hoturl("search", "q=rorder:{$tag}") . "\">{$tag}</a>”, "; } return substr($votetags, 0, strlen($votetags) - 2) . ")"; } else { return ""; } }