1
0
mirror of https://github.com/krateng/maloja.git synced 2023-08-10 21:12:55 +03:00

Added callback notifications to edit functions

This commit is contained in:
krateng 2022-04-17 20:18:44 +02:00
parent 45ea7499b2
commit 6e8cbe6a57
2 changed files with 51 additions and 7 deletions

View File

@ -16,8 +16,17 @@ function toggleDeleteConfirm(element) {
} }
function deleteScrobble(id,element) { function deleteScrobble(id,element) {
var callback_func = function(req){
if (req.status == 200) {
element.parentElement.parentElement.parentElement.classList.add('removed'); element.parentElement.parentElement.parentElement.classList.add('removed');
neo.xhttpreq("/apis/mlj_1/delete_scrobble",data={'timestamp':id},method="POST",callback=(()=>null),json=true); notifyCallback(req);
}
else {
notifyCallback(req);
}
};
neo.xhttpreq("/apis/mlj_1/delete_scrobble",data={'timestamp':id},method="POST",callback=callback_func,json=true);
} }
@ -77,11 +86,20 @@ function doneEditing() {
var payload = {'id':entity_id,'title':newname} var payload = {'id':entity_id,'title':newname}
} }
callback_func = function(req){
if (req.status == 200) {
window.location = "?" + searchParams.toString();
}
else {
notifyCallback(req);
}
};
neo.xhttpreq( neo.xhttpreq(
endpoint, endpoint,
data=payload, data=payload,
method="POST", method="POST",
callback=(()=>window.location = "?" + searchParams.toString()), callback=callback_func,
json=true json=true
); );
} }
@ -97,6 +115,7 @@ function markForMerge() {
current_stored.push(entity_id); current_stored.push(entity_id);
current_stored = [...new Set(current_stored)]; current_stored = [...new Set(current_stored)];
lcst.setItem(key,current_stored); //this already formats it correctly lcst.setItem(key,current_stored); //this already formats it correctly
notify("Success","Marked " + entity_name + " for merge, currently " + current_stored.length + " marked!")
} }
function merge() { function merge() {
@ -105,6 +124,15 @@ function merge() {
var current_stored = lcst.getItem(key).split(","); var current_stored = lcst.getItem(key).split(",");
current_stored = current_stored.filter((x)=>x).map((x)=>parseInt(x)); current_stored = current_stored.filter((x)=>x).map((x)=>parseInt(x));
callback_func = function(req){
if (req.status == 200) {
window.location.reload();
}
else {
notifyCallback(req);
}
};
neo.xhttpreq( neo.xhttpreq(
"/apis/mlj_1/merge_" + entity_type + "s", "/apis/mlj_1/merge_" + entity_type + "s",
data={ data={
@ -112,7 +140,7 @@ function merge() {
'target_id':entity_id 'target_id':entity_id
}, },
method="POST", method="POST",
callback=(()=>window.location.reload()), callback=callback_func,
json=true json=true
); );

View File

@ -6,7 +6,7 @@ const colors = {
} }
const notification_template = info => ` const notification_template = info => `
<div class="notification" style="background-color:${colors[type]};"> <div class="notification" style="background-color:${colors[info.notification_type]};">
<b>${info.title}</b><br/> <b>${info.title}</b><br/>
<span>${info.body}</span> <span>${info.body}</span>
@ -20,11 +20,11 @@ function htmlToElement(html) {
return template.content.firstChild; return template.content.firstChild;
} }
function notify(title,msg,type='info',reload=false) { function notify(title,msg,notification_type='info',reload=false) {
info = { info = {
'title':title, 'title':title,
'body':msg, 'body':msg,
'type':type 'notification_type':notification_type
} }
var element = htmlToElement(notification_template(info)); var element = htmlToElement(notification_template(info));
@ -33,3 +33,19 @@ function notify(title,msg,type='info',reload=false) {
setTimeout(function(e){e.remove();},7000,element); setTimeout(function(e){e.remove();},7000,element);
} }
function notifyCallback(request) {
var body = request.response;
var status = request.status;
if (status == 200) {
var notification_type = 'info';
}
else {
var notification_type = 'warning';
}
notify(body.status,body.desc || "",notification_type);
}