From c664e2988571b0d546920b71fee6a209e1e20423 Mon Sep 17 00:00:00 2001 From: Tamara Steinwender <tamara.steinwender@tugraz.at> Date: Tue, 27 Apr 2021 10:13:32 +0200 Subject: [PATCH] Remove duplicated clipboard warning, disable nextcloudfilepicker upload button if no files are selected --- .../src/dbp-file-handling-clipboard.js | 6 ++++-- .../file-handling/src/dbp-nextcloud-file-picker.js | 14 ++++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/file-handling/src/dbp-file-handling-clipboard.js b/packages/file-handling/src/dbp-file-handling-clipboard.js index 86875687..0e53ad0f 100644 --- a/packages/file-handling/src/dbp-file-handling-clipboard.js +++ b/packages/file-handling/src/dbp-file-handling-clipboard.js @@ -207,8 +207,10 @@ export class FileHandlingClipboard extends ScopedElementsMixin(DBPLitElement) { } }); if (!this.clipboardSource) { - window.removeEventListener('beforeunload', this._onReceiveBeforeUnload); - window.addEventListener('beforeunload', this._onReceiveBeforeUnload); + if(!window.clipboardWarning) { + window.addEventListener('beforeunload', this._onReceiveBeforeUnload, false); + window.clipboardWarning = true; + } } } diff --git a/packages/file-handling/src/dbp-nextcloud-file-picker.js b/packages/file-handling/src/dbp-nextcloud-file-picker.js index 79099ff3..5ddb0ed6 100644 --- a/packages/file-handling/src/dbp-nextcloud-file-picker.js +++ b/packages/file-handling/src/dbp-nextcloud-file-picker.js @@ -52,6 +52,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) { this.selectAllButton = true; this.abortUploadButton = false; this.abortUpload = false; + this.isSelected = false; } static get scopedElements() { @@ -87,6 +88,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) { activeDirectoryACL: { type: String, attribute: false }, selectAllButton: { type: Boolean, attribute: false }, abortUploadButton: { type: Boolean, attribute: false }, + isSelected: { type: Boolean, attribute: false }, }; } @@ -205,10 +207,10 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) { this.directoryClicked(e, data); break; case "file": + this.isSelected = this.tabulatorTable.getSelectedRows().length > 0; if (this.tabulatorTable.getSelectedRows().length === this.tabulatorTable.getRows().filter(row => row.getData().type != 'directory' && this.checkFileType(row.getData(), this.allowedMimeTypes)).length) { this.selectAllButton = false; - } - else { + } else { this.selectAllButton = true; } break; @@ -1501,9 +1503,13 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) { <div class="nextcloud-footer ${classMap({hidden: !this.isPickerActive})}"> <div class="nextcloud-footer-grid"> <button id="download-button" class="button select-button is-primary ${classMap({hidden: ((!this.directoriesOnly) || (this.directoriesOnly && this.abortUploadButton && this.forAll))})}" - @click="${() => { this.sendDirectory(this.tabulatorTable.getSelectedData()); }}">${this.folderIsSelected}</button> + @click="${() => { this.sendDirectory(this.tabulatorTable.getSelectedData()); }}" + ?disabled="${!this.isSelected}"> + ${this.folderIsSelected}</button> <button class="button select-button is-primary ${classMap({hidden: this.directoriesOnly})}" - @click="${() => { this.downloadFiles(this.tabulatorTable.getSelectedData()); }}">${i18n.t('nextcloud-file-picker.select-files')}</button> + @click="${() => { this.downloadFiles(this.tabulatorTable.getSelectedData()); }}" + ?disabled="${!this.isSelected}"> + ${i18n.t('nextcloud-file-picker.select-files')}</button> <button id="abortButton" class="button select-button hidden ${classMap({"visible": (this.directoriesOnly && this.forAll && this.abortUploadButton)})}" title="${i18n.t('nextcloud-file-picker.abort')}" @click="${() => { this.abortUpload = true; }}">${i18n.t('nextcloud-file-picker.abort')}</button> -- GitLab