Преглед изворни кода

Refs #7 Display aggregated infos

isundil пре 1 година
родитељ
комит
2c3576e2d9
1 измењених фајлова са 30 додато и 1 уклоњено
  1. 30 1
      static/public/js/uiMediaFullpage.js

+ 30 - 1
static/public/js/uiMediaFullpage.js

@@ -254,6 +254,7 @@ $(() => {
 
     window.displayMediaFullPage = function(mediaItem) {
         document.getElementById("pch-fullPageMedia").classList.remove("hidden");
+        document.getElementById("pch-fullPageMedia").classList.remove("multiple");
         if (fullPageMediaDisplayed)
             document.Title.replaceTitle(mediaItem.fileName);
         else
@@ -279,8 +280,36 @@ $(() => {
         return _displayMediaFullPage(mediaItem.fileName, `${mediaItem.thumbnail}?q=6${requestSizeQuery}`, meta, `${mediaItem.original}?trim`, mediaItem.writeAccess);
     }
 
+    function aggregateMetas(medias) {
+        let meta = medias.reduce((acc, x) => {
+            for (let key in x.meta) {
+                acc[key] = acc[key] || x.meta[key];
+                acc[key] = acc[key].value != x.meta[key].value ? "(multiple)" : x.meta[key];
+            }
+            return acc;
+        }, {});
+        delete meta.dateTime;
+        if (!Number.isInteger(meta.height) || !Number.isInteger(meta.width)) {
+            delete meta.height;
+            delete meta.width;
+        }
+        return meta;
+    }
+
     window.displayMultipleMediaFullPage = function(medias) {
-        console.log(medias);
+        const title = "Multiple edit"; // FIXME lang ?
+        document.getElementById("pch-fullPageMedia").classList.remove("hidden");
+        document.getElementById("pch-fullPageMedia").classList.add("multiple");
+        document.Title.pushTitle(title);
+        document.body.classList.add("overlay-visible");
+        document.getElementById("pch-fullPagePreview").parentNode.style.maxWidth = "100%";
+        document.getElementById("pch-fullPagePreview").parentNode.style.maxHeight = "100%";
+        let meta = {
+            ...aggregateMetas(medias),
+            fixedTags: medias.reduce((acc, x) => { x.fixedTags.forEach(tag => acc.add(tag)) ; return acc; }, new Set()),
+            tags: medias.reduce((acc, x) => { x.tags.forEach(tag => acc.add(tag)) ; return acc; }, new Set()),
+        };
+        return _displayMediaFullPage(title, "", meta, null, true);
     }
 
     document.getElementById("pch-fullPageMedia-closeBt")