/*- * ============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').controller('FileManagerCtrl', [ '$scope', '$q', '$window', '$translate', '$cookies', 'fileManagerConfig', 'item', 'fileNavigator', 'fileUploader', 'AdminTabService', 'RolesService', 'Notification', 'PolicyDictionaryService', 'PapUrlService', function($scope, $q, $Window, $translate, $cookies, fileManagerConfig, Item, FileNavigator, FileUploader, AdminTabService, RolesService, Notification, PolicyDictionaryService, PapUrlService ) { $scope.isDisabled = true; $scope.superAdminId = false; $scope.exportPolicyId = false; $scope.importPolicyId = false; $scope.createScopeId = false; $scope.deleteScopeId = false; $scope.renameId = false; $scope.createPolicyId = false; $scope.cloneId = false; $scope.editPolicyId = false; $scope.switchVersionId = false; $scope.describePolicyId = false; $scope.viewPolicyId = false; $scope.deletePolicyId = false; AdminTabService.getData().then(function(data){ var j = data; $scope.data = JSON.parse(j.data); $scope.lockdowndata = JSON.parse($scope.data.lockdowndata); if($scope.lockdowndata[0].lockdown == true){ $scope.isDisabled = true; }else{ $scope.isDisabled = false; } console.log($scope.data); },function(error){ console.log("failed"); }); var papUrl; PapUrlService.getPapUrl().then(function(data) { var config = data; papUrl = config.PAP_URL; console.log(papUrl); PolicyDictionaryService.getDescriptiveDictionaryData(papUrl).then(function(data){ var j = data; $scope.data = JSON.parse(j.data); console.log($scope.data); $scope.descriptiveScopeDictionaryDatas = JSON.parse($scope.data.descriptiveScopeDictionaryDatas); }, function (error) { console.log("failed"); }); PolicyDictionaryService.getEcompDictionaryData(papUrl).then(function(data){ var j = data; $scope.data = JSON.parse(j.data); console.log($scope.data); $scope.ecompNameDictionaryDatas = JSON.parse($scope.data.ecompNameDictionaryDatas); }, function (error) { console.log("failed"); }); PolicyDictionaryService.getVSCLActionDictionaryData(papUrl).then(function(data){ var j = data; $scope.data = JSON.parse(j.data); console.log($scope.data); $scope.vsclActionDictionaryDatas = JSON.parse($scope.data.vsclActionDictionaryDatas); }, function (error) { console.log("failed"); }); PolicyDictionaryService.getVnfTypeDictionaryData(papUrl).then(function(data){ var j = data; $scope.data = JSON.parse(j.data); console.log($scope.data); $scope.vnfTypeDictionaryDatas = JSON.parse($scope.data.vnfTypeDictionaryDatas); }, function (error) { console.log("failed"); }); }); RolesService.getRolesData().then(function (data) { var j = data; $scope.data = JSON.parse(j.data); console.log($scope.data); $scope.userRolesDatas = JSON.parse($scope.data.userRolesDatas); console.log($scope.userRolesDatas); if($scope.userRolesDatas[0] == 'super-admin'){ $scope.superAdminId = true; $scope.exportPolicyId = true; $scope.importPolicyId = true; $scope.createScopeId = true; $scope.deleteScopeId = true; $scope.renameId = true; $scope.createPolicyId = true; $scope.cloneId = true; $scope.editPolicyId = true; $scope.switchVersionId = true; $scope.describePolicyId = true; $scope.viewPolicyId = true; $scope.deletePolicyId = true; }else if($scope.userRolesDatas[0] == 'super-editor' || $scope.userRolesDatas[0] == 'editor'){ $scope.exportPolicyId = true; $scope.importPolicyId = true; $scope.cloneId = true; $scope.editPolicyId = true; $scope.createPolicyId = true; $scope.cloneId = true; $scope.editPolicyId = true; $scope.switchVersionId = true; $scope.describePolicyId = true; $scope.viewPolicyId = true; $scope.deletePolicyId = true; }else if($scope.userRolesDatas[0] == 'super-guest' || $scope.userRolesDatas[0] == 'guest'){ $scope.describePolicyId = true; $scope.viewPolicyId = true; }else if($scope.userRolesDatas[0] == 'admin'){ $scope.exportPolicyId = true; $scope.importPolicyId = true; $scope.createScopeId = true; $scope.renameId = true; $scope.createPolicyId = true; $scope.cloneId = true; $scope.editPolicyId = true; $scope.switchVersionId = true; $scope.describePolicyId = true; $scope.viewPolicyId = true; $scope.deletePolicyId = true; } }, function (error) { console.log("failed"); }); $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('createNewPolicy'); 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('createNewPolicy', true); }); }; $scope.createNewPolicy = function(item) { item.createNewPolicy().then(function() { $scope.modal('createNewPolicy', true); }); }; $scope.watch = function(item){ var uuu = "watchPolicy"; var data = {name : item.model.name, path : item.model.path}; var postData={watchData: data}; $.ajax({ type : 'POST', url : uuu, dataType: 'json', contentType: 'application/json', data: JSON.stringify(postData), success : function(data){ $scope.$apply(function(){ $scope.watchData=data.watchData;}); Notification.success($scope.watchData); console.log($scope.watchData); }, error : function(data){ alert("Error while saving."); } }); }; $scope.Search = function(search){ var deferred = $q.defer(); var uuu = "searchPolicy"; var postData = {searchdata : search}; $.ajax({ type : 'POST', url : uuu, dataType: 'json', contentType: 'application/json', data: JSON.stringify(postData), success : function(data){ $scope.$apply(function(){ $scope.searchdata=data.result;}); if($scope.searchdata[0].error != undefined){ Notification.info($scope.searchdata[0].error); }else{ var j = data; $scope.data = JSON.stringify(data.result); $scope.searchDatas = JSON.parse($scope.data); var searchString = "Policies List" + "
"; var i; for(i = 0 ; i < $scope.searchDatas.length; i++){ searchString += $scope.searchDatas[i].name + ".xml" + "
"; } var myWindow = window.open("", "MsgWindow", "width=500,height=500"); myWindow.document.write("

Search List

"); myWindow.document.write("

"+searchString+"

"); } }, error : function(data){ alert("Error while Searching."); } }); }; $scope.describePolicy = function(item){ item.describePolicy().then(function(){ $scope.modal('describePolicy', true); }); }; $scope.exportPolicy = function(item){ item.exportPolicy().then(function(){ $scope.modal('exportPolicy', true); }); }; $scope.switchVersion = function(item){ if ($scope.fileNavigator.fileNameExists(item.tempModel.content.activeVersion)) { item.error = $translate.instant('error_invalid_filename'); return false; } item.getSwitchVersionContent().then(function(){ $scope.fileNavigator.refresh(); $scope.modal('switchVersion', true); }); }; $scope.viewPolicy = function(item){ item.viewPolicy().then(function(){ $scope.modal('createNewPolicy', 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.remove = function(item) { item.remove().then(function() { $scope.fileNavigator.refresh(); $scope.modal('delete', true); }); }; $scope.removePolicy = function(item) { item.removePolicy().then(function() { $scope.fileNavigator.refresh(); $scope.modal('deletePolicy', 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.move = 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.move().then(function() { $scope.fileNavigator.refresh(); $scope.modal('move', 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.subScopeFolder = function(item) { var name = item.tempModel.name +"\\" + item.tempModel.subScopename && item.tempModel.name.trim() + "\\"+item.tempModel.subScopename.trim() ; item.tempModel.type = 'dir'; item.tempModel.path = $scope.fileNavigator.currentPath; if (name && !$scope.fileNavigator.fileNameExists(name)) { item.getScopeContent().then(function() { $scope.fileNavigator.refresh(); $scope.modal('addSubScope', 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);