diff --git a/webclient-vue/src/components/device/DeviceTable.vue b/webclient-vue/src/components/device/DeviceTable.vue
new file mode 100644
index 0000000..25e7034
--- /dev/null
+++ b/webclient-vue/src/components/device/DeviceTable.vue
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+ {{ row.name || row.alias || `Device #${row.id}` }}
+ {{ row.alias }} — {{ row.device_ip || '—' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reboot
+
+
+
+
+
+
+
+
diff --git a/webclient-vue/src/features/areas/pages/AreaDetailPage.vue b/webclient-vue/src/features/areas/pages/AreaDetailPage.vue
index 23e4cca..2699b9d 100644
--- a/webclient-vue/src/features/areas/pages/AreaDetailPage.vue
+++ b/webclient-vue/src/features/areas/pages/AreaDetailPage.vue
@@ -68,11 +68,7 @@
title="No devices"
message="No devices assigned to this area."
/>
-
-
- View device
-
-
+
@@ -171,6 +167,7 @@
import AppEmptyState from "../../../components/feedback/AppEmptyState.vue";
import AreaBadgeLink from "../../../components/area/AreaBadgeLink.vue";
import AreaAssignSection from "../../../components/area/AreaAssignSection.vue";
+import DeviceTable from "../../../components/device/DeviceTable.vue";
const route = useRoute();
const router = useRouter();
@@ -226,12 +223,6 @@
const showRemoveDialog = ref(false);
const removeDialogMessage = ref("");
-const deviceColumns = [
- { key: "alias", label: "Alias" },
- { key: "name", label: "Name" },
- { key: "device_type", label: "Type" },
-];
-
const scriptColumns = [
{ key: "alias", label: "Alias" },
{ key: "name", label: "Name" },
diff --git a/webclient-vue/src/features/devices/pages/DevicesListPage.vue b/webclient-vue/src/features/devices/pages/DevicesListPage.vue
index 50df986..99576d4 100644
--- a/webclient-vue/src/features/devices/pages/DevicesListPage.vue
+++ b/webclient-vue/src/features/devices/pages/DevicesListPage.vue
@@ -41,46 +41,7 @@
:message="devicesStore.stateError.message"
/>
-
-
-
-
-
-
- {{ row.name || row.alias || `Device #${row.id}` }}
- {{ row.alias }} — {{ row.device_ip || '—' }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Reboot
-
-
-
+
@@ -88,50 +49,22 @@
@@ -155,34 +84,4 @@
margin-bottom: 12px;
}
-.device-cell {
- display: flex;
- align-items: center;
- gap: 10px;
-}
-
-.device-icon {
- font-size: 20px;
- color: var(--color-primary);
-}
-
-.device-info {
- display: flex;
- flex-direction: column;
- gap: 2px;
-}
-
-.device-info small {
- color: var(--color-muted);
- font-size: 12px;
-}
-
-.device-link {
- color: inherit;
- text-decoration: none;
-}
-
-.device-link:hover strong {
- color: var(--color-primary);
-}