Advertisement
Guest User

Untitled

a guest
Feb 17th, 2020
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let budgetController = (function() {
  2.  
  3.     let Expense = function(id, description, value) {
  4.         this.id = id;
  5.         this.description = description;
  6.         this.value = value;
  7.     };
  8.  
  9.     let Income = function(id, description, value) {
  10.         this.id = id;
  11.         this.description = description;
  12.         this.value = value;
  13.     };
  14.  
  15.     let data = {
  16.         allItems: {
  17.             exp: [],
  18.             inc: []
  19.         },
  20.         totals: {
  21.             exp: 0,
  22.             inc: 0
  23.         }
  24.     };
  25.  
  26.     return {
  27.         addItem: function(type, des, val){
  28.             let newItem;
  29.  
  30.             ID = data.allItems[type][data.allItems[type].length - 1].id;
  31.  
  32.             if(type === 'exp'){
  33.                 newItem = new Expense(ID, des, val);
  34.             }else if (type === 'inc'){
  35.                 newItem = new Income(ID, des, val);
  36.             }
  37.  
  38.             data.allItems[type].push(newItem);
  39.             return newItem;
  40.         },
  41.        
  42.         testing: function(){
  43.             console.log(data);
  44.         }
  45.     }
  46.  
  47. })();
  48.  
  49. let UIController = (function() {
  50.  
  51.     let DOMstrings = {
  52.         inputType: '.add__type',
  53.         inputDescription: '.add__description',
  54.         inputValue: '.add__value',
  55.         inputBtn: '.add__btn'
  56.     };
  57.  
  58.     return {
  59.         getInput: function(){
  60.             return {
  61.                 type: document.querySelector(DOMstrings.inputType).value,
  62.                 description: document.querySelector(DOMstrings.inputDescription).value,
  63.                 value: document.querySelector(DOMstrings.inputValue).value
  64.             };
  65.         },
  66.         getDOMstrings: function(){
  67.             return DOMstrings;
  68.         }
  69.     }
  70.  
  71. })();
  72.  
  73. let controller = (function(budgetCtrl, UICtrl) {
  74.  
  75.     let setupEventListeners = function(){
  76.         let DOM = UICtrl.getDOMstrings();
  77.         document.querySelector(DOM.inputBtn).addEventListener('click', ctrlAddItem);
  78.  
  79.         document.addEventListener('keypress', function(event){
  80.             if(event.keyCode === 13 || event.which === 13){
  81.                 ctrlAddItem();
  82.             }
  83.         });
  84.     };
  85.  
  86.     let ctrlAddItem = function(){
  87.         let input, newItem;
  88.  
  89.         input = UICtrl.getInput();
  90.  
  91.         newItem = budgetCtrl.addItem(input.type, input.description, input.value);
  92.     };
  93.  
  94.     return {
  95.         init: function(){
  96.             console.log('Application has started.');
  97.             setupEventListeners();
  98.         }
  99.     };
  100.  
  101. })(budgetController, UIController);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement