diff --git a/zero.Backoffice.UI/app/components/ui-form-header-links.vue b/zero.Backoffice.UI/app/components/ui-form-header-links.vue index 7543c518..891a509a 100644 --- a/zero.Backoffice.UI/app/components/ui-form-header-links.vue +++ b/zero.Backoffice.UI/app/components/ui-form-header-links.vue @@ -1,10 +1,15 @@  @@ -36,18 +41,21 @@ dropdown: null, urlList: [], urlDomain: null, - urlPreview: null + urlPreview: null, + failed: false }), watch: { 'value.lastModifiedDate'() { - this.reloadUrls(); + this.loadUrls(); } }, mounted() { + this.loadUrls(); + let current = this; do { @@ -68,11 +76,11 @@ computed: { hasPreview() { - return this.value && typeof this.url === 'function' && this.previewEnabled; + return !this.failed && this.value && typeof this.url === 'function' && this.previewEnabled; }, hasLink() { - return this.value && typeof this.url === 'function'; + return !this.failed && this.value && typeof this.url === 'function'; }, urlLink() { @@ -88,33 +96,22 @@ async loadUrls() { const result = await this.url(this.value); - this.urlList = result.data.urls ? result.data.urls : [result.data.url]; + this.urlList = result.data.urls ? result.data.urls : (result.data.url ? [result.data.url] : []); this.urlDomain = result.data.domain; + this.failed = this.urlList.length < 1 || !result.data.domain; }, async openPreview(_, opts) { - opts.loading(true); - await this.loadUrls(); - opts.loading(false); - if (this.urlLink) - { - var resolved = this.$router.resolve({ name: 'preview', query: { path: this.urlLink } }); - window.open(window.location.origin + resolved.href, 'preview'); - opts.hide(); - } + var resolved = this.$router.resolve({ name: 'preview', query: { path: this.urlLink } }); + window.open(window.location.origin + resolved.href, 'preview'); + opts.hide(); }, async openLink(_, opts) { - opts.loading(true); - await this.loadUrls(); - opts.loading(false); - if (this.urlLink) - { - window.open(this.urlLinkAbsolute, '_blank'); - opts.hide(); - } + window.open(this.urlLinkAbsolute, '_blank'); + opts.hide(); } } }