From 2809847afbd434b9d9246ade4a96595f4004e4d8 Mon Sep 17 00:00:00 2001 From: Christina Toegl <toegl@tugraz.at> Date: Tue, 29 Mar 2022 16:50:11 +0200 Subject: [PATCH] Fix select all issues --- packages/file-handling/src/clipboard.js | 16 ++++--------- .../src/nextcloud-file-picker.js | 24 ++++++++----------- 2 files changed, 14 insertions(+), 26 deletions(-) diff --git a/packages/file-handling/src/clipboard.js b/packages/file-handling/src/clipboard.js index 44df2aa7..4437c29e 100644 --- a/packages/file-handling/src/clipboard.js +++ b/packages/file-handling/src/clipboard.js @@ -26,6 +26,7 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) { this.clipboardSelectBtnDisabled = true; this.tabulatorTable = null; this._onReceiveBeforeUnload = this.onReceiveBeforeUnload.bind(this); + this.boundSelectHandler = this.selectAllFiles.bind(this); this.filesToSave = []; this.numberOfSelectedFiles = 0; this.enabledTargets = 'local'; @@ -110,15 +111,6 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) { super.update(changedProperties); } - async firstUpdated() { - // Give the browser a chance to paint - await new Promise((r) => setTimeout(r, 0)); - if (this._('#select_all')) { - let boundSelectHandler = this.selectAllFiles.bind(this); - this._('#select_all').addEventListener('click', boundSelectHandler); - } - } - toggleCollapse(e) { const table = this.tabulatorTable; setTimeout(function () { @@ -245,8 +237,6 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) { this.tabulatorTable.on("dataLoaded", this.dataLoadedFunction.bind(this)); }); - - //Register only one beforeunload Event for the clipboard warning if (!window.clipboardWarning) { window.addEventListener('beforeunload', this._onReceiveBeforeUnload, false); @@ -312,6 +302,9 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) { ); } }, 0); + if (this._('#select_all')) { + this._('#select_all').addEventListener('click', this.boundSelectHandler); + } } } @@ -320,7 +313,6 @@ export class Clipboard extends ScopedElementsMixin(AdapterLitElement) { //window.removeEventListener('beforeunload', this._onReceiveBeforeUnload); super.disconnectedCallback(); this.tabulatorTable.off("dataProcessed"); - } /** diff --git a/packages/file-handling/src/nextcloud-file-picker.js b/packages/file-handling/src/nextcloud-file-picker.js index 4ac50b80..f4bf1d90 100644 --- a/packages/file-handling/src/nextcloud-file-picker.js +++ b/packages/file-handling/src/nextcloud-file-picker.js @@ -76,6 +76,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) { this.disableRowClick = false; this.boundRefreshOnWindowSizeChange = this.refreshOnWindowSizeChange.bind(this); this.boundCancelNewFolderHandler = this.cancelNewFolder.bind(this); + this.boundSelectHandler = this.selectAllFiles.bind(this); } static get scopedElements() { @@ -150,19 +151,6 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) { super.disconnectedCallback(); } - async firstUpdated() { - // Give the browser a chance to paint - await new Promise((r) => setTimeout(r, 0)); - if (this._('#select_all')) { - let boundSelectHandler = this.selectAllFiles.bind(this); - this._('#select_all').addEventListener('click', boundSelectHandler); - } - if (this.directoriesOnly && this._('#select_all_wrapper')) { - this._('#select_all_wrapper').classList.remove('button-container'); - this._('#select_all_wrapper').classList.add('hidden'); - } - } - connectedCallback() { super.connectedCallback(); const that = this; @@ -316,7 +304,6 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) { this.tabulatorTable.on("rowAdded", this.rowAddedFunction.bind(this)); this.tabulatorTable.on("dataLoaded", this.dataLoadedFunction.bind(this)); - if ( typeof this.allowedMimeTypes !== 'undefined' && this.allowedMimeTypes !== '' && @@ -436,6 +423,13 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) { ); } }, 0); + if (this._('#select_all')) { + this._('#select_all').addEventListener('click', this.boundSelectHandler); + } + if (this.directoriesOnly && this._('#select_all_wrapper')) { + this._('#select_all_wrapper').classList.remove('button-container'); + this._('#select_all_wrapper').classList.add('hidden'); + } } } @@ -2068,6 +2062,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) { */ selectAllFiles() { let allSelected = this.checkAllSelected(); + if (allSelected) { this.tabulatorTable.getSelectedRows().forEach((row) => row.deselect()); } else { @@ -3158,6 +3153,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) { pkgName, 'tabulator-tables/css/tabulator.min.css' ); + return html` <div class="wrapper"> <link rel="stylesheet" href="${tabulatorCss}" /> -- GitLab