Explorar el Código

Add titles to galleries.

Lee Morgan hace 5 años
padre
commit
0a3c1690f3
Se han modificado 5 ficheros con 34 adiciones y 75 borrados
  1. 14 2
      controllers/gallery.js
  2. 4 0
      models/gallery.js
  3. 1 0
      routes.js
  4. 4 0
      views/gallery/new.html
  5. 11 73
      views/main/index.html

+ 14 - 2
controllers/gallery.js

@@ -6,8 +6,9 @@ module.exports = {
     /*
     POST: create a new gallery
     req.body = {
-        uploader: String (id of owner),
-        password: String,
+        uploader: String (id of owner)
+        password: String
+        title: String
         tags: [String]
     }
     req.files = [images]
@@ -20,6 +21,7 @@ module.exports = {
 
                 let gallery = new Gallery({
                     owner: uploader._id,
+                    title: req.body.title,
                     tags: req.body.tags.split(","),
                     images: []
                 });
@@ -40,6 +42,16 @@ module.exports = {
                 if(err === "uploader") return res.json("You do not have permission to upload");
                 if(err === "pass") return res.json("Incorrect password");
                 return res.json("ERROR: something went wrong");
+            });
+    },
+
+    getGalleries: function(req, res){
+        Gallery.find()
+            .then((galleries)=>{
+                return res.json(galleries);
             })
+            .catch((err)=>{
+                return res.json("ERROR: could not fetch galleries");
+            });
     }
 }

+ 4 - 0
models/gallery.js

@@ -6,6 +6,10 @@ const GallerySchema = new mongoose.Schema({
         ref: "Uploader",
         required: true
     },
+    title: {
+        type: String,
+        required: true
+    },
     tags: [String],
     images: [String]
 });

+ 1 - 0
routes.js

@@ -45,6 +45,7 @@ module.exports = function(app){
     //GALLERY
     app.get("/gallery/new", (req, res)=>{res.sendFile(`${views}/gallery/new.html`)});
     app.post("/gallery/new", gallery.create);
+    app.get("/gallery/retrieve", gallery.getGalleries);
 
     //LEARN
     app.get("/learn/style", (req, res)=>{res.sendFile(`${views}/learn/index.css`)});

+ 4 - 0
views/gallery/new.html

@@ -35,6 +35,10 @@
                 <input name="password" type="password" required>
             </label>
 
+            <label>Title
+                <input name="title" type="text" required>
+            </label>
+
             <label>Tags (comma delineated)
                 <input name="tags" type="text" required>
             </label>

+ 11 - 73
views/main/index.html

@@ -158,8 +158,8 @@
                 </a>
             </div>
 
-            <div id="travel" style="display:none">
-                <template id="travelCard">
+            <div id="gallery" style="display:none">
+                <template id="galleryCard">
                     <div class="card">
                         <h1></h1>
                         <img>
@@ -264,77 +264,15 @@
                 })
                 .catch((err)=>{});
 
-            fetch("/travel/directories")
-                .then(response => response.json())
-                .then((response)=>{
-                    let mainContainer = document.getElementById("travel");
-                    let template = document.getElementById("travelCard").content.children[0];
-                    let backTemplate = document.getElementById("backCard").content.children[0];
-
-                    let recurse = (contents, container, prevCard)=>{
-                        for(let i = 0; i < contents.length; i++){
-                            if(contents[i].name !== undefined){
-                                let finalFolder = true;
-                                for(let j = 0; j < contents[i].contents.length; j++){
-                                    if(contents[i].contents[j].name !== undefined) finalFolder = false;
-                                }
-
-				if(back !== undefined) container.appendChild(back);
-
-                                if(finalFolder === true){
-                                    let card = document.createElement("a");
-                                    card.classList.add("card");
-                                    card.href = contents[i].route;
-                                    container.appendChild(card);
-
-                                    let h1 = document.createElement("h1");
-                                    h1.innerText = contents[i].name.replaceAll("-", " ");
-                                    card.appendChild(h1);
-
-                                    let img = document.createElement("img");
-                                    img.src = contents[i].contents[0].src;
-                                    img.alt = contents[i].name;
-                                    card.appendChild(img);
-                                }else{
-                                    let newContainer = document.createElement("div");
-                                    newContainer.classList.add("cardContainer");
-                                    newContainer.style.display = "none";
-                                    mainContainer.appendChild(newContainer);
-
-                                    let backCard = backTemplate.cloneNode(true);
-                                    backCard.onclick = ()=>{
-                                        newContainer.style.display = "none";
-                                        container.style.display = "flex";
-                                    }
-                                    newContainer.appendChild(backCard);
-
-                                    let card = template.cloneNode(true);
-                                    card.children[0].innerText = contents[i].name.replaceAll("-", " ");
-                                    card.children[1].alt = contents[i].name.replaceAll("-", " ");
-                                    card.onclick = ()=>{
-                                        container.style.display = "none";
-                                        newContainer.style.display = "flex";
-                                    }
-                                    container.appendChild(card);
-
-                                    recurse(contents[i].contents, newContainer, card);
-                                }
-                            }else{
-                                if(prevCard.children[1].src === ""){
-                                    prevCard.children[1].src = contents[i].src;
-                                }
-                            }
-                        }
-                    }
-
-                    let headContainer = document.createElement("div");
-                    headContainer.classList.add("cardContainer");
-                    headContainer.style.display = "flex";
-                    mainContainer.appendChild(headContainer);
-
-                    recurse(response, headContainer);
-                })
-                .catch((err)=>{});
+                //Get gallery content
+                fetch("/gallery/retrieve")
+                    .then(response => response.json())
+                    .then((response)=>{
+                        console.log(response);
+                    })
+                    .catch((err)=>{
+                        console.log(err);
+                    })
 
                 //Get "learn" content
                 fetch("/learn/courses/json")