Parcourir la source

Change session errors to session success on the backend where needed.
Handled success messages in the renderer.
Updated frontend to only show the banner on the landing page,
that is the only place where it is needed.

Lee Morgan il y a 5 ans
Parent
commit
2ee7cc1a14

+ 1 - 1
controllers/merchantData.js

@@ -302,7 +302,7 @@ module.exports = {
                 }
             })
             .then((merchant)=>{
-                req.session.error = "PASSWORD SUCCESSFULLY RESET. PLEASE LOG IN";
+                req.session.success = "PASSWORD SUCCESSFULLY RESET. PLEASE LOG IN";
                 return res.redirect("/");
             })
             .catch((err)=>{

+ 1 - 1
controllers/otherData.js

@@ -89,7 +89,7 @@ module.exports = {
                             return res.redirect("/dashboard");
                         })
                         .catch((err)=>{
-                            req.session.error("ERROR: UNABLE TO CREATE MERCHANT");
+                            req.session.error = "ERROR: UNABLE TO CREATE MERCHANT";
                             return res.redirect("/")
                         });
                 }else{

+ 3 - 11
controllers/passwordReset.js

@@ -35,7 +35,7 @@ module.exports = {
                 return merchant.save();
             })
             .then((merchant)=>{
-                req.session.error = "PASSWORD RESET EMAIL SENT";
+                req.session.success = "PASSWORD RESET EMAIL SENT";
                 return res.redirect("/");
             })
             .catch((err)=>{
@@ -45,15 +45,7 @@ module.exports = {
     },
 
     enterPassword: function(req, res){
-        let error = {};
-        if(req.session.error){
-            error = req.session.error;
-            req.session.error = undefined;
-        }else{
-            error = null;
-        }
-
-        return res.render("passwordResetPages/password", {id: req.params.id, code: req.params.code, error: error});
+        return res.render("passwordResetPages/password", {id: req.params.id, code: req.params.code});
     },
 
     resetPassword: function(req, res){
@@ -84,7 +76,7 @@ module.exports = {
             })
             .then((merchant)=>{
                 if(merchant !== undefined){
-                    req.session.error = "PASSWORD SUCCESSFULLY UPDATED.  PLEASE LOG IN";
+                    req.session.success = "PASSWORD SUCCESSFULLY UPDATED.  PLEASE LOG IN";
                     return res.redirect("/");
                 }
             })

+ 7 - 1
controllers/renderer.js

@@ -30,8 +30,14 @@ module.exports = {
         }else{
             error = null;
         }
+        if(req.session.success){
+            success = req.session.success;
+            req.session.success = undefined;
+        }else{
+            success = null;
+        }
 
-        return res.render("landingPage/landing", {error: error, isLoggedIn: isLoggedIn});
+        return res.render("landingPage/landing", {error: error, success: success, isLoggedIn: isLoggedIn});
     },
 
     /*

+ 18 - 0
views/landingPage/controller.js

@@ -22,6 +22,24 @@ let controller = {
             });
         }
 
+        if(success){
+            let bannerContainer = document.getElementById("bannerContainer");
+            let banner = document.getElementById("banner").content.children[0].cloneNode(true);
+            banner.children[0].style.backgroundColor = "rgb(0, 145, 55)";
+            banner.children[0].children[2].style.display = "block";
+            banner.children[1].innerText = success;
+            bannerContainer.appendChild(banner);
+
+            let timer = setTimeout(()=>{
+                bannerContainer.removeChild(banner);
+            }, 10000);
+
+            banner.children[2].addEventListener("click", ()=>{
+                bannerContainer.removeChild(banner);
+                clearTimeout(timer);
+            });
+        }
+
         publicObj.display();
     },
 

+ 1 - 0
views/landingPage/landing.ejs

@@ -152,6 +152,7 @@
 
         <script>
             let error = <%- JSON.stringify(error) %>;
+            let success = <%- JSON.stringify(success) %>;
             let isLoggedIn = <%- JSON.stringify(isLoggedIn) %>;
         </script>
         <script src="/landingPage/public.js"></script>

+ 0 - 7
views/passwordResetPages/password.ejs

@@ -12,8 +12,6 @@
     <body>
         <% include ../shared/header %>
 
-        <% include ../shared/banner %>
-
         <h1 class="title">Reset Password</h1>
 
         <form class="form" action="/reset" method="post">
@@ -32,11 +30,6 @@
             document.getElementById("helpLink").style.display = "block";
             document.getElementById("privacyPolicyLink").style.display = "block";
             document.getElementById("termsLink").style.display = "block";
-
-            const error = <%- JSON.stringify(error) %>;
-            if(error){
-                banner.createError(error);
-            }
         </script>
     </body>
 </html>