@@ -381,8 +381,9 @@ import { useQuasar } from 'quasar'
381381import BrowserApi from ' src/app/BrowserApi'
382382import TabListIconIndicatorsHook from ' src/app/hooks/tabsets/TabListIconIndicatorsHook.vue'
383383import { 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'
385385import { useCommandExecutor } from ' src/core/services/CommandExecutor'
386+ import { NotificationType , useNotificationHandler } from ' src/core/services/ErrorHandler'
386387import { useNavigationService } from ' src/core/services/NavigationService'
387388import { useUtils } from ' src/core/services/Utils'
388389import ShortUrl from ' src/core/utils/ShortUrl.vue'
@@ -420,6 +421,7 @@ import { ListDetailLevel, useUiStore } from 'src/ui/stores/uiStore'
420421import { onMounted , PropType , ref , watchEffect } from ' vue'
421422import { useRouter } from ' vue-router'
422423
424+ const { handleError } = useNotificationHandler ()
423425const { inBexMode } = useUtils ()
424426
425427const props = defineProps ({
@@ -729,12 +731,22 @@ const showRssReferencesInfo = () => {
729731}
730732
731733const 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
740752const openRssLink = (rss : TabReference ) => useNavigationService ().browserTabFor (rss .href ! )
0 commit comments