瀏覽代碼

updated logo. removed comments.

lllllllillllllillll 1 年之前
父節點
當前提交
e6ad8dff72
共有 10 個文件被更改,包括 57 次插入64 次删除
  1. 0 1
      .gitignore
  2. 1 1
      README.md
  3. 0 2
      controllers/login.js
  4. 11 4
      functions/install.js
  5. 7 3
      functions/uninstall.js
  6. 0 14
      public/js/main.js
  7. 0 0
      public/static/logo-dark.svg
  8. 0 0
      public/static/logo.svg
  9. 1 0
      server.js
  10. 37 39
      views/navbar.ejs

+ 0 - 1
.gitignore

@@ -5,5 +5,4 @@
 test
 .dockerignore
 .gitignore
-appdata
 docker-compose.yaml

+ 1 - 1
README.md

@@ -13,7 +13,7 @@ Alpha v0.20 ( :fire: Experimental :fire: )
 
 * This is a personal project I started to get more familiar with Javascript and Node.js.
 * Some UI elements are placeholders.
-* Please submit issues and post discussions so I know what features to focus on.
+* Please post issues and discussions so I know what bugs and features to focus on.
 * I probably should have waited a lot longer to share this :|
 
 <a href="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/dashboard1.png"><img src="https://raw.githubusercontent.com/lllllllillllllillll/DweebUI/main/screenshots/dashboard1.png" width="25%"/></a>

+ 0 - 2
controllers/login.js

