fix: run log notifier from client side
This commit is contained in:
parent
07e4885775
commit
697a9e0cf2
3 changed files with 37 additions and 19 deletions
|
|
@ -30,23 +30,22 @@ def run_log_clean_up():
|
|||
doc = frappe.get_doc("Log Settings")
|
||||
doc.clear_logs()
|
||||
|
||||
def show_error_log_reminder():
|
||||
users_to_notify = get_users_to_notify()
|
||||
@frappe.whitelist()
|
||||
def has_unseen_error_log(user):
|
||||
|
||||
if frappe.db.count("Error Log", filters={'seen': 0}) > 0:
|
||||
for user in users_to_notify:
|
||||
frappe.publish_realtime('msgprint', {
|
||||
"message": _("You have unseen {0}").format('<a href="/desk#List/Error%20Log/List"> Error Log </a>'),
|
||||
"alert":1,
|
||||
"indicator" :"red"
|
||||
}, user=user)
|
||||
def _get_response(show_alert=True):
|
||||
return {
|
||||
'show_alert': True,
|
||||
'message': _("You have unseen {0}").format('<a href="/desk#List/Error%20Log/List"> Error Logs </a>')
|
||||
}
|
||||
|
||||
def get_users_to_notify():
|
||||
from frappe.email import get_system_managers
|
||||
log_settings = frappe.get_doc('Log Settings')
|
||||
|
||||
if log_settings.users_to_notify:
|
||||
return [u.user for u in log_settings.users_to_notify]
|
||||
else:
|
||||
return get_system_managers()
|
||||
if frappe.db.sql_list("select name from `tabError Log` where seen = 0 limit 1"):
|
||||
log_settings = frappe.get_cached_doc('Log Settings')
|
||||
|
||||
if log_settings.users_to_notify:
|
||||
if user in [u.user for u in log_settings.users_to_notify]:
|
||||
return _get_response()
|
||||
else:
|
||||
return _get_response(show_alert=False)
|
||||
else:
|
||||
return _get_response()
|
||||
|
|
@ -183,8 +183,7 @@ scheduler_events = {
|
|||
"0/15 * * * *": [
|
||||
"frappe.oauth.delete_oauth2_data",
|
||||
"frappe.website.doctype.web_page.web_page.check_publish_status",
|
||||
"frappe.twofactor.delete_all_barcodes_for_users",
|
||||
"frappe.core.doctype.log_settings.log_settings.show_error_log_reminder"
|
||||
"frappe.twofactor.delete_all_barcodes_for_users"
|
||||
]
|
||||
},
|
||||
"all": [
|
||||
|
|
|
|||
|
|
@ -139,6 +139,26 @@ frappe.Application = Class.extend({
|
|||
}
|
||||
});
|
||||
}, 300000); // check every 5 minutes
|
||||
|
||||
if(frappe.user.has_role("System Manager")){
|
||||
setInterval(function() {
|
||||
frappe.call({
|
||||
method: 'frappe.core.doctype.log_settings.log_settings.has_unseen_error_log',
|
||||
args: {
|
||||
user: frappe.session.user
|
||||
},
|
||||
callback: function(r) {
|
||||
console.log(r);
|
||||
if(r.message.show_alert){
|
||||
frappe.show_alert({
|
||||
indicator: 'red',
|
||||
message: r.message.message
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}, 600000); // check every 10 minutes
|
||||
}
|
||||
}
|
||||
|
||||
this.fetch_tags();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue