5 angular.module('app.yangman').controller('ParamsAdminCtrl', ParamsAdminCtrl);
7 ParamsAdminCtrl.$inject = ['$mdDialog', '$scope', 'YangmanService', 'HandleFileService', 'parametersList'];
9 function ParamsAdminCtrl($mdDialog, $scope, YangmanService, HandleFileService, parametersList) {
12 vm.parametersList = parametersList;
14 vm.sortField = '_name';
19 vm.createEmptyParam = createEmptyParam;
20 vm.removeParam = removeParam;
21 vm.clearFilter = clearFilter;
22 vm.filterParam = filterParam;
24 vm.sortFunc = sortFunc;
25 vm.exportParameters = exportParameters;
26 vm.importParameters = importParameters;
27 vm.validateNamesUnique = validateNamesUnique;
33 * Loop over all name inputs in form and validate duplicities
35 function validateNamesUnique() {
37 while (vm.paramsForm.hasOwnProperty('name_' + i)){
38 var modelValue = vm.paramsForm['name_' + i].$modelValue;
39 vm.paramsForm['name_' + i].$setValidity(
41 vm.parametersList.isNameUnique(modelValue)
48 * Importing all parameters from json
51 function importParameters(fileContent) {
52 if (fileContent && YangmanService.validateFile(fileContent, ['name', 'value'])){
54 vm.parametersList.createParamsFromJson(fileContent);
55 vm.parametersList.saveToStorage();
56 angular.element(document).find('#importParameters').val('');
60 angular.element(document).find('#importParameters').val('');
61 console.error('DataStorage error:', e);
65 angular.element(document).find('#importParameters').val('');
71 * Export all parameters to json file
73 function exportParameters() {
75 HandleFileService.downloadFile(
76 'yangman_parameters.json',
77 JSON.stringify(vm.parametersList.toJSON()),
82 console.error('Export parameters error:', e);
88 * Set attribute to use when sorting
91 function sortBy(sortField) {
92 vm.sortField = sortField;
93 vm.sortAsc = !vm.sortAsc;
97 * Sort parameters with empty params at the end of list
101 function sortFunc(item) {
102 return item[vm.sortField] ? item[vm.sortField] : vm.sortAsc ? 'zzzzzzzzzzzzzzzz' : '';
106 * Empty or matching params will be in list
110 function filterParam(paramObj) {
111 return !(paramObj._name || paramObj._value) ||
112 paramObj._name.indexOf(vm.search) !== -1 ||
113 paramObj._value.indexOf(vm.search) !== -1;
117 function clearFilter() {
122 * Load params list and add one empty to the end of list
125 vm.parametersList.loadListFromStorage();
130 * Remove param from list
133 function removeParam(paramObj) {
134 vm.parametersList.deleteParameterItem(paramObj);
138 * Create new empty param
140 function createEmptyParam() {
141 vm.parametersList.addEmptyItem();
148 vm.parametersList.removeEmptyParams();
149 $mdDialog.hide(vm.parametersList);
153 * Save list to storage and re-init dialog
156 vm.parametersList.saveToStorage();
163 return ParamsAdminCtrl;