Ver Fonte

Fix logout issue
Refs #7 prepare multi select edit

isundil há 1 ano atrás
pai
commit
5202cc5514
2 ficheiros alterados com 23 adições e 16 exclusões
  1. 18 11
      static/public/js/access.js
  2. 5 5
      static/public/js/uiMedia.js

+ 18 - 11
static/public/js/access.js

@@ -1,25 +1,32 @@
 
 $(() => {
     class AccessManager {
-        #storedAccess = new Set();
+        #linkStoredAccesses = new Set();
 
         constructor() {
-            this.#storedAccess.clear();
-            let storedAccess = [];
+            this.#linkStoredAccesses.clear();
+            let linkStoredAccesses = [];
             try {
-                storedAccess = (JSON.parse(localStorage?.getItem("accessLinks") || "[]") || []);
+                linkStoredAccesses = (JSON.parse(localStorage?.getItem("accessLinks") || "[]") || []);
             } catch (err) {
                 console.error(err);
             }
-            storedAccess.forEach(i => this.#storedAccess.add(i));
+            linkStoredAccesses.forEach(i => this.#linkStoredAccesses.add(i));
         }
 
         #UpdateStorage() {
-            localStorage?.setItem("accessLinks", JSON.stringify(Array.from(this.#storedAccess)));
+            localStorage?.setItem("accessLinks", JSON.stringify(Array.from(this.#linkStoredAccesses)));
         }
 
         Logout(code) {
-            if (!this.#storedAccess.delete(code))
+            let value = null;
+            this.#linkStoredAccesses.forEach(i => {
+                if (i.key === code) {
+                    this.#linkStoredAccesses.delete(i);
+                    value = i.value;
+                }
+            });
+            if (!value)
                 return;
             this.#UpdateStorage();
             return LoadingTasks.push(() => {
@@ -46,7 +53,7 @@ $(() => {
                     data: { linkIds: JSON.stringify(Array.from(linkList)) },
                     success: data => {
                         for (let i in data)
-                            this.#storedAccess.add(data[i].linkId);
+                            this.#linkStoredAccesses.add({key: i, value: data[i].linkId });
                         this.#UpdateStorage();
                         window.ReloadAccessList(data);
                         MediaStorage.Instance.rebuildMetaList();
@@ -58,16 +65,16 @@ $(() => {
         }
 
         async RebuildAccess() {
-            if (this.#storedAccess.size) {
+            if (this.#linkStoredAccesses.size) {
                 return LoadingTasks.push(() => {
-                    return this.LinkLogin(this.#storedAccess);
+                    return this.LinkLogin(this.#linkStoredAccesses.value);
                 });
             } else {
                 return LoadingTasks.push(() => {
                     return new Promise(ok => {
                         $.get("/api/access/list", data => {
                             for (let i in data)
-                                this.#storedAccess.add(i);
+                                this.#linkStoredAccesses.add({ key: i, value: data[i].linkId });
                             this.#UpdateStorage();
                             window.ReloadAccessList(data);
                             MediaStorage.Instance.rebuildMetaList();

+ 5 - 5
static/public/js/uiMedia.js

@@ -49,9 +49,9 @@ $(() => {
         container.appendChild(editButton);
         let setSelectionCheckboxValue = function(media, value) {
             media.ui.checkbox.checked = value;
-            let indexInSelection = selectedThumbnails.indexOf(media.md5sum);
+            let indexInSelection = selectedThumbnails.indexOf(media.fixedSum);
             if (value && indexInSelection < 0) {
-                selectedThumbnails.push(media.md5sum);
+                selectedThumbnails.push(media.fixedSum);
                 onItemSelected(media);
                 return true;
             } else if (!value && indexInSelection >= 0) {
@@ -85,11 +85,11 @@ $(() => {
                 checkbox.checked = true;
                 setSelectionCheckboxValue(mediaItem, true);
             }
-            let sel = selectedThumbnails.map(x => MediaStorage.Instance.getMediaLocal(x)).filter(x => x.writeAccess);
-            if (sel.length === 1 && sel[0].md5sum === mediaItem.md5sum) {
+            let sel = selectedThumbnails.map(x => MediaStorage.Instance.getMediaLocal(x)).filter(x => x && x.writeAccess);
+            if (sel.length === 1 && sel[0].fixedSum === mediaItem.fixedSum) {
                 checkbox.checked = false;
                 setSelectionCheckboxValue(mediaItem, false);
-                document.location.hash = mediaItem.md5sum;
+                document.location.hash = mediaItem.fixedSum;
                 return;
             }
             console.log(sel);