fix(settings): warn user and force push them to refresh (#43)
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
"
|
||||
hide-text
|
||||
class=""
|
||||
:disabled="!canEdit"
|
||||
:disabled="!canEdit || isSettingsMissing"
|
||||
@click.stop="$emit('manual-publish-or-load')"
|
||||
></FormButton>
|
||||
</div>
|
||||
@@ -57,6 +57,16 @@
|
||||
</button>
|
||||
</template>
|
||||
</AutomateResultDialog>
|
||||
<!-- To test missing settings -->
|
||||
<!-- <FormButton
|
||||
v-if="!isSettingsMissing"
|
||||
v-tippy="'Refresh settings are needed'"
|
||||
color="subtle"
|
||||
:icon-left="TrashIcon"
|
||||
hide-text
|
||||
size="sm"
|
||||
@click="deleteSettings"
|
||||
/> -->
|
||||
<FormButton
|
||||
v-if="store.hostAppName !== 'navisworks' && store.hostAppName !== 'etabs'"
|
||||
v-tippy="'Highlight'"
|
||||
@@ -338,6 +348,31 @@ const highlightModel = () => {
|
||||
trackEvent('DUI3 Action', { name: 'Highlight Model' }, props.modelCard.accountId)
|
||||
}
|
||||
|
||||
const isSettingsMissing = computed(() =>
|
||||
isSender.value ? isSendSettingsMissing.value : isReceiveSettingsMissing.value
|
||||
)
|
||||
|
||||
const isSendSettingsMissing = computed(
|
||||
() =>
|
||||
isSender.value &&
|
||||
store.sendSettings &&
|
||||
store.sendSettings.length > 0 &&
|
||||
!props.modelCard.settings
|
||||
)
|
||||
|
||||
const isReceiveSettingsMissing = computed(
|
||||
() =>
|
||||
!isSender.value &&
|
||||
store.receiveSettings &&
|
||||
store.receiveSettings.length > 0 &&
|
||||
!props.modelCard.settings
|
||||
)
|
||||
|
||||
// To test missing settings
|
||||
// const deleteSettings = async () => {
|
||||
// await store.patchModel(props.modelCard.modelCardId, { settings: undefined })
|
||||
// }
|
||||
|
||||
const viewModel = () => {
|
||||
// previously with DUI2, it was Stream View but actually it is "Version View" now. Also having conflict with old/new terminology.
|
||||
trackEvent('DUI3 Action', { name: 'Version View' }, props.modelCard.accountId)
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
color="subtle"
|
||||
class="block text-foreground-2 hover:text-foreground overflow-hidden max-w-full !justify-start"
|
||||
full-width
|
||||
:disabled="!!modelCard.progress || !canEdit"
|
||||
:disabled="!!modelCard.progress || !canEdit || isReceiveSettingsMissing"
|
||||
@click.stop="openVersionsDialog = true"
|
||||
>
|
||||
<span>
|
||||
@@ -58,6 +58,10 @@
|
||||
/>
|
||||
</CommonDialog>
|
||||
<template #states>
|
||||
<CommonModelNotification
|
||||
v-if="isReceiveSettingsMissing"
|
||||
:notification="receiveSettingsMissingNotification"
|
||||
/>
|
||||
<CommonModelNotification
|
||||
v-if="expiredNotification"
|
||||
:notification="expiredNotification"
|
||||
@@ -121,6 +125,30 @@ app.$baseBinding?.on('documentChanged', () => {
|
||||
openVersionsDialog.value = false
|
||||
})
|
||||
|
||||
const isReceiveSettingsMissing = computed(
|
||||
() =>
|
||||
store.receiveSettings &&
|
||||
store.receiveSettings.length > 0 &&
|
||||
!props.modelCard.settings
|
||||
)
|
||||
|
||||
const receiveSettingsMissingNotification = computed(() => {
|
||||
const notification = {} as ModelCardNotification
|
||||
notification.dismissible = false
|
||||
notification.level = 'danger'
|
||||
notification.text = 'Load settings are corrupted for some reason.'
|
||||
|
||||
notification.cta = {
|
||||
name: 'Refresh',
|
||||
action: async () => {
|
||||
await store.patchModel(props.modelCard.modelCardId, {
|
||||
settings: store.receiveSettings
|
||||
})
|
||||
}
|
||||
}
|
||||
return notification
|
||||
})
|
||||
|
||||
const isExpired = computed(() => {
|
||||
return props.modelCard.latestVersionId !== props.modelCard.selectedVersionId
|
||||
})
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
size="sm"
|
||||
color="subtle"
|
||||
class="block text-foreground-2 hover:text-foreground overflow-hidden max-w-full !justify-start"
|
||||
:disabled="!!modelCard.progress || !props.canEdit"
|
||||
:disabled="!!modelCard.progress || !props.canEdit || isSendSettingsMissing"
|
||||
full-width
|
||||
@click.stop="openFilterDialog = true"
|
||||
>
|
||||
@@ -80,6 +80,10 @@
|
||||
</form>
|
||||
</CommonDialog>
|
||||
<template #states>
|
||||
<CommonModelNotification
|
||||
v-if="isSendSettingsMissing"
|
||||
:notification="sendSettingsMissingNotification"
|
||||
/>
|
||||
<CommonModelNotification
|
||||
v-if="expiredNotification"
|
||||
:notification="expiredNotification"
|
||||
@@ -223,6 +227,27 @@ const saveFilterAndSend = async () => {
|
||||
hasSetVersionMessage.value = false
|
||||
}
|
||||
|
||||
const isSendSettingsMissing = computed(
|
||||
() => store.sendSettings && store.sendSettings.length > 0 && !props.modelCard.settings
|
||||
)
|
||||
|
||||
const sendSettingsMissingNotification = computed(() => {
|
||||
const notification = {} as ModelCardNotification
|
||||
notification.dismissible = false
|
||||
notification.level = 'danger'
|
||||
notification.text = 'Publish settings are corrupted for some reason.'
|
||||
|
||||
notification.cta = {
|
||||
name: 'Refresh',
|
||||
action: async () => {
|
||||
await store.patchModel(props.modelCard.modelCardId, {
|
||||
settings: store.sendSettings
|
||||
})
|
||||
}
|
||||
}
|
||||
return notification
|
||||
})
|
||||
|
||||
const expiredNotification = computed(() => {
|
||||
if (!props.modelCard.expired) return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user