diff --git a/templates/repo/diff/box.tmpl b/templates/repo/diff/box.tmpl
index 0f1458bfbfd22..53ea4fd2e3918 100644
--- a/templates/repo/diff/box.tmpl
+++ b/templates/repo/diff/box.tmpl
@@ -167,8 +167,8 @@
{{if not (or $file.IsIncomplete $file.IsBin $file.IsSubmodule)}}
-
-
+
+
{{end}}
{{if and (not $file.IsSubmodule) (not $.PageIsWiki)}}
{{if $file.IsDeleted}}
diff --git a/templates/repo/wiki/view.tmpl b/templates/repo/wiki/view.tmpl
index 2bb0a4f006888..843a977e3e57c 100644
--- a/templates/repo/wiki/view.tmpl
+++ b/templates/repo/wiki/view.tmpl
@@ -44,13 +44,13 @@
diff --git a/web_src/js/features/repo-unicode-escape.ts b/web_src/js/features/repo-unicode-escape.ts
index 0c7d2e8592aa0..38cad1f753826 100644
--- a/web_src/js/features/repo-unicode-escape.ts
+++ b/web_src/js/features/repo-unicode-escape.ts
@@ -1,27 +1,28 @@
import {addDelegatedEventListener, hideElem, queryElemSiblings, showElem, toggleElem} from '../utils/dom.ts';
export function initUnicodeEscapeButton() {
+ // buttons might appear on these pages: file view (code, rendered markdown), diff (commit, pr conversation, pr diff), blame, wiki
addDelegatedEventListener(document, 'click', '.escape-button, .unescape-button, .toggle-escape-button', (btn, e) => {
e.preventDefault();
- const fileContentElemId = btn.getAttribute('data-file-content-elem-id');
- const fileContent = fileContentElemId ?
- document.querySelector(`#${fileContentElemId}`) :
+ const unicodeContentSelector = btn.getAttribute('data-unicode-content-selector');
+ const container = unicodeContentSelector ?
+ document.querySelector(unicodeContentSelector) :
btn.closest('.file-content, .non-diff-file-content');
- const fileView = fileContent?.querySelectorAll('.file-code, .file-view');
+ const fileView = container.querySelector('.file-code, .file-view') || container;
if (btn.matches('.escape-button')) {
- for (const el of fileView) el.classList.add('unicode-escaped');
+ fileView.classList.add('unicode-escaped');
hideElem(btn);
showElem(queryElemSiblings(btn, '.unescape-button'));
} else if (btn.matches('.unescape-button')) {
- for (const el of fileView) el.classList.remove('unicode-escaped');
+ fileView.classList.remove('unicode-escaped');
hideElem(btn);
showElem(queryElemSiblings(btn, '.escape-button'));
} else if (btn.matches('.toggle-escape-button')) {
- const isEscaped = fileView[0]?.classList.contains('unicode-escaped');
- for (const el of fileView) el.classList.toggle('unicode-escaped', !isEscaped);
- toggleElem(fileContent.querySelectorAll('.unescape-button'), !isEscaped);
- toggleElem(fileContent.querySelectorAll('.escape-button'), isEscaped);
+ const isEscaped = fileView.classList.contains('unicode-escaped');
+ fileView.classList.toggle('unicode-escaped', !isEscaped);
+ toggleElem(container.querySelectorAll('.unescape-button'), !isEscaped);
+ toggleElem(container.querySelectorAll('.escape-button'), isEscaped);
}
});
}