// SETUP if(typeof Classlife == 'undefined') Classlife ={}; Classlife.ajaxHandeler = {}; Classlife.ajaxHandeler.download = (data,form) =>{ body = data.body; type = data.type?data.type:'text/plain'; charset = data.charset?data.charset:'utf-8'; filename = data.filename?data.filename:'download.txt'; var element = document.createElement('a'); element.setAttribute('href', `data:${type};charset=${charset},${body}`); element.setAttribute('download', filename); element.style.display = 'none'; document.body.appendChild(element); element.click(); document.body.removeChild(element); form.find('#loadingmore').remove(); $(form).parents('.modal').modal('hide'); }; Classlife.ajaxHandeler.downloadUrl = (data,form) =>{ const url = data.url; const filename = data.filename; var element = document.createElement('a'); element.setAttribute('href', url); element.setAttribute('target', '_blank'); element.setAttribute('download', filename); element.style.display = 'none'; document.body.appendChild(element); element.click(); document.body.removeChild(element); form.find('#loadingmore').remove(); $(form).parents('.modal').modal('hide'); }; Classlife.ajaxHandeler.plainAlert = (data,form) =>{ bootbox.alert({ message: data.body, buttons: {ok:{className:'hidden'}}, className: 'bootbox-no-scroll' }); }; Classlife.ajaxHandeler.modalNewEntity = (data) => { $("button.close").trigger('click'); for (const selector in data.replace) { $(selector).replaceWith(data.replace[selector]); }; };