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;