@@ -76,9 +76,7 @@ export const submitLogin = async function(req,res){
 
 
 export const Logout = function(req,res){
-    const sessionId = req.session.id;
     req.session.destroy(() => {
-        io.to(sessionId).disconnectSockets();
         res.redirect("/login");
     });
 }

+ 11 - 4
functions/install.js

@@ -4,7 +4,7 @@ import { execSync } from "child_process";
 import { docker } from "../server.js";
 import DockerodeCompose from "dockerode-compose";
 import { Syslog } from "../database/models.js";
-
+import { containerCard } from "../components/containerCard.js";
 
 // This entire page hurts to look at. 
 export const Install = async (req, res) => {
@@ -177,7 +177,7 @@ export const Install = async (req, res) => {
                 (async () => {
                 await compose.pull();
                 await compose.up();
-
+                
                 const syslog = await Syslog.create({
                     user: req.session.user,
                     email: null,
@@ -185,10 +185,17 @@ export const Install = async (req, res) => {
                     message: `${name} installed successfully`,
                     ip: req.socket.remoteAddress
                 });
-
                 })();
 
-            } catch { console.log('error running compose file')}
+            } catch { 
+                const syslog = await Syslog.create({
+                    user: req.session.user,
+                    email: null,
+                    event: "App Installation",
+                    message: `${name} installation failed`,
+                    ip: req.socket.remoteAddress
+                });
+            }
 
         }
 

+ 7 - 3
functions/uninstall.js

@@ -7,11 +7,9 @@ export const Uninstall = async (req, res) => {
     let { confirm, service_name } = req.body;
 
     if (confirm == 'Yes') {
-        console.log(`Uninstalling ${service_name}`);
         var containerName = docker.getContainer(`${service_name}`);
         try {
             await containerName.stop();
-            console.log(`Stopped ${service_name} container`);
         } catch {
             console.log(`Error stopping ${service_name} container`);
         }
@@ -29,7 +27,13 @@ export const Uninstall = async (req, res) => {
 
 
         } catch {
-            console.log(`Error removing ${service_name} container`);
+            const syslog = await Syslog.create({
+                user: req.session.user,
+                email: null,
+                event: "App Removal",
+                message: `${service_name} uninstallation failed`,
+                ip: req.socket.remoteAddress
+            });
         }
     }
     res.redirect('/');

+ 0 - 14
public/js/main.js

@@ -132,20 +132,6 @@ socket.on('containerStats', (data) => {
 });
 
 
-
-// socket.on('install', (data) => {
-//   dockerCards.insertAdjacentHTML("afterend", data);
-// });
-
-// let containerLogs;
-
-// function viewLogs(button) {
-//   if (button.name != 'refresh') {
-//     containerLogs = button.name;
-//   }
-//   socket.emit('logs', {container: containerLogs});
-// }
-
 socket.on('logs', (data) => {
   logViewer.innerHTML = `<pre>${data}</pre>`;
 });

文件差異過大導致無法顯示
+ 0 - 0
public/static/logo-dark.svg


文件差異過大導致無法顯示
+ 0 - 0
public/static/logo.svg


+ 1 - 0
server.js

@@ -22,6 +22,7 @@ let [cpu, ram, tx, rx, disk] = [0, 0, 0, 0, 0];
 let [hidden, clicked, dockerEvents] = ['', false, ''];
 let metricsInterval, cardsInterval, graphsInterval;
 let cardList = '';
+app.locals.installCard = '';
 const statsArray = {};
 
 // Socket.io admin ui

+ 37 - 39
views/navbar.ejs

@@ -1,49 +1,47 @@
-<header class="navbar navbar-expand-md d-print-none">
-
-  <script>
-    var themeStorageKey = "tablerTheme";
-    var defaultTheme = "light";
-    var selectedTheme;
-
-    (function (factory) {
-      typeof define === 'function' && define.amd ? define(factory) :
-      factory();
-    })((function () {
-      'use strict';
+<script>
+  var themeStorageKey = "tablerTheme";
+  var defaultTheme = "dark";
+  var selectedTheme;
 
-      var params = new Proxy(new URLSearchParams(window.location.search), {
-        get: function get(searchParams, prop) {
-          return searchParams.get(prop);
-        }
-      });
+  (function (factory) {
+    typeof define === 'function' && define.amd ? define(factory) :
+    factory();
+  })((function () {
+    'use strict';
 
-      if (!!params.theme) {
-        localStorage.setItem(themeStorageKey, params.theme);
-        selectedTheme = params.theme;
-      } else {
-        var storedTheme = localStorage.getItem(themeStorageKey);
-        selectedTheme = storedTheme ? storedTheme : defaultTheme;
+    var params = new Proxy(new URLSearchParams(window.location.search), {
+      get: function get(searchParams, prop) {
+        return searchParams.get(prop);
       }
+    });
 
-      if (selectedTheme === 'dark') {
-        document.body.setAttribute("data-bs-theme", selectedTheme);
-      } else {
-        document.body.removeAttribute("data-bs-theme");
-      }
-    }));
+    if (!!params.theme) {
+      localStorage.setItem(themeStorageKey, params.theme);
+      selectedTheme = params.theme;
+    } else {
+      var storedTheme = localStorage.getItem(themeStorageKey);
+      selectedTheme = storedTheme ? storedTheme : defaultTheme;
+    }
 
-    function toggleTheme(button) {
-      if (button.value == 'dark-theme') {
-        document.body.setAttribute("data-bs-theme", 'dark');
-        localStorage.setItem(themeStorageKey, 'dark');
-      }
-      else if (button.value == 'light-theme') {
-        document.body.removeAttribute("data-bs-theme");
-        localStorage.setItem(themeStorageKey, 'light');
-      }
+    if (selectedTheme === 'dark') {
+      document.body.setAttribute("data-bs-theme", selectedTheme);
+    } else {
+      document.body.removeAttribute("data-bs-theme");
     }
-  </script>
+  }));
 
+  function toggleTheme(button) {
+    if (button.value == 'dark-theme') {
+      document.body.setAttribute("data-bs-theme", 'dark');
+      localStorage.setItem(themeStorageKey, 'dark');
+    }
+    else if (button.value == 'light-theme') {
+      document.body.removeAttribute("data-bs-theme");
+      localStorage.setItem(themeStorageKey, 'light');
+    }
+  }
+</script>
+<header class="navbar navbar-expand-md d-print-none">
   <div class="container-xl">
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar-menu"
       aria-controls="navbar-menu" aria-expanded="false" aria-label="Toggle navigation">

部分文件因文件數量過多而無法顯示