cobuild-angular-stack
Version:
Base stack angular sass jade gulp
91 lines (78 loc) • 3.43 kB
JavaScript
(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;
};
}
})();