public static function lookup_all(Contact $user) { $reg = array(); foreach (PaperOption::user_option_list($user) as $opt) { if ($opt->display() >= 0) { $reg[] = self::_make_column($opt); } } return $reg; }
function search_completion($category = "") { global $Conf, $Me; $res = array(); if ($this->amPC && (!$category || $category === "ss")) { foreach ($Conf->settingTexts as $k => $v) { if (substr($k, 0, 3) == "ss:" && ($v = json_decode($v))) { $res[] = $k; } } } array_push($res, "has:submission", "has:abstract", "has:finalcopy"); if ($this->amPC && $Conf->has_any_manager()) { $res[] = "has:admin"; } if ($this->amPC && $Conf->has_any_lead_or_shepherd()) { $res[] = "has:lead"; } if ($this->contact->can_view_some_decision()) { $res[] = "has:decision"; if (!$category || $category === "dec") { $res[] = array("pri" => -1, "nosort" => true, "i" => array("dec:any", "dec:none", "dec:yes", "dec:no")); $dm = $Conf->decision_map(); unset($dm[0]); $res = array_merge($res, self::simple_search_completion("dec:", $dm, Text::SEARCH_UNPRIVILEGE_EXACT)); } } if ($this->amPC || $this->contact->can_view_some_decision()) { $res[] = "has:shepherd"; } if ($this->contact->can_view_some_review()) { array_push($res, "has:re", "has:cre", "has:ire", "has:pre", "has:comment", "has:aucomment"); } if ($this->contact->is_reviewer()) { array_push($res, "has:primary", "has:secondary", "has:external"); } foreach ($Conf->resp_round_list() as $i => $rname) { if (!in_array("has:response", $res)) { $res[] = "has:response"; } if ($i) { $res[] = "has:{$rname}response"; } } if ($this->contact->can_view_some_draft_response()) { foreach ($Conf->resp_round_list() as $i => $rname) { if (!in_array("has:draftresponse", $res)) { $res[] = "has:draftresponse"; } if ($i) { $res[] = "has:draft{$rname}response"; } } } foreach (PaperOption::user_option_list($this->contact) as $o) { if ($this->contact->can_view_some_paper_option($o)) { array_push($res, "has:{$o->abbr}", "opt:{$o->abbr}"); } } if ($this->contact->is_reviewer() && $Conf->has_rounds() && (!$category || $category === "round")) { $res[] = array("pri" => -1, "nosort" => true, "i" => array("round:any", "round:none")); $rlist = array(); foreach ($Conf->round_list() as $rnum => $round) { if ($rnum && $round !== ";") { $rlist[$rnum] = $round; } } $res = array_merge($res, self::simple_search_completion("round:", $rlist)); } if ($Conf->has_topics() && (!$category || $category === "topic")) { foreach ($Conf->topic_map() as $tname) { $res[] = "topic:\"{$tname}\""; } } if (!$category || $category === "style") { $res[] = array("pri" => -1, "nosort" => true, "i" => array("style:any", "style:none", "color:any", "color:none")); foreach (explode("|", TagInfo::BASIC_COLORS) as $t) { array_push($res, "style:{$t}", "color:{$t}"); } } if (!$category || $category === "show" || $category === "hide") { $cats = array(); $pl = new PaperList(new PaperSearch($Me, "")); foreach (PaperColumn::$by_name as $c) { if (($cat = $c->completion_name()) && $c->prepare($pl, PaperColumn::PREP_COMPLETION)) { $cats[$cat] = true; } } foreach (PaperColumn::$factories as $f) { foreach ($f[1]->completion_instances($this->contact) as $c) { if (($cat = $c->completion_name()) && $c->prepare($pl, PaperColumn::PREP_COMPLETION)) { $cats[$cat] = true; } } } foreach (array_keys($cats) as $cat) { array_push($res, "show:{$cat}", "hide:{$cat}"); } array_push($res, "show:compact", "show:statistics", "show:rownumbers"); } return $res; }