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>
<!-- 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>
<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"}}
</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">
{{ctx.Locale.Tr "repo.cite_this_repo"}}
</div>
<div class="content">
<div class="ui stackable secondary menu">
<div class="fitted item">
<div class="ui action input" id="citation-panel">
{{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"}}">
@ -13,7 +12,6 @@
</div>
</div>
</div>
</div>
<div class="actions">
<button class="ui cancel button">
{{ctx.Locale.Tr "cancel"}}

View file

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

View file

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