isundil před 1 rokem
rodič
revize
cba8331001

+ 25 - 0
static/public/js/common.js

@@ -1,4 +1,28 @@
 
+(() => {
+    class Title
+    {
+        #stack = [];
+        pushTitle(title) {
+            this.#stack.push(title);
+            this.#setTitle(title);
+        }
+        replaceTitle(title) {
+            this.#stack.pop();
+            this.pushTitle(title);
+        }
+        pop() {
+            this.#stack.pop();
+            this.#setTitle(this.#stack[this.#stack.length-1]);
+        }
+
+        #setTitle(title) {
+            document.title = title ? `Photochamber - ${title}` : "Photochamber";
+        }
+    }
+    document.Title = new Title();
+})();
+
 $(() => {
     function loadHash(md5sum) {
         if (md5sum && md5sum.length)
@@ -31,6 +55,7 @@ $(() => {
             onScrollBottom.fnc();
     });
 
+    document.Title.pop();
     AccessManager.RebuildAccess();
     loadHash(document.location?.hash?.substr(1));
     MediaStorage.Instance.downloadMetaList();

+ 2 - 0
static/public/js/uiAccess.js

@@ -5,11 +5,13 @@ document.getElementById("menu-login").addEventListener("click", e => {
     e.preventDefault();
     document.body.classList.add("login-visible")
     document.body.classList.add("overlay-visible");
+    document.Title.pushTitle("Login");
 });
 
 function closeLoginPopin() {
     if (!document.body.classList.contains("login-visible"))
         return;
+    document.Title.pop();
     document.body.classList.remove("login-visible");
     document.body.classList.remove("overlay-visible");
     let inputFields = document.querySelectorAll(".login-wrapper .input-group input");

+ 5 - 0
static/public/js/uiMediaFullpage.js

@@ -249,10 +249,15 @@ $(() => {
         document.getElementById("pch-fullPageMedia").classList.add("hidden");
         fullPageMediaDisplayed = false;
         history.pushState({}, '', '#');
+        document.Title.pop();
     }
 
     window.displayMediaFullPage = function(mediaItem) {
         document.getElementById("pch-fullPageMedia").classList.remove("hidden");
+        if (fullPageMediaDisplayed)
+            document.Title.replaceTitle(mediaItem.fixedSum);
+        else
+            document.Title.pushTitle(mediaItem.fixedSum);
         fullPageMediaDisplayed = mediaItem ?? null;
         document.body.classList.add("overlay-visible");
         if (!mediaItem)