Files
stf-DeviceFarmer/res/app/control-panes/explorer/explorer-controller.js
Denis Barbaron d71e3fced4 Fix issue on File Explorer (#97)
* Fix issue on File Explorer

While getting a file on a controlled device, the connection to minicap service was stopping due to the URL redirection.

Signed-off-by: Denis barbaron <denis.barbaron@orange.com>
2020-09-20 16:17:25 +02:00

74 lines
1.7 KiB
JavaScript

/**
* Copyright © 2020 contains code contributed by Orange SA, authors: Denis Barbaron - Licensed under the Apache license 2.0
**/
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) {
window.open(result.body.href + '?download', '_blank')
}
})
.catch(function(err) {
throw new Error(err.message)
})
}
// Initialize
listDir($scope.dir)
}