Files
DredgePos/wwwroot/scripts/js/dredgepos.core.js
2021-10-23 19:59:20 +10:00

96 lines
2.9 KiB
JavaScript

let Application = {
keyboard: null,
mode: "default",
languageVars: {}
};
/** Parses a language variable. */
let lang = (key, replacements) => {
let finalValue = Application.languageVars[key];
if (!replacements)
return finalValue;
if (typeof replacements === 'string')
replacements = [replacements];
replacements.forEach((replacement, index) => {
let correctIndex = index + 1;
finalValue = finalValue.replace(`[${correctIndex}]`, replacement);
});
return finalValue;
};
/** Check if a variable is defined */
let defined = (variable) => {
return typeof variable !== 'undefined';
};
/** Call an Ajax function asynchronously */
let ajax = (endpoint, data, method = 'POST', successFunction, errorFunction, beforeFunction) => {
data = (data == null) ? data : JSON.stringify(data);
return $.ajax({
url: endpoint,
method: method,
data: data,
success: (response) => {
if (successFunction)
successFunction(JSON.parse(response.data));
},
error: errorFunction,
beforeSend: beforeFunction
});
};
/*
For the flow of the app, synchronous is commonly preferred
though trying to keep it's usage as low as possible.
*/
let ajaxSync = (endpoint, data, method = 'POST') => {
let response = JSON.parse($.ajax({
url: endpoint,
method: method,
data: JSON.stringify(data),
async: false,
}).responseText);
if (response.data) {
response.data = JSON.parse(response.data);
return response.data;
}
return response;
};
/* Redirect to a specific URL */
let redirect = (url) => {
window.location.href = url;
};
let setLanguageVariables = () => {
Application.languageVars = ajaxSync('/ajax/languageVars', null, 'GET');
};
// @ts-ignore
let alert = (message, title = 'Message') => {
let alertBox = $('#alert');
alertBox.css('display', 'flex');
alertBox.data('value', '');
$('#alertHeading').text(title);
$('#alertMessage').text(message);
$('#alertOk').css('display', 'flex');
$('#alertYes').css('display', 'none');
$('#alertNo').css('display', 'none');
};
// @ts-ignore
let confirm = (message, data, title = 'Confirm', submitFunction = (data) => { hideAlerts(); }) => {
let alert = $('#alert');
$(document).on('click', '#alert #alertYes', () => {
submitFunction(data);
hideAlerts();
$(document).off('click', '#alert #alertYes');
});
alert.css('display', 'flex');
$('#alertHeading').html(title);
$('#alertMessage').html(message);
$('#alertOk').css('display', 'none');
$('#alertYes').css('display', 'flex');
$('#alertNo').css('display', 'flex');
};
let hideAlerts = () => {
$('#alert').hide();
};
$(() => {
let doc = $(document);
setLanguageVariables();
doc.on('click', '#alertNo, #alertOk', () => $('#alert').hide());
});
//# sourceMappingURL=dredgepos.core.js.map