ordersprinter/webapp/utilities.js

436 lines
14 KiB
JavaScript

function initializeMainMenu(menuid) {
$.ajax({ type: "GET",
dataType: "json",
url: "php/contenthandler.php?module=admin&command=getJsonMenuItemsAndVersion",
async: false,
success : function(moduleEntries)
{
$("#versioninfo").html(moduleEntries.version + " ");
if (moduleEntries.loggedin == 1) {
$("#loggedinuser").html(" " + moduleEntries.user);
var li='<li data-role="list-divider" data-theme="b" data-role="heading">Hauptmenü</li>';
$.each(moduleEntries.menu, function (i, module) {
var name = module.name;
var link = module.link;
if ((name != "Abmelden") && (name != "Log out") && (name != "Adios")) {
li += '<li data-theme="e"><a href="' + link + '" target="_top" class="modulebutton">' + name + '</a></li>';
} else {
li += '<li data-theme="e"><a href="' + link + '" target="_top">' + name + '</a></li>';
}
});
$(menuid).empty().append(li).promise().done(function () {
$(menuid).listview("refresh");
});
$("#menuswitch").show();
} else {
$("#menuswitch").hide();
}
},
error: function( text ) {
alert( "Kommunikationsproblem zum Server bei Modulabfrage!" );
}
});
$(".modulebutton").off("click").on("click", function (e) {
var view = $(this).attr("href");
doAjax("POST","php/contenthandler.php?module=admin&command=setLastModuleOfUser",
{ view: view}, null, "Problem Benutzerdatenpflege");
});
intervalGetPrinterStatus(5);
intervalCheckConnection(2);
}
function intervalGetPrinterStatus(seconds) {
doAjax("GET","php/contenthandler.php?module=admin&command=isPrinterServerActive",null,setPrinterStatus,null,true);
var fetchTimer = setInterval(function() {
doAjax("GET","php/contenthandler.php?module=admin&command=isPrinterServerActive",null,setPrinterStatus,null,true);
}, seconds * 1000);
}
function setPrinterStatus(answer) {
if (answer.status === "OK") {
if (answer.msg === 0) {
$(".printerstatus").show();
} else {
$(".printerstatus").hide();
}
if (answer.tasksforme === 1) {
$(".tasksstatus").show();
} else {
$(".tasksstatus").hide();
}
if (answer.tsestatus === 1) {
$(".tsestatus").hide();
} else {
$(".tsestatus").show();
}
return;
}
$(".printerstatus").hide();
}
function hideMenu() {
$( "#modulepanel" ).panel( "close" );
$("#menuswitch").off("click").on("click", function (e) {
$("#menuswitch").trigger("mouseout");
e.stopImmediatePropagation();
e.preventDefault();
$( "#modulepanel" ).panel( "open" );;
});
}
// to make IE happy...
function refreshList(selector) {
if ( $(selector).hasClass('ui-listview')) {
$(selector).listview('refresh');
} else {
$(selector).trigger('create');
}
}
function doAjax(getOrPost, url, data, functionToCallIfSuccess, errorMsg, doAsync) {
if (typeof doAsync === 'undefined') {
doAsync = false;
}
$.ajax({type: getOrPost,
url: url,
dataType: "json",
data: data,
async: doAsync,
success: function (jsonContent)
{
if (functionToCallIfSuccess != null) {
functionToCallIfSuccess(jsonContent);
}
},
error: function (xhr, status, error) {
if (url != "php/debug.php") {
var debugData = {
cmd: url,
fct: functionToCallIfSuccess.name,
xhr: xhr.responseText,
errormsg: errorMsg,
status: status
};
var n = getMillis();
if (errorMsg != null) {
if ($(".connectionstatus").is(":visible")) {
alert("Kommunikation zum Server ist unterbrochen!");
} else {
var errorMsgTxt = errorMsg + error + " (" + url + ")";
alert("Kommunikationsfehler zum Server: " + errorMsgTxt + " - In der Feedbackansicht lässt sich ein Fehlerprotokoll an den Anbieter übermitteln.");
doAjax("POST", "php/debug.php?n=" + n, debugData, null, true);
}
}
}
}
});
}
function doAjaxAsync(getOrPost, url, data, functionToCallIfSuccess) {
$.ajax({type: getOrPost,
url: url,
dataType: "json",
data: data,
async: true,
success: function (jsonContent)
{
if (functionToCallIfSuccess != null) {
functionToCallIfSuccess(jsonContent);
}
},
error: function (xhr, status, error) {
if (url != "php/debug.php") {
var debugData = {
cmd: url,
fct: functionToCallIfSuccess.name,
xhr: xhr.responseText,
errormsg: errorMsg,
status: status
};
var n = getMillis();
if (errorMsg != null) {
if ($(".connectionstatus").is(":visible")) {
alert("Kommunikation zum Server ist unterbrochen!");
} else {
var errorMsgTxt = errorMsg + error + " (" + url + ")";
alert("Kommunikationsfehler zum Server: " + errorMsgTxt + " - In der Feedbackansicht lässt sich ein Fehlerprotokoll an den Anbieter übermitteln.");
doAjax("POST", "php/debug.php?n=" + n, debugData, null, true);
}
}
}
}
});
}
function doAjaxTransmitData(getOrPost,url,data,functionToCallIfSuccess,errorMsg,dataToTransmit) {
$.ajax({ type: getOrPost,
url: url,
dataType: "json",
data: data,
async: false,
success : function(jsonContent)
{
if (functionToCallIfSuccess != null) {
functionToCallIfSuccess(jsonContent,dataToTransmit);
}
},
error: function(xhr,status,error ) {
if (errorMsg != null) {
var errorMsgTxt = errorMsg + ", Status: " + status + ", Error:" + error + ", Msg: " + xhr.responseText + " (" + url + ")";
alert( "Kommunikationsfehler zum Server: " + errorMsgTxt + " - In der Feedbackansicht lässt sich ein Fehlerprotokoll an den Anbieter übermitteln.");
}
}
});
}
function doAjaxSuppressError(getOrPost,url,data,functionToCallIfSuccess,errorMsg) {
$.ajax({ type: getOrPost,
url: url,
dataType: "json",
data: data,
async: false,
success : function(jsonContent)
{
if (functionToCallIfSuccess != null) {
functionToCallIfSuccess(jsonContent);
}
},
error: function( text ) {
functionToCallIfSuccess("ERROR");
}
});
}
function doAjaxNonJsonNonCall(getOrPost,url,data) {
$.ajax({ type: getOrPost,
data : data,
url: url,
async: false,
error: function( text ) {
alert( "Kommunikationsproblem zum Server" );
}
});
}
function toHtml(text) {
if (typeof text === 'string') {
return (text.replace(/"/g, '&quot;').replace(/</g, "&lt;").replace(/>/g, "&gt;"));
} else {
return text;
}
}
function createExtraParagraph(extras,fontsize) {
if ((extras == null) || (extras == "")) {
return "";
}
var extratxt = "";
for (var j=0;j<extras.length;j++) {
if (fontsize == 0) {
extratxt += "<p>+ " + toHtml(extras[j]) + "</p>";
} else {
extratxt += "<p style='font-size:" + fontsize + "px;'>+ " + toHtml(extras[j]) + "</p>";
}
}
return extratxt;
}
function checkForLogIn() {
doAjax("GET","php/contenthandler.php?module=admin&command=isUserAlreadyLoggedIn",null,handleTestForLoggedIn,null);
}
function handleTestForLoggedIn(answer) {
if (answer != "YES") {
setTimeout(function(){document.location.href = "index.html"},250);
}
}
function isInt(value) {
if(Math.floor(value) == value && $.isNumeric(value)) {
return true;
} else {
return false;
}
}
function isFloat(n){
return Number(n) === n && n % 1 !== 0;
}
function roundtodigits(value, digits) {
value = parseFloat(value);
if (!value) return 0;
var factor = Math.pow(10,digits);
return Math.round(value * factor) / factor;
}
function getMillis() {
var d = new Date();
var n = d.getTime();
return n;
}
function intervalCheckConnection(seconds) {
checkConnection();
var fetchTimer = setInterval(function() {
checkConnection();
}, seconds * 1000);
}
function checkConnection() {
var img = new Image();
img.onerror = function () {
$(".connectionstatus").show();
}
img.onload = function () {
$(".connectionstatus").hide();
}
img.src = "img/gray.png?t=" + (+new Date);
}
function createLabelWithTextField(labelid,displayedName,defaultText) {
var text = '<div class="ui-field-contain">';
text += '<label for="' + labelid + '">' + displayedName + '</label>';
text += '<input type="text" id="' + labelid + '" value="" data-mini="true" placeholder="' + defaultText + '" style="background-color:white;color:black;" />';
text += '</div>';
return text;
}
function createLabelWithTextFieldWithContent(labelid,displayedName,defaultText,content) {
var text = '<div class="ui-field-contain">';
text += '<label for="' + labelid + '">' + displayedName + '</label>';
text += '<input type="text" id="' + labelid + '" value="' + toHtml(content) + '" data-mini="true" placeholder="' + defaultText + '" style="background-color:white;color:black;" />';
text += '</div>';
return text;
}
function createLabelWithTextFieldWithValue(labelid,displayedName,content) {
var text = '<div class="ui-field-contain">';
text += '<label for="' + labelid + '">' + displayedName + '</label>';
text += '<input type="text" id="' + labelid + '" data-mini="true" value="' + content + '" style="background-color:white;color:black;" />';
text += '</div>';
return text;
}
function createLabelWithTextArea(labelid,displayedName) {
var text = '<div class="ui-field-contain">';
text += '<label for="' + labelid + '">' + displayedName + '</label>';
text += '<textarea id="' + labelid + '" name="' + labelid + '" cols="40" rows="8" style="background-color:white;color:black;"></textarea>';
text += '</div>';
return text;
}
function createLabelWithTextAreaWithValue(labelid,displayedName,content) {
var text = '<div class="ui-field-contain">';
text += '<label for="' + labelid + '">' + displayedName + '</label>';
text += '<textarea id="' + labelid + '" name="' + labelid + '" cols="40" rows="8" style="background-color:white;color:black;">';
text += content;
text += '</textarea>';
text += '</div>';
return text;
}
function createLabelWithOption(prefix,id,aLabel,displayedName,allValues,theValue) {
var labelid = id;
if ((prefix != "") || (aLabel != "")) {
labelid = prefix + aLabel + "_" + id;
}
var text = '<div class="ui-field-contain">';
text += '<label for="' + labelid + '">' + displayedName + '</label>';
text += '<select name="' + labelid + '" id="' + labelid + '" data-theme="f">';
for (var i=0;i<allValues.length;i++) {
var aValue = allValues[i];
if (aValue.id == theValue) {
text += '<option value="' + aValue.id + '" selected>' + aValue.text + '</option>';
} else {
text += '<option value="' + aValue.id + '" >' + aValue.text + '</option>';
}
}
text += '</select></div>';
return text;
}
function pad(num, size) {
var s = "000000000" + num;
return s.substr(s.length-size);
}
function getUrlGetParameter(urlsuffix,paramMarker) {
var tid = '';
var urlParts = urlsuffix.split(/&|\?/);
for (var i=0;i<urlParts.length;i++) {
var aPart = urlParts[i];
if (aPart.indexOf(paramMarker) == 0) {
var parts = aPart.split("=");
tid = parts[1];
}
}
return tid;
}
var g_units_arr = [
{ text: "Stück", value: 0, id: "piece", longtext: "Stück"},
{ text: "Eingabe", value: 1, id: "input", longtext: "Preiseingabe"},
{ text: "kg", value: 2, id: "kg", longtext: "Gewicht (kg)"},
{ text: "gr", value: 3, id: "gr", longtext: "Gewicht (gr)"},
{ text: "mg", value: 4, id: "mg", longtext: "Gewicht (mg)"},
{ text: "l", value: 5, id: "l", longtext: "Volumen (l)"},
{ text: "ml", value: 6, id: "ml", longtext: "Volumen (ml)"},
{ text: "m", value: 7, id: "m", longtext: "Länge (m)"},
{ text: "EinzweckgutscheinKauf", value: 8, id: "EG", longtext: "EinzweckgutscheinKauf"},
{ text: "EinzweckgutscheinEinl", value: 9, id: "MG", longtext: "EinzweckgutscheinEinl"}
];
var taxesDefs = [
{ key: 1, value: null, name: "Allgemeiner Steuersatz (§ 12 Abs. 1 UStG)"},
{ key: 2, value: null, name: "Ermäßigter Steuersatz (§ 12 Abs. 2 UStG)"},
// { key: 3, value: 10.70, name: "Durchschnittsatz (§ 24 Abs. 1 Nr. 3 UStG) übrige Fälle"},
// { key: 4, value: 5.50, name: "Durchschnittsatz (§ 24 Abs. 1 Nr. 1 UStG)"},
{ key: 5, value: 0.0, name: "Nicht Steuerbar"},
// { key: 6, value: 0.0, name: "Umsatzsteuerfrei"},
// { key: 7, value: 0.0, name: "UmsatzsteuerNichtErmittelbar"},
{ key: 11, value: 19.0, name: "Historischer allgemeiner Steuersatz (§ 12 Abs. 1 UStG)"},
{ key: 12, value: 7.0, name: "Historischer ermäßigter Steuersatz (§ 12 Abs. 2 UStG)"},
{ key: 21, value: 16.0, name: "Historischer allgemeiner Steuersatz (§ 12 Abs. 1 UStG)"},
{ key: 22, value: 5.0, name: "Historischer ermäßigter Steuersatz (§ 12 Abs. 2 UStG)"}
];
function isSelected(currentIndex,searchIndex) {
if (currentIndex == searchIndex) {
return " selected";
} else {
return "";
}
}
function createPreferMobileThemePart(prefervalue,label,labeltxt,l) {
var PREF_THEME_COLORFUL = ["Active Colors","Active Colors","Active Colors"];
var PREF_THEME_PALE = ["Power Pale","Power Pale","Power Pale"];
var PREF_THEME_DARK_SOUL = ["Dark Soul","Dark Soul","Dark Soul"];
var PREF_THEME_STYLISH = ["Stylish","Stylish","Stylish"];
var PREF_THEME_BLUETHUNDER = ["Blue Thunder","Blue Thunder","Blue Thunder"];
var PREF_THEME_COOL = ["Cool","Cool","Cool"];
var PREF_THEME_PINKLADY = ["Pink Lady","Pink Lady","Pink Lady"];
var PREF_THEME_GREENFIELD = ["Green Field","Green Field","Green Field"];
var html = '<div class="ui-field-contain">';
html += '<label for="' + label + '"><span id="' + label + 'txt">' + labeltxt + '</span>:</label>';
html += '<select name="' + label + '" id="' + label + '" data-theme="e">';
html += '<option value="0"' + isSelected(0,prefervalue) + '>' + PREF_THEME_COLORFUL[l] + '</option>';
html += '<option value="1"' + isSelected(1,prefervalue) + '>' + PREF_THEME_PALE[l] + '</option>';
html += '<option value="2"' + isSelected(2,prefervalue) + '>' + PREF_THEME_DARK_SOUL[l] + '</option>';
html += '<option value="3"' + isSelected(3,prefervalue) + '>' + PREF_THEME_STYLISH[l] + '</option>';
html += '<option value="4"' + isSelected(4,prefervalue) + '>' + PREF_THEME_BLUETHUNDER[l] + '</option>';
html += '<option value="5"' + isSelected(5,prefervalue) + '>' + PREF_THEME_COOL[l] + '</option>';
html += '<option value="6"' + isSelected(6,prefervalue) + '>' + PREF_THEME_PINKLADY[l] + '</option>';
html += '<option value="7"' + isSelected(7,prefervalue) + '>' + PREF_THEME_GREENFIELD[l] + '</option>';
html += '<option value="8"' + isSelected(8,prefervalue) + '>Bright Energy</option>';
html += '</select></div>';
return html;
}