Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let budgetController = (function() {
- let Expense = function(id, description, value) {
- this.id = id;
- this.description = description;
- this.value = value;
- };
- let Income = function(id, description, value) {
- this.id = id;
- this.description = description;
- this.value = value;
- };
- let data = {
- allItems: {
- exp: [],
- inc: []
- },
- totals: {
- exp: 0,
- inc: 0
- }
- };
- return {
- addItem: function(type, des, val){
- let newItem;
- ID = data.allItems[type][data.allItems[type].length - 1].id;
- if(type === 'exp'){
- newItem = new Expense(ID, des, val);
- }else if (type === 'inc'){
- newItem = new Income(ID, des, val);
- }
- data.allItems[type].push(newItem);
- return newItem;
- },
- testing: function(){
- console.log(data);
- }
- }
- })();
- let UIController = (function() {
- let DOMstrings = {
- inputType: '.add__type',
- inputDescription: '.add__description',
- inputValue: '.add__value',
- inputBtn: '.add__btn'
- };
- return {
- getInput: function(){
- return {
- type: document.querySelector(DOMstrings.inputType).value,
- description: document.querySelector(DOMstrings.inputDescription).value,
- value: document.querySelector(DOMstrings.inputValue).value
- };
- },
- getDOMstrings: function(){
- return DOMstrings;
- }
- }
- })();
- let controller = (function(budgetCtrl, UICtrl) {
- let setupEventListeners = function(){
- let DOM = UICtrl.getDOMstrings();
- document.querySelector(DOM.inputBtn).addEventListener('click', ctrlAddItem);
- document.addEventListener('keypress', function(event){
- if(event.keyCode === 13 || event.which === 13){
- ctrlAddItem();
- }
- });
- };
- let ctrlAddItem = function(){
- let input, newItem;
- input = UICtrl.getInput();
- newItem = budgetCtrl.addItem(input.type, input.description, input.value);
- };
- return {
- init: function(){
- console.log('Application has started.');
- setupEventListeners();
- }
- };
- })(budgetController, UIController);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement