diff --git a/management-ui/src/customcompometns/DeviceTasksDialog.vue b/management-ui/src/customcompometns/DeviceTasksDialog.vue
new file mode 100644
index 0000000..39ec1bf
--- /dev/null
+++ b/management-ui/src/customcompometns/DeviceTasksDialog.vue
@@ -0,0 +1,48 @@
+
+
+
+
\ No newline at end of file
diff --git a/management-ui/src/customcompometns/EditDeviceDialog.vue b/management-ui/src/customcompometns/EditDeviceDialog.vue
index fbc9202..61ece79 100644
--- a/management-ui/src/customcompometns/EditDeviceDialog.vue
+++ b/management-ui/src/customcompometns/EditDeviceDialog.vue
@@ -13,7 +13,7 @@ import { Label } from '@/components/ui/label'
import { defineProps, defineEmits, ref, watch } from 'vue'
import type { PropType } from 'vue'
import AssignDevice from './AssignDevice.vue'
-import type { Device } from '@/lib/interfaces'
+import type { Device, Users } from '@/lib/interfaces'
// 1) runtime props so Vue + TS agree
const props = defineProps({
@@ -22,6 +22,8 @@ const props = defineProps({
required: true,
},
device: { type: Object as PropType, required: false },
+ allUsers: { type: Array as PropType, required: false },
+ initialUserIds: { type: Array as PropType, required: false }, // <- if you have IDs already
})
// 2) two emits: v-model and confirm
@@ -31,11 +33,37 @@ const emit = defineEmits<{
}>()
const name = ref('')
+const selectedUserIds = ref([])
+
+// helper: map usernames → ids when we only have a string of usernames
+const usernameToId = (uname: string): string | null => {
+ const id = props.allUsers?.find(u => u.username === uname)?.id
+ return typeof id === 'number' ? String(id) : null
+}
+
+
// when device changes or dialog opens, update local value
watch(
() => props.device,
(dev) => {
+ console.log(dev?.assigned_users)
name.value = dev?.devicename ?? ''
+ if (props.initialUserIds && props.initialUserIds.length) {
+ selectedUserIds.value = [...props.initialUserIds]
+ return
+ }
+ const usernames = (dev?.assigned_users ?? '')
+ .split(',')
+ .map(s => s.trim())
+ .filter(Boolean)
+
+ if (usernames.length && props.allUsers?.length) {
+ selectedUserIds.value = usernames
+ .map(usernameToId)
+ .filter((x): x is string => !!x)
+ } else {
+ selectedUserIds.value = []
+ }
},
{ immediate: true }
)
@@ -52,7 +80,7 @@ function onSave() {
:open="props.modelValue"
@update:open="(v: boolean) => emit('update:modelValue', v)"
>
-
+
Edit device
@@ -71,7 +99,7 @@ function onSave() {