diff --git a/src/filemanager.html b/src/filemanager.html index f73bd5cbb..a5c233d5f 100644 --- a/src/filemanager.html +++ b/src/filemanager.html @@ -57,7 +57,7 @@ - + @@ -348,14 +348,14 @@ {{ 'filemanager.list.empty' | tr }} - - + + - {{ entry.fileName }}{{ 'filemanager.list.symlink' | tr:{ target: entry.target } }} - {{ entry.mtime | prettyDate }} - {{ entry.size | prettyByteSize }} - {{ entry.uid | prettyOwner }} + {{ entry.fileName }}{{ 'filemanager.list.symlink' | tr:{ target: entry.target } }} + {{ entry.mtime | prettyDate }} + {{ entry.size | prettyByteSize }} + {{ entry.uid | prettyOwner }} diff --git a/src/js/filemanager.js b/src/js/filemanager.js index 484ab2ee9..567d91567 100644 --- a/src/js/filemanager.js +++ b/src/js/filemanager.js @@ -70,6 +70,7 @@ app.controller('FileManagerController', ['$scope', '$translate', '$timeout', 'Cl $scope.rootDirLabel = ''; $scope.title = ''; $scope.entries = []; + $scope.selected = []; $scope.dropToBody = false; $scope.sortAsc = true; $scope.sortProperty = 'fileName'; @@ -305,6 +306,30 @@ app.controller('FileManagerController', ['$scope', '$translate', '$timeout', 'Cl } }; + $scope.select = function ($event, entry) { + + var i = $scope.selected.indexOf(entry); + var multi = ($event.ctrlKey || $event.metaKey); + + if ($event.button === 0) { + // left click + + if (multi) { + if (i === -1) $scope.selected.push(entry); + else $scope.selected.splice(i, 1); + } else { + $scope.selected = [ entry ]; + } + } else if ($event.button === 2) { + // right click + + if (i === -1) { + if (multi) $scope.selected.push(entry); + else $scope.selected = [ entry ]; + } + } + }; + $scope.goDirectoryUp = function () { $scope.changeDirectory($scope.cwd + '/..'); }; @@ -794,6 +819,7 @@ app.controller('FileManagerController', ['$scope', '$translate', '$timeout', 'Cl $scope.menuOptions = [ { text: tr['filemanager.list.menu.rename'], + enabled: function () { return $scope.selected.length === 1; }, click: function ($itemScope, $event, entry) { $scope.renameEntry.show(entry); } }, { text: tr['filemanager.list.menu.chown'], diff --git a/src/theme.scss b/src/theme.scss index e977227e5..8dd37d015 100644 --- a/src/theme.scss +++ b/src/theme.scss @@ -1825,6 +1825,11 @@ tag-input { border: none !important; } + .entry-selected { + background-color: lighten($brand-primary, 15) !important; + color: white !important; + } + .card { height: calc(100% - 20px); display: flex;