From 30a4011b8c3372e88050507f30dcc4b49c90e684 Mon Sep 17 00:00:00 2001
From: Tamara Steinwender <tamara.steinwender@tugraz.at>
Date: Wed, 30 Jun 2021 11:21:15 +0200
Subject: [PATCH] Add nextcloud session storage check when opening file source
 or file sink

---
 packages/file-handling/src/file-sink.js   | 13 +++++++++++--
 packages/file-handling/src/file-source.js |  9 +++++++--
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/packages/file-handling/src/file-sink.js b/packages/file-handling/src/file-sink.js
index e9a48d19..926d68c5 100644
--- a/packages/file-handling/src/file-sink.js
+++ b/packages/file-handling/src/file-sink.js
@@ -197,8 +197,12 @@ export class FileSink extends ScopedElementsMixin(DBPLitElement) {
 
         const filePicker = this._('#nextcloud-file-picker');
 
-        if (filePicker && filePicker.webDavClient !== null) {
-            filePicker.loadDirectory(filePicker.directoryPath);
+        if (filePicker) {
+            filePicker.checkSessionStorage().then(contents => {
+                if (filePicker.webDavClient !== null) {
+                    filePicker.loadDirectory(filePicker.directoryPath);
+                }
+            });
         }
     }
 
@@ -206,6 +210,11 @@ export class FileSink extends ScopedElementsMixin(DBPLitElement) {
         if (this.enabledTargets.includes('nextcloud')) {
             this.loadWebdavDirectory();
         }
+        if (this.enabledTargets.includes('clipboard')) {
+            if (this._('#clipboard-file-picker')._("#select_all")) {
+                this._('#clipboard-file-picker')._("#select_all").checked = false;
+            }
+        }
         const filePicker = this._('#modal-picker');
         if (filePicker) {
             MicroModal.show(filePicker, {
diff --git a/packages/file-handling/src/file-source.js b/packages/file-handling/src/file-source.js
index 6f744abe..32e6e62f 100644
--- a/packages/file-handling/src/file-source.js
+++ b/packages/file-handling/src/file-source.js
@@ -363,9 +363,14 @@ export class FileSource extends ScopedElementsMixin(DBPLitElement) {
     loadWebdavDirectory() {
         const filePicker = this._('#nextcloud-file-picker');
         // check if element is already in the dom (for example if "dialog-open" attribute is set)
-        if (filePicker && filePicker.webDavClient !== null) {
-            filePicker.loadDirectory(filePicker.directoryPath);
+        if (filePicker) {
+            filePicker.checkSessionStorage().then(contents => {
+                if (filePicker.webDavClient !== null) {
+                    filePicker.loadDirectory(filePicker.directoryPath);
+                }
+            });
         }
+
     }
 
     openDialog() {
-- 
GitLab