PATH:
home
/
letacommog
/
letaweb
/
scripts
/
editor
/
popup
angular.module('ui.popup') .service('popup_coupon', ['communication','popup_form','$templateCache','popup_grid',function(communication,popup_form,$templateCache,popup_grid) { this.open = function(opt) { opt = opt || {}; return popup_form.open( { name:'coupons', data:opt.data, controller: function($scope,$modalInstance) { mergeCategories = function() { var mergeCategory = function(category, data) { for(var i = 0;i < data.length;i++) { if(category.id== data[i]) category.checked = true; } if(angular.isDefined(category.items)) { for(var i = 0;i <category.items.length;i++) { var cat = category.items[i]; mergeCategory(cat,data); } } } if(!angular.isDefined($scope.product_categories_list) || !angular.isDefined($scope.data.categories)) { return; } for(var i = 0;i < $scope.product_categories_list.length;i++) { var category = $scope.product_categories_list[i]; mergeCategory(category,$scope.data.categories); } } if(angular.isDefined($scope.data.id) && $scope.data.id !== 0) { $scope.data.categories = []; if($scope.data.coupon_categories != undefined) { for(var i in $scope.data.coupon_categories){ if(!$scope.data.coupon_categories.hasOwnProperty(i)) continue; if($scope.data.coupon_categories[i]['category_id'] != undefined) { $scope.data.categories.push($scope.data.coupon_categories[i]['category_id']); } } } mergeCategories(); /*communication.api('getCategories', {id:$scope.data.id},'ecommerce.promotion.coupon').then(function(json) { //$scope.data.categories = json; //mergeCategories(); }); communication.api('getProducts', {id:$scope.data.id},'ecommerce.promotion.coupon').then(function(json) { //$scope.data.products = json; });*/ var date_start = moment($scope.data.date_start); if(date_start.isValid()) { $scope.data.date_start = date_start._d; } else $scope.data.date_start = ''; var date_end = moment($scope.data.date_end); if(date_end.isValid()) { $scope.data.date_end = date_end._d; } else $scope.data.date_end = ''; } var couponProductCategoryTree_recursiveTpl = '<i class="jstree-icon" ng-click="openCategoryItem(item)"></i>'+ '<i class="jstree-cat-icon"></i>'+ '<input type="checkbox" value="{{item.value}}" ng-model="item.checked" ng-change="selectedCategory()" />'+ '<label>{{item.name}}</label>'+ '<ul class="jstree">' + '<li ng-class="{\'jstree-close\': angular.isDefined(item.items) && item.opened,\'jstree-leaf\':!angular.isDefined(item.items) }" ng-repeat="item in item.items" ng-include="\'couponProductCategoryTree_recursiveTpl.html\'" ng-model="item">' + '</li>'+ '</ul>'; $templateCache.put('couponProductCategoryTree_recursiveTpl.html', couponProductCategoryTree_recursiveTpl); $scope.cancel = function () { $modalInstance.dismiss('cancel'); } $scope.ok = function () { $modalInstance.close(1); } //$scope.date_end_data =($scope.data.date_end); //if(!$scope.date_end_data.isValid) //$scope.data.date_end = moment(); $scope.data.date_end = $scope.data.date_end || ''; ($scope.data.date_end == null || $scope.data.date_end=="");// && ( $scope.date_end_data=moment() ); //var m = moment($scope.date_end_data); $scope.$watch('date_end_data', function(n) { if(n==undefined) return; var d = moment($scope.date_end_data); if(d.isValid) { $scope.data.date_end = moment($scope.date_end_data).format('YYYY-MM-DD'); $scope.date_end_text = moment($scope.date_end_data).format(window.t('MM/DD/YYYY')); } else { $scope.data.date_end=''; $scope.data.date_end_text=''; } }) //$scope.date_start_data =($scope.data.date_start); $scope.data.date_start = $scope.data.date_start || ''; //if(!$scope.date_end_data.isValid) //$scope.data.date_end = moment(); ($scope.data.date_start == null || $scope.data.date_start=="");// && ( $scope.date_start_data=moment() ); //var m = moment($scope.date_end_data); $scope.$watch('date_start_data', function(n) { if(n==undefined) return; var d = moment($scope.date_start_data); var d = moment($scope.date_start_data); if(d.isValid) { $scope.data.date_start = moment($scope.date_start_data).format('YYYY-MM-DD'); $scope.date_start_text = moment($scope.date_start_data).format(window.t('MM/DD/YYYY')); } else { $scope.data.date_start=''; $scope.data.date_start_text=''; } }) $scope.changeExpireDate = function() { console.log($scope.data.date_end); //$scope.date_end_data = moment($scope.date_end_text); } $scope.changeDateStart = function() { $scope.date_start_data = moment($scope.date_start_text); } $scope.data.status = $scope.data.status || 1; $scope.data.total = $scope.data.total || 0; $scope.data.type = $scope.data.type || 1; $scope.data.uses_customer = $scope.data.uses_customer || 0; $scope.data.uses_total = $scope.data.uses_total || 1; $scope.data.zone_limit = $scope.data.zone_limit || 1; $scope.data.shipping_method_limit = $scope.data.shipping_method_limit || 0; $scope.data.shipping = $scope.data.free_shipping || 0; communication.getList('product_categories', {},'ecommerce.catalog.category').then(function(json) { $scope.product_categories_list = angular.copy(json); $scope.product_categories_list.unshift({id: 0, name: window.t('LBL_ALL_CATEGORIES')}); mergeCategories(); }); var gencode = function(size) { var value = ''; var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; for (var i = 1; i <= size; ++i) value += chars.charAt(Math.floor(Math.random() * chars.length)); return value; }; $scope.data.categories=$scope.data.categories ||[]; $scope.selectedCategory = function() { $scope.data.categories=[]; function checkCat(cat) { if(cat.checked) $scope.data.categories.push(cat.id); if(angular.isDefined(cat.items)) { for(var i = 0;i < cat.items.length;i++) { checkCat(cat.items[i]); } } } for(var i = 0;i < $scope.product_categories_list.length;i++) { checkCat($scope.product_categories_list[i]); } } $scope.generateCode = function() { $scope.data.code= gencode(10); } $scope.data.products = $scope.data.products || []; $scope.selected_products = []; $scope.removeProduct = function() { if($scope.selected_products!= undefined && $scope.selected_products.length > 0){ for(var i in $scope.selected_products) { if(!$scope.selected_products.hasOwnProperty(i)) continue; if($scope.data.products!= undefined && $scope.data.products.length > 0){ for(var j = $scope.data.products.length - 1; j >= 0; j--) { if(!$scope.data.products.hasOwnProperty(j)) continue; if($scope.data.products[j]['id'] == $scope.selected_products[i]) { $scope.data.products.splice(j, 1); } } } } } } $scope.selectProduct = function(product) { var flag = false; for(var j = $scope.data.products.length - 1; j >= 0; j--) { if(!$scope.data.products.hasOwnProperty(j)) continue; if($scope.data.products[j]['id'] == product['id']) { flag = true; } } if(!flag) $scope.data.products.push(product); } $scope.getProducts = function(val) { return communication.api('searchProducts', {filter:val}, 'ecommerce.promotion.coupon').then(function(response){ return response; return response.data.results.map(function(item){ return item.formatted_address; }); }); }; $scope._save = function() { var data = $scope.data; var date_start = moment(data.date_start); if(date_start.isValid()) { data.date_start = date_start.format('YYYY-MM-DD'); } else data.date_start = '0000-00-00'; var date_end = moment(data.date_end); if(date_end.isValid()) { data.date_end = date_end.format('YYYY-MM-DD'); } else data.date_end = '0000-00-00'; if(angular.isDefined(opt.form_name)) { data = {}; data[opt.form_name] = $scope.data; } return communication.api('saveForm',{CouponForm: data},'ecommerce.promotion.coupon', false).then(function(data) { return data; }, function(data) { $scope.errors = data.message; return data; }); } }, size:'lg', execute_path:'ecommerce.promotion.coupon', form_name:'CouponForm' }); } }]);
[+]
..
[-] profile.js
[edit]
[-] pagelist.js
[edit]
[-] order.js
[edit]
[-] customer_group.js
[edit]
[-] module_list.js
[edit]
[-] backgroundeditor.js
[edit]
[-] product.js
[edit]
[-] visualcsseditor.js
[edit]
[-] shipping_rule.js
[edit]
[-] profile_change_password.js
[edit]
[-] review.js
[edit]
[-] contributor_invite.js
[edit]
[-] dbfilter.js
[edit]
[-] tax_class.js
[edit]
[-] special_module_style_editor.js
[edit]
[-] idletimeout.js
[edit]
[-] address.js
[edit]
[-] contributor.js
[edit]
[-] login.js
[edit]
[-] skin.js
[edit]
[-] mail.js
[edit]
[-] discount.js
[edit]
[-] customer.js
[edit]
[-] productgrid.js
[edit]
[-] socialsharebuttonconfig.js
[edit]
[-] news.js
[edit]
[-] color.js
[edit]
[-] palette.js
[edit]
[-] newsgrid.js
[edit]
[-] product_option_combination_grid.js
[edit]
[-] page.js
[edit]
[-] product_option.js
[edit]
[-] tax_rate.js
[edit]
[-] coupons.js
[edit]
[-] zone.js
[edit]
[-] product_bulk_price.js
[edit]
[-] option_set.js
[edit]
[-] product_option_combination.js
[edit]