Merge "Yangman - moint points"
[dlux.git] / modules / yangman-resources / src / main / resources / yangman / controllers / params-admin.controller.js
1 define([
2     'app/yangman/directives/validation/unique.directive',
3 ], function () {
4     'use strict';
5
6     angular.module('app.yangman').controller('ParamsAdminCtrl', ParamsAdminCtrl);
7
8     ParamsAdminCtrl.$inject = ['$mdDialog', 'parametersList'];
9
10     function ParamsAdminCtrl($mdDialog, parametersList) {
11         var vm = this;
12
13         vm.parametersList = parametersList;
14         vm.search = '';
15         vm.sortField = '_key';
16         vm.sortAsc = true;
17
18         vm.cancel = cancel;
19         vm.save = save;
20         vm.createEmptyParam = createEmptyParam;
21         vm.removeParam = removeParam;
22         vm.clearFilter = clearFilter;
23         vm.filterParam = filterParam;
24         vm.sortBy = sortBy;
25         vm.sortFunc = sortFunc;
26
27
28         init();
29
30         /**
31          * Set attribute to use when sorting
32          * @param sortField
33          */
34         function sortBy(sortField) {
35             vm.sortField = sortField;
36             vm.sortAsc = !vm.sortAsc;
37         }
38
39         /**
40          * Sort parameters with empty params at the end of list
41          * @param item
42          * @returns {*}
43          */
44         function sortFunc(item) {
45             return item[vm.sortField] ? item[vm.sortField] : vm.sortAsc ? 'zzzzzzzzzzzzzzzz' : '';
46         }
47
48         /**
49          * Empty or matching params will be in list
50          * @param paramObj
51          * @returns {boolean}
52          */
53         function filterParam(paramObj) {
54             return !(paramObj._key || paramObj._value) ||
55                     paramObj._key.indexOf(vm.search) !== -1 ||
56                     paramObj._value.indexOf(vm.search) !== -1;
57         }
58
59
60         function clearFilter() {
61             vm.search = '';
62         }
63
64         /**
65          * Load params list and add one empty to the end of list
66          */
67         function init(){
68             vm.parametersList.loadListFromStorage();
69             createEmptyParam();
70         }
71
72         /**
73          * Remove param from list
74          * @param paramObj
75          */
76         function removeParam(paramObj) {
77             vm.parametersList.deleteParameterItem(paramObj);
78         }
79
80         /**
81          * Create new empty param
82          */
83         function createEmptyParam() {
84             vm.parametersList.addEmptyItem();
85         }
86
87         /**
88          * Cancel dialog
89          */
90         function cancel() {
91             $mdDialog.cancel();
92         }
93
94         /**
95          * Save list to storage and re-init dialog
96          */
97         function save() {
98             vm.parametersList.saveToStorage();
99             init();
100         }
101
102
103     }
104
105     return ParamsAdminCtrl;
106
107 });
108