Merge pull request #2835 from BernieHuang2008/auto-copy

[feature] added a "copy" button in `search url` sidebar.
pull/3006/head
Paul Braeuning 10 months ago committed by GitHub
commit 7b1951aa97
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -16,6 +16,8 @@
} }
)); ));
d.querySelector('#search_url button#copy_url').style.display = "block";
searxng.on('.btn-collapse', 'click', function () { searxng.on('.btn-collapse', 'click', function () {
var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed'); var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');
var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed'); var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');
@ -41,6 +43,12 @@
} }
}); });
searxng.on('#copy_url', 'click', function () {
var target = this.parentElement.querySelector('pre');
navigator.clipboard.writeText(target.innerText);
this.innerText = this.dataset.copiedText;
});
searxng.selectImage = function (resultElement) { searxng.selectImage = function (resultElement) {
/* eslint no-unused-vars: 0 */ /* eslint no-unused-vars: 0 */
if (resultElement) { if (resultElement) {

@ -729,9 +729,18 @@ summary.title {
#search_url { #search_url {
div.selectable_url { div.selectable_url {
pre { pre {
float: left;
width: 200em; width: 200em;
} }
} }
button#copy_url {
float: right;
padding: 0.4rem;
margin-left: 0.5rem;
border-radius: 0.3rem;
display: none; // will be shown by JS.
}
} }
#links_on_top { #links_on_top {

@ -1,6 +1,7 @@
<div id="search_url" role="complementary" aria-labelledby="search_url-title"> <div id="search_url" role="complementary" aria-labelledby="search_url-title">
<details class="sidebar-collapsable"> <details class="sidebar-collapsable">
<summary class="title" id="search_url-title">{{ _('Search URL') }}</summary> <summary class="title" id="search_url-title">{{ _('Search URL') }}</summary>
<button id="copy_url" type="submit" data-copied-text="{{ _('Copied') }}">{{ _('Copy') }}</button>
<div class="selectable_url"> <div class="selectable_url">
<pre>{{ url_for('search', _external=True) }}?q={{ q|urlencode }}&amp;language={{ current_language }}&amp;time_range={{ time_range }}&amp;safesearch={{ safesearch }} <pre>{{ url_for('search', _external=True) }}?q={{ q|urlencode }}&amp;language={{ current_language }}&amp;time_range={{ time_range }}&amp;safesearch={{ safesearch }}
{%- if pageno > 1 -%} {%- if pageno > 1 -%}

Loading…
Cancel
Save