Files
CyberPanel/static/filemanager_app/src/js/controllers/selector-controller.js
2019-06-08 21:41:43 +00:00

59 lines
2.1 KiB
JavaScript
Executable File

(function(angular) {
'use strict';
angular.module('FileManagerApp').controller('ModalFileManagerCtrl',
['$scope', '$rootScope', 'fileNavigator', function($scope, $rootScope, FileNavigator) {
$scope.reverse = false;
$scope.predicate = ['model.type', 'model.name'];
$scope.fileNavigator = new FileNavigator();
$rootScope.selectedModalPath = [];
$scope.order = function(predicate) {
$scope.reverse = ($scope.predicate[1] === predicate) ? !$scope.reverse : false;
$scope.predicate[1] = predicate;
};
$scope.select = function(item) {
$rootScope.selectedModalPath = item.model.fullPath().split('/').filter(Boolean);
$scope.modal('selector', true);
};
$scope.selectCurrent = function() {
$rootScope.selectedModalPath = $scope.fileNavigator.currentPath;
$scope.modal('selector', true);
};
$scope.selectedFilesAreChildOfPath = function(item) {
var path = item.model.fullPath();
return $scope.temps.find(function(item) {
var itemPath = item.model.fullPath();
if (path == itemPath) {
return true;
}
/*
if (path.startsWith(itemPath)) {
fixme names in same folder like folder-one and folder-one-two
at the moment fixed hidding affected folders
}
*/
});
};
$rootScope.openNavigator = function(path) {
$scope.fileNavigator.currentPath = path;
$scope.fileNavigator.refresh();
$scope.modal('selector');
};
$rootScope.getSelectedPath = function() {
var path = $rootScope.selectedModalPath.filter(Boolean);
var result = '/' + path.join('/');
if ($scope.singleSelection() && !$scope.singleSelection().isFolder()) {
result += '/' + $scope.singleSelection().tempModel.name;
}
return result.replace(/\/\//, '/');
};
}]);
})(angular);