ordersprinter/webapp/index.html

317 lines
9.3 KiB
HTML

<html>
<head>
<head>
<title>OrderSprinter Startseite</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="author" content="Stefan Pichel">
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.1.12">
<link rel="stylesheet" type="text/css" href="css/numfield.css?v=1.1.12">
<link rel="stylesheet" href="php/3rdparty/orderstyle/orderstyle.min.css" />
<link rel="stylesheet" href="php/3rdparty/orderstyle/jquery.mobile.icons.min.css" />
<link rel="stylesheet" href="php/3rdparty/jquery.mobile-1.4.0.min.css" type="text/css" />
<script src="php/3rdparty/jquery-2.0.3.min.js"></script>
<script src="php/3rdparty/jquery.mobile-1.4.0.min.js"></script>
<script src="utilities.js"></script>
</head>
<body>
<script>
var I_TIMEDIFF_NO_ADMIN = ["Zeit am Server und am Endgerät unterscheiden sich. Bitte als Admin einloggen und abgleichen!",
"Time of server and end device differ. Please log in as admin and synchronize times!",
"Tiempo en el servidor y su maquina no son iguales. Log in como administrador y corregir el tiempo!"];
function fillUserList(userinfo) {
var text = '<div class="ui-field-contain">';
text += '<select name="userlistselection" id="userlistselection" data-theme="f">';
$.each(userinfo, function (i, aUser) {
var username = aUser.username;
var userid = aUser.id;
text += '<option value=' + userid + '>' + username + '</option>';
});
text += '</select>';
$("#userlist").html(text);
$("#passwordfield").val("");
$("#loginmask").trigger("create");
}
function askAndFillUserList() {
doAjax("GET","php/contenthandler.php?module=admin&command=getUserList",null,fillUserList,"no user data received");
}
function showLoggedInView(jsonContent) {
if (jsonContent == "YES") {
// no login mask!
$("#loginmask").hide();
$("#logoutarea").show();
} else {
// user needs to log in!
$("#loginmask").show();
$("#logoutarea").hide();
}
}
function isUserAlreadyLoggedIn() {
doAjax("POST","php/contenthandler.php?module=admin&command=isUserAlreadyLoggedIn",null,showLoggedInView,"login status unclear");
}
function goToView(lastPageOfUser) {
window.location.href = lastPageOfUser;
}
function tryAuthenticate(userid,password) {
var date = new Date();
var data = {
userid: userid,
password: password,
day: date.getDay(),
month: date.getMonth(),
year: date.getFullYear(),
minute: date.getMinutes(),
hour: date.getHours(),
time: parseInt(date.getTime() / 1000)
};
doAjax("POST", "php/contenthandler.php?module=admin&command=tryAuthenticate", data, displayLoginOrLogoutMask, "Loginstatus" );
}
function displayLoginOrLogoutMask(jsonContent) {
var status = jsonContent.status;
if (status == "YES") {
if (jsonContent.timediff == 1) {
var lang = jsonContent.lang;
if (jsonContent.isadmin == 1) {
setTimeout(function(){document.location.href = "time.html"},250);
return;
} else {
alert(I_TIMEDIFF_NO_ADMIN[lang]);
}
}
// no login mask!
$("#loginmask").hide();
$("#logoutarea").show();
// if there is a login message, show it in an alert
if (jsonContent.loginmessage != "") {
alert (jsonContent.loginmessage);
}
// forward to valid page!
doAjax("GET","php/contenthandler.php?module=admin&command=getViewAfterLogin",null,goToView,"Einstiegsseite nicht bekommen");
} else {
alert("Falsches Passwort?");
// user needs to log in!
$("#passwordfield").val("");
$("#logoutarea").hide();
}
}
function doLogout() {
doAjax("POST", "php/contenthandler.php?module=admin&command=logout", null, showLoginMask, "Logoutproblem");
}
function showLoginMask(jsonContent) {
if (jsonContent == "OK") {
// no login mask!
$("#loginmask").show();
$("#logoutarea").hide();
initializeMainMenu("#modulemenu");
}
}
function binding() {
$("#loginbutton").off("click").on("click", function (e) {
e.stopImmediatePropagation();
e.preventDefault();
var userid = $("#userlistselection").find(":selected").val();
var password = $("#passwordfield").val();
tryAuthenticate(userid,password);
});
$("#logoutbutton").off("click").on("click", function (e) {
e.stopImmediatePropagation();
e.preventDefault();
doLogout();
});
$(".numfield td").off("click").on("click", function (e) {
e.stopImmediatePropagation();
e.preventDefault();
var val=$(this).html();
var classes = $(this).attr("class")
if (classes == "numnav") {
if (val == "1") {
showNumPanel();
} else if (val == "a") {
showCharPanelLower();
} else if (val == "#") {
showSpecialsPanel();
} else if (val == "abc") {
showCharPanelLower();
} else if (val == "ABC") {
showCharPanelUpper();
}
} else {
// REM* char input
var password = String($("#passwordfield").val());
$("#passwordfield").val(password + val);
}
});
}
function showNumPanel() {
$("#numfield_num").show();
$("#numfield_char_lower").hide();
$("#numfield_char_upper").hide();
$("#numfield_specials").hide();
}
function showCharPanelLower() {
$("#numfield_num").hide();
$("#numfield_char_lower").show();
$("#numfield_char_upper").hide();
$("#numfield_specials").hide();
}
function showCharPanelUpper() {
$("#numfield_num").hide();
$("#numfield_char_lower").hide();
$("#numfield_char_upper").show();
$("#numfield_specials").hide();
}
function showSpecialsPanel() {
$("#numfield_num").hide();
$("#numfield_char_lower").hide();
$("#numfield_char_upper").hide();
$("#numfield_specials").show();
}
function startInstallationOrUseIt() {
doAjax("GET", "php/contenthandler.php?module=admin&command=isInstalled", null, handleResultOfInstallCheck, "PHP-Problem");
}
function handleResultOfInstallCheck(is_installed) {
if (is_installed == "Yes") {
useInstallation();
} else {
setTimeout(function(){document.location.href = "install.html"},500);
}
}
function useInstallation() {
initializeMainMenu("#modulemenu");
hideMenu();
askAndFillUserList();
isUserAlreadyLoggedIn();
binding();
}
$(document).on("pageinit", "#index-page", function () {
startInstallationOrUseIt();
});
</script>
<div data-role="page" id="index-page">
<div data-role="panel" id="modulepanel" data-position="right" data-display="overlay">
<ul data-role="listview" id="modulemenu" data-divider-theme="a" data-inset="true">
<li data-role="list-divider" data-theme="b" data-role="heading">Module</li>
</ul>
</div><!-- /panel -->
<div data-role="header" data-theme="b" data-position="fixed" id="theheader">
<h1>OrderSprinter</h1>
<div data-type="horizontal" style="top:0px;position:absolute;float:right;z-index:10;display:inline;" align="right" class="ui-btn-right">
<a href="#" data-role="button" data-icon="arrow-d" data-ajax="false" id="menuswitch">Module</a>
</div>
</div>
<div data-role="content">
<div data-role="collapsible" data-content-theme="c" data-collapsed="false" data-theme="e" id="loginmask">
<H2>Logindaten</H2>
<form method="post">
<table border=0>
<tr><td>Username: <td id="userlist"><tr>
<tr><td>Passwort: <td><input type="password" name="password" id="passwordfield"/>
<!-- place for info -->
<tr />
</table>
<table class=numfield id="numfield_num">
<tr><td>1<td>2<td>3</tr>
<tr><td>4<td>5<td>6</tr>
<tr><td>7<td>8<td>9</tr>
<tr><td>0<td class=numnav>a<td class=numnav>#</tr>
</table>
<table class=numfield id="numfield_char_lower" style="display:none;">
<tr><td>a<td>b<td>c<td>d</tr>
<tr><td>e<td>f<td>g<td>h</tr>
<tr><td>i<td>j<td>k<td>l</tr>
<tr><td>m<td>n<td>o<td>p</tr>
<tr><td>q<td>r<td>s<td>t</tr>
<tr><td>u<td>v<td>w<td>x</tr>
<tr><td>y<td>z<td class=numnav>1<td class=numnav>#</tr>
<tr><td colspan=4 class=numnav>ABC</tr>
</table>
<table class=numfield id="numfield_char_upper" style="display:none;">
<tr><td>A<td>B<td>C<td>D</tr>
<tr><td>E<td>F<td>G<td>H</tr>
<tr><td>I<td>J<td>K<td>L</tr>
<tr><td>M<td>N<td>O<td>P</tr>
<tr><td>Q<td>R<td>S<td>T</tr>
<tr><td>U<td>V<td>W<td>X</tr>
<tr><td>Y<td>Z<td class=numnav>1<td class=numnav>#</tr>
<tr><td colspan=4 class=numnav>abc</tr>
</table>
<table class=numfield id="numfield_specials" style="display:none;">
<tr><td>!<td>§<td>$<td>+</tr>
<tr><td>%<td>&<td>/<td>-</tr>
<tr><td>(<td>)<td>=<td>#</tr>
<tr><td>?<td>_<td class=numnav>1<td class=numnav>a</tr>
</table>
<table border=0 style="width:280px;">
<tr><td align=center><input type="submit" value="Anmelden" id="loginbutton" data-theme="d"/></tr>
</table>
</form>
</div> <!-- Login-Maske -->
<div data-role="collapsible" data-content-theme="c" data-collapsed="false" data-theme="e" id="logoutarea">
<H2>Abmelden</H2>
<form method="post">
<input type="submit" value="Abmelden" id="logoutbutton" data-theme="d"/>
</form>
</div>
</div>
<div id=demoarea></div>
<div data-role="footer" data-theme="b" id="thefooterr">
<div class="ui-grid-a">
<div class="ui-block-a userinfo" id="loggedinuser"></div>
<div class="ui-block-b grid_right" id="versioninfo"></div>
</div><!-- /grid-a -->
</div> <!-- footer -->
</div>
</div>
</body>
</html>