diff --git a/apps/files/css/files.scss b/apps/files/css/files.scss index 1950d740bd758..612ac975aebf9 100644 --- a/apps/files/css/files.scss +++ b/apps/files/css/files.scss @@ -91,6 +91,11 @@ color: var(--color-text-maxcontrast); } } + + // Deactivates the possiblility to checkmark or click on the encrypted folder + tr[data-e2eencrypted="true"] { + pointer-events: none; + } } } diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 7caed29baa304..96273b325cb9c 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -976,6 +976,8 @@ // Select only visible checkboxes to filter out unmatched file in search this.$fileList.find('td.selection > .selectCheckBox:visible').prop('checked', checked) .closest('tr').toggleClass('selected', checked); + // For prevents the selection of encrypted folders when clicking on the "Select all" checkbox + this.$fileList.find('tr[data-e2eencrypted="true"]').find('td.selection > .selectCheckBox:visible').prop('checked', false).closest('tr').toggleClass('selected', false); if (checked) { for (var i = 0; i < this.files.length; i++) { @@ -984,7 +986,7 @@ var fileData = this.files[i]; var fileRow = this.$fileList.find('tr[data-id=' + fileData.id + ']'); // do not select already selected ones - if (!fileRow.hasClass('hidden') && _.isUndefined(this._selectedFiles[fileData.id])) { + if (!fileRow.hasClass('hidden') && _.isUndefined(this._selectedFiles[fileData.id]) && (!fileData.isEncrypted)) { this._selectedFiles[fileData.id] = fileData; this._selectionSummary.add(fileData); } @@ -1419,6 +1421,10 @@ hidden = false; } tr = this._renderRow(fileData, {updateSummary: false, silent: true, hidden: hidden}); + if (tr.attr('data-e2eencrypted') === 'true') { + tr.toggleClass('selected', false); + tr.find('td.selection > .selectCheckBox:visible').prop('checked', false); + } this.$fileList.append(tr); if (isAllSelected || this._selectedFiles[fileData.id]) { tr.addClass('selected');