(function () { 'use strict'; angular .module('app') .controller('ModulesCtrl', ModulesCtrl); ModulesCtrl.$inject = ['$scope', 'smartRequest', '$location', 'Notification']; function ModulesCtrl($scope, smartRequest, $location, Notification) { $scope.modules = []; $scope.isAllSelected = false; $scope.getListModules = function () { smartRequest.get('settings/modules', function (data) { $scope.modules = data.modules.modules; $scope.modules.forEach(function (el) { el.selected = false; }); }); }; $scope.toggleAll = function () { var toggleStatus = !$scope.isAllSelected; angular.forEach($scope.modules, function (itm) { itm.selected = toggleStatus; }); $scope.isAllSelected = toggleStatus; }; $scope.optionToggled = function () { $scope.isAllSelected = $scope.modules.every(function (itm) { return itm.selected; }); }; $scope.updateModules = function () { $scope.buttonDownload(true); smartRequest.post('settings/update/modules', { 'modules': JSON.stringify($scope.toObject($scope.getSelectedModules())) }, function(data) { Notification.success('Модули обновлены'); $scope.getListModules(); $scope.buttonDownload(false); }); }; $scope.getSelectedModules = function () { return $scope.modules.filter(function (el) { return el.selected; }); }; $scope.toObject = function (arr) { var rv = {}; for (var i = 0; i < arr.length; i++) rv[i] = arr[i]; return rv; }; $scope.buttonDownload = function(toggle) { $('#btn-download').prop('disabled', toggle); }; $scope.getListModules(); } })();