// Contains a list of globally available functions and variables // Redirects to the maintenance page function RedirectToMaintenancePage() { location.assign("/Maintenance"); } // Shows the message-offcanvas element function ShowMessage(message, errorMessage) { let offcanvas = $("#message-offcanvas"); let bsOffcanvas = new bootstrap.Offcanvas(offcanvas) $("#message").html(message); $("#errorMessage").html(errorMessage); bsOffcanvas.show(); setTimeout(function () { bsOffcanvas.hide(); }, 5000); } // Default Response Handlers const HandleFail_Default = (response) => { $('.btn-loading:disabled').prop('disabled', false); if (response.responseJSON) { toastr.error(response.responseJSON.Message); } else { console.log(response); } }; const HandleShowModal = (response) => { ShowModal(response); }; // Modal stuff function ShowModal(content) { let Modal = new bootstrap.Modal(document.getElementById("modal")); $('.modal .modal-content').html(content); Modal.show(); } function HideModal() { $('.modal').modal('hide'); $('.modal-backdrop').remove(); } // Validation Stuff function reloadFormValidator($form) { $form.removeData('validator'); $form.removeData('unobtrusiveValidation'); $.validator.unobtrusive.parse($form); } // Downloading // NOTE: Only works on non-pictures & Pdfs. IFRAME triggers download automatically on things it can't preview properly. function downloadPage(url) { $('#iframe-TEMP').remove(); const iframe = document.createElement('iframe'); iframe.id = 'iframe-TEMP' iframe.style.display = 'none'; iframe.src = url; document.body.appendChild(iframe); } // Printing function printPage(url) { $('#iframe-TEMP').remove(); const iframe = document.createElement('iframe'); iframe.onload = function () { iframe.contentWindow.focus(); iframe.contentWindow.print(); }; iframe.id = 'iframe-TEMP' iframe.style.display = 'none'; iframe.src = url; document.body.appendChild(iframe); } // Functions in this block run immetiately on page load. Always. $(document).ready(function () { }); const $modal = $('#modal'); function LoadModal(url, data = null) { $.get(url, data) .done((response) => { ShowModal(response); }).fail((response) => { toastr.error(response.responseJSON.Message); }); } function ShowModal(content) { $modal.find('.modal-content').html(content); $modal.modal('show'); } function HideModal() { $modal.modal('hide'); $('.modal-backdrop').remove(); } $modal.on('hidden.bs.modal', function () { $modal.find('.modal-content').html(''); $modal.find('.modal-dialog').removeClass('modal-sm'); $modal.find('.modal-dialog').removeClass('modal-lg'); $modal.find('.modal-dialog').removeClass('modal-xl'); $modal.find('.modal-dialog').removeClass('modal-fullscreen'); }); $modal.on('submit', 'form:not(.no-submit)', function (event) { event.preventDefault(); let $form = $(event.target); $form.find(".btn-loading:submit").prop('disabled', true); $form.removeData('validator'); $form.removeData('unobtrusiveValidation'); $.validator.unobtrusive.parse($form); if ($form.valid()) { $.ajax({ type: $form.attr('method'), url: $form.attr('action'), data: new FormData($form[0]), processData: false, contentType: false }).done(function (Response) { if (Response.Data.ReloadPage) { location.reload(); } else { HideModal(); if (Response.Data.TableIdentifier != null) { ReloadDataTable(Response.Data.TableIdentifier, null, Response.Data.KeepPaging); } else { ReloadDataTables(null, Response.Data.KeepPaging); } } }).fail(function (Response) { if (Response.Message != undefined) { toastr.error(Response.Message); } else { toastr.error(Response.responseJSON.Message); } $form.find(".btn-loading:submit").prop('disabled', false); }); } else { $form.find(".btn-loading:submit").prop('disabled', false); } }); $(document).ready(function () { $(`.sidebar a[href='${window.location.pathname}']`).addClass("active"); $(`.sidebar a[href='${window.location.pathname}']`).removeAttr("href"); let collapsed_head = $('.sidebar a.active').parents('.sidebar-nav-group').children('a.collapsed'); let collapsed_body = $('.sidebar a.active').parents('.sidebar-nav-group').children('ul.collapse'); collapsed_head.removeClass('collapsed'); collapsed_head.attr("aria-expanded", "true"); collapsed_body.addClass('show'); }); $('#select-website').change(function () { let url = $(this).val(); if (url !== '') { location.href = url; } }); $(window).on('unload', function () { $('#select-website').val(''); }); /* * Note that this is toastr v2.1.3, the "latest" version in url has no more maintenance, * please go to https://cdnjs.com/libraries/toastr.js and pick a certain version you want to use, * make sure you copy the url from the website since the url may change between versions. * */ !function(e){e(["jquery"],function(e){return function(){function t(e,t,n){return g({type:O.error,iconClass:m().iconClasses.error,message:e,optionsOverride:n,title:t})}function n(t,n){return t||(t=m()),v=e("#"+t.containerId),v.length?v:(n&&(v=d(t)),v)}function o(e,t,n){return g({type:O.info,iconClass:m().iconClasses.info,message:e,optionsOverride:n,title:t})}function s(e){C=e}function i(e,t,n){return g({type:O.success,iconClass:m().iconClasses.success,message:e,optionsOverride:n,title:t})}function a(e,t,n){return g({type:O.warning,iconClass:m().iconClasses.warning,message:e,optionsOverride:n,title:t})}function r(e,t){var o=m();v||n(o),u(e,o,t)||l(o)}function c(t){var o=m();return v||n(o),t&&0===e(":focus",t).length?void h(t):void(v.children().length&&v.remove())}function l(t){for(var n=v.children(),o=n.length-1;o>=0;o--)u(e(n[o]),t)}function u(t,n,o){var s=!(!o||!o.force)&&o.force;return!(!t||!s&&0!==e(":focus",t).length)&&(t[n.hideMethod]({duration:n.hideDuration,easing:n.hideEasing,complete:function(){h(t)}}),!0)}function d(t){return v=e("
").attr("id",t.containerId).addClass(t.positionClass),v.appendTo(e(t.target)),v}function p(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,closeMethod:!1,closeDuration:!1,closeEasing:!1,closeOnHover:!0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",escapeHtml:!1,target:"body",closeHtml:'',closeClass:"toast-close-button",newestOnTop:!0,preventDuplicates:!1,progressBar:!1,progressClass:"toast-progress",rtl:!1}}function f(e){C&&C(e)}function g(t){function o(e){return null==e&&(e=""),e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function s(){c(),u(),d(),p(),g(),C(),l(),i()}function i(){var e="";switch(t.iconClass){case"toast-success":case"toast-info":e="polite";break;default:e="assertive"}I.attr("aria-live",e)}function a(){E.closeOnHover&&I.hover(H,D),!E.onclick&&E.tapToDismiss&&I.click(b),E.closeButton&&j&&j.click(function(e){e.stopPropagation?e.stopPropagation():void 0!==e.cancelBubble&&e.cancelBubble!==!0&&(e.cancelBubble=!0),E.onCloseClick&&E.onCloseClick(e),b(!0)}),E.onclick&&I.click(function(e){E.onclick(e),b()})}function r(){I.hide(),I[E.showMethod]({duration:E.showDuration,easing:E.showEasing,complete:E.onShown}),E.timeOut>0&&(k=setTimeout(b,E.timeOut),F.maxHideTime=parseFloat(E.timeOut),F.hideEta=(new Date).getTime()+F.maxHideTime,E.progressBar&&(F.intervalId=setInterval(x,10)))}function c(){t.iconClass&&I.addClass(E.toastClass).addClass(y)}function l(){E.newestOnTop?v.prepend(I):v.append(I)}function u(){if(t.title){var e=t.title;E.escapeHtml&&(e=o(t.title)),M.append(e).addClass(E.titleClass),I.append(M)}}function d(){if(t.message){var e=t.message;E.escapeHtml&&(e=o(t.message)),B.append(e).addClass(E.messageClass),I.append(B)}}function p(){E.closeButton&&(j.addClass(E.closeClass).attr("role","button"),I.prepend(j))}function g(){E.progressBar&&(q.addClass(E.progressClass),I.prepend(q))}function C(){E.rtl&&I.addClass("rtl")}function O(e,t){if(e.preventDuplicates){if(t.message===w)return!0;w=t.message}return!1}function b(t){var n=t&&E.closeMethod!==!1?E.closeMethod:E.hideMethod,o=t&&E.closeDuration!==!1?E.closeDuration:E.hideDuration,s=t&&E.closeEasing!==!1?E.closeEasing:E.hideEasing;if(!e(":focus",I).length||t)return clearTimeout(F.intervalId),I[n]({duration:o,easing:s,complete:function(){h(I),clearTimeout(k),E.onHidden&&"hidden"!==P.state&&E.onHidden(),P.state="hidden",P.endTime=new Date,f(P)}})}function D(){(E.timeOut>0||E.extendedTimeOut>0)&&(k=setTimeout(b,E.extendedTimeOut),F.maxHideTime=parseFloat(E.extendedTimeOut),F.hideEta=(new Date).getTime()+F.maxHideTime)}function H(){clearTimeout(k),F.hideEta=0,I.stop(!0,!0)[E.showMethod]({duration:E.showDuration,easing:E.showEasing})}function x(){var e=(F.hideEta-(new Date).getTime())/F.maxHideTime*100;q.width(e+"%")}var E=m(),y=t.iconClass||E.iconClass;if("undefined"!=typeof t.optionsOverride&&(E=e.extend(E,t.optionsOverride),y=t.optionsOverride.iconClass||y),!O(E,t)){T++,v=n(E,!0);var k=null,I=e(""),M=e(""),B=e(""),q=e(""),j=e(E.closeHtml),F={intervalId:null,hideEta:null,maxHideTime:null},P={toastId:T,state:"visible",startTime:new Date,options:E,map:t};return s(),r(),a(),f(P),E.debug&&console&&console.log(P),I}}function m(){return e.extend({},p(),b.options)}function h(e){v||(v=n()),e.is(":visible")||(e.remove(),e=null,0===v.children().length&&(v.remove(),w=void 0))}var v,C,w,T=0,O={error:"error",info:"info",success:"success",warning:"warning"},b={clear:r,remove:c,error:t,getContainer:n,info:o,options:{},subscribe:s,success:i,version:"2.1.3",warning:a};return b}()})}("function"==typeof define&&define.amd?define:function(e,t){"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):window.toastr=t(window.jQuery)}); //# sourceMappingURL=toastr.js.map // Functions related to copying to clipboard function unsecureCopy(text) { const textArea = document.createElement('textarea'); textArea.value = text; document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { document.execCommand('copy'); document.body.removeChild(textArea); return Promise.resolve(); } catch { document.body.removeChild(textArea); return Promise.reject(); } } function attemptCopy(text) { if (navigator.clipboard) { return navigator.clipboard.writeText(text); } else if (window.clipboardData && window.clipboardData.setData) { window.clipboardData.setData('Text', text); return Promise.resolve(); } else { return unsecureCopy(text); } } function CopyToClipboard(text) { attemptCopy(text) .then(() => toastr.success("Copied: " + text)) .catch(() => toastr.error("Error while copying: " + text)) }