PageRenderTime 45ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/vendor/magento/magento2-base/setup/pub/magento/setup/customize-your-store.js

https://gitlab.com/yousafsyed/easternglamor
JavaScript | 194 lines | 167 code | 19 blank | 8 comment | 29 complexity | b9edadbfc46ed4486c3e7e4675098f5c MD5 | raw file
  1. /**
  2. * Copyright © 2016 Magento. All rights reserved.
  3. * See COPYING.txt for license details.
  4. */
  5. 'use strict';
  6. angular.module('customize-your-store', ['ngStorage', 'ngSanitize'])
  7. .controller('customizeYourStoreController', ['$scope', '$localStorage' , '$state', '$http', '$sce', function ($scope, $localStorage, $state, $http, $sce) {
  8. $scope.store = {
  9. timezone: 'UTC',
  10. currency: 'USD',
  11. language: 'en_US',
  12. useSampleData: false,
  13. cleanUpDatabase: false,
  14. loadedAllModules: false,
  15. showModulesControl: false,
  16. selectAll: true,
  17. allModules: [],
  18. errorFlag : false,
  19. showError: false,
  20. selectedModules : [],
  21. disabledModules: [],
  22. errorMessage: '',
  23. force: false,
  24. advanced: {
  25. expanded: false
  26. }
  27. };
  28. $scope.loading = false;
  29. if (!$localStorage.store) {
  30. $http.get('index.php/customize-your-store/default-time-zone',{'responseType' : 'json'})
  31. .success(function (data) {
  32. $scope.store.timezone = data.defaultTimeZone;
  33. })
  34. .error(function (data) {
  35. $scope.store.timezone = 'UTC';
  36. });
  37. }
  38. if ($localStorage.store) {
  39. $scope.store = $localStorage.store;
  40. }
  41. $scope.checkModuleConstraints = function () {
  42. $state.loadModules();
  43. $localStorage.store = $scope.store;
  44. $scope.loading = true;
  45. $http.post('index.php/modules/all-modules-valid', $scope.store)
  46. .success(function (data) {
  47. $scope.checkModuleConstraints.result = data;
  48. if (($scope.checkModuleConstraints.result !== undefined) && ($scope.checkModuleConstraints.result.success)) {
  49. $scope.loading = false;
  50. $scope.nextState();
  51. } else {
  52. $scope.store.errorMessage = $sce.trustAsHtml($scope.checkModuleConstraints.result.error);
  53. $scope.loading = false;
  54. }
  55. });
  56. };
  57. if (!$scope.store.loadedAllModules) {
  58. $http.get('index.php/modules').success(function (data) {
  59. $state.loadedModules = data;
  60. $scope.store.showModulesControl = true;
  61. if (data.error) {
  62. $scope.updateOnExpand($scope.store.advanced);
  63. $scope.store.errorMessage = $sce.trustAsHtml(data.error);
  64. }
  65. });
  66. }
  67. $state.loadModules = function(){
  68. if(!$scope.store.loadedAllModules) {
  69. var allModules = $scope.$state.loadedModules.modules;
  70. for (var eachModule in allModules) {
  71. $scope.store.allModules.push(allModules[eachModule].name);
  72. if(allModules[eachModule].selected) {
  73. $scope.store.selectedModules.push(allModules[eachModule].name);
  74. }
  75. if(allModules[eachModule].disabled) {
  76. $scope.store.disabledModules.push(allModules[eachModule].name);
  77. }
  78. }
  79. $scope.store.loadedAllModules = true;
  80. $scope.checkIfAllAreSelected();
  81. }
  82. }
  83. $scope.updateOnExpand = function(obj) {
  84. $state.loadModules();
  85. obj.expanded = !obj.expanded;
  86. };
  87. $scope.expandError = function() {
  88. $scope.store.errorFlag = !$scope.store.errorFlag;
  89. };
  90. $scope.toggleForce = function() {
  91. $scope.force = !$scope.force;
  92. };
  93. $scope.toggleModule = function(module) {
  94. var idx = $scope.store.selectedModules.indexOf(module);
  95. if (idx > -1) {
  96. $scope.store.selectedModules.splice(idx, 1);
  97. } else {
  98. $scope.store.selectedModules.push(module);
  99. }
  100. $scope.checkIfAllAreSelected();
  101. $scope.validateModules(module);
  102. };
  103. $scope.validateModules = function(module){
  104. if ($scope.force) return;
  105. // validate enabling disabling here.
  106. var idx = $scope.store.selectedModules.indexOf(module);
  107. var moduleStatus = (idx > -1) ? true : false;
  108. var allParameters = {'allModules' : $scope.store.allModules, 'selectedModules' : $scope.store.selectedModules, 'module' : module, 'status' : moduleStatus};
  109. $http.post('index.php/modules/validate', allParameters)
  110. .success(function (data) {
  111. $scope.checkModuleConstraints.result = data;
  112. if ((($scope.checkModuleConstraints.result.error !== undefined) && (!$scope.checkModuleConstraints.result.success))) {
  113. $scope.store.errorMessage = $sce.trustAsHtml($scope.checkModuleConstraints.result.error);
  114. if (moduleStatus) {
  115. $scope.store.selectedModules.splice(idx, 1);
  116. } else {
  117. $scope.store.selectedModules.push(module);
  118. }
  119. } else {
  120. $state.loadedModules = data;
  121. $scope.store.errorMessage = false;
  122. $scope.store.showError = false;
  123. $scope.store.errorFlag = false;
  124. $scope.store.loadedAllModules = false;
  125. $scope.store.allModules =[];
  126. $scope.store.selectedModules =[];
  127. $scope.store.disabledModules =[];
  128. $state.loadModules();
  129. }
  130. });
  131. }
  132. $scope.toggleAllModules = function() {
  133. $scope.store.selectAll = !$scope.store.selectAll;
  134. if ($scope.store.selectAll) {
  135. for(var i = 0; i < $scope.store.allModules.length; i++) {
  136. $scope.store.selectedModules[i] = $scope.store.allModules[i];
  137. }
  138. } else {
  139. for(var i = 0; i < $scope.store.allModules.length; i++) {
  140. var idx = $scope.store.selectedModules.indexOf($scope.store.allModules[i]);
  141. if ($scope.store.disabledModules.indexOf($scope.store.allModules[i]) < 0) {
  142. $scope.store.selectedModules.splice(idx, 1);
  143. }
  144. }
  145. }
  146. };
  147. $scope.checkIfAllAreSelected = function() {
  148. if ($scope.store.selectedModules.length === $scope.store.allModules.length &&
  149. $scope.store.selectedModules.length !== 0 ) {
  150. $scope.store.selectAll = true;
  151. } else {
  152. $scope.store.selectAll = false;
  153. }
  154. }
  155. // Listens on form validate event, dispatched by parent controller
  156. $scope.$on('validate-' + $state.current.id, function() {
  157. $scope.validate();
  158. });
  159. // Dispatch 'validation-response' event to parent controller
  160. $scope.validate = function() {
  161. if ($scope.customizeStore.$valid) {
  162. $scope.$emit('validation-response', true);
  163. } else {
  164. $scope.$emit('validation-response', false);
  165. $scope.customizeStore.submitted = true;
  166. }
  167. }
  168. // Update 'submitted' flag
  169. $scope.$watch(function() { return $scope.customizeStore.$valid }, function(valid) {
  170. if (valid) {
  171. $scope.customizeStore.submitted = false;
  172. }
  173. });
  174. }])
  175. ;