From e0addf5b588a1244f9679becd90999dfcb4c3a94 Mon Sep 17 00:00:00 2001 From: "ITSERVICES\\rb7147" Date: Tue, 25 Apr 2017 11:46:00 -0400 Subject: Policy 1707 commit to LF Change-Id: Ibe6f01d92f9a434c040abb05d5386e89d675ae65 Signed-off-by: ITSERVICES\rb7147 --- .../policy-models/Editor/js/entities/item.js | 347 +++++++++++++++++++++ 1 file changed, 347 insertions(+) create mode 100644 POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/entities/item.js (limited to 'POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/entities/item.js') diff --git a/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/entities/item.js b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/entities/item.js new file mode 100644 index 000000000..2b1fd3469 --- /dev/null +++ b/POLICY-SDK-APP/src/main/webapp/app/policyApp/policy-models/Editor/js/entities/item.js @@ -0,0 +1,347 @@ +/*- + * ============LICENSE_START======================================================= + * ECOMP Policy Engine + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +angular.module('abs').factory('item', ['$http', '$q', 'policyManagerConfig', function($http, $q, policyManagerConfig) { + + var Item = function(model, path) { + var rawModel = { + name: model && model.name || '', + subScopename: model && model.subScopename || '', + path: path || [], + type: model && model.type || 'file', + size: model && parseInt(model.size || 0), + date: parseMySQLDate(model && model.date), + version: model && model.version || '', + createdBy: model && model.createdBy || '', + modifiedBy: model && model.modifiedBy || '', + content: model && model.content || '', + recursive: false, + sizeKb: function() { + return Math.round(this.size / 1024, 1); + }, + fullPath: function() { + if(this.version == ""){ + return ('/' + this.path.join('/') + '/' + this.name).replace(/\/\//, '/'); + }else{ + return ('/' + this.path.join('/') + '/' + this.name + '.' + this.version + '.xml').replace(/\/\//, '/'); + } + } + }; + + this.error = ''; + this.inprocess = false; + + this.model = angular.copy(rawModel); + this.tempModel = angular.copy(rawModel); + + function parseMySQLDate(mysqlDate) { + var d = (mysqlDate || '').toString().split(/[- :]/); + return new Date(d[0], d[1] - 1, d[2], d[3], d[4], d[5]); + } + }; + + Item.prototype.update = function() { + angular.extend(this.model, angular.copy(this.tempModel)); + }; + + Item.prototype.revert = function() { + angular.extend(this.tempModel, angular.copy(this.model)); + this.error = ''; + }; + + Item.prototype.deferredHandler = function(data, deferred, defaultMsg) { + if (!data || typeof data !== 'object') { + this.error = 'Bridge response error, please check the docs'; + } + if (data.result && data.result.error) { + this.error = data.result.error; + } + if (!this.error && data.error) { + this.error = data.error.message; + } + if (!this.error && defaultMsg) { + this.error = defaultMsg; + } + if (this.error) { + return deferred.reject(data); + } + this.update(); + return deferred.resolve(data); + }; + + Item.prototype.createFolder = function() { + var self = this; + var deferred = $q.defer(); + var data = {params: { + mode: 'ADDFOLDER', + path: self.tempModel.path.join('/'), + name: self.tempModel.name + }}; + + self.inprocess = true; + self.error = ''; + $http.post(policyManagerConfig.createFolderUrl, data).success(function(data) { + self.deferredHandler(data, deferred); + }).error(function(data) { + self.deferredHandler(data, deferred, 'Error Occured While Creating Scope'); + })['finally'](function() { + self.inprocess = false; + }); + + return deferred.promise; + }; + + Item.prototype.rename = function() { + var self = this; + var deferred = $q.defer(); + var data = {params: { + mode: 'RENAME', + path: self.model.fullPath(), + newPath: self.tempModel.fullPath() + }}; + self.inprocess = true; + self.error = ''; + $http.post(policyManagerConfig.renameUrl, data).success(function(data) { + self.deferredHandler(data, deferred); + }).error(function(data) { + self.deferredHandler(data, deferred, 'Error Occured While Renaming'); + })['finally'](function() { + self.inprocess = false; + }); + return deferred.promise; + }; + + + Item.prototype.move = function() { + var self = this; + var deferred = $q.defer(); + var data = {params: { + mode: 'RENAME', + path: self.model.fullPath(), + newPath: self.tempModel.fullPath() + }}; + self.inprocess = true; + self.error = ''; + $http.post(policyManagerConfig.renameUrl, data).success(function(data) { + self.deferredHandler(data, deferred); + }).error(function(data) { + self.deferredHandler(data, deferred, 'Error Occured While Moving'); + })['finally'](function() { + self.inprocess = false; + }); + return deferred.promise; + }; + + Item.prototype.copy = function() { + var self = this; + var deferred = $q.defer(); + var data = {params: { + mode: 'COPY', + path: self.model.fullPath(), + newPath: self.tempModel.fullPath() + }}; + + self.inprocess = true; + self.error = ''; + $http.post(policyManagerConfig.copyUrl, data).success(function(data) { + self.deferredHandler(data, deferred); + }).error(function(data) { + self.deferredHandler(data, deferred, 'Error Occured While Cloning'); + })['finally'](function() { + self.inprocess = false; + }); + return deferred.promise; + }; + + + Item.prototype.getContent = function() { + var self = this; + var deferred = $q.defer(); + var data = {params: { + mode: 'EDITFILE', + path: self.tempModel.fullPath() + }}; + + self.inprocess = true; + self.error = ''; + $http.post(policyManagerConfig.getContentUrl, data).success(function(data) { + self.tempModel.content = self.model.content = data.result; + var json = data.result; + var policy = JSON.parse(json); + self.policy = policy; + console.log(policy); + self.deferredHandler(data, deferred); + }).error(function(data) { + self.deferredHandler(data, deferred, 'Error Occured While retrieving the Policy Data'); + })['finally'](function() { + self.inprocess = false; + }); + return deferred.promise; + }; + + Item.prototype.getViewPolicyContent = function() { + var self = this; + var deferred = $q.defer(); + var data = {params: { + mode: 'VIEWPOLICY', + path: self.tempModel.fullPath() + }}; + + self.inprocess = true; + self.error = ''; + $http.post(policyManagerConfig.viewPolicyUrl, data).success(function(data) { + self.tempModel.content = self.model.content = data.result; + var json = data.result; + var policy = JSON.parse(json); + self.policy = policy; + console.log(data.result); + console.log(policy); + self.deferredHandler(data, deferred); + }).error(function(data) { + self.deferredHandler(data, deferred, 'Error Occured While retrieving the Policy Data'); + })['finally'](function() { + self.inprocess = false; + }); + return deferred.promise; + }; + + Item.prototype.getSwitchVersionContent = function() { + var self = this; + var deferred = $q.defer(); + var data = {params: { + mode: 'SWITCHVERSION', + path: self.tempModel.fullPath(), + activeVersion : self.tempModel.content.activeVersion, + highestVersion : self.tempModel.content.highestVersion + }}; + + self.inprocess = true; + self.error = ''; + $http.post(policyManagerConfig.switchVersionUrl, data).success(function(data) { + self.tempModel.content = self.model.content = data; + self.deferredHandler(data, deferred); + }).error(function(data) { + self.deferredHandler(data, deferred, 'Error Occured While retrieving the Switch Version Data'); + })['finally'](function() { + self.inprocess = false; + }); + return deferred.promise; + }; + + Item.prototype.getDescribePolicyContent = function() { + var self = this; + var deferred = $q.defer(); + var data = {params: { + mode: 'DESCRIBEPOLICYFILE', + path: self.tempModel.fullPath() + }}; + + self.inprocess = true; + self.error = ''; + $http.post(policyManagerConfig.describePolicyUrl, data).success(function(data) { + self.tempModel.content = self.model.content = data.html; + var describeTemplate = self.tempModel.content; + + self.deferredHandler(data, deferred); + }).error(function(data) { + self.deferredHandler(data, deferred, 'Error Occured While retrieving the Policy Data to Describe'); + })['finally'](function() { + self.inprocess = false; + }); + return deferred.promise; + }; + + Item.prototype.getScopeContent = function() { + var self = this; + var deferred = $q.defer(); + var data = {params: { + mode: 'ADDSUBSCOPE', + name: self.tempModel.name, + subScopename: self.tempModel.subScopename, + path: self.tempModel.fullPath() + }}; + + self.inprocess = true; + self.error = ''; + $http.post(policyManagerConfig.addSubScopeUrl, data).success(function(data) { + self.deferredHandler(data, deferred); + }).error(function(data) { + self.deferredHandler(data, deferred, 'Error Occured While Creating the Sub Scope'); + })['finally'](function() { + self.inprocess = false; + }); + return deferred.promise; + }; + + Item.prototype.remove = function() { + var self = this; + var deferred = $q.defer(); + var data = {params: { + mode: 'DELETE', + path: self.tempModel.fullPath(), + deleteVersion : self.model.versions + }}; + + self.inprocess = true; + self.error = ''; + $http.post(policyManagerConfig.removeUrl, data).success(function(data) { + self.deferredHandler(data, deferred); + }).error(function(data) { + self.deferredHandler(data, deferred, 'Error Occured While retrieving the Deleting Scope'); + })['finally'](function() { + self.inprocess = false; + }); + return deferred.promise; + }; + + Item.prototype.removePolicy = function() { + var self = this; + var deferred = $q.defer(); + var data = {params: { + mode: 'DELETE', + path: self.tempModel.fullPath(), + deleteVersion : self.model.versions + }}; + + self.inprocess = true; + self.error = ''; + $http.post(policyManagerConfig.removeUrl, data).success(function(data) { + self.deferredHandler(data, deferred); + }).error(function(data) { + self.deferredHandler(data, deferred, 'Error Occured While retrieving the Deleting Policy'); + })['finally'](function() { + self.inprocess = false; + }); + return deferred.promise; + }; + + Item.prototype.isFolder = function() { + return this.model.type === 'dir'; + }; + + Item.prototype.isEditable = function() { + return !this.isFolder() && policyManagerConfig.isEditableFilePattern.test(this.model.name); + }; + + /*Item.prototype.isImage = function() { + return policyManagerConfig.isImageFilePattern.test(this.model.name); + };*/ + + return Item; + }]); -- cgit 1.2.3-korg