Files
online.tbbank.gov.tm-larave…/nova/resources/js/fields/Detail/HasOneField.vue
2024-09-01 18:54:23 +05:00

71 lines
1.7 KiB
Vue

<template>
<div
v-if="field.authorizedToView"
class="relative"
:dusk="field.resourceName + '-index-component'"
:data-relationship="viaRelationship"
>
<template v-if="!hasRelation">
<Heading :level="1" class="mb-3 flex items-center">{{
field.singularLabel
}}</Heading>
<Card>
<IndexEmptyDialog
:create-button-label="createButtonLabel"
:singular-name="singularName"
:resource-name="field.resourceName"
:via-resource="resourceName"
:via-resource-id="viaResourceId"
:via-relationship="viaRelationship"
:relationship-type="field.relationshipType"
:authorized-to-create="authorizedToCreate"
:authorized-to-relate="true"
/>
</Card>
</template>
<div v-else>
<ResourceDetail
:resource-name="field.resourceName"
:resource-id="field.hasOneId"
:via-resource="resourceName"
:via-resource-id="viaResourceId"
:via-relationship="viaRelationship"
:relationship-type="field.relationshipType"
:show-view-link="true"
/>
</div>
</div>
</template>
<script>
export default {
props: ['resourceName', 'resourceId', 'resource', 'field'],
computed: {
authorizedToCreate() {
return this.field.authorizedToCreate
},
createButtonLabel() {
return this.field.createButtonLabel
},
hasRelation() {
return this.field.hasOneId != null
},
singularName() {
return this.field.singularLabel
},
viaResourceId() {
return this.resource.id.value
},
viaRelationship() {
return this.field.hasOneRelationship
},
},
}
</script>