소스 검색

Bug fix to allow updating an income.

Lee Morgan 11 달 전
부모
커밋
7ad3a037f2
4개의 변경된 파일25개의 추가작업 그리고 11개의 파일을 삭제
  1. 9 0
      src/views/js/data/Income.js
  2. 8 7
      src/views/js/index.js
  3. 2 3
      src/views/js/pages/EditIncome.js
  4. 6 1
      src/views/js/pages/Login.js

+ 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){