Skip to content

Commit 72d89eb

Browse files
silverwindGiteaBot
andauthored
Fix attachment clipboard copy on insecure origin (#26224)
Fixes: #26202 Actually later I found out the code did not use `clippie`, so I fixed it. The bug was never in the clippie module like I initially suspected. Also, I added a tooltip for feedback. <img width="139" alt="image" src="https://github.com/go-gitea/gitea/assets/115237/da501670-9c15-4412-969a-b559773c7ab9"> --------- Co-authored-by: Giteabot <[email protected]>
1 parent 1107425 commit 72d89eb

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

web_src/js/features/common-global.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import $ from 'jquery';
22
import 'jquery.are-you-sure';
3+
import {clippie} from 'clippie';
34
import {createDropzone} from './dropzone.js';
45
import {initCompColorPicker} from './comp/ColorPicker.js';
56
import {showGlobalErrorMessage} from '../bootstrap.js';
67
import {handleGlobalEnterQuickSubmit} from './comp/QuickSubmit.js';
78
import {svg} from '../svg.js';
89
import {hideElem, showElem, toggleElem} from '../utils/dom.js';
910
import {htmlEscape} from 'escape-goat';
10-
import {createTippy} from '../modules/tippy.js';
11+
import {createTippy, showTemporaryTooltip} from '../modules/tippy.js';
1112
import {confirmModal} from './comp/ConfirmModal.js';
1213
import {showErrorToast} from '../modules/toast.js';
1314

@@ -240,15 +241,16 @@ export function initGlobalDropzone() {
240241
copyLinkElement.className = 'gt-text-center';
241242
// The a element has a hardcoded cursor: pointer because the default is overridden by .dropzone
242243
copyLinkElement.innerHTML = `<a href="#" style="cursor: pointer;">${svg('octicon-copy', 14, 'copy link')} Copy link</a>`;
243-
copyLinkElement.addEventListener('click', (e) => {
244+
copyLinkElement.addEventListener('click', async (e) => {
244245
e.preventDefault();
245246
let fileMarkdown = `[${file.name}](/attachments/${file.uuid})`;
246247
if (file.type.startsWith('image/')) {
247248
fileMarkdown = `!${fileMarkdown}`;
248249
} else if (file.type.startsWith('video/')) {
249250
fileMarkdown = `<video src="/attachments/${file.uuid}" title="${htmlEscape(file.name)}" controls></video>`;
250251
}
251-
navigator.clipboard.writeText(fileMarkdown);
252+
const success = await clippie(fileMarkdown);
253+
showTemporaryTooltip(e.target, success ? i18n.copy_success : i18n.copy_error);
252254
});
253255
file.previewTemplate.append(copyLinkElement);
254256
});

0 commit comments

Comments
 (0)