Add opening method option for custom search widget.

This commit is contained in:
Phillip Whelan 2025-11-04 19:16:26 -03:00
parent 667feb4d10
commit 1b77917335

View file

@ -7,7 +7,7 @@
<div class="buttons">
<button
v-for="(engine, key) in engines" :key="key"
v-on:click="search(engine)">
v-on:click="search(engine, openingMethod)">
{{ engine.title }}
</button>
</div>
@ -15,7 +15,9 @@
</template>
<script>
import router from '@/router';
import WidgetMixin from '@/mixins/WidgetMixin';
import ErrorHandler from '@/utils/ErrorHandler';
export default {
mixins: [WidgetMixin],
@ -35,11 +37,28 @@ export default {
defaultEngine() {
return this.engines[0];
},
openingMethod() {
return this.options.openingMethod || '';
},
},
methods: {
search(engine) {
search(engine, openingMethod) {
if (engine !== undefined && this.query !== '') {
window.open(engine.url + this.query, '_blank');
const url = engine.url + this.query;
switch (openingMethod) {
case 'newtab':
window.open(url, '_blank');
break;
case 'sametab':
window.open(url, '_self');
break;
case 'workspace':
router.push({ name: 'workspace', query: { url } });
break;
default:
ErrorHandler(`Unknown opening method: ${openingMethod}`);
window.open(url, '_blank');
}
}
},
},