@@ -4608,9 +4608,11 @@ function make_expander_element(foldnum) {
46084608 function mksvgp(d) {
46094609 return $svg("svg", {class: "licon", width: "0.75em", height: "0.75em", viewBox: "0 0 16 16", preserveAspectRatio: "none"}, $svg("path", {d: d}));
46104610 }
4611+ let fx = foldnum == null ? "" : " fx" + foldnum,
4612+ fn = foldnum == null ? "" : " fn" + foldnum;
46114613 return $e("span", "expander",
4612- $e("span", "in0 fx " + foldnum , mksvgp("M1 1L8 15L15 1z")),
4613- $e("span", "in1 fn " + foldnum , mksvgp("M1 1L15 8L1 15z")));
4614+ $e("span", "in0" + fx , mksvgp("M1 1L8 15L15 1z")),
4615+ $e("span", "in1" + fn , mksvgp("M1 1L15 8L1 15z")));
46144616}
46154617
46164618
@@ -6473,13 +6475,17 @@ function render_ratings(ratings, user_rating, editable) {
64736475 } else {
64746476 ex = $e("div", "revrating", ...es);
64756477 }
6476- return $e("div", "revcard-rating fx20 ", ex);
6478+ return $e("div", "revcard-rating", ex);
64776479}
64786480
6479- function make_review_h2(rrow, rlink, rdesc) {
6481+ function make_review_h2(rrow, rlink, rdesc, rid ) {
64806482 let h2 = $e("h2"), ma, rd = $e("span");
64816483 if (rrow.collapsed) {
6482- ma = $e("button", {type: "button", class: "qo ui js-foldup", "data-fold-target": 20}, make_expander_element(20));
6484+ ma = $e("button", {
6485+ type: "button", class: "qo ui js-foldup expander",
6486+ "aria-controls": `r${rid}-body`, "aria-expanded": "false"
6487+ });
6488+ ma.append(make_expander_element());
64836489 } else {
64846490 ma = $e("a", {href: hoturl("review", rlink), class: "qo"});
64856491 }
@@ -6556,61 +6562,70 @@ hotcrp.add_review = function (rrow) {
65566562
65576563 const earticle = document.createElement("article");
65586564 earticle.id = "r" + rid;
6559- earticle.className = "pcard revcard " + (rrow.subreview || rrow.draft ? "" : "revsubmitted ") + "need-anchor-unfold has-fold fold20" + (rrow.collapsed ? "c" : "o") ;
6565+ earticle.className = "pcard revcard " + (rrow.subreview || rrow.draft ? "" : "revsubmitted ") + "need-anchor-unfold" ;
65606566 earticle.setAttribute("data-pid", rrow.pid);
65616567 earticle.setAttribute("data-rid", rrow.rid);
6562- rrow.ordinal && earticle.setAttribute("data-review-ordinal", rrow.ordinal);
6563- $(".pcontainer")[0].appendChild(earticle);
6568+ if (rrow.ordinal) {
6569+ earticle.setAttribute("data-review-ordinal", rrow.ordinal);
6570+ }
65646571
65656572 // header
6566- const eheader = $e("header", "revcard-head", make_review_h2(rrow, rlink, rdesc));
6573+ const eheader = $e("header", "revcard-head",
6574+ make_review_h2(rrow, rlink, rdesc, rid));
65676575 append_review_id(rrow, eheader);
65686576 eheader.appendChild($e("hr", "c"));
6569- earticle.appendChild(eheader);
65706577
6571- // messages
6578+ // body
6579+ const ebody = document.createElement("div");
6580+ ebody.id = `r${rid}-body`;
6581+ if (rrow.collapsed) {
6582+ ebody.hidden = true;
6583+ earticle.setAttribute("aria-expanded", "false");
6584+ }
6585+
65726586 if (rrow.message_list) {
6573- earticle .appendChild($e("div", "revcard-feedback fx20 ", feedback.render_list(rrow.message_list)));
6587+ ebody .appendChild($e("div", "revcard-feedback", feedback.render_list(rrow.message_list)));
65746588 }
65756589
65766590 // body
6577- let e = $e("div", "revcard-render fx20 ");
6578- earticle .appendChild(e);
6591+ let e = $e("div", "revcard-render");
6592+ ebody .appendChild(e);
65796593 render_review_body_in(rrow, e);
65806594
65816595 // hidden fields, if any
65826596 if (rrow.hidden_fields && rrow.hidden_fields.length > 0) {
6583- earticle .appendChild(render_review_hidden_fields(rrow.hidden_fields));
6597+ ebody .appendChild(render_review_hidden_fields(rrow.hidden_fields));
65846598 }
65856599
65866600 // ratings
65876601 if ((e = render_ratings(rrow.ratings, rrow.user_rating, "user_rating" in rrow))) {
6588- earticle .appendChild(e);
6602+ ebody .appendChild(e);
65896603 }
65906604
65916605 // complete render
6606+ earticle.append(eheader, ebody);
6607+ document.querySelector(".pcontainer").append(earticle);
65926608 score_header_tooltips($(earticle));
65936609 navsidebar.set("r" + rid, rdesc);
65946610};
65956611
65966612function render_review_hidden_fields(hidden_fields) {
6597- var i, n = [], link ;
6598- for (i = 0; i !== hidden_fields.length; ++i) {
6599- var f = formj[hidden_fields[i]];
6613+ let n = [];
6614+ for (let i = 0; i !== hidden_fields.length; ++i) {
6615+ let f = formj[hidden_fields[i]];
66006616 n.push(f.name);
66016617 }
6602- link = $e("a");
6618+ const link = $e("a");
66036619 link.href = hoturl("settings", {group: "reviewform", "#": "rf/" + formj[hidden_fields[0]].order});
66046620 if (!hotcrp.status.is_admin) {
66056621 link.className = "q";
66066622 }
66076623 if (n.length === 1) {
66086624 link.textContent = "field condition";
6609- return $e("p", "feedback is-warning mt-3", "This review’s ".concat(n[0], " field has been hidden by a "), link, ".");
6610- } else {
6611- link.textContent = "field conditions";
6612- return $e("p", "feedback is-warning mt-3", "This review’s ".concat(commajoin(n), " fields have been hidden by "), link, ".");
6625+ return $e("p", "feedback is-warning mt-3", `This review’s ${n[0]} field has been hidden by a `, link, ".");
66136626 }
6627+ link.textContent = "field conditions";
6628+ return $e("p", "feedback is-warning mt-3", `This review’s ${commajoin(n)} fields have been hidden by `, link, ".");
66146629}
66156630
66166631
0 commit comments