Remove unused vars and methods
[policy/engine.git] / POLICY-SDK-APP / src / main / webapp / app / policyApp / policy-models / Editor / js / entities / item.js
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP Policy Engine
4  * ================================================================================
5  * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20 angular.module('abs').factory('item', ['$http', '$q', 'policyManagerConfig', function($http, $q, policyManagerConfig) {
21
22         var Item = function(model, path) {
23             var rawModel = {
24                 name: model && model.name || '',
25                 subScopename: model && model.subScopename || '',
26                 path: path || [],
27                 type: model && model.type || 'file',
28                 size: model && parseInt(model.size || 0),
29                 date: model && model.date,
30                 version: model && model.version || '',
31                 createdBy: model && model.createdBy || '',
32                 modifiedBy: model && model.modifiedBy || '',
33                 roleType: model && model.roleType || '',
34                 content: model && model.content || '',
35                 recursive: false,
36                 sizeKb: function() {
37                     return Math.round(this.size / 1024, 1);
38                 },
39                 fullPath: function() {
40                     if(this.version == ""){
41                         return ('/' + this.path.join('/') + '/' + this.name).replace(/\/\//, '/');
42                     }else{
43                         return ('/' + this.path.join('/') + '/' + this.name + '.' + this.version + '.xml').replace(/\/\//, '/');
44                     }
45                 }
46             };
47
48             this.error = '';
49             this.inprocess = false;
50
51             this.model = angular.copy(rawModel);
52             this.tempModel = angular.copy(rawModel);
53
54         };
55
56         Item.prototype.update = function() {
57             angular.extend(this.model, angular.copy(this.tempModel));
58         };
59
60         Item.prototype.revert = function() {
61             angular.extend(this.tempModel, angular.copy(this.model));
62             this.error = '';
63         };
64
65         Item.prototype.deferredHandler = function(data, deferred, defaultMsg) {
66             if (!data || typeof data !== 'object') {
67                 this.error = 'Bridge response error, please check the docs';
68             }
69             if (data.result && data.result.error) {
70                 this.error = data.result.error;
71             }
72             if (!this.error && data.error) {
73                 this.error = data.error.message;
74             }
75             if (!this.error && defaultMsg) {
76                 this.error = defaultMsg;
77             }
78             if (this.error) {
79                 return deferred.reject(data);
80             }
81             this.update();
82             return deferred.resolve(data);
83         };
84
85         Item.prototype.createFolder = function() {
86             var self = this;
87             var deferred = $q.defer();
88             var data = {params: {
89                 mode: 'ADDFOLDER',
90                 path: self.tempModel.path.join('/'),
91                 name: self.tempModel.name
92             }};
93
94             self.inprocess = true;
95             self.error = '';
96             $http.post(policyManagerConfig.createFolderUrl, data).success(function(data) {
97                 self.deferredHandler(data, deferred);
98             }).error(function(data) {
99                 self.deferredHandler(data, deferred, 'Error Occured While Creating Scope');
100             })['finally'](function() {
101                 self.inprocess = false;
102             });
103         
104             return deferred.promise;
105         };
106
107         Item.prototype.rename = function() {
108             var self = this;
109             var deferred = $q.defer();
110             var data = {params: {
111                 mode: 'RENAME',
112                 path: self.model.fullPath(),
113                 newPath: self.tempModel.fullPath()
114             }};
115             self.inprocess = true;
116             self.error = '';
117             $http.post(policyManagerConfig.renameUrl, data).success(function(data) {
118                 self.deferredHandler(data, deferred);
119             }).error(function(data) {
120                 self.deferredHandler(data, deferred, 'Error Occured While Renaming');
121             })['finally'](function() {
122                 self.inprocess = false;
123             });
124             return deferred.promise;
125         };
126
127         
128         Item.prototype.move = function() {
129             var self = this;
130             var deferred = $q.defer();
131             var data = {params: {
132                 mode: 'RENAME',
133                 path: self.model.fullPath(),
134                 newPath: self.tempModel.fullPath()
135             }};
136             self.inprocess = true;
137             self.error = '';
138             $http.post(policyManagerConfig.renameUrl, data).success(function(data) {
139                 if(data.result.error != undefined){
140                     var value = data.result.error;
141                     value = value.replace("rename" , "move");
142                     data.result.error = value;
143                 }
144                 self.deferredHandler(data, deferred);
145             }).error(function(data) {
146                 self.deferredHandler(data, deferred, 'Error Occured While Moving');
147             })['finally'](function() {
148                 self.inprocess = false;
149             });
150             return deferred.promise;
151         };
152
153         Item.prototype.copy = function() {
154             var self = this;
155             var deferred = $q.defer();
156             var data = {params: {
157                 mode: 'COPY',
158                 path: self.model.fullPath(),
159                 newPath: self.tempModel.fullPath()
160             }};
161
162             self.inprocess = true;
163             self.error = '';
164             $http.post(policyManagerConfig.copyUrl, data).success(function(data) {
165                 self.deferredHandler(data, deferred);
166             }).error(function(data) {
167                 self.deferredHandler(data, deferred, 'Error Occured While Cloning');
168             })['finally'](function() {
169                 self.inprocess = false;
170             });
171             return deferred.promise;
172         };
173
174         
175         Item.prototype.getContent = function(policyNavigator) {
176             var self = this;
177             var deferred = $q.defer();
178             var data = {params: {
179                 mode: 'EDITFILE',
180                 path: self.tempModel.fullPath()
181             }};
182
183             self.inprocess = true;
184             self.error = '';
185             $http.post(policyManagerConfig.getContentUrl, data).success(function(data) {
186                 self.tempModel.content =  self.model.content = data.result;
187                 var json = data.result;
188                 var policy = JSON.parse(json);
189                 self.policy = policy;
190                 self.itemContent = policyNavigator;
191                 console.log(policy);
192                 self.deferredHandler(data, deferred);
193             }).error(function(data) {
194                 self.deferredHandler(data, deferred, 'Error Occured While retrieving the Policy Data');
195             })['finally'](function() {
196                 self.inprocess = false;
197             });
198             return deferred.promise;
199         };
200
201         Item.prototype.getViewPolicyContent = function() {
202             var self = this;
203             var deferred = $q.defer();
204             var data = {params: {
205                 mode: 'VIEWPOLICY',
206                 path: self.tempModel.fullPath()
207             }};
208
209             self.inprocess = true;
210             self.error = '';
211             $http.post(policyManagerConfig.viewPolicyUrl, data).success(function(data) {
212                 self.tempModel.content =  self.model.content = data.result;
213                 var json = data.result;
214                 var policy = JSON.parse(json);
215                 self.policy = policy;
216                 console.log(data.result);
217                 console.log(policy);
218                 self.deferredHandler(data, deferred);
219             }).error(function(data) {
220                 self.deferredHandler(data, deferred, 'Error Occured While retrieving the Policy Data');
221             })['finally'](function() {
222                 self.inprocess = false;
223             });
224             return deferred.promise;
225         };
226
227         Item.prototype.getSwitchVersionContent = function() {
228             var self = this;
229             var deferred = $q.defer();
230             var data = {params: {
231                 mode: 'SWITCHVERSION',
232                 path: self.tempModel.fullPath(),
233                 activeVersion : self.tempModel.content.activeVersion,
234                 highestVersion : self.tempModel.content.highestVersion
235             }};
236
237             self.inprocess = true;
238             self.error = '';
239             $http.post(policyManagerConfig.switchVersionUrl, data).success(function(data) {
240                 self.tempModel.content =  self.model.content = data;
241                 self.deferredHandler(data, deferred);
242             }).error(function(data) {
243                 self.deferredHandler(data, deferred, 'Error Occured While retrieving the Switch Version Data');
244             })['finally'](function() {
245                 self.inprocess = false;
246             });
247             return deferred.promise;
248         };
249
250         Item.prototype.getDescribePolicyContent = function() {
251             var self = this;
252             var deferred = $q.defer();
253             var data = {params: {
254                 mode: 'DESCRIBEPOLICYFILE',
255                 path: self.tempModel.fullPath()
256             }};
257
258             self.inprocess = true;
259             self.error = '';
260             $http.post(policyManagerConfig.describePolicyUrl, data).success(function(data) {
261                 self.tempModel.content =  self.model.content = data.html;
262
263                 self.deferredHandler(data, deferred);
264             }).error(function(data) {
265                 self.deferredHandler(data, deferred, 'Error Occured While retrieving the Policy Data to Describe');
266             })['finally'](function() {
267                 self.inprocess = false;
268             });
269             return deferred.promise;
270         };
271
272         Item.prototype.getScopeContent = function() {
273             var self = this;
274             var deferred = $q.defer();
275             var data = {params: {
276                 mode: 'ADDSUBSCOPE',
277                 name: self.tempModel.name,
278                 subScopename: self.tempModel.subScopename,
279                 path: self.tempModel.fullPath()
280             }};
281
282             self.inprocess = true;
283             self.error = '';
284             $http.post(policyManagerConfig.addSubScopeUrl, data).success(function(data) {
285                 self.deferredHandler(data, deferred);
286             }).error(function(data) {
287                 self.deferredHandler(data, deferred, 'Error Occured While Creating the Sub Scope');
288             })['finally'](function() {
289                 self.inprocess = false;
290             });
291             return deferred.promise;
292         };
293
294         Item.prototype.remove = function() {
295             var self = this;
296             var deferred = $q.defer();
297             var data = {params: {
298                 mode: 'DELETE',
299                 path: self.tempModel.fullPath(),
300                 deleteVersion : self.model.versions
301             }};
302
303             self.inprocess = true;
304             self.error = '';
305             $http.post(policyManagerConfig.removeUrl, data).success(function(data) {
306                 self.deferredHandler(data, deferred);
307             }).error(function(data) {
308                 self.deferredHandler(data, deferred, 'Error Occured While retrieving the Deleting Scope');
309             })['finally'](function() {
310                 self.inprocess = false;
311             });
312             return deferred.promise;
313         };
314
315         Item.prototype.removePolicy = function() {
316             var self = this;
317             var deferred = $q.defer();
318             var data = {params: {
319                 mode: 'DELETE',
320                 path: self.tempModel.fullPath(),
321                 deleteVersion : self.model.versions
322             }};
323
324             self.inprocess = true;
325             self.error = '';
326             $http.post(policyManagerConfig.removeUrl, data).success(function(data) {
327                 self.deferredHandler(data, deferred);
328             }).error(function(data) {
329                 self.deferredHandler(data, deferred, 'Error Occured While retrieving the Deleting Policy');
330             })['finally'](function() {
331                 self.inprocess = false;
332             });
333             return deferred.promise;
334         };
335
336         Item.prototype.isFolder = function() {
337             return this.model.type === 'dir';
338         };
339
340         Item.prototype.isEditable = function() {
341             return !this.isFolder() && policyManagerConfig.isEditableFilePattern.test(this.model.name);
342         };
343
344         return Item;
345     }]);