From c9a649518616f3cf4e8c39d772dfbc2eff330a03 Mon Sep 17 00:00:00 2001
From: Julien Roy <royto81+github@gmail.com>
Date: Sat, 5 Nov 2022 22:44:25 +0100
Subject: What's up docker custom service  (#444)

Add WUD
---
 src/components/services/WUD.vue | 92 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 92 insertions(+)
 create mode 100644 src/components/services/WUD.vue

(limited to 'src/components/services/WUD.vue')

diff --git a/src/components/services/WUD.vue b/src/components/services/WUD.vue
new file mode 100644
index 0000000..917f3bd
--- /dev/null
+++ b/src/components/services/WUD.vue
@@ -0,0 +1,92 @@
+<template>
+  <Generic :item="item">
+    <template #indicator>
+      <div class="notifs">
+        <strong v-if="running > 0" class="notif warnings" title="Running">
+          {{ running }}
+        </strong>
+        <strong v-if="update > 0" class="notif errors" title="Update">
+          {{ update }}
+        </strong>
+        <strong
+          v-if="serverError"
+          class="notif errors"
+          title="Connection error to WUD API, check url in config.yml"
+        >
+          ?
+        </strong>
+      </div>
+    </template>
+  </Generic>
+</template>
+
+<script>
+import service from "@/mixins/service.js";
+import Generic from "./Generic.vue";
+
+export default {
+  name: "WUD",
+  mixins: [service],
+  props: {
+    item: Object,
+  },
+  components: {
+    Generic,
+  },
+  data: () => {
+    return {
+      running: null,
+      update: null,
+      serverError: false,
+    };
+  },
+  created: function () {
+    this.fetchConfig();
+  },
+  methods: {
+    fetchConfig: function () {
+      this.fetch(`/api/containers`)
+        .then((containers) => {
+          this.running = 0;
+          this.update = 0;
+          for (var i = 0; i < containers.length; i++) {
+            this.running++;
+            if (containers[i].updateAvailable) {
+              this.update++;
+            }
+          }
+        })
+        .catch(() => {
+          this.serverError = true;
+        });
+    },
+  },
+};
+</script>
+
+<style scoped lang="scss">
+.notifs {
+  position: absolute;
+  color: white;
+  font-family: sans-serif;
+  top: 0.3em;
+  right: 0.5em;
+
+  .notif {
+    display: inline-block;
+    padding: 0.2em 0.35em;
+    border-radius: 0.25em;
+    position: relative;
+    margin-left: 0.3em;
+    font-size: 0.8em;
+
+    &.warnings {
+      background-color: #d08d2e;
+    }
+
+    &.errors {
+      background-color: #e51111;
+    }
+  }
+}
+</style>
-- 
cgit v1.2.3

