aboutsummaryrefslogtreecommitdiffstats
path: root/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/js/entities/item.js
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/js/entities/item.js')
-rw-r--r--ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/js/entities/item.js351
1 files changed, 351 insertions, 0 deletions
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/js/entities/item.js b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/js/entities/item.js
new file mode 100644
index 000000000..709404e8c
--- /dev/null
+++ b/ecomp-sdk-app/src/main/webapp/app/policyApp/policy-models/Editor/src/js/entities/item.js
@@ -0,0 +1,351 @@
+/*-
+ * ============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=========================================================
+ */
+
+(function(window, angular, $) {
+ 'use strict';
+ angular.module('abs').factory('item', ['$http', '$q', '$translate', 'fileManagerConfig', function($http, $q, $translate, fileManagerConfig) {
+
+ 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(fileManagerConfig.createFolderUrl, data).success(function(data) {
+ self.deferredHandler(data, deferred);
+ }).error(function(data) {
+ self.deferredHandler(data, deferred, $translate.instant('error_creating_folder'));
+ })['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(fileManagerConfig.renameUrl, data).success(function(data) {
+ self.deferredHandler(data, deferred);
+ }).error(function(data) {
+ self.deferredHandler(data, deferred, $translate.instant('error_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(fileManagerConfig.renameUrl, data).success(function(data) {
+ self.deferredHandler(data, deferred);
+ }).error(function(data) {
+ self.deferredHandler(data, deferred, $translate.instant('error_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(fileManagerConfig.copyUrl, data).success(function(data) {
+ self.deferredHandler(data, deferred);
+ }).error(function(data) {
+ self.deferredHandler(data, deferred, $translate.instant('error_copying'));
+ })['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(fileManagerConfig.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, $translate.instant('error_getting_content'));
+ })['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(fileManagerConfig.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, $translate.instant('error_getting_content'));
+ })['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(fileManagerConfig.switchVersionUrl, data).success(function(data) {
+ self.tempModel.content = self.model.content = data;
+ self.deferredHandler(data, deferred);
+ }).error(function(data) {
+ self.deferredHandler(data, deferred, $translate.instant('error_getting_content'));
+ })['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(fileManagerConfig.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, $translate.instant('error_getting_content'));
+ })['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(fileManagerConfig.addSubScopeUrl, data).success(function(data) {
+ self.deferredHandler(data, deferred);
+ }).error(function(data) {
+ self.deferredHandler(data, deferred, $translate.instant('error_adding_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(fileManagerConfig.removeUrl, data).success(function(data) {
+ self.deferredHandler(data, deferred);
+ }).error(function(data) {
+ self.deferredHandler(data, deferred, $translate.instant('error_deleting'));
+ })['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(fileManagerConfig.removeUrl, data).success(function(data) {
+ self.deferredHandler(data, deferred);
+ }).error(function(data) {
+ self.deferredHandler(data, deferred, $translate.instant('error_deleting'));
+ })['finally'](function() {
+ self.inprocess = false;
+ });
+ return deferred.promise;
+ };
+
+ Item.prototype.isFolder = function() {
+ return this.model.type === 'dir';
+ };
+
+ Item.prototype.isEditable = function() {
+ return !this.isFolder() && fileManagerConfig.isEditableFilePattern.test(this.model.name);
+ };
+
+ Item.prototype.isImage = function() {
+ return fileManagerConfig.isImageFilePattern.test(this.model.name);
+ };
+
+ return Item;
+ }]);
+})(window, angular, jQuery);