Initial OpenECOMP policy/engine commit
[policy/engine.git] / ecomp-sdk-app / src / main / webapp / app / policyApp / controller / editorTabController.js
diff --git a/ecomp-sdk-app/src/main/webapp/app/policyApp/controller/editorTabController.js b/ecomp-sdk-app/src/main/webapp/app/policyApp/controller/editorTabController.js
new file mode 100644 (file)
index 0000000..d9a6bbc
--- /dev/null
@@ -0,0 +1,211 @@
+/*-
+ * ============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';
+   app.controller('policyeditorTabController', [
+        '$scope', '$translate', '$cookies', 'fileManagerConfig', 'item', 'fileNavigator', 'fileUploader',
+        function($scope, $translate, $cookies, fileManagerConfig, Item, FileNavigator, FileUploader) {
+
+/!*app.controller('policyeditorTabController', function ($scope, $translate, $cookies, fileManagerConfig, Item, FileNavigator, FileUploader){*!/
+    $( "#dialog" ).hide();
+    $scope.config = fileManagerConfig;
+    $scope.reverse = false;
+    $scope.predicate = ['model.type', 'model.name'];
+    $scope.order = function(predicate) {
+        $scope.reverse = ($scope.predicate[1] === predicate) ? !$scope.reverse : false;
+        $scope.predicate[1] = predicate;
+    };
+
+    $scope.query = '';
+    $scope.temp = new Item();
+    $scope.fileNavigator = new FileNavigator();
+    $scope.fileUploader = FileUploader;
+    $scope.uploadFileList = [];
+    $scope.viewTemplate = $cookies.viewTemplate || 'main-table.html';
+
+    $scope.setTemplate = function(name) {
+        $scope.viewTemplate = $cookies.viewTemplate = name;
+    };
+
+    $scope.changeLanguage = function (locale) {
+        if (locale) {
+            return $translate.use($cookies.language = locale);
+        }
+        $translate.use($cookies.language || fileManagerConfig.defaultLang);
+    };
+
+    $scope.touch = function(item) {
+        item = item instanceof Item ? item : new Item();
+        item.revert();
+        $scope.temp = item;
+    };
+
+    $scope.smartClick = function(item) {
+        if (item.isFolder()) {
+            return $scope.fileNavigator.folderClick(item);
+        }
+        if (item.isImage()) {
+            return $scope.openImagePreview(item);
+        }
+        if (item.isEditable()) {
+            return $scope.openEditItem(item);
+        }
+    };
+
+    $scope.openImagePreview = function(item) {
+        item.inprocess = true;
+        $scope.modal('imagepreview')
+            .find('#imagepreview-target')
+            .attr('src', item.getUrl(true))
+            .unbind('load error')
+            .on('load error', function() {
+                item.inprocess = false;
+                $scope.$apply();
+            });
+        return $scope.touch(item);
+    };
+
+    $scope.openEditItem = function(item) {
+        item.getContent();
+        $scope.modal('edit');
+        return $scope.touch(item);
+    };
+
+    $scope.modal = function(id, hide) {
+        return $('#' + id).modal(hide ? 'hide' : 'show');
+    };
+
+    $scope.isInThisPath = function(path) {
+        var currentPath = $scope.fileNavigator.currentPath.join('/');
+        return currentPath.indexOf(path) !== -1;
+    };
+
+    $scope.edit = function(item) {
+        item.edit().then(function() {
+            $scope.modal('edit', true);
+        });
+    };
+
+    $scope.changePermissions = function(item) {
+        item.changePermissions().then(function() {
+            $scope.modal('changepermissions', true);
+        });
+    };
+
+    $scope.copy = function(item) {
+        var samePath = item.tempModel.path.join() === item.model.path.join();
+        if (samePath && $scope.fileNavigator.fileNameExists(item.tempModel.name)) {
+            item.error = $translate.instant('error_invalid_filename');
+            return false;
+        }
+        item.copy().then(function() {
+            $scope.fileNavigator.refresh();
+            $scope.modal('copy', true);
+        });
+    };
+
+    $scope.compress = function(item) {
+        item.compress().then(function() {
+            $scope.fileNavigator.refresh();
+            if (! $scope.config.compressAsync) {
+                return $scope.modal('compress', true);
+            }
+            item.asyncSuccess = true;
+        }, function() {
+            item.asyncSuccess = false;
+        });
+    };
+
+    $scope.extract = function(item) {
+        item.extract().then(function() {
+            $scope.fileNavigator.refresh();
+            if (! $scope.config.extractAsync) {
+                return $scope.modal('extract', true);
+            }
+            item.asyncSuccess = true;
+        }, function() {
+            item.asyncSuccess = false;
+        });
+    };
+
+    $scope.remove = function(item) {
+        item.remove().then(function() {
+            $scope.fileNavigator.refresh();
+            $scope.modal('delete', true);
+        });
+    };
+
+    $scope.rename = function(item) {
+        var samePath = item.tempModel.path.join() === item.model.path.join();
+        if (samePath && $scope.fileNavigator.fileNameExists(item.tempModel.name)) {
+            item.error = $translate.instant('error_invalid_filename');
+            return false;
+        }
+        item.rename().then(function() {
+            $scope.fileNavigator.refresh();
+            $scope.modal('rename', true);
+        });
+    };
+
+    $scope.createFolder = function(item) {
+        var name = item.tempModel.name && item.tempModel.name.trim();
+        item.tempModel.type = 'dir';
+        item.tempModel.path = $scope.fileNavigator.currentPath;
+        if (name && !$scope.fileNavigator.fileNameExists(name)) {
+            item.createFolder().then(function() {
+                $scope.fileNavigator.refresh();
+                $scope.modal('newfolder', true);
+            });
+        } else {
+            item.error = $translate.instant('error_invalid_filename');
+            return false;
+        }
+    };
+
+    $scope.uploadFiles = function() {
+        $scope.fileUploader.upload($scope.uploadFileList, $scope.fileNavigator.currentPath).then(function() {
+            $scope.fileNavigator.refresh();
+            $scope.modal('uploadfile', true);
+        }, function(data) {
+            var errorMsg = data.result && data.result.error || $translate.instant('error_uploading_files');
+            $scope.temp.error = errorMsg;
+        });
+    };
+
+    $scope.getQueryParam = function(param) {
+        var found;
+        window.location.search.substr(1).split('&').forEach(function(item) {
+            if (param ===  item.split('=')[0]) {
+                found = item.split('=')[1];
+                return false;
+            }
+        });
+        return found;
+    };
+
+    $scope.changeLanguage($scope.getQueryParam('lang'));
+    $scope.isWindows = $scope.getQueryParam('server') === 'Windows';
+    $scope.fileNavigator.refresh();
+        }]);
+})(window, angular, jQuery);*/