Explorar o código

reduced html inside dashboard.js

lllllllillllllillll hai 1 ano
pai
achega
167dd8917e
Modificáronse 5 ficheiros con 197 adicións e 191 borrados
  1. 1 1
      README.md
  2. 34 168
      controllers/dashboard.js
  3. 4 0
      controllers/portal.js
  4. 2 2
      server.js
  5. 156 20
      views/modals/permissions.html

+ 1 - 1
README.md

@@ -1,5 +1,5 @@
 <h3 align="center"><img width="150" src="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/public/images/logo.png"></h3>
-<h4 align="center">DweebUI Beta v0.50 (:fire: Experimental :fire:)</h4>
+<h4 align="center">DweebUI Beta v0.50 ( :fire: Experimental :fire: )</h4>
 <h3 align="center">Free and Open-Source WebUI For Managing Your Containers.</h3>
 <p align="center">
     <a href="#"><img src="https://img.shields.io/github/stars/lllllllillllllillll/DweebUI?style=flat"/></a>

+ 34 - 168
controllers/dashboard.js

@@ -326,187 +326,53 @@ export const Modals = async (req, res) => {
     let title = name.charAt(0).toUpperCase() + name.slice(1);
 
     if (id == 'permissions') {
-        let modal = readFileSync('./views/modals/permissions.html', 'utf8');
+
+        let permissions_modal = `
+        <div class="modal-dialog modal-sm modal-dialog-centered modal-dialog-scrollables">
+          <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">${title} Permissions</h5>
+            </div>
+            <div class="modal-body">
+                <form action="" id="permissions_modal" method="POST">
+                    <div class="accordion" id="modal-accordion">
+                        PermissionsList
+                    </div>
+                </form>
+            </div>
+            <div class="modal-footer">
+                <div class="row">
+                
+                <div class="col">
+                    <button type="button" class="btn btn-danger" data-bs-dismiss="modal" disabled="">Reset</button>
+                </div>
+                <div class="col">
+                    <button type="button" class="btn btn-primary" data-bs-dismiss="modal">Update</button>
+                </div>
+                </div>
+              </div>
+            </div>
+          </div>`;
+
         let permissions_list = '';
-        modal = modal.replace(/AppName/g, title);
         let users = await User.findAll({ attributes: ['username', 'UUID']});
 
         for (let i = 0; i < users.length; i++) {
-            // check if user Permission contains an entry for this container for this user. If not, create one.
+            let user_permissions = readFileSync('./views/modals/permissions.html', 'utf8');
+
             let exists = await Permission.findOne({ where: {containerName: name, user: users[i].username}});
             if (!exists) {
                 const newPermission = await Permission.create({ containerName: name, user: users[i].username, userID: users[i].UUID});
             }
             
-            let user_permissions = `
-            
-                <div class="accordion-item mb-3" style="border: 1px solid grey;">
-                  <h2 class="accordion-header" id="heading-${i}">
-                    <button class="accordion-button collapsed row" type="button" data-bs-toggle="collapse" data-bs-target="#collapse-${i}" aria-expanded="false">
-                      <span class="avatar avatar-sm bg-green-lt col-3 text-start">JD</span>
-                        <div class="col text-end" style="margin-right: 10px;">${users[i].username}</div>
-                    </button>
-                  </h2>
-                  <div id="collapse-${i}" class="accordion-collapse collapse" data-bs-parent="#modal-accordion">
-                    <div class="accordion-body pt-0">
-
-
-                      <div class="">
-                        <div class="">
-
-                          <div class="row mb-3">
-                            <div class="col-9">
-                              <label class="row text-start">
-                                <span class="col">
-                                  All
-                                </span>
-                              </label>
-                            </div>
-                            <div class="col-3">
-                              <label class="form-check form-check-single form-switch text-end">
-                                <input class="form-check-input" type="checkbox" name="select" onclick="selectAll('select')">
-                              </label>
-                            </div>
-                          </div>
-          
-                          <div class="row mb-2">
-                            <div class="col-9">
-                              <label class="row text-start">
-                                <span class="col">
-                                  Uninstall
-                                </span>
-                              </label>
-                            </div>
-                            <div class="col-3">
-                              <label class="form-check form-check-single form-switch text-end">
-                                <input class="form-check-input" type="checkbox" name="select">
-                              </label>
-                            </div>
-                          </div>
-          
-                          <div class="row mb-2">
-                            <div class="col-9">
-                              <label class="row text-start">
-                                <span class="col">
-                                  Edit
-                                </span>
-                              </label>
-                            </div>
-                            <div class="col-3">
-                              <label class="form-check form-check-single form-switch text-end">
-                                <input class="form-check-input" type="checkbox" name="select">
-                              </label>
-                            </div>
-                          </div>
-
-                          <div class="row mb-2">
-                            <div class="col-9">
-                              <label class="row text-start">
-                                <span class="col">
-                                  Upgrade
-                                </span>
-                              </label>
-                            </div>
-                            <div class="col-3">
-                              <label class="form-check form-check-single form-switch text-end">
-                                <input class="form-check-input" type="checkbox" name="select">
-                              </label>
-                            </div>
-                          </div>
-
-                          <div class="row mb-2">
-                            <div class="col-9">
-                              <label class="row text-start">
-                                <span class="col">
-                                  Start
-                                </span>
-                              </label>
-                            </div>
-                            <div class="col-3">
-                              <label class="form-check form-check-single form-switch text-end">
-                                <input class="form-check-input" type="checkbox" name="select">
-                              </label>
-                            </div>
-                          </div>
-
-                          <div class="row mb-2">
-                            <div class="col-9">
-                              <label class="row text-start">
-                                <span class="col">
-                                  Stop
-                                </span>
-                              </label>
-                            </div>
-                            <div class="col-3">
-                              <label class="form-check form-check-single form-switch text-end">
-                                <input class="form-check-input" type="checkbox" name="select">
-                              </label>
-                            </div>
-                          </div>
-
-                          <div class="row mb-2">
-                            <div class="col-9">
-                              <label class="row text-start">
-                                <span class="col">
-                                  Pause
-                                </span>
-                              </label>
-                            </div>
-                            <div class="col-3">
-                              <label class="form-check form-check-single form-switch text-end">
-                                <input class="form-check-input" type="checkbox" name="select">
-                              </label>
-                            </div>
-                          </div>
-
-                          <div class="row mb-2">
-                            <div class="col-9">
-                              <label class="row text-start">
-                                <span class="col">
-                                  Restart
-                                </span>
-                              </label>
-                            </div>
-                            <div class="col-3">
-                              <label class="form-check form-check-single form-switch text-end">
-                                <input class="form-check-input" type="checkbox" name="select">
-                              </label>
-                            </div>
-                          </div>
-
-
-                          <div class="row mb-4">
-                            <div class="col-9">
-                              <label class="row text-start">
-                                <span class="col">
-                                  Logs
-                                </span>
-                              </label>
-                            </div>
-                            <div class="col-3">
-                              <label class="form-check form-check-single form-switch text-end">
-                                <input class="form-check-input" type="checkbox" name="select">
-                              </label>
-                            </div>
-                          </div>
-
-                          <div class="row mb-2">
-                            <button class="btn" type="submit" formaction="/updatePermissions">Update</button>
-                          </div>
-
-
-                        </div>
-                      </div>
-
-                    </div>
-                  </div>
-                </div>`;
+            user_permissions = user_permissions.replace(/UserEntry/g, i);
+            user_permissions = user_permissions.replace(/PermissionsUsername/g, users[i].username);
 
             permissions_list += user_permissions;
         }
 
-        modal = modal.replace(/PermissionsList/g, permissions_list);
-        res.send(modal);
+        permissions_modal = permissions_modal.replace(/PermissionsList/g, permissions_list);
+        res.send(permissions_modal);
         return;
     }
 

+ 4 - 0
controllers/portal.js

@@ -1,6 +1,10 @@
 
 export const Portal = (req, res) => {
 
+    if (!req.session.user) {
+        res.redirect("/login");
+        return;
+    }
 
     res.render("portal", {
         name: req.session.user,

+ 2 - 2
server.js

@@ -37,11 +37,11 @@ app.use([
 
 // Initialize server
 app.listen(port, async () => {
-    async function init() {
+    async function init() {// I made sure the console.logs and emojis lined up
         try { await sequelize.authenticate().then(
             () => { console.log('DB Connection: ✔️') }); }
             catch { console.log('DB Connection: ❌'); }
-        try { await sequelize.sync().then( // check out that formatting
+        try { await sequelize.sync().then(
             () => { console.log('Synced Models: ✔️') }); }
             catch { console.log('Synced Models: ❌'); } }
         await init().then(() => { 

+ 156 - 20
views/modals/permissions.html

@@ -1,25 +1,161 @@
-<div class="modal-dialog modal-sm modal-dialog-centered modal-dialog-scrollables">
-    <div class="modal-content">
-        <div class="modal-header">
-            <h5 class="modal-title">AppName Permissions</h5>
-        </div>
-        <div class="modal-body">
-            <form action="" id="permissions_modal" method="POST">
-                <div class="accordion" id="modal-accordion">
-                    PermissionsList
-                </div>
-            </form>
-        </div>
-        <div class="modal-footer">
-            <div class="row">
-            
-            <div class="col">
-                <button type="button" class="btn btn-danger" data-bs-dismiss="modal" disabled="">Reset</button>
+<div class="accordion-item mb-3" style="border: 1px solid grey;">
+    <h2 class="accordion-header" id="heading-UserEntry">
+      <button class="accordion-button collapsed row" type="button" data-bs-toggle="collapse" data-bs-target="#collapse-UserEntry" aria-expanded="false">
+        <span class="avatar avatar-sm bg-green-lt col-3 text-start">JD</span>
+          <div class="col text-end" style="margin-right: 10px;">PermissionsUsername</div>
+      </button>
+    </h2>
+    <div id="collapse-UserEntry" class="accordion-collapse collapse" data-bs-parent="#modal-accordion">
+      <div class="accordion-body pt-0">
+
+
+        <div class="">
+          <div class="">
+
+            <div class="row mb-3">
+              <div class="col-9">
+                <label class="row text-start">
+                  <span class="col">
+                    All
+                  </span>
+                </label>
+              </div>
+              <div class="col-3">
+                <label class="form-check form-check-single form-switch text-end">
+                  <input class="form-check-input" type="checkbox" name="select" onclick="selectAll('select')">
+                </label>
+              </div>
+            </div>
+
+            <div class="row mb-2">
+              <div class="col-9">
+                <label class="row text-start">
+                  <span class="col">
+                    Uninstall
+                  </span>
+                </label>
+              </div>
+              <div class="col-3">
+                <label class="form-check form-check-single form-switch text-end">
+                  <input class="form-check-input" type="checkbox" name="select">
+                </label>
+              </div>
+            </div>
+
+            <div class="row mb-2">
+              <div class="col-9">
+                <label class="row text-start">
+                  <span class="col">
+                    Edit
+                  </span>
+                </label>
+              </div>
+              <div class="col-3">
+                <label class="form-check form-check-single form-switch text-end">
+                  <input class="form-check-input" type="checkbox" name="select">
+                </label>
+              </div>
+            </div>
+
+            <div class="row mb-2">
+              <div class="col-9">
+                <label class="row text-start">
+                  <span class="col">
+                    Upgrade
+                  </span>
+                </label>
+              </div>
+              <div class="col-3">
+                <label class="form-check form-check-single form-switch text-end">
+                  <input class="form-check-input" type="checkbox" name="select">
+                </label>
+              </div>
+            </div>
+
+            <div class="row mb-2">
+              <div class="col-9">
+                <label class="row text-start">
+                  <span class="col">
+                    Start
+                  </span>
+                </label>
+              </div>
+              <div class="col-3">
+                <label class="form-check form-check-single form-switch text-end">
+                  <input class="form-check-input" type="checkbox" name="select">
+                </label>
+              </div>
+            </div>
+
+            <div class="row mb-2">
+              <div class="col-9">
+                <label class="row text-start">
+                  <span class="col">
+                    Stop
+                  </span>
+                </label>
+              </div>
+              <div class="col-3">
+                <label class="form-check form-check-single form-switch text-end">
+                  <input class="form-check-input" type="checkbox" name="select">
+                </label>
+              </div>
+            </div>
+
+            <div class="row mb-2">
+              <div class="col-9">
+                <label class="row text-start">
+                  <span class="col">
+                    Pause
+                  </span>
+                </label>
+              </div>
+              <div class="col-3">
+                <label class="form-check form-check-single form-switch text-end">
+                  <input class="form-check-input" type="checkbox" name="select">
+                </label>
+              </div>
+            </div>
+
+            <div class="row mb-2">
+              <div class="col-9">
+                <label class="row text-start">
+                  <span class="col">
+                    Restart
+                  </span>
+                </label>
+              </div>
+              <div class="col-3">
+                <label class="form-check form-check-single form-switch text-end">
+                  <input class="form-check-input" type="checkbox" name="select">
+                </label>
+              </div>
             </div>
-            <div class="col">
-                <button type="button" class="btn btn-primary" data-bs-dismiss="modal">Update</button>
+
+
+            <div class="row mb-4">
+              <div class="col-9">
+                <label class="row text-start">
+                  <span class="col">
+                    Logs
+                  </span>
+                </label>
+              </div>
+              <div class="col-3">
+                <label class="form-check form-check-single form-switch text-end">
+                  <input class="form-check-input" type="checkbox" name="select">
+                </label>
+              </div>
             </div>
+
+            <div class="row mb-2">
+              <button class="btn" type="submit" formaction="/updatePermissions">Update</button>
             </div>
+
+
+          </div>
         </div>
+
+      </div>
     </div>
-</div>
+  </div>