Skip to content

Commit e0c14cb

Browse files
DOC-5064 added checklist storage
1 parent 665c463 commit e0c14cb

File tree

2 files changed

+72
-30
lines changed

2 files changed

+72
-30
lines changed

content/develop/clients/jedis/produsage.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ progress in implementing the recommendations.
2323
{{< checklist-item "#timeouts" >}}Timeouts{{< /checklist-item >}}
2424
{{< checklist-item "#exception-handling" >}}Exception handling{{< /checklist-item >}}
2525
{{< checklist-item "#general-exceptions" >}}General exceptions{{< /checklist-item >}}
26-
{{< checklist-item "#dns-cache-and-redis" >}}DNS cache and Redis{{< /checklist-item >}}
26+
{{< checklist-item "#dns-cache-and-redis" >}}DNS cache and Redis{{< /checklist-item >}}
27+
{{< checklist-item "#dns-cache-and-redis" >}}DNS cache and Redis{{< /checklist-item >}}
2728
{{< /checklist >}}
2829

2930

layouts/shortcodes/checklist.html

Lines changed: 70 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6,44 +6,25 @@
66
<label for="gcount">&#9989; = </label>
77
<output name="gcount" id="gcount">0</output>/<output name="gtotal"></output>,
88
<label for="rcount">&#x274C; = </label>
9-
<output name="rcount" id="rcount">2</output>/<output name="rtotal"></output>,
9+
<output name="rcount" id="rcount">0</output>/<output name="rtotal"></output>,
1010
<label for="acount">&#x1F50D; = </label>
11-
<output name="acount" id="acount">0</output>/<output name="atotal"></output><br/>
11+
<output name="acount" id="acount">0</output>/<output name="atotal"></output>
12+
<br/>
1213
(<label for="xcount">&#x2205; = </label>
1314
<output name="xcount" id="xcount">0</output>/<output name="xtotal"></output>)
1415
</form>
1516
<script>
1617
document.addEventListener('DOMContentLoaded', () => {
17-
if (localStorage.getItem("{{ $formId }}")) {
18-
let choiceList = localStorage.getItem("{{ $formId }}");
19-
let form = document.getElementById(formId);
20-
let counts = {R: 0, G: 0, A: 0, X:0};
21-
22-
let listItems = form.getElementsByTagName("li");
23-
24-
for (const [index, elem] of listItems.entries()) {
25-
let menu = elem.getElementsByTagName("select")[0];
26-
let mvalue = choiceList[index];
27-
menu.value = mvalue;
28-
29-
counts[mvalue]++;
30-
}
31-
32-
form.elements["rcount"].value = counts["R"];
33-
form.elements["gcount"].value = counts["G"];
34-
form.elements["acount"].value = counts["A"];
35-
form.elements["xcount"].value = counts["X"];
36-
37-
let numClItems = listItems.length;
38-
form.elements["rtotal"].value = numClItems;
39-
form.elements["gtotal"].value = numClItems;
40-
form.elements["atotal"].value = numClItems;
41-
form.elements["xtotal"].value = numClItems;
42-
}
18+
let itemString = localStorage.getItem("{{ $formId }}");
4319

44-
clChange("{{ $formId }}");
20+
if (itemString !== "") {
21+
setCLItemsFromString("{{ $formId }}", itemString);
22+
} else {
23+
clChange("{{ $formId }}");
24+
}
4525
});
4626

27+
/*
4728
function clChange(formId) {
4829
let form = document.getElementById(formId);
4930
let counts = {R: 0, G: 0, A: 0, X:0};
@@ -68,4 +49,64 @@
6849
form.elements["atotal"].value = numClItems;
6950
form.elements["xtotal"].value = listItems.length;
7051
}
52+
*/
53+
54+
55+
function getStringFromCLItems(formId) {
56+
let result = "";
57+
58+
let form = document.getElementById(formId);
59+
60+
let listItems = form.getElementsByTagName("li");
61+
62+
for (let elem of listItems) {
63+
let menu = elem.getElementsByTagName("select")[0];
64+
result += menu.value;
65+
}
66+
67+
return result;
68+
}
69+
70+
71+
function setCLItemsFromString(formId, clString) {
72+
let counts = {R: 0, G: 0, A: 0, X:0};
73+
74+
let form = document.getElementById(formId);
75+
let listItems = form.getElementsByTagName("li");
76+
77+
if (clString.length < listItems.length) {
78+
clString = clString.padEnd(listItems.length, "R");
79+
} else if (clString.length > listItems.length) {
80+
clString = clString.substring(0, listItems.length);
81+
}
82+
83+
for (let i = 0; i < clString.length; i++) {
84+
let char = clString.charAt(i);
85+
counts[char]++;
86+
let menu = listItems[i].getElementsByTagName("select")[0];
87+
menu.value = char;
88+
}
89+
90+
form.elements["rcount"].value = counts["R"];
91+
form.elements["gcount"].value = counts["G"];
92+
form.elements["acount"].value = counts["A"];
93+
form.elements["xcount"].value = counts["X"];
94+
95+
96+
let numClItems = listItems.length - counts["X"];
97+
98+
form.elements["rtotal"].value = numClItems;
99+
form.elements["gtotal"].value = numClItems;
100+
form.elements["atotal"].value = numClItems;
101+
form.elements["xtotal"].value = counts["X"];
102+
103+
let itemChoices = getStringFromCLItems("{{ $formId }}");
104+
localStorage.setItem("{{ $formId }}", itemChoices);
105+
}
106+
107+
108+
function clChange(formId) {
109+
let itemChoices = getStringFromCLItems(formId);
110+
setCLItemsFromString(formId, itemChoices);
111+
}
71112
</script>

0 commit comments

Comments
 (0)