diff --git a/frappe/core/doctype/navbar_settings/navbar_settings.json b/frappe/core/doctype/navbar_settings/navbar_settings.json index 1be87bae66..58c743f650 100644 --- a/frappe/core/doctype/navbar_settings/navbar_settings.json +++ b/frappe/core/doctype/navbar_settings/navbar_settings.json @@ -11,7 +11,9 @@ "settings_dropdown", "help_dropdown", "announcements_section", - "announcement_widget" + "announcement_widget", + "announcement_widget_color", + "dismissible_announcement_widget" ], "fields": [ { @@ -47,16 +49,27 @@ "label": "Announcements" }, { - "description": "These announcements will appear inside a dismissible alert below the Navbar.", + "description": "These announcements will appear inside an alert below the Navbar.", "fieldname": "announcement_widget", "fieldtype": "Text Editor", "label": "Announcement Widget", "max_height": "10em" + }, + { + "fieldname": "announcement_widget_color", + "fieldtype": "Color", + "label": "Widget Color" + }, + { + "default": "1", + "fieldname": "dismissible_announcement_widget", + "fieldtype": "Check", + "label": "Is Dismissible" } ], "issingle": 1, "links": [], - "modified": "2024-05-01 14:09:54.587137", + "modified": "2026-02-05 15:19:55.524034", "modified_by": "Administrator", "module": "Core", "name": "Navbar Settings", @@ -74,8 +87,9 @@ } ], "quick_entry": 1, + "row_format": "Dynamic", "sort_field": "creation", "sort_order": "DESC", "states": [], "track_changes": 1 -} \ No newline at end of file +} diff --git a/frappe/core/doctype/navbar_settings/navbar_settings.py b/frappe/core/doctype/navbar_settings/navbar_settings.py index dc3263a27b..d41a3b73ad 100644 --- a/frappe/core/doctype/navbar_settings/navbar_settings.py +++ b/frappe/core/doctype/navbar_settings/navbar_settings.py @@ -17,7 +17,9 @@ class NavbarSettings(Document): from frappe.types import DF announcement_widget: DF.TextEditor | None + announcement_widget_color: DF.Color | None app_logo: DF.AttachImage | None + dismissible_announcement_widget: DF.Check help_dropdown: DF.Table[NavbarItem] settings_dropdown: DF.Table[NavbarItem] # end: auto-generated types diff --git a/frappe/public/js/frappe/ui/toolbar/navbar.html b/frappe/public/js/frappe/ui/toolbar/navbar.html index 9e973f514a..446e2786c2 100644 --- a/frappe/public/js/frappe/ui/toolbar/navbar.html +++ b/frappe/public/js/frappe/ui/toolbar/navbar.html @@ -1,10 +1,12 @@
- {% if !localStorage.getItem("dismissed_announcement_widget") && strip_html(navbar_settings.announcement_widget) != '' %} -
+ {% if (!navbar_settings.dismissible_announcement_widget || !localStorage.getItem("dismissed_announcement_widget")) && strip_html(navbar_settings.announcement_widget) != '' %} +
{{ navbar_settings.announcement_widget }} + {% if navbar_settings.dismissible_announcement_widget %}
{{ frappe.utils.icon("close") }} + {% endif %}
diff --git a/frappe/public/js/frappe/ui/toolbar/toolbar.js b/frappe/public/js/frappe/ui/toolbar/toolbar.js index 0b5f546f2c..383c9eb69e 100644 --- a/frappe/public/js/frappe/ui/toolbar/toolbar.js +++ b/frappe/public/js/frappe/ui/toolbar/toolbar.js @@ -9,7 +9,8 @@ frappe.ui.toolbar.Toolbar = class { if ( frappe.boot.read_only || frappe.boot.user.impersonated_by || - (!localStorage.getItem("dismissed_announcement_widget") && + ((!localStorage.getItem("dismissed_announcement_widget") || + !frappe.boot.navbar_settings.dismissible_announcement_widget) && strip_html(frappe.boot.navbar_settings.announcement_widget) != "") || frappe.is_mobile() ) {