37 lines
1.6 KiB
JavaScript
37 lines
1.6 KiB
JavaScript
"use strict";
|
|
(function () {
|
|
'use strict';
|
|
angular.module('myitsmApp')
|
|
.directive('columnPicker', ['consolePresetModel', '$timeout', 'events',
|
|
function (consolePresetModel, $timeout, events) {
|
|
return {
|
|
restrict: 'E',
|
|
templateUrl: 'views/console/column-picker.html',
|
|
link: function (scope, element) {
|
|
scope.config = consolePresetModel.consoleColumns;
|
|
scope.selectedItems = consolePresetModel.gridColumns;
|
|
scope.handleAddRemove = function (item) {
|
|
item.visible = !item.visible;
|
|
if (!item.visible) {
|
|
_.remove(scope.selectedItems, function (column) {
|
|
return column.name === item.name;
|
|
});
|
|
if (!scope.selectedItems.length) {
|
|
$timeout(function () {
|
|
angular.element(element.children()[0]).trigger('click');
|
|
}, 0, false);
|
|
}
|
|
}
|
|
else {
|
|
scope.selectedItems.push(item);
|
|
scope.selectedItems.forEach(function (column, index) {
|
|
column.order = index + 1;
|
|
});
|
|
}
|
|
scope.$emit(events.MODAL_FORM_IS_DIRTY);
|
|
};
|
|
}
|
|
};
|
|
}]);
|
|
}());
|