From 8abfa7a6469e2ccf55ab6d9331311bbde2835f77 Mon Sep 17 00:00:00 2001 From: Tamara Steinwender <tamara.steinwender@tugraz.at> Date: Wed, 30 Jun 2021 11:18:12 +0200 Subject: [PATCH] Save nextcloud webapppassword to session storage --- .../src/dbp-nextcloud-file-picker.js | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/packages/file-handling/src/dbp-nextcloud-file-picker.js b/packages/file-handling/src/dbp-nextcloud-file-picker.js index 107ce0a3..65b7f12b 100644 --- a/packages/file-handling/src/dbp-nextcloud-file-picker.js +++ b/packages/file-handling/src/dbp-nextcloud-file-picker.js @@ -330,9 +330,30 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) { that.addFolder(); } }); + + //this.checkSessionStorage(); }); } + /** + * + */ + async checkSessionStorage() { + if (sessionStorage.getItem("nextcloud-webdav-username") && sessionStorage.getItem("nextcloud-webdav-password")) { + this.webDavClient = createClient( + this.webDavUrl + "/" + sessionStorage.getItem("nextcloud-webdav-username"), + { + username: sessionStorage.getItem("nextcloud-webdav-username"), + password: sessionStorage.getItem("nextcloud-webdav-password") + } + ); + console.log("check"); + + this.loadDirectory(this.directoryPath); + + } + } + /** * check mime type of row * @@ -370,6 +391,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) { } onReceiveWindowMessage(event) { + console.log("hui"); if (this.webDavClient === null) { const data = event.data; @@ -377,6 +399,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) { if (this.loginWindow !== null) { this.loginWindow.close(); } + console.log("lala"); // see https://github.com/perry-mitchell/webdav-client/blob/master/API.md#module_WebDAV.createClient this.webDavClient = createClient( @@ -386,6 +409,14 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) { password: data.token } ); + console.log("tada"); + + if (this._("#remember-checkbox") && this._("#remember-checkbox").checked) { + sessionStorage.setItem('nextcloud-webdav-username', data.loginName); + sessionStorage.setItem('nextcloud-webdav-password', data.token); + console.log("saved"); + + } this.loadDirectory(this.directoryPath); } } @@ -1402,6 +1433,19 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) { left: 11px; top: 4px; } + + #replace-modal .checkmark { + height: 20px; + width: 20px; + left: 1px; + top: 0px; + } + + .remember-container{ + display: inline-block; + line-height: 28px; + padding-left: 44px; + } @media only screen @@ -1576,11 +1620,19 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) { }}">${i18n.t('nextcloud-file-picker.connect-nextcloud', {name: this.nextcloudName})} </button> </div> + <div class="block text-center m-inherit ${classMap({hidden: this.isPickerActive})}"> + <label class="button-container remember-container"> + Remember me + <input type="checkbox" id="remember-checkbox" name="remember"> + <span class="checkmark"></span> + </label> + </div> <div class="block text-center m-inherit ${classMap({hidden: this.isPickerActive})}"> <p class="m-inherit"><br> ${i18n.t('nextcloud-file-picker.auth-info')} <slot name="auth-info"><br/>${this.authInfo}</slot> </p> + </div> </div> <div class="nextcloud-content ${classMap({hidden: !this.isPickerActive})}"> -- GitLab