| module.exports = function ExplorerCtrl($scope) { |
| $scope.explorer = { |
| search: '', |
| files: [], |
| paths: [] |
| } |
| |
| $scope.getAbsolutePath = function() { |
| return ('/' + $scope.explorer.paths.join('/')).replace(/\/\/+/g, '/') |
| } |
| |
| function resetPaths(path) { |
| $scope.explorer.paths = path.split('/') |
| } |
| |
| var listDir = function listDir() { |
| var path = $scope.getAbsolutePath() |
| $scope.explorer.search = path |
| |
| $scope.control.fslist(path) |
| .then(function(result) { |
| $scope.explorer.files = result.body |
| $scope.$digest() |
| }) |
| .catch(function(err) { |
| throw new Error(err.message) |
| }) |
| } |
| |
| $scope.dirEnterLocation = function() { |
| if ($scope.explorer.search) { |
| resetPaths($scope.explorer.search) |
| listDir() |
| $scope.explorer.search = $scope.getAbsolutePath() |
| } |
| } |
| |
| $scope.dirEnter = function(name) { |
| if (name) { |
| $scope.explorer.paths.push(name) |
| } |
| listDir() |
| $scope.explorer.search = $scope.getAbsolutePath() |
| } |
| |
| $scope.dirUp = function() { |
| if ($scope.explorer.paths.length !== 0) { |
| $scope.explorer.paths.pop() |
| } |
| listDir() |
| $scope.explorer.search = $scope.getAbsolutePath() |
| } |
| |
| $scope.getFile = function(file) { |
| var path = $scope.getAbsolutePath() + '/' + file |
| $scope.control.fsretrieve(path) |
| .then(function(result) { |
| if (result.body) { |
| location.href = result.body.href + '?download' |
| } |
| }) |
| .catch(function(err) { |
| throw new Error(err.message) |
| }) |
| } |
| |
| // Initialize |
| listDir($scope.dir) |
| } |