62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
(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();
|
|
}
|
|
})(); |