//Wrapper JS (function (webapi, $) { function safeAjax(ajaxOptions) { var deferredAjax = $.Deferred(); shell.getTokenDeferred().done(function (token) { // add headers for AJAX if (!ajaxOptions.headers) { $.extend(ajaxOptions, { headers: { "__RequestVerificationToken": token } }); } else { ajaxOptions.headers["__RequestVerificationToken"] = token; } $.ajax(ajaxOptions) .done(function (data, textStatus, jqXHR) { validateLoginSession(data, textStatus, jqXHR, deferredAjax.resolve); }).fail(deferredAjax.reject); //AJAX }).fail(function () { deferredAjax.rejectWith(this, arguments); // on token failure pass the token AJAX and args }); return deferredAjax.promise(); } webapi.safeAjax = safeAjax; })(window.webapi = window.webapi || {}, jQuery); (function (dgt, $) { const _requireFieldError = { 'de-DE': 'ist ein Pflichtfeld.', 'en-US': 'is a required field.', }; const _processingMessage = { 'de-DE': 'Wird bearbeitet...', 'en-US': 'Processing...', }; function asCssClassSelector(className) { return `.${className}`; } function stripSelectorPrefix(selector) { return selector.replaceAll('#', '').replaceAll('.', ''); } function setDateTimeFieldReadOnly($field, readOnly) { if (readOnly) { $field.siblings("div.datetimepicker").find("input, .input-group-addon").attr("readonly", true); $field.siblings("div.datetimepicker").find("input, .input-group-addon").css("cursor", "not-allowed"); $field.siblings("div.datetimepicker").find("input, .input-group-addon").on("mousedown", function (e) { e.preventDefault(); return false; }); } else { $field.siblings("div.datetimepicker").find("input, .input-group-addon").attr("readonly", false); $field.siblings("div.datetimepicker").find("input, .input-group-addon").css("cursor", "default"); $field.siblings("div.datetimepicker").find("input, .input-group-addon").off("mousedown"); } }; function setLookupFieldReadOnly($field, readOnly) { if (readOnly) { $field.siblings("div.input-group-btn").find("button").prop("disabled", true); $field.siblings("div.input-group-btn").hide(); $field.parent().css("display", "block"); } else { $field.siblings("div.input-group-btn").find("button").prop("disabled", false); $field.siblings("div.input-group-btn").show(); } }; function setCheckboxFieldReadOnly($field, readOnly) { if (readOnly) { $field.prop("disabled", true); } else { $field.prop("disabled", false); } }; function setRadioFieldReadOnly($field, readOnly) { if (readOnly) { $field.find("input[type='radio']").prop("disabled", true); } else { $field.find("input[type='radio']").prop("disabled", false); } }; function setDropdownFieldReadOnly($field, readOnly) { if (readOnly) { $field.attr("readonly", true); $field.css("pointer-events", "none"); } else { $field.attr("readonly", false); $field.css("pointer-events", "auto"); } }; function formatCurrencyValue(currencyValue, currencyCode, languageCode) { const options = { style: 'currency', currency: currencyCode, currencyDisplay: 'symbol' }; if (languageCode) { options.localeMatcher = 'lookup'; options.locale = languageCode; } const formatter = new Intl.NumberFormat(languageCode, options); return formatter.format(currencyValue); } function formatDecimalValue(decimalValue, languageCode, fractionDigits) { const options = { style: 'decimal', minimumFractionDigits: fractionDigits, maximumFractionDigits: fractionDigits }; if (languageCode) { options.localeMatcher = 'lookup'; options.locale = languageCode; } const formatter = new Intl.NumberFormat(languageCode, options); return formatter.format(decimalValue); } dgt.addCurrencySymbol = function($field) { const symbolSpan = $field.siblings('.input-group-addon'); if(!symbolSpan.length) { $("") .addClass("input-group-addon") .text("€") .insertBefore($field); $field.parent().addClass("input-group"); } } dgt.parseCurrencyToNumber = function(currencyString) { if (!currencyString) return 0; const curReg = /\D*(\d+|\d.*?\d)(?:\D+(\d{2}))?\D*$/; const parts = curReg.exec(currencyString); const number = parseFloat(parts[1].replace(/\D/,'')+'.'+(parts[2]?parts[2]:'00')); return number.toFixed(2); } dgt.parseLocaleDecimalToNumber = function (numberString, languageCode) { if (!numberString) return 0; const thousandSeparator = Intl.NumberFormat(languageCode).format(11111).replace(/\p{Number}/gu, ''); const decimalSeparator = Intl.NumberFormat(languageCode).format(1.1).replace(/\p{Number}/gu, ''); return parseFloat(numberString .replace(new RegExp('\\' + thousandSeparator, 'g'), '') .replace(new RegExp('\\' + decimalSeparator), '.') ); } dgt.createTabs = function () { var tabs = $("div[class='tab clearfix']").toArray(); $("div[class='tab clearfix']").parent().addClass("tab-content"); $("div[class='tab clearfix']").each(function (index) { if (index == 0) { $(this).addClass("tab-pane fade in active"); } else { $(this).addClass("tab-pane fade"); } }); var htmlMenu = "