Skip to content

Commit ef53e4c

Browse files
committed
Tabset-318
1 parent 1d4de5a commit ef53e4c

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

widgets/PanelTabListElementWidget.vue

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -381,8 +381,9 @@ import { useQuasar } from 'quasar'
381381
import BrowserApi from 'src/app/BrowserApi'
382382
import TabListIconIndicatorsHook from 'src/app/hooks/tabsets/TabListIconIndicatorsHook.vue'
383383
import { FeatureIdent } from 'src/app/models/FeatureIdent'
384-
import { TabReference, TabReferenceStatus, TabReferenceType } from 'src/content/models/TabReference'
384+
import { TabReference, TabReferenceType } from 'src/content/models/TabReference'
385385
import { useCommandExecutor } from 'src/core/services/CommandExecutor'
386+
import { NotificationType, useNotificationHandler } from 'src/core/services/ErrorHandler'
386387
import { useNavigationService } from 'src/core/services/NavigationService'
387388
import { useUtils } from 'src/core/services/Utils'
388389
import ShortUrl from 'src/core/utils/ShortUrl.vue'
@@ -420,6 +421,7 @@ import { ListDetailLevel, useUiStore } from 'src/ui/stores/uiStore'
420421
import { onMounted, PropType, ref, watchEffect } from 'vue'
421422
import { useRouter } from 'vue-router'
422423
424+
const { handleError } = useNotificationHandler()
423425
const { inBexMode } = useUtils()
424426
425427
const props = defineProps({
@@ -729,12 +731,22 @@ const showRssReferencesInfo = () => {
729731
}
730732
731733
const openSearch = () => {
732-
const ref: object[] = props.tab!.tabReferences.filter((ref) => ref.type === TabReferenceType.OPEN_SEARCH)[0]!.data
733-
const parser = new DOMParser()
734-
const xml = ref[0]!['xml' as keyof object]
735-
const doc = parser.parseFromString(xml, 'application/xml')
736-
const templateURL: string = doc.getElementsByTagName('Url')[0]!.getAttribute('template') || ''
737-
useNavigationService().browserTabFor(templateURL.replace('{searchTerms}', opensearchterm.value || ''))
734+
console.log('openSearch clicked')
735+
try {
736+
const ref: object[] = props.tab!.tabReferences.filter((ref) => ref.type === TabReferenceType.OPEN_SEARCH)[0]!.data
737+
const parser = new DOMParser()
738+
const xml = ref[0]!['xml' as keyof object]
739+
console.log('using xml', xml)
740+
const doc = parser.parseFromString(xml, 'application/xml')
741+
let urlTag = doc.getElementsByTagName('Url')[0]
742+
if (!urlTag) {
743+
urlTag = doc.getElementsByTagName('url')[0]
744+
}
745+
const templateURL: string = urlTag!.getAttribute('template') || ''
746+
useNavigationService().browserTabFor(templateURL.replace('{searchTerms}', opensearchterm.value || ''))
747+
} catch (err: any) {
748+
handleError(err, NotificationType.NOTIFY)
749+
}
738750
}
739751
740752
const openRssLink = (rss: TabReference) => useNavigationService().browserTabFor(rss.href!)

0 commit comments

Comments
 (0)