Bläddra i källkod

fixed details modal and dashboard icons

lllllllillllllillll 1 år sedan
förälder
incheckning
0dae02c382
4 ändrade filer med 14 tillägg och 6 borttagningar
  1. 11 3
      controllers/dashboard.js
  2. 1 1
      templates/json/default.json
  3. 1 1
      views/modals/json.html
  4. 1 1
      views/partials/containerFull.html

+ 11 - 3
controllers/dashboard.js

@@ -74,10 +74,11 @@ export const DashboardAction = async (req, res) => {
             res.send(modal);
             return;
         case 'details':
-            modal = readFileSync('./views/modals/details.html', 'utf8');
+            modal = readFileSync('./views/modals/json.html', 'utf8');
             let details = await containerInfo(name);
             modal = modal.replace(/AppName/g, details.name);
             modal = modal.replace(/AppImage/g, details.image);
+            
             res.send(modal);
             return;
         case 'updates':
@@ -157,9 +158,14 @@ export const DashboardAction = async (req, res) => {
 }
 
 async function containerInfo (containerName) {
+    // get the container info
     let container = docker.getContainer(containerName);
     let info = await container.inspect();
-    let image = info.Config.Image.split('/');
+    let image = info.Config.Image;
+    // grab the service name from the end of the image name
+    let service = image.split('/').pop();
+    // remove the tag from the service name if it exists
+    try { service = service.split(':')[0]; } catch {}
     let ports_list = [];
     let external = 0;
     let internal = 0;
@@ -181,7 +187,7 @@ async function containerInfo (containerName) {
     let details = {
         name: containerName,
         image: image,
-        service: image[image.length - 1].split(':')[0],
+        service: service,
         state: info.State.Status,
         external_port: external,
         internal_port: internal,
@@ -218,6 +224,8 @@ async function createCard (details) {
     }
     // if (name.startsWith('dweebui')) { disable = 'disabled=""'; }
 
+    let app_icon = details.service;
+
     card = card.replace(/AppName/g, details.name);
     card = card.replace(/AppShortName/g, shortname);
     card = card.replace(/AppIcon/g, details.service);

+ 1 - 1
templates/json/default.json

@@ -5220,7 +5220,7 @@
       "note": "",
       "description": "Elasticsearch is a distributed, RESTful search and analytics engine capable of solving a growing number of use cases. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents. <a href='https://www.elastic.co/' target='_blank'>Website</a>. <a href='https://hub.docker.com/_/elasticsearch' target='_blank'>Docker Hub</a>",
       "logo": "https://raw.githubusercontent.com/walkxcode/dashboard-icons/main/png/elasticsearch.png",
-      "image": "elasticsearch",
+      "image": "elasticsearch:8.13.4",
       "categories": [
         "Database"
       ],

+ 1 - 1
views/modals/json.html

@@ -30,7 +30,7 @@
                         <option value="RestartPolicy" selected hidden>RestartPolicy</option>
                         <option value="unless-stopped">unless-stopped</option>
                         <option value="on-failure">on-failure</option>
-                        <option value="never">never</option>
+                        <option value="no">never</option>
                         <option value="always">always</option>
                     </select>
                     </div>

+ 1 - 1
views/partials/containerFull.html

@@ -26,7 +26,7 @@
                     <svg xmlns="http://www.w3.org/2000/svg" class="" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><circle cx="12" cy="12" r="1"></circle><circle cx="12" cy="19" r="1"></circle><circle cx="12" cy="5" r="1"></circle></svg>
                   </a>
                   <div class="dropdown-menu dropdown-menu-end">
-                    <button class="dropdown-item text-secondary" name="AppName" id="details" data-hx-get="/dashboard/details" hx-swap="innerHTML" data-hx-trigger="mousedown" data-hx-target="#modals-here" data-bs-toggle="modal" data-bs-target="#modals-here">Details</button>
+                    <button class="dropdown-item text-secondary" name="AppName" id="details" data-hx-post="/dashboard/details" hx-swap="innerHTML" data-hx-trigger="mousedown" data-hx-target="#modals-here" data-bs-toggle="modal" data-bs-target="#modals-here">Details</button>
                     <button class="dropdown-item text-secondary" name="AppName" id="logs" data-hx-post="/dashboard/logs" hx-swap="innerHTML" hx-trigger="mousedown" data-hx-target="#logView" data-bs-toggle="modal" data-bs-target="#log_view">Logs</button>
                     <button class="dropdown-item text-secondary" name="AppName" id="edit">Edit</button>
                     <button class="dropdown-item text-primary" name="AppName" id="update" disabled="">Update</button>