UNPKG

cobuild-angular-stack

Version:

Base stack angular sass jade gulp

91 lines (78 loc) 3.43 kB
(function () { 'use strict'; GiftListController.$inject = ['$scope', '$rootScope', '$state', 'Store', 'Category', 'CoupleAccount', 'Order', 'Auth', '$uibModal','lodash']; angular.module('uniko.gifts') .controller('GiftListController', GiftListController); function GiftListController($scope, $rootScope, $state, Store, Category, CoupleAccount, Order, Auth, $uibModal,lodash) { $scope.order = null; $scope.stores = Store.find(); $scope.categories = Category.find(); $scope.giftsGroups = []; $scope.disabled = false; $scope.cantReceived = 0; var allGifts = []; var account = CoupleAccount .getCurrent(); account .$promise .then(function (coupleAccount) { var orders = CoupleAccount.matchOrderGift({id: coupleAccount.id}); var groups = {}; orders.$promise.then(function (ordersAccount) { allGifts = ordersAccount; lodash.forEach(allGifts, function (gift) { $scope.cantReceived += gift.gift.price; var group = groups[gift.orderId]; if (!group) { group = groups[gift.orderId] = { date: gift.date, price: 0, givers: gift.givers, message: gift.message, gifts: [], responded: false, isVisible: false }; } group.gifts.push(gift); group.price += gift.gift.price; if (gift.responded) { group.responded = true; } }); $scope.giftsGroups = lodash.toArray(groups); console.log($scope.giftsGroups); }); }); $scope.toThank = function (gift, group) { var modalInstance = $uibModal.open({ animation: true, templateUrl: 'partials/gifts.thanks.html', // size: 'lg', controller: ['$scope', '$uibModalInstance', function ($scope, $uibModalInstance) { $scope.gift = gift; $scope.message = ""; $scope.ok = function () { $uibModalInstance.close({message: $scope.message}); }; $scope.cancel = function () { $uibModalInstance.dismiss(); }; }] }); modalInstance.result.then(function (response) { return CoupleAccount .prototype$toThank({id: account.id}, {giftId: gift.id, message: response.message}) .$promise .then(function (response) { gift.responded = true; group.responded = true; }) .catch(console.log.bind(console)); }); }; $scope.setOrder = function(order) { $scope.order = order; }; } })();