fix: use boot to store announcement
This commit is contained in:
parent
2238f02cb7
commit
2c0498cbdd
4 changed files with 17 additions and 19 deletions
|
|
@ -1,8 +1,4 @@
|
|||
// Copyright (c) 2020, Frappe Technologies and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
frappe.ui.form.on("Navbar Settings", {
|
||||
after_save: function (frm) {
|
||||
frappe.ui.toolbar.reset_announcement_widget();
|
||||
},
|
||||
});
|
||||
frappe.ui.form.on("Navbar Settings", {});
|
||||
|
|
|
|||
|
|
@ -139,10 +139,10 @@
|
|||
</div>
|
||||
</header>
|
||||
|
||||
{% if localStorage.getItem("show_announcement_widget") == 'true' && strip_html(localStorage.getItem("announcement_widget")) != '' %}
|
||||
{% if !localStorage.getItem("dismissed_announcement_widget") && strip_html(navbar_settings.announcement_widget) != '' %}
|
||||
<div class="announcement-widget form-message p-2 m-0" style="position: relative; z-index: -1; border-radius: 0; background-color: var(--bg-blue);">
|
||||
<div class="container flex justify-between align-center mx-auto">
|
||||
{{ localStorage.getItem("announcement_widget") }}
|
||||
{{ navbar_settings.announcement_widget }}
|
||||
<div class="close-message p-0 mr-2" style="position: relative;">
|
||||
{{ frappe.utils.icon("close") }}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ frappe.provide("frappe.search");
|
|||
|
||||
frappe.ui.toolbar.Toolbar = class {
|
||||
constructor() {
|
||||
frappe.ui.toolbar.reset_announcement_widget();
|
||||
$("header").replaceWith(
|
||||
frappe.render_template("navbar", {
|
||||
avatar: frappe.avatar(frappe.session.user, "avatar-medium"),
|
||||
|
|
@ -59,13 +58,24 @@ frappe.ui.toolbar.Toolbar = class {
|
|||
}
|
||||
|
||||
setup_announcement_widget() {
|
||||
if (localStorage.getItem("show_announcement_widget") == "true") {
|
||||
let current_announcement = frappe.boot.navbar_settings.announcement_widget;
|
||||
|
||||
if (!current_announcement) return;
|
||||
|
||||
// If an unseen announcement is added, overlook dismiss flag
|
||||
if (current_announcement != localStorage.getItem("announcement_widget")) {
|
||||
localStorage.removeItem("dismissed_announcement_widget");
|
||||
localStorage.setItem("announcement_widget", current_announcement);
|
||||
}
|
||||
|
||||
// When an announcement is closed, add dismiss flag
|
||||
if (!localStorage.getItem("dismissed_announcement_widget")) {
|
||||
let announcement_widget = $(".announcement-widget");
|
||||
let close_message = announcement_widget.find(".close-message");
|
||||
close_message.on(
|
||||
"click",
|
||||
() =>
|
||||
localStorage.setItem("show_announcement_widget", false) ||
|
||||
localStorage.setItem("dismissed_announcement_widget", true) ||
|
||||
announcement_widget.addClass("hidden")
|
||||
);
|
||||
}
|
||||
|
|
@ -245,15 +255,6 @@ frappe.ui.toolbar.clear_cache = frappe.utils.throttle(function () {
|
|||
});
|
||||
}, 10000);
|
||||
|
||||
frappe.ui.toolbar.reset_announcement_widget = function () {
|
||||
frappe.db.get_single_value("Navbar Settings", "announcement_widget").then((value) => {
|
||||
if (value != localStorage.getItem("announcement_widget")) {
|
||||
localStorage.setItem("show_announcement_widget", true);
|
||||
localStorage.setItem("announcement_widget", value);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
frappe.ui.toolbar.show_about = function () {
|
||||
try {
|
||||
frappe.ui.misc.about();
|
||||
|
|
|
|||
|
|
@ -167,6 +167,7 @@ def get():
|
|||
|
||||
bootinfo["desk_theme"] = frappe.db.get_value("User", frappe.session.user, "desk_theme") or "Light"
|
||||
bootinfo["user"]["impersonated_by"] = frappe.session.data.get("impersonated_by")
|
||||
bootinfo["navbar_settings"] = frappe.get_cached_doc("Navbar Settings")
|
||||
|
||||
return bootinfo
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue