diff --git a/routers/common/pagetmpl.go b/routers/common/pagetmpl.go index c14d4f851e..79267a76be 100644 --- a/routers/common/pagetmpl.go +++ b/routers/common/pagetmpl.go @@ -78,22 +78,7 @@ type pageGlobalDataType struct { } type InstanceNoticeBannerTmplInfo struct { - Message string - Level string - IconName string -} - -func instanceNoticeIconName(level string) string { - switch level { - case setting.InstanceNoticeLevelSuccess: - return "octicon-check" - case setting.InstanceNoticeLevelWarning: - return "octicon-alert" - case setting.InstanceNoticeLevelDanger: - return "octicon-alert" - default: - return "octicon-info" - } + Message string } func getInstanceNoticeBanner(ctx *context.Context) *InstanceNoticeBannerTmplInfo { @@ -102,9 +87,7 @@ func getInstanceNoticeBanner(ctx *context.Context) *InstanceNoticeBannerTmplInfo return nil } return &InstanceNoticeBannerTmplInfo{ - Message: notice.Message, - Level: notice.Level, - IconName: instanceNoticeIconName(notice.Level), + Message: notice.Message, } } diff --git a/templates/admin/config.tmpl b/templates/admin/config.tmpl index 8e78bcc887..c9a40e7daa 100644 --- a/templates/admin/config.tmpl +++ b/templates/admin/config.tmpl @@ -283,15 +283,6 @@ -
- - -
@@ -304,20 +295,11 @@
-
-
-
- {{if eq .InstanceNotice.Level "success"}}{{svg "octicon-check"}}{{else if eq .InstanceNotice.Level "warning"}}{{svg "octicon-alert"}}{{else if eq .InstanceNotice.Level "danger"}}{{svg "octicon-alert"}}{{else}}{{svg "octicon-info"}}{{end}} -
+
+
{{ctx.RenderUtils.MarkdownToHtml .InstanceNotice.Message}}
-
- {{svg "octicon-info"}} - {{svg "octicon-check"}} - {{svg "octicon-alert"}} - {{svg "octicon-alert"}} -
diff --git a/templates/base/head_navbar.tmpl b/templates/base/head_navbar.tmpl index 5a8c6d251f..ac31c957eb 100644 --- a/templates/base/head_navbar.tmpl +++ b/templates/base/head_navbar.tmpl @@ -178,9 +178,8 @@ {{if and .PageGlobalData .PageGlobalData.InstanceNoticeBanner}} {{$banner := .PageGlobalData.InstanceNoticeBanner}} -
-
- {{svg $banner.IconName}} +
+
{{ctx.RenderUtils.MarkdownToHtml $banner.Message}}
{{if .PageGlobalData.IsSiteAdmin}} diff --git a/web_src/js/features/admin/config.test.ts b/web_src/js/features/admin/config.test.ts index d5a86e0704..22a5dd5922 100644 --- a/web_src/js/features/admin/config.test.ts +++ b/web_src/js/features/admin/config.test.ts @@ -15,23 +15,10 @@ function createPreviewDOM() {
-
-
-
- - - - -
`; } @@ -68,19 +55,6 @@ describe('Admin Instance Notice Preview', () => { expect(previewContent.innerHTML).toContain('Rendered message'); }); - test('updates preview class and icon when level changes', () => { - initAdminConfigs(); - - const levelSelect = document.querySelector('select[name="level"]')!; - const preview = document.querySelector('#instance-notice-preview')!; - const previewIcon = document.querySelector('#instance-notice-preview-icon')!; - - levelSelect.value = 'danger'; - levelSelect.dispatchEvent(new Event('change')); - expect(preview.classList.contains('negative')).toBe(true); - expect(previewIcon.innerHTML).toContain('data-icon="warning"'); - }); - test('queues a second render while first request is in flight and re-renders with latest text', async () => { let firstResolve: ((value: Response) => void) | undefined; const firstPending = new Promise((resolve) => { diff --git a/web_src/js/features/admin/config.ts b/web_src/js/features/admin/config.ts index 6c02c5a585..8d36ec6e45 100644 --- a/web_src/js/features/admin/config.ts +++ b/web_src/js/features/admin/config.ts @@ -9,30 +9,8 @@ function initInstanceNoticePreview(elAdminConfig: HTMLDivElement): void { if (!form) return; const inputMessage = form.querySelector('textarea[name="message"]'); - const selectLevel = form.querySelector('select[name="level"]'); - const preview = elAdminConfig.querySelector('#instance-notice-preview'); - const previewIcon = elAdminConfig.querySelector('#instance-notice-preview-icon'); const previewContent = elAdminConfig.querySelector('#instance-notice-preview-content'); - const iconContainer = elAdminConfig.querySelector('#instance-notice-preview-icons'); - if (!inputMessage || !selectLevel || !preview || !previewIcon || !previewContent || !iconContainer) return; - - const iconHTMLByLevel = new Map(); - for (const el of iconContainer.querySelectorAll('[data-level]')) { - iconHTMLByLevel.set(el.getAttribute('data-level')!, el.innerHTML); - } - - const classByLevel: Record = { - info: 'info', - success: 'positive', - warning: 'warning', - danger: 'negative', - }; - - const updateStyle = () => { - preview.classList.remove('info', 'positive', 'warning', 'negative'); - preview.classList.add(classByLevel[selectLevel.value] || 'info'); - previewIcon.innerHTML = iconHTMLByLevel.get(selectLevel.value) || iconHTMLByLevel.get('info') || ''; - }; + if (!inputMessage || !previewContent) return; let renderRequesting = false; let pendingRender = false; @@ -65,9 +43,6 @@ function initInstanceNoticePreview(elAdminConfig: HTMLDivElement): void { inputMessage.addEventListener('input', () => { renderPreviewMarkdown(); }); - selectLevel.addEventListener('change', updateStyle); - - updateStyle(); } export function initAdminConfigs(): void {