summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Reschke <lukas@owncloud.com>2015-01-15 20:32:42 +0100
committerLukas Reschke <lukas@owncloud.com>2015-01-15 20:32:42 +0100
commit9b4d5b502fcdba004c3ee95dd6d395f437a5e5dc (patch)
treebc694c71ac10a18f26a829ef91c33cd5784efdfe
parent36ced1f0020593470292e240bb6a0ef5716167f4 (diff)
parent7f24e77cfcfa90f70505c8556ce059e3befd5be1 (diff)
downloadnextcloud-server-9b4d5b502fcdba004c3ee95dd6d395f437a5e5dc.tar.gz
nextcloud-server-9b4d5b502fcdba004c3ee95dd6d395f437a5e5dc.zip
Merge pull request #13397 from owncloud/files-greyhighlightondownload
Fix for sticky grey highlight / selection in file list
-rw-r--r--apps/files/css/files.css2
-rw-r--r--apps/files/js/filelist.js4
-rw-r--r--apps/files/tests/js/filelistSpec.js30
3 files changed, 35 insertions, 1 deletions
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index 5b947fa326c..7e0371af94f 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -258,6 +258,8 @@ table td.filename .thumbnail {
margin-top: 9px;
cursor: pointer;
float: left;
+ position: absolute;
+ z-index: 4;
}
table td.filename input.filename {
width: 70%;
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 1d7252220bf..c5c665cee77 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -323,7 +323,7 @@
*/
_onClickFile: function(event) {
var $tr = $(event.target).closest('tr');
- if (event.ctrlKey || event.shiftKey) {
+ if (this._allowSelection && (event.ctrlKey || event.shiftKey)) {
event.preventDefault();
if (event.shiftKey) {
var $lastTr = $(this._lastChecked);
@@ -369,6 +369,8 @@
dir: $tr.attr('data-path') || this.getCurrentDirectory()
});
}
+ // deselect row
+ $(event.target).closest('a').blur();
}
}
},
diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js
index c1c8e4ce337..59e3f8a9d4e 100644
--- a/apps/files/tests/js/filelistSpec.js
+++ b/apps/files/tests/js/filelistSpec.js
@@ -1790,6 +1790,36 @@ describe('OCA.Files.FileList tests', function() {
expect(fileList.$el.find('.select-all').prop('checked')).toEqual(false);
expect(fileList.getSelectedFiles()).toEqual([]);
});
+ describe('Disabled selection', function() {
+ beforeEach(function() {
+ fileList._allowSelection = false;
+ fileList.setFiles(testFiles);
+ });
+ it('Does not render checkboxes', function() {
+ expect(fileList.$fileList.find('.selectCheckBox').length).toEqual(0);
+ });
+ it('Does not select a file with Ctrl or Shift if selection is not allowed', function() {
+ var $tr = fileList.findFileEl('One.txt');
+ var $tr2 = fileList.findFileEl('Three.pdf');
+ var e;
+ e = new $.Event('click');
+ e.ctrlKey = true;
+ $tr.find('td.filename .name').trigger(e);
+
+ // click on second entry, does not clear the selection
+ e = new $.Event('click');
+ e.ctrlKey = true;
+ $tr2.find('td.filename .name').trigger(e);
+
+ expect(fileList.getSelectedFiles().length).toEqual(0);
+
+ // deselect now
+ e = new $.Event('click');
+ e.shiftKey = true;
+ $tr2.find('td.filename .name').trigger(e);
+ expect(fileList.getSelectedFiles().length).toEqual(0);
+ });
+ })
});
describe('File actions', function() {
it('Clicking on a file name will trigger default action', function() {