Sfoglia il codice sorgente

Add ability to archive an income.

Lee Morgan 11 mesi fa
parent
commit
6b1577d03a
2 ha cambiato i file con 13 aggiunte e 0 eliminazioni
  1. 5 0
      src/views/js/data/Income.js
  2. 8 0
      src/views/js/pages/EditIncome.js

+ 5 - 0
src/views/js/data/Income.js

@@ -37,6 +37,11 @@ export default class Income{
         return this._active;
     }
 
+    set active(v){
+        if(typeof v !== "boolean") throw new TypeError("'active' must be a boolean");
+        this._active = v;
+    }
+
     static create(name, amount){
         return new Income(
             crypto.randomUUID(),

+ 8 - 0
src/views/js/pages/EditIncome.js

@@ -18,6 +18,13 @@ export default class EditIncome extends Page{
         changePage("viewIncome");
     }
 
+    archive(income){
+        income.active = !income.active;
+        new Elem(this.container.querySelector(".archive"))
+            .text(income.active ? "Archive" : "Restore");
+        changePage("viewIncome");
+    }
+
     render(income){
         new Elem("form")
             .addClass("standardForm")
@@ -56,6 +63,7 @@ export default class EditIncome extends Page{
                 .text(income.active ? "Archive" : "Restore")
                 .addClass("archive")
                 .type("button")
+                .onclick(()=>{this.archive(income)})
             )
             .appendTo(this.container);
     }