Yangman - requests settings
[dlux.git] / modules / yangman-resources / src / main / resources / yangman / controllers / save-req-dialog.controller.js
1 define([], function () {
2     'use strict';
3
4     angular.module('app.yangman').controller('SaveReqDialogCtrl', SaveReqDialogCtrl);
5
6     SaveReqDialogCtrl.$inject = ['$filter', '$mdDialog', 'collectionNames', 'requests', 'duplicate'];
7
8     function SaveReqDialogCtrl($filter, $mdDialog, collectionNames, requests, duplicate) {
9         var vm = this;
10
11         vm.collectionNames = collectionNames;
12         vm.collectionName = duplicate ? requests[0].collection : '';
13         vm.getColAutocomplete   = getColAutocomplete;
14         vm.requests = requests;
15         vm.duplicate = duplicate;
16
17         vm.cancel = cancel;
18         vm.save = save;
19
20         cloneRequests();
21
22         /**
23          * Get collection names matching the text that was already written
24          * @returns {*}
25          */
26         function getColAutocomplete() {
27             return vm.collectionNames ? $filter('filter')(vm.collectionNames, vm.collectionName) : vm.collectionNames;
28         }
29
30         /**
31          * Clone requests to not affect source objects
32          */
33         function cloneRequests(){
34             vm.requests = vm.requests.map(function (req){
35                 return req.clone();
36             });
37         }
38
39
40         /**
41          * Only cancel mdDialog
42          */
43         function cancel() {
44             $mdDialog.cancel();
45         }
46
47         /**
48          * Try to save requests and return them in answer after hiding mdDialog
49          */
50         function save() {
51             vm.requests.forEach(function (reqObj){
52                 reqObj.collection = vm.collectionName;
53             });
54             $mdDialog.hide(vm.requests);
55         }
56
57     }
58
59     return SaveReqDialogCtrl;
60
61 });