diff --git a/batch/autoassign.php b/batch/autoassign.php index 4c946d44a..1fe5b798d 100644 --- a/batch/autoassign.php +++ b/batch/autoassign.php @@ -96,7 +96,7 @@ function run() { } $pids = $srch->paper_ids(); if (empty($pids)) { - throw new CommandLineException("No papers match that search"); + throw new CommandLineException("No applications match that search"); } if (empty($this->pcc)) { @@ -159,8 +159,8 @@ static function make_args($argv) { "config: !", "dry-run,d Do not perform assignment; output CSV instead.", "a:,autoassigner: =AA Use autoassigner AA.", - "q:,search: =QUERY Use papers matching QUERY.", - "all Search all papers (default is to search submitted papers).", + "q:,search: =QUERY Use applications matching QUERY.", + "all Search all applications (default is to search submitted applications).", "u[],user[] =USER Include users matching USER (`-USER` excludes).", "c:,count: {n} =N Set `count` parameter to N.", "t:,type: =TYPE Set `type`/`rtype` parameter to TYPE.", diff --git a/batch/banaldocstore.php b/batch/banaldocstore.php index 99b5619c7..119f6794a 100644 --- a/batch/banaldocstore.php +++ b/batch/banaldocstore.php @@ -22,7 +22,7 @@ function __construct(Conf $conf, $arg) { $this->count = $arg["count"] ?? 10; if (!($dp = $this->conf->docstore())) { - throw new ErrorException("Conference has no document store"); + throw new ErrorException("Program has no document store"); } $matcher = new DocumentHashMatcher($arg["match"] ?? null); $matcher->set_extension(".pdf"); diff --git a/batch/paperjson.php b/batch/paperjson.php index a843af69f..b4b298aec 100644 --- a/batch/paperjson.php +++ b/batch/paperjson.php @@ -93,7 +93,7 @@ static function make_args($argv) { "t:,type: =COLLECTION Search COLLECTION ‘s’ or ‘all’ [submitted]", "1,single Output first matching paper rather than an array", "help,h" - )->description("Output a JSON file with papers matching SEARCH. + )->description("Output a JSON file with applications matching SEARCH. Usage: php batch/paperjson.php [-t all] [-1] [SEARCH...]") ->helpopt("help") ->parse($argv); diff --git a/batch/reviewcsv.php b/batch/reviewcsv.php index 2a0967df0..6063d209a 100644 --- a/batch/reviewcsv.php +++ b/batch/reviewcsv.php @@ -304,7 +304,7 @@ static function run_args($argv) { "no-score Omit score fields", "no-header Omit CSV header", "format: =FMT Only output text fields with format FMT" - )->description("Output CSV containing all reviews for papers matching QUERY. + )->description("Output CSV containing all reviews for applications matching QUERY. Usage: php batch/reviewcsv.php [-acx] [QUERY...]") ->helpopt("help") ->parse($argv); diff --git a/batch/s3test.php b/batch/s3test.php index d625d174e..b74342c1c 100644 --- a/batch/s3test.php +++ b/batch/s3test.php @@ -89,7 +89,7 @@ static function make_args($argv) { $conf = initialize_conf($arg["config"] ?? null, $arg["name"] ?? null); if (!$conf->setting_data("s3_bucket")) { - throw new ErrorException("S3 is not configured for this conference"); + throw new ErrorException("S3 is not configured for this program"); } return new S3Test_Batch($conf, $arg); } diff --git a/batch/s3transfer.php b/batch/s3transfer.php index bbda3d87c..75f91e440 100644 --- a/batch/s3transfer.php +++ b/batch/s3transfer.php @@ -110,7 +110,7 @@ static function make_args($argv) { $conf = initialize_conf($arg["config"] ?? null, $arg["name"] ?? null); if (!$conf->setting_data("s3_bucket")) { - throw new ErrorException("S3 is not configured for this conference"); + throw new ErrorException("S3 is not configured for this program"); } return new S3Transfer_Batch($conf, $arg); } diff --git a/batch/s3verifyall.php b/batch/s3verifyall.php index 4aa4e025b..768a73d4a 100644 --- a/batch/s3verifyall.php +++ b/batch/s3verifyall.php @@ -141,7 +141,7 @@ static function make_args($argv) { $conf = initialize_conf($arg["config"] ?? null, $arg["name"] ?? null); if (!$conf->setting_data("s3_bucket")) { - throw new ErrorException("S3 is not configured for this conference"); + throw new ErrorException("S3 is not configured for this program"); } return new S3VerifyAll_Batch($conf, $arg); } diff --git a/batch/savepapers.php b/batch/savepapers.php index 24f133bfc..cbcf2b991 100644 --- a/batch/savepapers.php +++ b/batch/savepapers.php @@ -293,11 +293,11 @@ static function run_args($argv) { "ignore-errors Don’t exit after first error", "disable-users,disable Disable all newly created users", "ignore-pid Ignore `pid` JSON elements", - "match-title Match papers by title if no `pid`", - "add-topics Add all referenced topics to conference", + "match-title Match applications by title if no `pid`", + "add-topics Add all referenced topics to program", "no-log Don’t modify the action log" )->helpopt("help") - ->description("Change papers as specified by FILE, a JSON object or array of objects. + ->description("Change applications as specified by FILE, a JSON object or array of objects. Usage: php batch/savepapers.php [OPTIONS] [FILE]") ->maxarg(1) ->parse($argv); diff --git a/batch/search.php b/batch/search.php index 15a086e80..3ed8613d6 100644 --- a/batch/search.php +++ b/batch/search.php @@ -68,7 +68,7 @@ function run() { static function help() { fwrite(STDOUT, "Usage: php batch/search.php [-n CONFID] [-t COLLECTION] [-f FIELD]+ [QUERY...] -Output a CSV file containing the FIELDs for the papers matching QUERY. +Output a CSV file containing the FIELDs for the applications matching QUERY. Options include: -t, --type COLLECTION Search COLLECTION “s” (submitted) or “all” [s]. diff --git a/batch/updatecontactdb.php b/batch/updatecontactdb.php index 62670299a..be51cdcc8 100644 --- a/batch/updatecontactdb.php +++ b/batch/updatecontactdb.php @@ -49,7 +49,7 @@ private function try_cdb() { $result = Dbl::ql($cdb, "select * from Conferences where `dbname`=?", $this->conf->dbname); $this->confrow = Dbl::fetch_first_object($result); if (!$this->confrow) { - throw new ErrorException("Conference is not recorded in contactdb"); + throw new ErrorException("Program is not recorded in contactdb"); } $this->cdb_confid = $this->confrow->confid = (int) $this->confrow->confid; $qf = $qv = []; @@ -86,7 +86,7 @@ private function try_cdb() { private function cdb() { $cdb = $this->try_cdb(); if (!$cdb) { - throw new ErrorException("Conference has no contactdb"); + throw new ErrorException("Program has no contactdb"); } return $cdb; } @@ -267,7 +267,7 @@ static function make_args($argv) { "collaborators", "authors", "V,verbose" - )->description("Update HotCRP contactdb for a conference. + )->description("Update HotCRP contactdb for a Program. Usage: php batch/updatecontactdb.php [-n CONFID | --config CONFIG] [--papers] [--users] [--collaborators] [--authors]") ->helpopt("help") ->maxarg(0) diff --git a/docker/hotcrp-options.php b/docker/hotcrp-options.php index 56c5e7677..b46c675e2 100644 --- a/docker/hotcrp-options.php +++ b/docker/hotcrp-options.php @@ -41,7 +41,7 @@ // number. Examples: "SIGCOMM 2007", "HotNets V". // longName Longer name of the conference. Example: "ACM SIGCOMM // 2007 Conference". -// downloadPrefix Prefix for downloaded files, such as papers; should +// downloadPrefix Prefix for downloaded files, such as applications; should // end in a dash. Example: "hotnets5-". Defaults to // $Opt["dbName"] plus a dash. // paperSite [OPTIONAL] URL for this HotCRP installation. Used in @@ -121,7 +121,7 @@ // PAPER STORAGE // -// docstore Set to true to serve papers and other downloads from a +// docstore Set to true to serve applications and other downloads from a // cache on the local filesystem. By default this cache is // created in the "docs" directory. You can also set // $Opt["docstore"] to a directory name. @@ -131,7 +131,7 @@ // s3_bucket Amazon S3 bucket name to store paper submissions. // s3_key Amazon AWS access key ID (used for S3). // s3_secret Amazon AWS secret access key (used for S3). -// dbNoPapers Set to true to not store papers in the database. +// dbNoPapers Set to true to not store applications in the database. // Requires filestore, S3 storage, or both. @@ -186,7 +186,7 @@ // strictJavascript If true, send Javascript with "use strict". // hideManager If set, PC members are not shown paper managers. // disableCapabilities If set, emails to authors will not have a -// token enabling them to view their papers without logging in. +// token enabling them to view their applications without logging in. $Opt["smartScoreCompare"] = true; diff --git a/etc/distoptions.php b/etc/distoptions.php index b3690a1a2..62fc2c4e2 100644 --- a/etc/distoptions.php +++ b/etc/distoptions.php @@ -35,7 +35,7 @@ // number. Examples: "SIGCOMM 2007", "HotNets V". // longName Longer name of the conference. Example: "ACM SIGCOMM // 2007 Conference". -// downloadPrefix Prefix for downloaded files, such as papers; should +// downloadPrefix Prefix for downloaded files, such as applications; should // end in a dash. Example: "hotnets5-". Defaults to // $Opt["dbName"] plus a dash. // paperSite [OPTIONAL] URL for this HotCRP installation. Used in @@ -111,7 +111,7 @@ // PAPER STORAGE // -// docstore Set to true to serve papers and other downloads from a +// docstore Set to true to serve applications and other downloads from a // cache on the local filesystem. By default this cache is // created in the "docs" directory. You can also set // $Opt["docstore"] to a directory name. @@ -121,7 +121,7 @@ // s3_bucket Amazon S3 bucket name to store paper submissions. // s3_key Amazon AWS access key ID (used for S3). // s3_secret Amazon AWS secret access key (used for S3). -// dbNoPapers Set to true to not store papers in the database. +// dbNoPapers Set to true to not store applications in the database. // Requires filestore, S3 storage, or both. @@ -176,7 +176,7 @@ // strictJavascript If true, send Javascript with "use strict". // hideManager If set, PC members are not shown paper managers. // disableCapabilities If set, emails to authors will not have a -// token enabling them to view their papers without logging in. +// token enabling them to view their applications without logging in. $Opt["smartScoreCompare"] = true; diff --git a/etc/helptopics.json b/etc/helptopics.json index 7f11597c1..3f4d20537 100644 --- a/etc/helptopics.json +++ b/etc/helptopics.json @@ -1,7 +1,7 @@ [ { "name": "chair", "title": "Chair’s guide", "order": 0, - "description": "<0>How to run a conference using HotCRP." + "description": "<0>How to run a program using HotCRP." }, { "name": "chair/presubmission", "order": 0, @@ -280,13 +280,13 @@ { "name": "revrate", "alias": "reviewratings" }, { "name": "votetags", "title": "Voting", - "description": "<0>PC members can vote for papers using tags.", + "description": "<0>PC members can vote for applications using tags.", "print_function": "VoteTags_HelpTopic::print", "order": 8000 }, { "name": "ranking", "title": "Ranking", - "description": "<0>PC members can rank papers using tags.", + "description": "<0>PC members can rank applications using tags.", "print_function": "Ranking_HelpTopic::print", "order": 9000 }, diff --git a/etc/mailtemplates.json b/etc/mailtemplates.json index 2fd48df8f..5527deedc 100644 --- a/etc/mailtemplates.json +++ b/etc/mailtemplates.json @@ -299,7 +299,7 @@ "subject": "[%CONFSHORTNAME%] Withdrawn submission #%NUMBER% %TITLEHINT%", "body": [ "Greetings,\n\n", - "%CONFSHORTNAME% submission #%NUMBER%, which you reviewed or were assigned to review, has been withdrawn from consideration for the conference.\n\n", + "%CONFSHORTNAME% submission #%NUMBER%, which you reviewed or were assigned to review, has been withdrawn from consideration for the program.\n\n", "%IF(ADMINUPDATE)%An administrator withdrew the submission.%ELSE%Authors can withdraw submissions during the review process.%ENDIF%%IF(REASON)% They provided this reason: %REASON%%ENDIF%\n\n", "* Title: %TITLE%\n", "* Author(s): %OPT(AUTHORS)%\n", @@ -700,7 +700,7 @@ "subject": "[%CONFSHORTNAME%] Accepted submission #%NUMBER% %TITLEHINT%", "body": [ "Dear author(s),\n\n", - "The %CONFNAME% program committee is delighted to inform you that your submission #%NUMBER% has been accepted to appear in the conference.\n\n", + "The %CONFNAME% program committee is delighted to inform you that your submission #%NUMBER% has been accepted to appear in the program.\n\n", "* Title: %TITLE%\n", "* Author(s): %OPT(AUTHORS)%\n", "* Site: %URL(paper, p=%NUMBER%, %AUTHORVIEWCAPABILITY%)%\n\n", @@ -721,11 +721,11 @@ "subject": "[%CONFSHORTNAME%] Rejected submission #%NUMBER% %TITLEHINT%", "body": [ "Dear author(s),\n\n", - "The %CONFNAME% program committee is sorry to inform you that your submission #%NUMBER% was rejected, and will not appear in the conference.\n\n", + "The %CONFNAME% program committee is sorry to inform you that your submission #%NUMBER% was rejected, and will not appear in the program.\n\n", "* Title: %TITLE%\n", "* Author(s): %OPT(AUTHORS)%\n", "* Site: %URL(paper, p=%NUMBER%, %AUTHORVIEWCAPABILITY%)%\n\n", - "%NUMACCEPTED% papers were accepted out of %NUMSUBMITTED% submissions.\n\n", + "%NUMACCEPTED% applications were accepted out of %NUMSUBMITTED% submissions.\n\n", "Visit the submission site for reviews, comments, and related information. Reviews and comments are also included below.\n\n", "Contact %ADMIN% with any questions or concerns.\n\n", "%SIGNATURE%\n\n", diff --git a/etc/msgs.json b/etc/msgs.json index 5e8dc7da4..dd7257198 100644 --- a/etc/msgs.json +++ b/etc/msgs.json @@ -17,7 +17,7 @@ ["You can’t register submission #%d yet.", "You can’t register submissions yet.", ["$1<0"]], ["You can’t register submission #%d until %s.", "You can’t register submissions until %2$s.", ["$1<0"]], - ["%d papers accepted out of %d submitted.", "%d paper accepted out of %d submitted.", ["$1=1"]], + ["%d applications accepted out of %d submitted.", "%d application accepted out of %d submitted.", ["$1=1"]], ["%s review deadline", "Review deadline", ["!$1"]], ["%s reviews are requested by this deadline.", "Reviews are requested by this deadline.", ["!$1"]], ["%s review hard deadline", "Review hard deadline", ["!$1"]], @@ -159,19 +159,19 @@ ["mail", "Authors", "Author", ["$1=1"]], - ["resp_instrux", "The authors’ response should address reviewer concerns and correct misunderstandings. Make it short and to the point; the conference deadline has passed."], - ["resp_instrux", "The authors’ response should address reviewer concerns and correct misunderstandings. Make it short and to the point; the conference deadline has passed. Try to stay within {wordlimit} words.", ["{wordlimit}>0"]], + ["resp_instrux", "The authors’ response should address reviewer concerns and correct misunderstandings. Make it short and to the point; the program deadline has passed."], + ["resp_instrux", "The authors’ response should address reviewer concerns and correct misunderstandings. Make it short and to the point; the program deadline has passed. Try to stay within {wordlimit} words.", ["{wordlimit}>0"]], {"id": "conflictdef", "itext": "This includes past advisors and students, people with the same affiliation, and any recent (~2 years) coauthors and collaborators.", "template": true}, - {"id": "finalsubmit", "itext": "Congratulations! The paper has been accepted. Update the paper’s final version here. {deadline} You may also edit paper contacts, allowing others to view reviews and make changes."}, + {"id": "finalsubmit", "itext": "Congratulations! The application has been accepted. Update the application’s final version here. {deadline} You may also edit application contacts, allowing others to view reviews and make changes."}, - {"id": "revprefdescription", "itext": "
A review preference is a small integer that indicates how much you want to review a submission. Positive numbers mean you want to review, negative numbers mean you don’t, and −100 means you think you have a conflict. −20 to 20 is a typical range for real preferences; multiple submissions can have the same preference. The automatic assignment algorithm attempts to assign reviews in descending preference order. Different users’ preference values are not compared and need not use the same scale.
\n\nSelect a column heading to sort by that column. Enter preferences in the text boxes or on the paper pages. You may also upload preferences from a text file; see the “Download” and “Upload” links below the paper list.
", "format": 5}, - {"id": "revprefdescription", "itext": "A review preference is a small integer that indicates how much you want to review a submission. Positive numbers mean you want to review, negative numbers mean you don’t, and −100 means you think you have a conflict. −20 to 20 is a typical range for real preferences; multiple submissions can have the same preference. The automatic assignment algorithm attempts to assign reviews in descending preference order, using topic scores to break ties. Different users’ preference values are not compared and need not use the same scale.
\n\nThe list shows all submissions and their topics (high interest topics, low interest topics). “Topic score” summarizes your interest in the submission’s topics. Select a column heading to sort by that column. Enter preferences in the text boxes or on the paper pages. You may also upload preferences from a text file; see the “Download” and “Upload” links below the paper list.
", "require": ["$1"], "format": 5}, + {"id": "revprefdescription", "itext": "A review preference is a small integer that indicates how much you want to review a submission. Positive numbers mean you want to review, negative numbers mean you don’t, and −100 means you think you have a conflict. −20 to 20 is a typical range for real preferences; multiple submissions can have the same preference. The automatic assignment algorithm attempts to assign reviews in descending preference order. Different users’ preference values are not compared and need not use the same scale.
\n\nSelect a column heading to sort by that column. Enter preferences in the text boxes or on the application pages. You may also upload preferences from a text file; see the “Download” and “Upload” links below the application list.
", "format": 5}, + {"id": "revprefdescription", "itext": "A review preference is a small integer that indicates how much you want to review a submission. Positive numbers mean you want to review, negative numbers mean you don’t, and −100 means you think you have a conflict. −20 to 20 is a typical range for real preferences; multiple submissions can have the same preference. The automatic assignment algorithm attempts to assign reviews in descending preference order, using topic scores to break ties. Different users’ preference values are not compared and need not use the same scale.
\n\nThe list shows all submissions and their topics (high interest topics, low interest topics). “Topic score” summarizes your interest in the submission’s topics. Select a column heading to sort by that column. Enter preferences in the text boxes or on the application pages. You may also upload preferences from a text file; see the “Download” and “Upload” links below the application list.
", "require": ["$1"], "format": 5}, - ["external_review_request_description", "External reviewers may view their assigned papers. Before requesting an external review, you should generally check whether they are interested."], - ["external_review_request_description", "External reviewers may view their assigned papers, including other reviews and the eventual decision. Before requesting an external review, you should generally check whether they are interested.", ["setting.extrev_seerev>0"]], - ["external_review_request_description", "External reviewers may view their assigned papers, including other reviews and reviewer identities and the eventual decision. Before requesting an external review, you should generally check whether they are interested.", ["setting.extrev_seerev>0", "setting.extrev_seerevid>0"]], + ["external_review_request_description", "External reviewers may view their assigned applications. Before requesting an external review, you should generally check whether they are interested."], + ["external_review_request_description", "External reviewers may view their assigned applications, including other reviews and the eventual decision. Before requesting an external review, you should generally check whether they are interested.", ["setting.extrev_seerev>0"]], + ["external_review_request_description", "External reviewers may view their assigned applications, including other reviews and reviewer identities and the eventual decision. Before requesting an external review, you should generally check whether they are interested.", ["setting.extrev_seerev>0", "setting.extrev_seerevid>0"]], ["(%d more permissions have default values)", "(%d more permission has default value)", ["$1=1"]], diff --git a/etc/reviewformlibrary.json b/etc/reviewformlibrary.json index 4472a812f..56bfc646f 100644 --- a/etc/reviewformlibrary.json +++ b/etc/reviewformlibrary.json @@ -80,9 +80,9 @@ "type": "radio", "values": [ "Reject", - "Weak paper, though I will not fight strongly against it", - "OK paper, but I will not champion it", - "Good paper, I will champion it" + "Weak application, though I will not fight strongly against it", + "OK application, but I will not champion it", + "Good application, I will champion it" ], "start": "A", "required": true, @@ -94,11 +94,11 @@ "name": "Overall merit", "type": "radio", "values": [ - "Bottom 50% of submitted papers", - "Top 50% but not top 25% of submitted papers", - "Top 25% but not top 10% of submitted papers", - "Top 10% but not top 5% of submitted papers", - "Top 5% of submitted papers!" + "Bottom 50% of submitted applications", + "Top 50% but not top 25% of submitted applications", + "Top 25% but not top 10% of submitted applications", + "Top 10% but not top 5% of submitted applications", + "Top 5% of submitted applications!" ], "required": true, "visibility": "au" @@ -146,17 +146,17 @@ "scheme": "orbu" }, { - "selector": "Paper summary", - "name": "Paper summary", + "selector": "Application summary", + "name": "Application summary", "type": "text", - "description": "Please summarize the paper’s main results in your own words. This will frame the review and show that you have understood the paper’s intent.", + "description": "Please summarize the application’s main results in your own words. This will frame the review and show that you have understood the application’s intent.", "visibility": "au" }, { - "selector": "Paper summary (shorter description)", - "name": "Paper summary", + "selector": "Applications summary (shorter description)", + "name": "Application summary", "type": "text", - "description": "Please summarize the paper briefly in your own words.", + "description": "Please summarize the application briefly in your own words.", "visibility": "au" }, { @@ -224,14 +224,14 @@ "selector": "Strengths", "name": "Strengths", "type": "text", - "description": "What are the paper’s important strengths? Just a couple sentences, please.", + "description": "What are the application’s important strengths? Just a couple sentences, please.", "visibility": "au" }, { "selector": "Weaknesses", "name": "Weaknesses", "type": "text", - "description": "What are the paper’s important weaknesses? Just a couple sentences, please.", + "description": "What are the application’s important weaknesses? Just a couple sentences, please.", "visibility": "au" } ] diff --git a/etc/settinggroups.json b/etc/settinggroups.json index 0102b1c5f..c65bf5e43 100644 --- a/etc/settinggroups.json +++ b/etc/settinggroups.json @@ -1,13 +1,13 @@ [ { "name": "basics", "order": 0, "title": "Basics", - "description": "<0>Conference name, site contact, and email." + "description": "<0>Program name, site contact, and email." }, { "name": "info", "alias": "basics" }, { "name": "basics/names", "order": 10, "print_function": "Basics_SettingParser::print_names", - "title": "Conference information", + "title": "Program information", "settings": [ "conference_abbreviation", "conference_name", diff --git a/etc/settinginfo.json b/etc/settinginfo.json index 9e2df69cc..7937e1655 100644 --- a/etc/settinginfo.json +++ b/etc/settinginfo.json @@ -487,7 +487,7 @@ }, { "name": "review_self_assign", "storage": "pcrev_any", - "title": "PC can review any paper", + "title": "PC can review any application", "type": "checkbox", "initial_value": 1 }, { @@ -847,7 +847,7 @@ }, { "name_pattern": "format/$/papersize", - "title": "PDF format checker paper size", + "title": "PDF format checker application size", "type": "string", "size": 18, "placeholder": "any" }, { @@ -959,7 +959,7 @@ }, { "name": "tag_visibility_conflict", "storage": "tag_seeall", - "title": "PC can see tags for conflicted papers", + "title": "PC can see tags for conflicted applications", "type": "checkbox" }, { diff --git a/lib/createdb.sh b/lib/createdb.sh index d97871c67..5ea28481a 100755 --- a/lib/createdb.sh +++ b/lib/createdb.sh @@ -155,7 +155,7 @@ if ! $quiet && ! $batch && ! [ -n "$options_file" -a -f "$options_file" ]; then echo "* You are responsible for supporting this installation." 1>&2 echo "*" 1>&2 echo "* Supported installations are available at https://hotcrp.com/" 1>&2 - echo "* for a per-submission fee (ACM- and USENIX-sponsored conferences" 1>&2 + echo "* for a per-submission fee (ACM- and USENIX-sponsored programs" 1>&2 echo "* can take advantage of site-wide agreements)." 1>&2 echo 1>&2 while true; do @@ -202,9 +202,9 @@ fi if ! $batch; then if $dbuser_existing; then - echo "Creating the database for your conference." + echo "Creating the database for your program." else - echo "Creating the database and database user for your conference." + echo "Creating the database and database user for your program." fi if test -z "$granthosts"; then echo "* Access for the database user is allowed only from the local host." diff --git a/package.json b/package.json index 8c842e4b6..f6a1f5754 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "eslint": "^8.21.0" }, "name": "hotcrp", - "description": "HotCRP Conference Review Software", + "description": "HotCRP Application Review Software", "version": "3.0.0", "repository": { "type": "git", diff --git a/scripts/buzzer.js b/scripts/buzzer.js index 5c9a9daa7..fcb904cf9 100644 --- a/scripts/buzzer.js +++ b/scripts/buzzer.js @@ -211,7 +211,7 @@ function do_kiosk() { hc.push('Kiosk mode is a discussion status page with no other site privileges. It’s safe to leave a browser in kiosk mode open in the hallway.
'); hc.push('Kiosk mode will sign your browser out of the site. Do not use kiosk mode on your main browser.
'); hc.push('These URLs access kiosk mode directly:
'); - hc.push('Additional fields such as checkboxes, selectors, freeform text, and uploaded attachments. Checkbox fields might include “Consider - this paper for the Best Student Paper award” or “Provide this paper to the + this application for the Best Student Application award” or “Provide this application to the European shadow PC.” Attachment fields might include supplemental material. You can search for submissions with or without each field.
Consider checking ", $hth->search_link("the papers", ["q" => "", "t" => "all"]), + echo "
Consider checking ", $hth->search_link("the applications", ["q" => "", "t" => "all"]), " for anomalies. Withdraw and/or delete duplicates or update details on the ", - $hth->hotlink("paper pages", "paper"), " (via “Edit paper”). + $hth->hotlink("application applications", "paper"), " (via “Edit paper”). Also consider contacting the authors of ", $hth->search_link("incomplete submissions", ["q" => "status:unsub", "t" => "all"]), ", especially if a PDF document was uploaded; sometimes a @@ -101,7 +101,7 @@ static function print_assignments(HelpRenderer $hth, $gj) { echo "
Check for formatting violations (optional). ", $hth->hotlink("Search", "search", "q="), " > Download > Format check will download a summary report. Serious errors - are also shown on paper pages (problematic PDFs are distinguished by an + are also shown on application pages (problematic PDFs are distinguished by an “X”).
", $hth->setting_group_link("Set review policies and deadlines", "reviews"), ", including reviewing deadlines, - review anonymity, and whether PC members may review any paper + review anonymity, and whether PC members may review any application (usually “yes” is the right answer).
", $hth->setting_link("Prepare tracks (optional).", "track"), " Tracks give chairs fine-grained control over PC - members’ access rights for individual papers. Example situations calling for + members’ access rights for individual applications. Example situations calling for tracks include external review committees, PC-paper review committees, and - multi-track conferences.
", $hth->hotlink("Collect review preferences from the PC.", "reviewprefs"), " PC members can enter per-paper review preferences (also known as bids) to - mark papers they want or don’t want to review. Preferences are integers, typically + mark applications they want or don’t want to review. Preferences are integers, typically in the range −20 to 20; the higher the number, the more desired the review assignment. Users can either set their preferences ", $hth->hotlink("all at once", "reviewprefs"), ", or (often more - convenient) page through the ", $hth->search_link("list of submitted papers", ""), - " and set their preferences on the ", $hth->hotlink("paper pages", "paper"), ".
+ convenient) page through the ", $hth->search_link("list of submitted applications", ""), + " and set their preferences on the ", $hth->hotlink("application applications", "paper"), ".If desired, review preferences can be collected before the submission - deadline. Select ", $hth->setting_link("“PC can see all registered papers until submission deadline”", "draft_submission_early_visibility"), - ", which allows PC members to see abstracts for registered papers that haven’t yet + deadline. Select ", $hth->setting_link("“PC can see all registered applications until submission deadline”", "draft_submission_early_visibility"), + ", which allows PC members to see abstracts for registered applications that haven’t yet been submitted.
", $hth->hotlink("Assign reviews.", "manualassign"), " You can make assignments ", $hth->hotlink("by paper", "assign"), ", ", + echo "
", $hth->hotlink("Assign reviews.", "manualassign"), " You can make assignments ", $hth->hotlink("by application", "assign"), ", ", $hth->hotlink("by PC member", "manualassign"), ", ", $hth->hotlink("by uploading an assignment file", "bulkassign"), ", or, even easier, ", $hth->hotlink("automatically", "autoassign"), ". PC @@ -155,7 +155,7 @@ static function print_assignments(HelpRenderer $hth, $gj) {
The assignment pages apply to all submissions by default. You can also assign groups of submissions, such as ", - $hth->search_link("papers with fewer than three completed reviews", "cre:<3"), + $hth->search_link("applications with fewer than three completed reviews", "cre:<3"), ".
Chairs and system administrators can access any information stored in the -conference system, including reviewer identities for conflicted papers. +program system, including reviewer identities for conflicted applications. It is easiest to simply accept such conflicts as a fact of life. Chairs who can’t handle conflicts fairly shouldn’t be chairs. However, HotCRP does offer other mechanisms for conflicted reviews.
-First, each paper can be assigned a paper administrator: a PC member -who manages that paper’s reviewing and discussion. Use the left-hand side of a ", +
First, each application can be assigned a application administrator: a PC member +who manages that application’s reviewing and discussion. Use the left-hand side of a ", $hth->hotlink("submission’s assignment page", "assign"), " to enter its administrator. (You may need to “Override conflicts” to access the assignment page.) -Paper administrators have full privilege to assign and view reviews for their -papers, and can, for example, use the autoassignment tool, but they cannot change -conference settings. When a paper +Application administrators have full privilege to assign and view reviews for their +applications, and can, for example, use the autoassignment tool, but they cannot change +program settings. When a application has an administrator, chair conflicts cannot be overridden.
-Paper administrators make life easy for PC reviewers and greatly restrict +
Application administrators make life easy for PC reviewers and greatly restrict conflicted chairs’ access. Usually this suffices. For additional privacy, use review tokens, which are completely anonymous @@ -190,10 +190,10 @@ static function print_chair_conflicts(HelpRenderer $hth) { or email address. This reports the token, a short string of letters and numbers such as “9HDZYUB”. Any user who knows the token can enter it on HotCRP’s home page, after which the system lets them -view the paper and anonymously modify the corresponding “Jane Q. Public” +view the application and anonymously modify the corresponding “Jane Q. Public” review. True reviewer identities will not appear in HotCRP’s database or its logs. -For even more privacy, the paper administrator could collect +For even more privacy, the application administrator could collect offline review forms via email and upload them using review tokens; then even web server access logs store only the administrator’s identity.
\n\n"; @@ -218,17 +218,17 @@ static function print_premeeting(HelpRenderer $hth, $gj) { } else if ($gj->itemid === 2) { echo "Set ", $hth->setting_link("PC can see review contents", "review_visibility_pc"), " to “Yes” (optional). This opens up the reviews to the program committee, - allowing everyone to see scores and read reviews for non-conflicted papers. - (During most conferences’ review periods, a PC member can see a paper’s reviews - only after completing their own review for that paper.)
", $hth->search_link("Examine paper scores", "show:scores"),
+ echo " ", $hth->search_link("Examine application scores", "show:scores"),
", either one at a time or en masse, and decide
- which papers will be discussed. The ", $hth->help_link("tags", "tags"),
- " system can group papers and prepare discussion sets.
+ which applications will be discussed. The ", $hth->help_link("tags", "tags"),
+ " system can group applications and prepare discussion sets.
Use ", $hth->help_link("search keywords", "keywords"), " to, for example,
- find all papers with at least two overall merit ratings of 2 or better.
Assign discussion orders using ", $hth->help_link("tags", "tags#values"),
@@ -240,15 +240,15 @@ static function print_premeeting(HelpRenderer $hth, $gj) {
} else if ($gj->itemid === 5) {
echo " ", $hth->hotlink("Assign discussion leads (optional).", "autoassign"), " Discussion leads are expected to be able to
- summarize the paper and the reviews. You can assign leads either ",
- $hth->hotlink("paper by paper", "assign"), " or ",
+ summarize the application and the reviews. You can assign leads either ",
+ $hth->hotlink("application by application", "assign"), " or ",
$hth->hotlink("automatically", "autoassign"), ". ", $hth->setting_link("Define decision types (optional).", "decision"),
" By default, HotCRP has two decision types,
“accept” and “reject,” but you can add other types of acceptance and
- rejection, such as “accept as short paper.”
The night before the meeting, ", $hth->search_link("download all reviews onto a laptop", ""),
@@ -269,9 +269,9 @@ static function print_atmeeting(HelpRenderer $hth, $gj) {
} else if ($gj->itemid === 1) {
echo " The meeting tracker can keep the PC coordinated
by sharing your browser’s status.
- Search for papers in whatever order you like (you may want an explicit ",
+ Search for applications in whatever order you like (you may want an explicit ",
$hth->help_link("discussion order", "tags#values"), "),
- navigate to the first paper in
+ navigate to the first application in
the order, and select “☟” to activate the tracker in that tab.
As you use that tab to navigate through the order, its current
position is broadcast to all logged-in PC members’ browsers:
Paper decisions can be recorded on the ", - $hth->hotlink("paper pages", "review"), " or en masse via ", + echo "
Application decisions can be recorded on the ", + $hth->hotlink("application applications", "review"), " or en masse via ", $hth->search_link("search", ""), ". Use ", $hth->setting_link("decision settings", "decision_visibility_author"), " to expose decisions to PC members if desired.
Shepherding (optional). If your conference uses - shepherding for accepted papers, you can assign shepherds either ", - $hth->hotlink("paper by paper", "paper"), " or ", $hth->hotlink("automatically", "autoassign", "t=accepted"), ".
Shepherding (optional). If your program uses + shepherding for accepted applications, you can assign shepherds either ", + $hth->hotlink("application by application", "paper"), " or ", $hth->hotlink("automatically", "autoassign", "t=accepted"), ".
", $hth->setting_link("Collect final papers (optional).", "final_open"),
+ echo " ", $hth->setting_link("Collect final applications (optional).", "final_open"),
" If you’re putting together the program
yourself, it can be convenient to collect final versions using HotCRP.
Authors upload final versions just as they did submissions. You can then ",
diff --git a/src/help/h_developer.php b/src/help/h_developer.php
index 4407ed5ca..c02516c04 100644
--- a/src/help/h_developer.php
+++ b/src/help/h_developer.php
@@ -61,7 +61,7 @@ function print_usage() {
function print_settings() {
echo " The chair-only The The Program committee members and administrators can search and display formulas
-that calculate properties of paper scores—for instance, the
-standard deviation of papers’ Overall merit scores, or average Overall
+that calculate properties of application scores—for instance, the
+standard deviation of applications’ Overall merit scores, or average Overall
merit among reviewers with high Reviewer expertise. To display a formula, use a search term such as “",
$hth->search_link("show:var(OveMer)"), "” (show
-the variance in Overall merit scores, along with statistics for all papers).
+the variance in Overall merit scores, along with statistics for all applications).
You can also ", $hth->hotlink("graph formulas", "graph", "group=formula"), ".
To search for a formula, use a search term such as “",
$hth->search_link("formula:var(OveMer)>0.5"), "”
-(select papers with variance in Overall merit greater than 0.5).
+(select applications with variance in Overall merit greater than 0.5).
Or save formulas using ",
$hth->search_link("Search > View options", ["q" => "", "#" => "view"]),
" > Edit formulas. Aggregate functions calculate a
-value based on all of a paper’s reviews and/or review preferences.
+value based on all of a application’s reviews and/or review preferences.
For instance, “max(OveMer)” would return the maximum Overall merit score
-assigned to a paper.api/settings
endpoint accesses
-conference settings in ",
+program settings in ",
$this->hth->hotlink("JSON format", "help", ["t" => "jsonsettings"]) . ".
To modify settings, use the POST method and provide a JSON request body.
Examples:api/paper
endpoint accesses conference
+ echo "api/paper
endpoint accesses program
submissions. GET calls return paper information; use
-api/PAPERID/paper
to return one paper, and
-api/paper?q=SEARCH&t=SEARCHTYPE
to return all papers matching
+api/PAPERID/paper
to return one application, and
+api/paper?q=SEARCH&t=SEARCHTYPE
to return all applications matching
SEARCH
.
An aggregate function’s argument is calculated once per viewable review or preference. diff --git a/src/help/h_jsonsettings.php b/src/help/h_jsonsettings.php index 09b4d1215..a75e0b513 100644 --- a/src/help/h_jsonsettings.php +++ b/src/help/h_jsonsettings.php @@ -20,7 +20,7 @@ function print() { echo "
With ", $this->hth->setting_group_link("Settings > Advanced", "json"), ", administrators can configure site operation by modifying a JSON -specification. Advanced users can copy settings from one conference to +specification. Advanced users can copy settings from one program to another and configure aspects of the site not accessible via the normal settings UI.
"; @@ -107,11 +107,11 @@ class=\"language-json\">\"SETTINGNAME_reset\": false component to your\"delete\": true
to its object.Copying settings between conferences. Beware of IDs -when copying settings between conferences. Unless you are careful, the IDs -used in one conference may differ from the IDs in another. Consider removing -the IDs from a conference’s JSON settings before uploading those settings to -another conference.
Copying settings between programs. Beware of IDs +when copying settings between programs. Unless you are careful, the IDs +used in one program may differ from the IDs in another. Consider removing +the IDs from a program's JSON settings before uploading those settings to +another program.
Other common components in object lists include diff --git a/src/help/h_ranking.php b/src/help/h_ranking.php index 8140ab5dc..207b8930e 100644 --- a/src/help/h_ranking.php +++ b/src/help/h_ranking.php @@ -4,24 +4,24 @@ class Ranking_HelpTopic { static function print(HelpRenderer $hth) { - echo "
Paper ranking is a way to extract the PC’s preference order for -submitted papers. Each PC member ranks the submitted papers, and a voting + echo "
Application ranking is a way to extract the PC’s preference order for +submitted applications. Each PC member ranks the submitted applications, and a voting algorithm, the Schulze method by default, combines these rankings into a global preference order.
HotCRP supports ranking through ", $hth->help_link("tags", "tags"), ". The chair chooses a tag for ranking—“rank” is a good default—and enters it on ", $hth->setting_link("the settings page", "tag_rank"), ". -PC members then rank papers using their private versions of this tag, +PC members then rank applications using their private versions of this tag, tagging their first preference with “~rank#1”, their second preference with “~rank#2”, and so forth. To combine PC rankings into a global preference order, the PC -chair selects all papers on ", $hth->search_link("the search page", ""), +chair selects all applications on ", $hth->search_link("the search page", ""), " and chooses Tags > Calculate rank, entering “rank” for the tag. At that point, the global rank can be viewed by ", $hth->search_link("searching for “order:rank”", "order:rank"), ".
-PC members can enter rankings by reordering rows in a paper list. +
PC members can enter rankings by reordering rows in a application list. For example, for rank tag “rank”, PC members should ", $hth->search_link("search for “editsort:#~rank”", "editsort:#~rank"), ". Ranks can be entered directly in the text fields, or the rows can be dragged @@ -36,12 +36,12 @@ static function print(HelpRenderer $hth) { # Edit the rank order by rearranging this file's lines. # The first line has the highest rank. -# Lines that start with \"#\" are ignored. Unranked papers appear at the end +# Lines that start with \"#\" are ignored. Unranked applications appear at the end # in lines starting with \"X\", sorted by overall merit. Create a rank by # removing the \"X\"s and rearranging the lines. A line that starts with \"=\" -# marks a paper with the same rank as the preceding paper. A line that starts +# marks a application with the same rank as the preceding application. A line that starts # with \">>\", \">>>\", and so forth indicates a rank gap between the preceding -# paper and the current paper. When you are done, upload the file at +# application and the current application. When you are done, upload the file at # http://your.site.here.com/offline Tag: ~rank diff --git a/src/help/h_revround.php b/src/help/h_revround.php index f813e2fad..7c5c5cd45 100644 --- a/src/help/h_revround.php +++ b/src/help/h_revround.php @@ -4,7 +4,7 @@ class RevRound_HelpTopic { static function print(HelpRenderer $hth) { - echo "
Many conferences divide their review assignments into named rounds, + echo "
Many programs divide their review assignments into named rounds, such as “R1” or “lastround”. (We suggest very short names like “R1”.) Different review rounds can have different deadlines and can even have different fields on their review forms. diff --git a/src/help/h_search.php b/src/help/h_search.php index f323b7397..32ddbcb02 100644 --- a/src/help/h_search.php +++ b/src/help/h_search.php @@ -13,9 +13,9 @@ static function print(HelpRenderer $hth) { quicksearch box, this search will jump to #12 directly.
j
and k
also goes
- from paper to paper.You can search several categories, depending on your role in the -conference. Options include:
+program. Options include:Search won’t show you information you aren’t supposed to see. For example, -authors can only search their own submissions, and if the conference used +authors can only search their own submissions, and if the program used anonymous submission, then only the PC chairs can search by author.
By default, search examines titles, abstracts, and authors. ", @@ -56,32 +56,32 @@ static function print(HelpRenderer $hth) { echo $hth->subhead("Search results"); echo " -
Click on a paper number or title to jump to that paper. -Search matches are highlighted on paper screens. -Once on a paper screen use quicklinks +
Click on a application number or title to jump to that application. +Search matches are highlighted on application screens. +Once on a application screen use quicklinks to navigate through the rest of the search matches.
-Underneath the paper list is the action area:
+Underneath the application list is the action area:
" . Ht::img("exsearchaction.png", "[Search action area]") . "Use the checkboxes to select some papers, then choose an action. +
Use the checkboxes to select some applications, then choose an action. You can:
.zip
file with the selected papers..zip
file with the selected applications.Select papers one by one, select in groups by shift-clicking +
Select applications one by one, select in groups by shift-clicking the checkboxes, or use the “select all” link. -The easiest way to tag a set of papers is +The easiest way to tag a set of applications is to enter their numbers in the search box, search, “select all,” and add the tag.
"; @@ -90,13 +90,13 @@ static function print(HelpRenderer $hth) {Most screens have a quicksearch box in the upper right corner:
" . Ht::img("quicksearchex.png", "[Quicksearch box]") . "
This box supports the full search syntax. Enter
-a paper number, or search terms that match exactly
-one paper, to go directly to that paper.
Paper screens have quicklinks that step through search results:
+
Application screens have quicklinks that step through search results:
" . Ht::img("pageresultsex.png", "[Quicklinks]") . "
-Click on the search description (here, “Submitted papers search”) to return
+Click on the search description (here, “Submitted applications search”) to return
to the search results. On many pages, you can press “j
” or
-“k
” to go to the previous or next paper in the list.
k
” to go to the previous or next application in the list.";
}
}
diff --git a/src/help/h_tags.php b/src/help/h_tags.php
index 8bd1e5425..361494bbe 100644
--- a/src/help/h_tags.php
+++ b/src/help/h_tags.php
@@ -22,10 +22,10 @@ function print_intro() {
$conflictmsg = " and conflicted PC members";
}
- echo "PC members and administrators can attach tag names to papers. -It’s easy to change tags and to list all papers with a given tag, -and ordered tags preserve a particular paper order. -Tags also affect color highlighting in paper lists.
+ echo "PC members and administrators can attach tag names to applications. +It’s easy to change tags and to list all applications with a given tag, +and ordered tags preserve a particular application order. +Tags also affect color highlighting in application lists.
Tags are visible to the PC and hidden from authors$conflictmsg. Twiddle tags, with names like “#~tag”, are visible only to their creators. Tags @@ -36,7 +36,7 @@ function print_intro() { function print_finding() { $hth = $this->hth; echo $hth->subhead("Find tags", "find"); - echo "
A paper’s tags are shown like this on the paper page:
+ echo "A application’s tags are shown like this on the applications page:
To find all papers with tag “#discuss”:
+To find all applications with tag “#discuss”:
You can also search with “", $hth->search_link("show:tags"), "” to see each -paper’s tags, or “", $hth->search_link("show:#tagname"), "” to see a particular tag +application’s tags, or “", $hth->search_link("show:#tagname"), "” to see a particular tag as a column.
Tags are only shown to PC members and administrators. "; if ($this->user->isPC) { if ($this->conf->tag_seeall) { - echo "Currently PC members can see tags for any paper, including conflicts."; + echo "Currently PC members can see tags for any application, including conflicts."; } else { echo "They are hidden from conflicted PC members; for instance, if a PC member searches for a tag, the result will never include their conflicts."; } @@ -76,14 +76,14 @@ function print_changing() { echo $hth->subhead("Change tags", "change"); echo "
For one paper: Go to a paper page, click the +
For one application: Go to a application page, click the “", expander(true), "Tags” expander, and enter tags separated by spaces.
For many papers: ", $hth->hotlink("Search", "search"), -" for papers, select them, and use the action area underneath the -search list. Add adds tags to the selected papers, Remove removes -tags from the selected papers, and Define adds the tag to the selected -papers and removes it from all others.
+For many applications: ", $hth->hotlink("Search", "search"), +" for applications, select them, and use the action area underneath the +search list. Add adds tags to the selected applications, Remove removes +tags from the selected applications, and Define adds the tag to the selected +applications and removes it from all others.
", Ht::img("extagssearch.png", "[Setting tags on the search page]", ["width" => 510, "height" => 94]), "
", Ht::img("extagseditkw.png", "[Tag editing search keywords]", ["width" => 543, "height" => 133]), "
@@ -114,31 +114,31 @@ function print_values() { specific values with search terms like “", $hth->search_link("#discuss#2"), "” or “", $hth->search_link("#discuss>1"), "”. A search like “", $hth->search_link("order:#tagname"), "” selects -papers with the named tag and displays them ordered by that tag’s values. +applications with the named tag and displays them ordered by that tag’s values. -It’s common to assign increasing tag values to a set of papers. Do this +
It’s common to assign increasing tag values to a set of applications. Do this using the ", $hth->hotlink("search screen", "search"), ". Search for the -papers you want, sort them into the right order, select their checkboxes, and +applications you want, sort them into the right order, select their checkboxes, and choose Define order in the tag action area. If no sort gives what -you want, search for the desired paper numbers in order—for instance, +you want, search for the desired application numbers in order—for instance, “", $hth->search_link("4 1 12 9"), "”—then Select all and Define order.
Define order might assign values “#tag#1”, “#tag#3”, “#tag#6”, and “#tag#7” -to adjacent papers. The gaps make it harder to infer -conflicted papers’ positions. (Any given gap might or might not hold a -conflicted paper.) The Define gapless order action assigns +to adjacent applications. The gaps make it harder to infer +conflicted applications’ positions. (Any given gap might or might not hold a +conflicted application.) The Define gapless order action assigns strictly sequential values, like “#tag#1”, “#tag#2”, “#tag#3”, “#tag#4”. Define order is better for most purposes.
-To add new papers at the end of an existing discussion order, use Add to +
To add new applications at the end of an existing discussion order, use Add to order. To create an order by entering explicit positions and/or dragging -papers into order, use a search like “", $hth->search_link("editsort:#tagname"), "”.
+applications into order, use a search like “", $hth->search_link("editsort:#tagname"), "”.The ", $hth->hotlink("autoassigner", "autoassign", "a=discorder"), " -has special support for creating discussion orders. It tries to group papers +has special support for creating discussion orders. It tries to group applications with similar PC conflicts, which can make the meeting run smoother.
"; } @@ -146,12 +146,12 @@ function print_colors() { $hth = $this->hth; echo $hth->subhead("Colors", "colors"); echo "Tags “red”, “orange”, “yellow”, “green”, “blue”, “purple”, “gray”, and -“white” act as highlight colors. For example, papers tagged with “#red” will -appear red in paper lists (for people -who can see that tag). Tag a paper “#~red” to make it red only on your display. +“white” act as highlight colors. For example, applications tagged with “#red” will +appear red in application lists (for people +who can see that tag). Tag a application “#~red” to make it red only on your display. Other styles are available; try “#bold”, “#italic”, “#big”, “#small”, and “#dim”. The ", $hth->setting_link("settings page", "tag_style"), " can associate other tags -with colors so that, for example, “" . $hth->search_link("#reject") . "” papers appear +with colors so that, for example, “" . $hth->search_link("#reject") . "” applications appear gray.
\n"; } @@ -165,53 +165,53 @@ function print_example_r1reject() { echo "Skip low-ranked submissions. Mark low-ranked submissions with tag “#r1reject”, then ask the PC to " . $this->hth->search_link("search for “#r1reject”", "#r1reject") . ". PC members -can check the list for papers they’d like to discuss anyway. They can email -the chairs about such papers, or remove the tag themselves. (You might make +can check the list for applications they’d like to discuss anyway. They can email +the chairs about such applications, or remove the tag themselves. (You might make the “#r1reject” tag chair-only so an evil PC member couldn’t add it to a -high-ranked paper, but it’s usually better to trust the PC.)
\n"; +high-ranked application, but it’s usually better to trust the PC.)\n"; } function print_example_controversial() { - echo "Mark controversial papers that would benefit from additional review. + echo "
Mark controversial applications that would benefit from additional review. PC members could add the “#controversial” tag when the current reviewers disagree. A ", $this->hth->hotlink("search", "search", ["q" => "#controversial"]), " shows where the PC thinks more review is needed.
\n"; } function print_example_pcpaper() { - echo "Mark PC-authored papers for extra scrutiny. + echo "
Mark PC-authored applications for extra scrutiny. First, ", $this->hth->hotlink("search for PC members’ last names in author fields", "search", "t=s&qt=au"), ". - Check for accidental matches and select the papers with PC members as authors, then use the action area below the search list to add the tag “#pcpaper”. - A ", $this->hth->hotlink("search", "search", "t=s&q=-%23pcpaper"), " shows papers without PC authors.
\n"; + Check for accidental matches and select the applications with PC members as authors, then use the action area below the search list to add the tag “#pcpaper”. + A ", $this->hth->hotlink("search", "search", "t=s&q=-%23pcpaper"), " shows applications without PC authors.\n"; } function print_example_allotment() { $vt = $this->hth->example_tag("allotment"); - echo "Vote for papers. + echo "
Vote for applications. The chair can define tags used for allotment voting", $this->hth->current_tag_list("allotment"), ".", $this->hth->change_setting_link("tag_vote_allotment"), - " Each PC member is assigned an allotment of votes to distribute among papers. - For instance, if “#{$vt}” were a voting tag with an allotment of 10, then a PC member could assign 5 votes to a paper by adding the twiddle tag “#~{$vt}#5”. + " Each PC member is assigned an allotment of votes to distribute among applications. + For instance, if “#{$vt}” were a voting tag with an allotment of 10, then a PC member could assign 5 votes to a application by adding the twiddle tag “#~{$vt}#5”. The system automatically sums PC members’ votes into the public “#{$vt}” tag. - To search for papers by vote count, search for “", $this->hth->search_link("rorder:#$vt"), + To search for applications by vote count, search for “", $this->hth->search_link("rorder:#$vt"), "”. (", $this->hth->help_link("votetags"), ")
\n"; } function print_example_rank() { - echo "Rank papers. - Each PC member can set tags indicating their preference ranking for papers. - For instance, a PC member’s favorite paper would get tag “#~rank#1”, the next favorite “#~rank#2”, and so forth. + echo "
Rank applications. + Each PC member can set tags indicating their preference ranking for applications. + For instance, a PC member’s favorite application would get tag “#~rank#1”, the next favorite “#~rank#2”, and so forth. The chair can then combine these rankings into a global preference order using a Condorcet method. (", $this->hth->help_link("ranking"), ")
\n"; } function print_example_discuss() { echo "Define a discussion order. -Publishing the order lets PC members prepare to discuss upcoming papers. +Publishing the order lets PC members prepare to discuss upcoming applications. Define an ordered tag such as “#discuss”, then ask the PC to ", $this->hth->search_link("search for “order:#discuss”", "order:#discuss"), ". -The PC can now see the order and use quick links to go from paper to paper."; +The PC can now see the order and use quick links to go from application to application."; if ($this->user->isPC && !$this->conf->tag_seeall) { - echo " However, since PC members can’t see tags for conflicted papers, each PC member might see a different list.", $this->hth->change_setting_link("tag_visibility_conflict"); + echo " However, since PC members can’t see tags for conflicted applications, each PC member might see a different list.", $this->hth->change_setting_link("tag_visibility_conflict"); } echo "
\n"; } diff --git a/src/help/h_votetags.php b/src/help/h_votetags.php index d64276890..b493ffa41 100644 --- a/src/help/h_votetags.php +++ b/src/help/h_votetags.php @@ -5,12 +5,12 @@ class VoteTags_HelpTopic { static function print(HelpRenderer $hth) { $votetag = $hth->example_tag("allotment"); - echo "Some conferences have PC members vote for papers. In + echo "
Some programs have PC members vote for applications. In allotment voting, each PC member is assigned a vote allotment to -distribute among unconflicted papers; a PC member might assign one vote to one +distribute among unconflicted applications; a PC member might assign one vote to one submission and five to another. In approval voting, each PC member -can vote for as many papers as they like. The PC’s aggregated vote totals -might help determine which papers to discuss.
+can vote for as many applications as they like. The PC’s aggregated vote totals +might help determine which applications to discuss.HotCRP supports voting through ", $hth->help_link("tags", "tags"), ". The chair can ", $hth->setting_link("define a set of voting tags", "tag_vote_allotment"), @@ -27,9 +27,9 @@ static function print(HelpRenderer $hth) { updates the main “#vote” tag to reflect the total. (An error is reported when PC members exceed their allotment.)
-To see papers’ vote counts in a list, search for ", +
To see applications’ vote counts in a list, search for ", $hth->search_link("show:#$votetag"), -". To list the papers with votes, sorted by vote count (most votes first), +". To list the applications with votes, sorted by vote count (most votes first), search for ", $hth->search_link("rorder:#$votetag"), " or ", $hth->search_link("rorder:#$votetag show:#$votetag"), ".
diff --git a/src/listaction.php b/src/listaction.php index ab291203f..e0ff55e76 100644 --- a/src/listaction.php +++ b/src/listaction.php @@ -98,7 +98,7 @@ static private function do_call($name, Contact $user, Qrequest $qreq, $selection if (!$uf || !Conf::xt_resolve_require($uf) || !is_string($uf->function)) { return JsonResult::make_error(404, "<0>Action not found"); } else if (($uf->paper ?? false) && $selection->is_empty()) { - return JsonResult::make_error(400, "<0>No papers selected"); + return JsonResult::make_error(400, "<0>No applications selected"); } else if ($uf->function[0] === "+") { $class = substr($uf->function, 1); /** @phan-suppress-next-line PhanTypeExpectedObjectOrClassName */ @@ -150,7 +150,7 @@ static function pcassignments_csv_data(Contact $user, $pids) { $texts[] = []; $texts[] = ["paper" => $prow->paperId, "action" => "none", - "title" => "You cannot override your conflict with this paper"]; + "title" => "You cannot override your conflict with this application"]; } else { $any_this_paper = false; foreach ($prow->reviews_as_display() as $rrow) { diff --git a/src/mailrecipients.php b/src/mailrecipients.php index c0e886a4a..373291ffd 100644 --- a/src/mailrecipients.php +++ b/src/mailrecipients.php @@ -144,8 +144,8 @@ private function enumerate_recipients() { if ($user->is_manager()) { $this->recipt_default_message = "authors"; $hide = !$this->conf->has_any_submitted(); - $this->defsel("s", "Contact authors of submitted papers", $hide ? self::F_HIDE : 0); - $this->defsel("unsub", "Contact authors of unsubmitted papers"); + $this->defsel("s", "Contact authors of submitted applications", $hide ? self::F_HIDE : 0); + $this->defsel("unsub", "Contact authors of unsubmitted applications"); $this->defsel("au", "All contact authors"); $this->dcounts(); @@ -156,10 +156,10 @@ private function enumerate_recipients() { $this->defsel("dec:{$dec->name}", "Contact authors of " . $dec->name_as(5) . " papers", $hide ? self::F_HIDE : 0); } } - $this->defsel("dec:yes", "Contact authors of accept-class papers", $this->_has_dt[2] ? 0 : self::F_HIDE); - $this->defsel("dec:no", "Contact authors of reject-class papers", $this->_has_dt[0] ? 0 : self::F_HIDE); - $this->defsel("dec:none", "Contact authors of undecided papers", $this->_has_dt[1] && ($this->_has_dt[0] || $this->_has_dt[2]) ? 0 : self::F_HIDE); - $this->defsel("dec:any", "Contact authors of decided papers", self::F_HIDE); + $this->defsel("dec:yes", "Contact authors of accept-class applications", $this->_has_dt[2] ? 0 : self::F_HIDE); + $this->defsel("dec:no", "Contact authors of reject-class applications", $this->_has_dt[0] ? 0 : self::F_HIDE); + $this->defsel("dec:none", "Contact authors of undecided applications", $this->_has_dt[1] && ($this->_has_dt[0] || $this->_has_dt[2]) ? 0 : self::F_HIDE); + $this->defsel("dec:any", "Contact authors of decided applications", self::F_HIDE); $this->defsel("bydec_group_end", null, self::F_GROUP); $this->recipt_default_message = "reviewers"; diff --git a/src/multiconference.php b/src/multiconference.php index cb6c5eb51..142c88d82 100644 --- a/src/multiconference.php +++ b/src/multiconference.php @@ -169,9 +169,9 @@ static private function make_qrequest() { /** @return string */ static private function nonexistence_error() { if (PHP_SAPI === "cli") { - return "Conference not specified. Use `-n CONFID` to specify a conference."; + return "Program not specified. Use `-n CONFID` to specify a program."; } else { - return "Conference not specified."; + return "Program not specified."; } } @@ -208,7 +208,7 @@ static function fail_bad_options() { } }, $missing)); } else if ($invalid) { - $errors[] = "Invalid conference specified with `-n`."; + $errors[] = "Invalid program specified with `-n`."; } else if ($multiconference && $confid === "__nonexistent__") { $errors[] = self::nonexistence_error(); } else { @@ -218,7 +218,7 @@ static function fail_bad_options() { if (!($Opt["loaded"] ?? null)) { $main_options = defined("HOTCRP_OPTIONS") ? HOTCRP_OPTIONS : SiteLoader::$root . "/conf/options.php"; if (!file_exists($main_options)) { - $errors[] = "HotCRP has been installed, but not yet configured. You must run `lib/createdb.sh` to create a database for your conference. See `README.md` for further guidance."; + $errors[] = "HotCRP has been installed, but not yet configured. You must run `lib/createdb.sh` to create a database for your program. See `README.md` for further guidance."; } else { $errors[] = "HotCRP was unable to load. A system administrator must fix this problem."; } @@ -226,7 +226,7 @@ static function fail_bad_options() { $errors[] = self::nonexistence_error(); } else { if ($multiconference) { - $errors[] = "The “{$confid}” conference does not exist. Check your URL to make sure you spelled it correctly."; + $errors[] = "The “{$confid}” program does not exist. Check your URL to make sure you spelled it correctly."; } if (!empty($missing)) { $errors[] = "Unable to load " . plural_word(count($missing), "configuration file") . " " . commajoin($missing) . "."; @@ -252,7 +252,7 @@ static function fail_bad_database() { if ($multiconference && $confid === "__nonexistent__") { $errors[] = self::nonexistence_error(); } else if ($multiconference) { - $errors[] = "The “{$confid}” conference does not exist. Check your URL to make sure you spelled it correctly."; + $errors[] = "The “{$confid}” program does not exist. Check your URL to make sure you spelled it correctly."; } else { $errors[] = "HotCRP was unable to connect to its database. A system administrator must fix this problem."; if (defined("HOTCRP_TESTHARNESS")) { diff --git a/src/pages/p_adminhome.php b/src/pages/p_adminhome.php index d51aadd17..59a692022 100644 --- a/src/pages/p_adminhome.php +++ b/src/pages/p_adminhome.php @@ -31,7 +31,7 @@ static function print(Contact $user) { if (($row = $result->fetch_row()) && $row[1] < $max_file_size && !$conf->opt("dbNoPapers")) { - $ml[] = new MessageItem(null, "<5>MySQL’smax_allowed_packet
setting, which is " . htmlspecialchars($row[1]) . " bytes, is less than the PHP upload file limit, which is {$max_file_size} bytes. You should update max_allowed_packet
in the system-wide my.cnf
file or the system may not be able to handle large papers", MessageSet::URGENT_NOTE);
+ $ml[] = new MessageItem(null, "<5>MySQL’s max_allowed_packet
setting, which is " . htmlspecialchars($row[1]) . " bytes, is less than the PHP upload file limit, which is {$max_file_size} bytes. You should update max_allowed_packet
in the system-wide my.cnf
file or the system may not be able to handle large applications", MessageSet::URGENT_NOTE);
}
if ($max_file_size < ini_get_bytes(null, "10M")
&& $max_file_size < $conf->upload_max_filesize()) {
@@ -58,14 +58,14 @@ static function print(Contact $user) {
}
// Conference names
if ($conf->opt("shortNameDefaulted")) {
- $ml[] = new MessageItem(null, "<5>hoturl("settings", "group=basics") . "\">Set the conference abbreviation to a short name for your conference, such as “OSDI ’14”", MessageSet::WARNING_NOTE);
+ $ml[] = new MessageItem(null, "<5>hoturl("settings", "group=basics") . "\">Set the program abbreviation to a short name for your program, such as “OSDI ’14”", MessageSet::WARNING_NOTE);
} else if (simplify_whitespace($conf->short_name) != $conf->short_name) {
- $ml[] = new MessageItem(null, "<5>The hoturl("settings", "group=basics") . "\">conference abbreviation setting has a funny value. To fix it, remove leading and trailing spaces, use only space characters (no tabs or newlines), and make sure words are separated by single spaces (never two or more)", MessageSet::WARNING);
+ $ml[] = new MessageItem(null, "<5>The hoturl("settings", "group=basics") . "\">program abbreviation setting has a funny value. To fix it, remove leading and trailing spaces, use only space characters (no tabs or newlines), and make sure words are separated by single spaces (never two or more)", MessageSet::WARNING);
}
// Site contact
$site_contact = $conf->site_contact();
if (!$site_contact->email || $site_contact->email == "you@example.com") {
- $ml[] = new MessageItem(null, "<5>hoturl("settings", "group=basics") . "\">Set the conference contact’s name and email so submitters can reach someone if things go wrong", MessageSet::URGENT_NOTE);
+ $ml[] = new MessageItem(null, "<5>hoturl("settings", "group=basics") . "\">Set the program contact’s name and email so submitters can reach someone if things go wrong", MessageSet::URGENT_NOTE);
}
// Can anyone view submissions?
if ($conf->has_tracks()) {
@@ -81,7 +81,7 @@ static function print(Contact $user) {
// Any -100 preferences around?
$result = PrefConflict_Autoassigner::query_result($conf, true);
if (($row = $result->fetch_row())) {
- $ml[] = new MessageItem(null, '<5>PC members have indicated paper conflicts (using review preferences of −100 or less) that aren’t yet confirmed. Confirm these conflicts', MessageSet::MARKED_NOTE);
+ $ml[] = new MessageItem(null, '<5>PC members have indicated application conflicts (using review preferences of −100 or less) that aren’t yet confirmed. Confirm these conflicts', MessageSet::MARKED_NOTE);
}
// Weird URLs?
foreach (["conferenceSite", "paperSite"] as $k) {
diff --git a/src/pages/p_autoassign.php b/src/pages/p_autoassign.php
index f9221cdcd..2814ff417 100644
--- a/src/pages/p_autoassign.php
+++ b/src/pages/p_autoassign.php
@@ -200,9 +200,9 @@ private function print_review_actions() {
["size" => 3, "class" => $this->ms->control_class("review:count", "js-autosubmit")]),
" additional ",
Ht::select("review:rtype", ["primary" => "primary", "secondary" => "secondary", "optional" => "optional", "metareview" => "metareview"], $qreq["review:type"]),
- " review(s) per selected paper\n";
+ " review(s) per selected application\n";
- $this->print_radio_row("a", "review_ensure", "Ensure each selected paper has at least", ["open" => true]);
+ $this->print_radio_row("a", "review_ensure", "Ensure each selected application has at least", ["open" => true]);
echo " ",
Ht::entry("review_ensure:count", $qreq["review_ensure:count"] ?? 1,
["size" => 3, "class" => $this->ms->control_class("review_ensure:count", "js-autosubmit")]), " ",
@@ -215,7 +215,7 @@ private function print_review_actions() {
["size" => 3, "class" => $this->ms->control_class("review_per_pc:count", "js-autosubmit")]),
" additional ",
Ht::select("review_per_pc:rtype", ["primary" => "primary", "secondary" => "secondary", "optional" => "optional", "metareview" => "metareview"], $qreq["review_per_pc:rtype"]),
- " review(s) from this paper selection";
+ " review(s) from this application selection";
// Review round
$rev_rounds = $this->conf->round_selector_options(null);
@@ -243,7 +243,7 @@ private function print_conflict_actions() {
$this->print_radio_row("a", "prefconflict", "Assign conflicts when PC members have review preferences of −100 or less");
$this->print_radio_row("a", "clear", "Clear all ", ["open" => true]);
echo Ht::select("clear:type", ["primary" => "primary", "secondary" => "secondary", "optional" => "optional", "metareview" => "metareview", "conflict" => "conflict", "lead" => "discussion lead", "shepherd" => "shepherd"], $this->qreq["clear:type"]),
- " assignments for selected papers and PC members\n";
+ " assignments for selected applications and PC members\n";
}
private function print_lead_actions() {
@@ -261,7 +261,7 @@ private function print_discussion_actions() {
$this->print_radio_row("a", "discussion_order", "Create discussion order in tag #", ["open" => true]);
echo Ht::entry("discussion_order:tag", $this->qreq["discussion_order:tag"] ?? "discuss",
["size" => 12, "class" => $this->ms->control_class("discussion_order:tag", "js-autosubmit")]),
- ", grouping papers with similar PC conflicts";
+ ", grouping applications with similar PC conflicts";
}
private function bp_selector($i, $which) {
@@ -284,7 +284,7 @@ private function print_bad_pairs() {
echo 'For example, this file clears existing R1 review assignments for papers + echo "
For example, this file clears existing R1 review assignments for applications tagged #redo, then assigns two primary reviews for submission #1 and one secondary review for submission #2:
-paper,action,email,round +application,action,email,round #redo,clearreview,all,R1 1,primary,man@alice.org 2,secondary,slugger@manny.com @@ -231,7 +231,7 @@ function print() { Assignment methods:
%URL%
%NUMSUBMITTED%
%NUMACCEPTED%
%NAME%
%FIRST%
, %LAST%
%NUMBER%
%TITLE%
%TITLEHINT%
%OPT(AUTHORS)%
%', htmlspecialchars($opts[0]->search_keyword()), '%
%' . htmlspecialchars($o->search_keyword()) . '%
';
}, array_slice($opts, 1))), '.';
}
echo "%IF(", htmlspecialchars($opts[0]->search_keyword()), ')%...%ENDIF%
%REVIEWS%
%COMMENTS%
%COMMENTS(tag)%
tag
, if any.%IF(#tag)%...%ENDIF%
tag
.tag
.%TAGVALUE(tag)%
tag
.tag
.', $user->conf->_("You are already signed in as %s. Use this form to add another account to this browser session.", commajoin($links)), '
'; } - if (($t = $user->conf->_("Sign in to submit or review papers.")) !== "") { + if (($t = $user->conf->_("Sign in to submit or review applications.")) !== "") { echo '', $t, '
'; } } @@ -505,7 +505,7 @@ function reset_request(Contact $user, Qrequest $qreq) { self::bad_post_error($user, $qreq, "resetpassword"); } } else if ($this->_reset_token) { - $this->ms()->error_at("resetcap", "This password reset code refers to a user who no longer exists. Either create a new account or contact the conference administrator."); + $this->ms()->error_at("resetcap", "This password reset code refers to a user who no longer exists. Either create a new account or contact the program administrator."); } } private function reset_valid_post_request(Contact $user, Qrequest $qreq) { diff --git a/src/pages/p_users.php b/src/pages/p_users.php index 6def2e3e1..2bca1a2ec 100644 --- a/src/pages/p_users.php +++ b/src/pages/p_users.php @@ -49,22 +49,22 @@ function __construct(Contact $viewer, Qrequest $qreq) { if ($viewer->is_manager() || ($viewer->isPC && $this->conf->submission_blindness() !== Conf::BLIND_ALWAYS)) { - $this->limits["au"] = "Contact authors of submitted papers"; + $this->limits["au"] = "Contact authors of submitted applications"; } if ($viewer->is_manager() || ($viewer->isPC && $viewer->can_view_some_decision() && $viewer->can_view_some_authors())) { - $this->limits["auacc"] = ["label" => "Contact authors of accepted papers", "exclude" => !$this->conf->has_any_accepted()]; + $this->limits["auacc"] = ["label" => "Contact authors of accepted applications", "exclude" => !$this->conf->has_any_accepted()]; } if ($viewer->is_manager() || ($viewer->isPC && $viewer->can_view_some_decision() && $this->conf->submission_blindness() !== Conf::BLIND_ALWAYS)) { - $this->limits["aurej"] = "Contact authors of rejected papers"; + $this->limits["aurej"] = "Contact authors of rejected applications"; } if ($viewer->is_manager()) { - $this->limits["auuns"] = "Contact authors of non-submitted papers"; + $this->limits["auuns"] = "Contact authors of non-submitted applications"; } if ($viewer->privChair) { $this->limits["all"] = "Active users"; diff --git a/src/paperlist.php b/src/paperlist.php index b0f8e956b..018d4afbf 100644 --- a/src/paperlist.php +++ b/src/paperlist.php @@ -2028,7 +2028,7 @@ private function _table_render() { $this->_view_kanban = false; } if ($this->count === 0) { - return PaperListTableRender::make_error("No matching papers"); + return PaperListTableRender::make_error("No matching applications"); } // analyze `has`, including authors diff --git a/src/paperoption.php b/src/paperoption.php index 0853a7eaf..1221310ab 100644 --- a/src/paperoption.php +++ b/src/paperoption.php @@ -30,7 +30,7 @@ function __construct(Conf $conf) { function _add_json($oj, $k) { if (!isset($oj->id) && $k === 0) { - throw new ErrorException("This conference could not be upgraded from an old database schema. A system administrator must fix this problem."); + throw new ErrorException("This program could not be upgraded from an old database schema. A system administrator must fix this problem."); } if (is_string($oj->id) && is_numeric($oj->id)) { // XXX backwards compat $oj->id = intval($oj->id); diff --git a/src/papertable.php b/src/papertable.php index 8053c36bb..1fe662e10 100644 --- a/src/papertable.php +++ b/src/papertable.php @@ -1693,7 +1693,7 @@ private function papstrip_rank($tag) { "id" => "tag:~{$tag} {$this->prow->paperId}"]), ' ', ' "editsort:#~{$tag}"]), '">Edit all', - '" . htmlspecialchars(rtrim($line)) . "
” with “==+== " . htmlspecialchars($this->conf->short_name) . " " . $m[2] . "
” and upload again.)", self::INFORM);
return false;
} else if (preg_match('/\A==\+== Begin Review/i', $line)) {
diff --git a/src/settings/s_banal.php b/src/settings/s_banal.php
index 50378710e..0acca8443 100644
--- a/src/settings/s_banal.php
+++ b/src/settings/s_banal.php
@@ -46,7 +46,7 @@ static function print($id, $sv) {
Ht::hidden("format/{$ctr}/id", $id);
$sv->print_checkbox("format/{$ctr}/active", "PDF format checker:", ["class" => "uich js-foldup", "group_class" => "form-g has-fold " . ($open ? "foldo" : "foldc"), "group_open" => true]);
echo '" . htmlspecialchars($cf->banal_stderr) . "
\$Opt[\"banalZoom\"]
to 1.)");
}
@@ -175,7 +175,7 @@ static function parse($sv, $ctr, $check) {
if ($ss !== "" && ($d = FormatSpec::parse_dimen2($ss))) {
$cfs->papersize[] = $d;
} else if ($ss !== "") {
- $sv->error_at("format/{$ctr}/papersize", "<0>Invalid paper size");
+ $sv->error_at("format/{$ctr}/papersize", "<0>Invalid application size");
$problem = true;
$sout = null;
break;
@@ -244,7 +244,7 @@ static function parse($sv, $ctr, $check) {
if (preg_match('/^(.*\S)\s+mar(gins?)?/i', $s, $m)) {
$s = $m[1];
if (!$cfs->papersize || count($cfs->papersize) !== 1) {
- $sv->error_at("format/{$ctr}/papersize", "<0>You must specify a paper size as well as margins");
+ $sv->error_at("format/{$ctr}/papersize", "<0>You must specify a application size as well as margins");
$sv->error_at("format/{$ctr}/textblock");
$problem = true;
} else {
diff --git a/src/settings/s_review.php b/src/settings/s_review.php
index 16d5431df..3e9f64102 100644
--- a/src/settings/s_review.php
+++ b/src/settings/s_review.php
@@ -161,7 +161,7 @@ private static function print_round($sv, $ctr, $round_map) {
static function print_rounds(SettingValues $sv) {
Icons::stash_defs("trash");
- echo 'Reviews are due by the deadline, but cannot be modified after the hard deadline. Most conferences don’t use hard deadlines for reviews.
', + echo 'Reviews are due by the deadline, but cannot be modified after the hard deadline. Most programs don’t use hard deadlines for reviews.
', '', $sv->type_hint("date"), '
', Ht::hidden("has_review", 1), Ht::unstash(); diff --git a/src/userstatus.php b/src/userstatus.php index 7a23e5fef..965835161 100644 --- a/src/userstatus.php +++ b/src/userstatus.php @@ -1547,8 +1547,8 @@ static function print_topics(UserStatus $us) { return; } $us->cs()->add_section_class("w-text fx1")->print_start_section("Topic interests"); - echo 'Please indicate your interest in reviewing papers on these conference -topics. We use this information to help match papers to reviewers.
', + echo 'Please indicate your interest in reviewing applications on these program +topics. We use this information to help match applications to reviewers.
', Ht::hidden("has_ti", 1), $us->feedback_html_at("ti"), '