diff options
author | Jinyuan Huang <88757735+BernieHuang2008@users.noreply.github.com> | 2023-09-27 14:19:35 +0000 |
---|---|---|
committer | Jinyuan Huang <88757735+BernieHuang2008@users.noreply.github.com> | 2023-11-10 13:28:04 +0000 |
commit | 8adc7b0433fe67e6b34c04cbf52e34ac4d796754 (patch) | |
tree | 0155b75ffa774f41de9dd151397b3daaffb80915 | |
parent | 96ccec1aa6507ef4d3dc05a08e01187f80080972 (diff) |
add a "copy" button to the "search-url" sidebar
-rw-r--r-- | searx/static/themes/simple/src/js/main/results.js | 8 | ||||
-rw-r--r-- | searx/static/themes/simple/src/less/style.less | 9 | ||||
-rw-r--r-- | searx/templates/simple/elements/search_url.html | 1 |
3 files changed, 18 insertions, 0 deletions
diff --git a/searx/static/themes/simple/src/js/main/results.js b/searx/static/themes/simple/src/js/main/results.js index 4eae5843..2309297d 100644 --- a/searx/static/themes/simple/src/js/main/results.js +++ b/searx/static/themes/simple/src/js/main/results.js @@ -16,6 +16,8 @@ } )); + d.querySelector('#search_url button#copy_url').style.display = "block"; + searxng.on('.btn-collapse', 'click', function () { var btnLabelCollapsed = this.getAttribute('data-btn-text-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) { /* eslint no-unused-vars: 0 */ if (resultElement) { diff --git a/searx/static/themes/simple/src/less/style.less b/searx/static/themes/simple/src/less/style.less index 8bb10bb0..87f74766 100644 --- a/searx/static/themes/simple/src/less/style.less +++ b/searx/static/themes/simple/src/less/style.less @@ -729,9 +729,18 @@ summary.title { #search_url { div.selectable_url { pre { + float: left; 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 { diff --git a/searx/templates/simple/elements/search_url.html b/searx/templates/simple/elements/search_url.html index 9cc92b94..77c956da 100644 --- a/searx/templates/simple/elements/search_url.html +++ b/searx/templates/simple/elements/search_url.html @@ -1,6 +1,7 @@ <div id="search_url" role="complementary" aria-labelledby="search_url-title"> <details class="sidebar-collapsable"> <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"> <pre>{{ url_for('search', _external=True) }}?q={{ q|urlencode }}&language={{ current_language }}&time_range={{ time_range }}&safesearch={{ safesearch }} {%- if pageno > 1 -%} |