aboutsummaryrefslogtreecommitdiff
path: root/utils.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'utils.mjs')
-rw-r--r--utils.mjs38
1 files changed, 27 insertions, 11 deletions
diff --git a/utils.mjs b/utils.mjs
index 308bba8..afe200c 100644
--- a/utils.mjs
+++ b/utils.mjs
@@ -1,14 +1,30 @@
-export function addToggleBehaviour(list, description) {
- let renderedHTML = list.map((i) => {return i.render();}).join('');
- let listId = description + 'list';
- document.getElementById(listId).innerHTML = renderedHTML;
- for (let index = 0; index < list.length; ++index) {
- const p = document.getElementById(description + list[index].id);
- p.addEventListener("click", () => {
- list[index].toggle();
- p.classList.toggle('is-success');
- p.classList.toggle('is-danger');
- });
+export class Manager {
+ constructor(description, listData) {
+ this.description = description;
+ this.listData = listData;
+ this.count = listData.length;
+ }
+ store() {
+ let stringData = JSON.stringify(this.listData);
+ localStorage.setItem(this.description, stringData);
+ }
+ render() {
+ let renderedHTML = this.listData.map((i) => {return i.render();}).join('');
+ let elementId = this.description + '_list';
+ document.getElementById(elementId).innerHTML = renderedHTML;
+ this.addToggleBehaviour();
+ }
+ addToggleBehaviour() {
+ for (let idx = 0; idx < this.listData.length; ++idx) {
+ const elementId = this.description + "_" + this.listData[idx].id;
+ const p = document.getElementById(elementId);
+ p.addEventListener("click", () => {
+ this.listData[idx].toggle();
+ this.store();
+ p.classList.toggle('is-success');
+ p.classList.toggle('is-danger');
+ });
+ }
}
}