WIP - manage tenant users from central
This commit is contained in:
@@ -12,11 +12,16 @@ import {
|
||||
import ListView from '@/components/views/ListView.vue'
|
||||
import DetailView from '@/components/views/DetailViewEnhanced.vue'
|
||||
import EditView from '@/components/views/EditViewEnhanced.vue'
|
||||
import TenantUserDialog from '@/components/TenantUserDialog.vue'
|
||||
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
const { api } = useApi()
|
||||
|
||||
// Tenant user dialog state
|
||||
const showTenantUserDialog = ref(false)
|
||||
const tenantUserDialogTenantId = ref('')
|
||||
|
||||
const recordId = computed(() => route.params.recordId as string)
|
||||
const view = computed(() => {
|
||||
if (route.params.recordId === 'new' && !route.params.view) {
|
||||
@@ -88,6 +93,13 @@ const handleNavigate = (objectApiName: string, recordId: string) => {
|
||||
|
||||
// Handle creating related records
|
||||
const handleCreateRelated = (objectApiName: string, parentId: string) => {
|
||||
// Special handling for tenant users
|
||||
if (objectApiName.includes('tenants/:parentId/users')) {
|
||||
tenantUserDialogTenantId.value = parentId
|
||||
showTenantUserDialog.value = true
|
||||
return
|
||||
}
|
||||
|
||||
// Navigate to create page with parent context
|
||||
router.push({
|
||||
path: `/central/${objectApiName}/new`,
|
||||
@@ -95,6 +107,14 @@ const handleCreateRelated = (objectApiName: string, parentId: string) => {
|
||||
})
|
||||
}
|
||||
|
||||
// Handle tenant user created
|
||||
const handleTenantUserCreated = async () => {
|
||||
// Refresh the current record to update related lists
|
||||
if (recordId.value && recordId.value !== 'new') {
|
||||
await fetchRecord(recordId.value)
|
||||
}
|
||||
}
|
||||
|
||||
const handleSaveRecord = async (data: any) => {
|
||||
try {
|
||||
const savedRecord = await handleSave(data)
|
||||
@@ -167,6 +187,14 @@ onMounted(async () => {
|
||||
@back="handleBack"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- Tenant User Creation Dialog -->
|
||||
<TenantUserDialog
|
||||
v-model:open="showTenantUserDialog"
|
||||
:tenant-id="tenantUserDialogTenantId"
|
||||
:tenant-name="(currentRecord as any)?.name"
|
||||
@created="handleTenantUserCreated"
|
||||
/>
|
||||
</NuxtLayout>
|
||||
</template>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user