to only have one read state updater js codeblock
This commit is contained in:
Matthias 2021-11-30 17:11:33 +01:00
parent 93f9fe9684
commit d34aa04c7d
No known key found for this signature in database
GPG Key ID: F50EF5741D33E076
2 changed files with 32 additions and 31 deletions

View File

@ -216,8 +216,18 @@ function openNotificationPanel() {
); );
$(center_ref).on('click', '.notification-read', function() { $(center_ref).on('click', '.notification-read', function() {
caller = $(this); updateNotificationReadState($(this), true);
var url = `/api/notifications/${caller.attr('pk')}/${caller.attr('target')}/`; });
}
function closeNotificationPanel() {
$('#notification-center').html(`<p class='text-muted'>{% trans "Notifications will load here" %}</p>`);
}
function updateNotificationReadState(btn, panel_caller=false) {
var url = `/api/notifications/${btn.attr('pk')}/${btn.attr('target')}/`;
inventreePut(url, {}, { inventreePut(url, {}, {
method: 'POST', method: 'POST',
@ -226,13 +236,21 @@ function openNotificationPanel() {
if (window.updateNotifications) { if (window.updateNotifications) {
window.updateNotifications(); window.updateNotifications();
} }
caller.parent().parent().remove()
// update current notification count
var count = parseInt($("#notification-counter").html());
if (btn.attr('target') == 'read') {
count = count - 1;
} else {
count = count + 1;
}
// update notification indicator now
updateNotificationIndicator(count);
// remove notification if in panel
if (panel_caller) {
btn.parent().parent().remove()
}
} }
}); });
}); };
}
function closeNotificationPanel() {
$('#notification-center').html(`<p class='text-muted'>{% trans "Notifications will load here" %}</p>`);
}

View File

@ -98,24 +98,7 @@ function loadNotificationTable(table, options={}) {
}); });
$(table).on('click', '.notification-read', function() { $(table).on('click', '.notification-read', function() {
var url = `/api/notifications/${$(this).attr('pk')}/${$(this).attr('target')}/`; updateNotificationReadState($(this));
inventreePut(url, {}, {
method: 'POST',
success: function() {
updateNotificationTables();
// update current notification count
var count = parseInt($("#notification-counter").html());
if ($(this).attr('target') == 'read') {
count = count - 1;
} else {
count = count + 1;
}
// update notification indicator now
updateNotificationIndicator(count);
}
});
}); });
} }