Fix Citation modal responsiveness and clipboard copy (#29799)

The modal was broken in two ways:

- On small screens, the input box was partially hanging outside the
modal. Fixed with flexbox and increased modal width.
- The clipboard copy was not working because the modal had both
`data-clipboard-text` and `data-clipboard-target`, while we only support
one of those. Made a small tweak in clipboard as well so that it will
still fall back to target if text is empty.

(cherry picked from commit 94512ee0628dc0d2b697441a4355ace54b6515cd)
This commit is contained in:
silverwind 2024-03-15 03:38:13 +01:00 committed by Earl Warren
parent 5a16c9d9c0
commit ca39d74363
WARNING! Although there is a key with this ID in the database it does not verify this commit! This commit is SUSPICIOUS.
GPG key ID: 0579CB2928A78A00
4 changed files with 12 additions and 20 deletions

View file

@ -6,6 +6,6 @@ BibTeX
</button> </button>
<!-- the value will be updated by initCitationFileCopyContent, the code below is used to avoid UI flicking --> <!-- the value will be updated by initCitationFileCopyContent, the code below is used to avoid UI flicking -->
<input id="citation-copy-content" value="" size="1" readonly> <input id="citation-copy-content" value="" size="1" readonly>
<button class="ui icon button" id="citation-clipboard-btn" data-tooltip-content="{{ctx.Locale.Tr "copy"}}" data-clipboard-text="" data-clipboard-target="#citation-copy-content"> <button class="ui icon button" id="citation-clipboard-btn" data-tooltip-content="{{ctx.Locale.Tr "copy"}}" data-clipboard-target="#citation-copy-content">
{{svg "octicon-copy"}} {{svg "octicon-copy"}}
</button> </button>

View file

@ -1,10 +1,9 @@
<div class="ui tiny modal" id="cite-repo-modal"> <div class="ui small modal" id="cite-repo-modal">
<div class="header"> <div class="header">
{{ctx.Locale.Tr "repo.cite_this_repo"}} {{ctx.Locale.Tr "repo.cite_this_repo"}}
</div> </div>
<div class="content"> <div class="content">
<div class="ui stackable secondary menu"> <div class="ui stackable secondary menu">
<div class="fitted item">
<div class="ui action input" id="citation-panel"> <div class="ui action input" id="citation-panel">
{{template "repo/cite/cite_buttons" .}} {{template "repo/cite/cite_buttons" .}}
<a id="goto-citation-btn" class="ui basic jump icon button" href="{{$.RepoLink}}/src/{{$.BranchName}}/CITATION.cff" data-tooltip-content="{{ctx.Locale.Tr "repo.find_file.go_to_file"}}"> <a id="goto-citation-btn" class="ui basic jump icon button" href="{{$.RepoLink}}/src/{{$.BranchName}}/CITATION.cff" data-tooltip-content="{{ctx.Locale.Tr "repo.find_file.go_to_file"}}">
@ -13,7 +12,6 @@
</div> </div>
</div> </div>
</div> </div>
</div>
<div class="actions"> <div class="actions">
<button class="ui cancel button"> <button class="ui cancel button">
{{ctx.Locale.Tr "cancel"}} {{ctx.Locale.Tr "cancel"}}

View file

@ -2034,13 +2034,8 @@
} }
#cite-repo-modal #citation-panel { #cite-repo-modal #citation-panel {
width: 500px; display: flex;
}
@media (max-width: 767.98px) {
#cite-repo-modal #citation-panel {
width: 100%; width: 100%;
}
} }
#cite-repo-modal #citation-panel input { #cite-repo-modal #citation-panel input {
@ -2060,6 +2055,7 @@
padding: 5px 10px; padding: 5px 10px;
font-size: 1.2em; font-size: 1.2em;
line-height: 1.4; line-height: 1.4;
flex: 1;
} }
#cite-repo-modal #citation-panel #citation-copy-apa, #cite-repo-modal #citation-panel #citation-copy-apa,

View file

@ -15,10 +15,8 @@ export function initGlobalCopyToClipboardListener() {
e.preventDefault(); e.preventDefault();
let text; let text = target.getAttribute('data-clipboard-text');
if (target.hasAttribute('data-clipboard-text')) { if (!text) {
text = target.getAttribute('data-clipboard-text');
} else {
text = document.querySelector(target.getAttribute('data-clipboard-target'))?.value; text = document.querySelector(target.getAttribute('data-clipboard-target'))?.value;
} }