Răsfoiți Sursa

Bug fix to allow updating an income.

Lee Morgan 11 luni în urmă
părinte
comite
7ad3a037f2

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

@@ -16,10 +16,19 @@ export default class Income{
         return this._name;
     }
 
+    set name(v){
+        this._name = v;
+    }
+
     get amount(){
         return Format.centsToDollars(this._amount);
     }
 
+    set amount(v){
+        if(typeof v === String) v = Number(v);
+        this._amount = Format.dollarsToCents(v);
+    }
+
     get type(){
         return "Income";
     }

+ 8 - 7
src/views/js/index.js

@@ -62,17 +62,18 @@ fetch("/api/user", {
     })
     .then(([key, accounts])=>{
         window.encryptionHandler = new EncryptionHandler(key);
+
         if(accounts.length === 0){
             currentPage = new CreateAccount();
-            return false;
-        }else{
-            let promises = [];
-            for(let i = 0; i < accounts.length; i++){
-                promises.push(user.decryptAndAddAccount(accounts[i]));
-            }
+            return null;
+        }
 
-            return Promise.all(promises);
+        let promises = [];
+        for(let i = 0; i < accounts.length; i++){
+            promises.push(user.decryptAndAddAccount(accounts[i]));
         }
+
+        return Promise.all(promises);
     })
     .then((response)=>{
         if(response) currentPage = new Home();

+ 2 - 3
src/views/js/pages/EditIncome.js

@@ -11,9 +11,8 @@ export default class EditIncome extends Page{
     submit(income){
         event.preventDefault();
 
-        const select = this.container.querySelector.bind(this.container);
-        income.name = select(".name").value;
-        income.amount = select(".amount").value;
+        income.name = this.container.querySelector(".name").value;
+        income.amount = this.container.querySelector(".amount").value;
 
         user.account.save();
         changePage("viewIncome");

+ 6 - 1
src/views/js/pages/Login.js

@@ -60,6 +60,11 @@ export default class Login extends Page{
             .then(([encryptionHandler, accounts])=>{
                 window.encryptionHandler = encryptionHandler;
 
+                if(accounts.length === 0){
+                    changePage("createAccount");
+                    return null;
+                }
+
                 let promises = [];
                 for(let i = 0; i < accounts.length; i++){
                     promises.push(user.decryptAndAddAccount(accounts[i]));
@@ -68,7 +73,7 @@ export default class Login extends Page{
                 return Promise.all(promises);
             })
             .then((response)=>{
-                changePage("home");
+                if(response) changePage("home");
             })
             .catch((err)=>{
                 if(err.error){