🔥 Remove actions

This commit is contained in:
Andreas Dinauer 2025-12-21 09:55:14 +01:00
parent b593189a9a
commit 84b2c105d1
20 changed files with 39 additions and 46 deletions

View File

@ -5,11 +5,12 @@ import type { HasMetadata } from "./repo/ResourceRepo";
export class Pod implements HasMetadata
{
status?: Status
constructor (
public metadata: Metadata,
public spec: Spec
public spec: Spec,
public status: Status
) { }
}
@ -24,6 +25,10 @@ class Spec {
class Status
{
phase?: PodStatus
constructor(
public containerStatuses: ContainerStatus[]
) {}
}
export class Container
@ -34,6 +39,13 @@ export class Container
) {}
}
export class ContainerStatus
{
constructor(
public restartCount: number
) {}
}
enum PodStatus
{
RUNNING = "Running",

View File

@ -2,9 +2,6 @@
<div>
<p class="grid-element">{{ namespace.metadata.name }}</p>
<p class="grid-element">{{ calcAge(namespace.metadata.creationTimestamp) }}</p>
<div class="grid-element">
<ActionButton>delete</ActionButton>
</div>
</div>
</template>

View File

@ -5,9 +5,6 @@
<p class="grid-element">{{ calcAge(persistentVolumeClaim.metadata.creationTimestamp) }}</p>
<p class="grid-element">{{ persistentVolumeClaim.spec.storageClassName }}</p>
<p class="grid-element">{{ persistentVolumeClaim.spec.accessModes.map(mode => mapAccessMode(mode)).join(", ") }}</p>
<div class="grid-element">
<ActionButton>delete</ActionButton>
</div>
</div>
</template>

View File

@ -2,9 +2,6 @@
<div>
<p class="grid-element">{{ persistentVolume.metadata.name }}</p>
<p class="grid-element">{{ calcAge(persistentVolume.metadata.creationTimestamp) }}</p>
<div class="grid-element">
<ActionButton>delete</ActionButton>
</div>
</div>
</template>

View File

@ -4,9 +4,6 @@
<p class="grid-element">{{ configMap.metadata.namespace }}</p>
<p class="grid-element">{{ calcAge(configMap.metadata.creationTimestamp) }}</p>
<p class="grid-element"><span v-if="configMap.data">{{ Object.keys(configMap.data).length }}</span><span v-else>-</span></p>
<div class="grid-element">
<ActionButton>delete</ActionButton>
</div>
<ConfigmapViewComponent v-if="show" :config-map="configMap" @close="show = false"></ConfigmapViewComponent>
</div>
</template>

View File

@ -5,7 +5,6 @@
<p class="grid-element">{{ calcAge(deployment.metadata.creationTimestamp) }}</p>
<p class="grid-element">{{ deployment.spec.replicas }}</p>
<div class="grid-element action-buttons">
<ActionButton>delete</ActionButton>
<ActionButton>autorenew</ActionButton>
<ActionButton @click="() => rescaleDeploymentPopup.open()">height</ActionButton>
</div>

View File

@ -5,9 +5,6 @@
<p class="grid-element">{{ calcAge(ingress.metadata.creationTimestamp) }}</p>
<p class="grid-element">{{ ingress.spec.ingressClassName }}</p>
<p class="grid-element">{{ ingress.spec.rules.length }}</p>
<div class="grid-element action-buttons">
<ActionButton>delete</ActionButton>
</div>
<IngressViewPopup v-if="showViewPopup" :ingress="ingress" ref="viewIngressPopup" @close="showViewPopup = false"></IngressViewPopup>
</div>
</template>

View File

@ -6,7 +6,6 @@
<p>Namespace</p>
<p>Age</p>
<p>Entries</p>
<p>Actions</p>
</div>
<ConfigMapComponent v-for="(configMap, index) in configMaps" :config-map="configMap" class="resource" :class="{ even: index % 2 }"></ConfigMapComponent>
</div>
@ -30,6 +29,6 @@ onUnmounted(() => {
<style scoped>
.config-map-container {
display: grid;
grid-template-columns: auto auto auto 1fr auto;
grid-template-columns: auto auto auto 1fr;
}
</style>

View File

@ -1,5 +1,5 @@
<template>
<TableComponent :loading="customResourceDefinitions == null">
<TableComponent :loading="customResourceDefinitions == null" v-for="customResourceDefinitions in [repo.get().value]">
<div class="resource-container crd-container">
<div class="header">
<p>Name</p>
@ -14,10 +14,16 @@
</template>
<script setup lang="ts">
import type { CustomResourceDefinition } from '~/classes/CustomResourceDefinition';
import { ResourceRepo } from '~/classes/repo/ResourceRepo';
import type {CustomResourceDefinition} from "~/classes/CustomResourceDefinition";
const customResourceDefinitions = ResourceRepo.init<CustomResourceDefinition>().load('custom-resource-definitions').get();
const repo = ResourceRepo.init<CustomResourceDefinition>();
onMounted(() => {
repo.listen("custom-resource-definitions");
});
onUnmounted(() => {
repo.clear();
});
</script>
<style scoped>

View File

@ -7,7 +7,6 @@
<p>Age</p>
<p>Ingress Class Name</p>
<p>Rules</p>
<p>Actions</p>
</div>
<IngressComponent :ingress="ingress" v-for="(ingress, index) in ingresses" class="resource" :class="{ even: index % 2 }"></IngressComponent>
</div>
@ -29,6 +28,6 @@ onUnmounted(() => {
<style scoped>
.ingress-container {
grid-template-columns: auto auto auto auto 1fr auto;
grid-template-columns: auto auto auto auto 1fr;
}
</style>

View File

@ -4,7 +4,6 @@
<div class="header">
<p>Name</p>
<p>Age</p>
<p>Actions</p>
</div>
<NamespaceComponent :namespace="namespace" v-for="(namespace, index) in namespaces" class="resource" :class="{ even: index % 2 }"></NamespaceComponent>
</div>
@ -27,6 +26,6 @@ onUnmounted(() => {
<style scoped>
.namespace-container {
grid-template-columns: auto 1fr auto;
grid-template-columns: auto 1fr;
}
</style>

View File

@ -7,7 +7,6 @@
<p>Age</p>
<p>Storage Class</p>
<p>Access Modes</p>
<p>Actions</p>
</div>
<PersistentVolumeClaimComponent v-for="(persistentVolumeClaim, index) in persistentVolumeClaims" :persistent-volume-claim="persistentVolumeClaim" class="resource" :class="{ even: index % 2 }"></PersistentVolumeClaimComponent>
</div>
@ -32,6 +31,6 @@ onUnmounted(() => {
<style scoped>
.persistent-volume-claim-container {
display: grid;
grid-template-columns: auto auto auto auto 1fr auto;
grid-template-columns: auto auto auto auto 1fr;
}
</style>

View File

@ -4,7 +4,6 @@
<div class="header">
<p>Name</p>
<p>Age</p>
<p>Actions</p>
</div>
<PersistentVolumeComponent v-for="(persistentVolume, index) in persistentVolumes" :persistent-volume="persistentVolume" class="resource" :class="{ even: index % 2 }"></PersistentVolumeComponent>
</div>
@ -29,6 +28,6 @@ onUnmounted(() => {
<style scoped>
.persistent-volume-container {
display: grid;
grid-template-columns: auto 1fr auto;
grid-template-columns: auto 1fr;
}
</style>

View File

@ -7,6 +7,7 @@
<p>Age</p>
<p>Node</p>
<p>Containers</p>
<p>Restarts</p>
<p>Status</p>
<p>Actions</p>
</div>
@ -32,6 +33,6 @@ onUnmounted(() => {
<style scoped>
.pod-container {
display: grid;
grid-template-columns: auto 1fr 1fr 1fr 1fr auto auto;
grid-template-columns: auto auto auto auto auto 1fr auto auto;
}
</style>

View File

@ -10,7 +10,6 @@
<p>Age</p>
<p>Type</p>
<p>Entries</p>
<p>Actions</p>
</div>
<SecretComponent v-for="(secret, index) in secrets" :secret="secret" class="resource" :class="{ even: index % 2 }"></SecretComponent>
</div>
@ -37,6 +36,6 @@ const secretAddComponent = ref();
<style scoped>
.secret-container {
display: grid;
grid-template-columns: auto auto auto auto 1fr auto;
grid-template-columns: auto auto auto auto 1fr;
}
</style>

View File

@ -6,7 +6,6 @@
<p>Namespace</p>
<p>Age</p>
<p>Type</p>
<p>Actions</p>
</div>
<ServiceComponent :service="service" v-for="(service, index) in services" class="resource" :class="{ even: index % 2 }"></ServiceComponent>
</div>
@ -28,6 +27,6 @@ onUnmounted(() => {
<style>
.service-container {
grid-template-columns: auto auto auto 1fr auto;
grid-template-columns: auto auto auto 1fr;
}
</style>

View File

@ -5,12 +5,12 @@
<p class="grid-element no-wrap" v-if="pod.metadata">{{ calcAge(pod.metadata.creationTimestamp) }}</p>
<p class="grid-element" v-if="pod.spec">{{ pod.spec.nodeName }}</p>
<p class="grid-element">{{ pod.spec.containers.length }}</p>
<p class="grid-element">{{ pod.status.containerStatuses.map(s => s.restartCount).reduce((total, value) => total = total + value) }}</p>
<div class="grid-element">
<PhaseComponent v-if="pod.status" :phase="pod.status.phase"></PhaseComponent>
</div>
<div class="grid-element action-buttons">
<ActionButton @click="showLogPopup = true">text_snippet</ActionButton>
<ActionButton>open_in_full</ActionButton>
<ActionButton @click="showDeletePopup = true">delete</ActionButton>
</div>
<PodDeletePopup v-if="showDeletePopup" :pod="pod" @close="showDeletePopup = false"></PodDeletePopup>
@ -24,7 +24,7 @@ import type { Pod } from '~/classes/Pod';
import { calcAge } from '~/classes/Pod';
import PodDeletePopup from './view/PodDeletePopup.vue';
const props = defineProps<{
defineProps<{
pod: Pod
}>();

View File

@ -10,7 +10,11 @@ export class EnvVar
static get(namespace: string, name: string, containerName: string, onSuccess: (envVars: EnvVar[]) => void, onError: () => void)
{
const url = StringUtils.format('%s/pods/%s/%s/%s/env', ApiConfig.getHttpBase(), namespace, name, containerName);
axios.get<EnvVar[]>(url)
axios.get<EnvVar[]>(url, {
headers: {
Authorization: "Bearer " + requireToken()
}
})
.then((response) => {
onSuccess(response.data);
})

View File

@ -5,10 +5,6 @@
<p class="grid-element">{{ calcAge(secret.metadata.creationTimestamp) }}</p>
<p class="grid-element">{{ secret.type }}</p>
<p class="grid-element"><span v-if="secret.data">{{ Object.keys(secret.data).length }}</span><span v-else>-</span></p>
<div class="grid-element action-buttons">
<ActionButton>edit</ActionButton>
<ActionButton>delete</ActionButton>
</div>
<SecretViewPopup :secret="secret" v-if="showViewPopup" @close="() => showViewPopup = false"></SecretViewPopup>
</div>
</template>

View File

@ -4,9 +4,6 @@
<p class="grid-element">{{ service.metadata.namespace }}</p>
<p class="grid-element">{{ calcAge(service.metadata.creationTimestamp) }}</p>
<p class="grid-element" v-if="service.spec">{{ service.spec.type }}</p>
<div class="grid-element">
<ActionButton>delete</ActionButton>
</div>
</div>
</template>