cobuild-angular-stack
Version:
Base stack angular sass jade gulp
92 lines (77 loc) • 2.76 kB
JavaScript
(function(module) {
AdminExperiencesAddArticlesController.$inject = ['$scope', '$timeout','$state', '$stateParams','$translate', 'toastr', '$uibModalInstance', 'Category', 'ProductTemplate', 'Experiences', 'experience'];
module.controller('AdminExperiencesAddArticlesController', AdminExperiencesAddArticlesController);
function AdminExperiencesAddArticlesController($scope, $timeout,$state, $stateParams, $translate, toastr, $uibModalInstance, Category, ProductTemplate, Experiences, experience) {
$scope.modal = {
stores: [],
storeId: "",
articles: [],
experience: experience
}
$scope.articles = [];
$scope.init = function() {
Category.find().$promise.then(function(stores) {
$("#admin-experiences-modal").parent().parent().attr("style","width: 80%");
$("#admin-experiences-modal").parent().attr("style","background-color: #f8f8f8");
$scope.modal.stores = stores;
if(stores.length > 0) $scope.modal.storeId = stores[0].id;
$scope.getArticles();
}, $scope.error).catch($scope.error);
}
$scope.$watch("modal.storeId", function() {
$scope.getArticleCategory();
})
$scope.getArticles = function() {
$scope.modal.articles = [];
ProductTemplate.find().$promise.then(function(articles) {
$scope.articles = articles;
$scope.getArticleCategory();
}, $scope.error).catch($scope.error);
}
$scope.getArticleCategory = function() {
$scope.modal.articles = [];
var products = _.filter($scope.articles, function(article) {
var product = _.find(article.categoriesIds, function(category) {
return category == $scope.modal.storeId
});
return product;
})
var index = 0;
_.each(products, function(article) {
var article_selected = _.find(experience.productsRegistryList, function(art) {
return art.id == article.id
});
if(article_selected) {
article.select = true;
}
if(!$scope.modal.articles[index]) {
$scope.modal.articles[index] = {
row: 'row',
products: []
}
} else if($scope.modal.articles[index].products.length < 4 ) {
} else {
index += 1;
$scope.modal.articles[index] = {
row: 'row',
products: []
}
}
$scope.modal.articles[index].products.push(article);
});
};
$scope.add = function(article) {
article.select = true;
$scope.modal.experience.productsRegistryList.push(article);
Experiences.save({id: $scope.modal.experience.id},$scope.modal.experience).$promise.then(function(data) {
}, $scope.error).catch($scope.error);
}
$scope.error = function(err) {
toastr.error(err);
}
$scope.close = function() {
$uibModalInstance.dismiss('cancel');
}
$scope.init();
}
})(angular.module('uniko.admin.experiences'));