2020-11-19 22:47:44 +01:00
var KB _READY = [ "Zubereitet" , "Ready" , "Preparado" ] ;
var KB _MAX _WAIT = [ "Max. Wartezeit: " , "Max. waited: " , "Tiempo de espera: " ] ;
var KB _TO _MAKE = [ "Herzustellen" , "To prepare" , "Para preparar" ] ;
var KB _TO _FINISHED = [ "Fertig" , "Ready to serve" , "Completo" ] ;
var KB _TABLE = [ "Tisch" , "Table" , "Mesa" ] ;
var isInitialized = false ;
var displayWorkToDo = false ;
var displayFinished = false ;
var displayHeaderFooter = false ;
var cookedEntries = null ;
var entriesToCook = null ;
var user = "" ;
2020-11-19 23:10:48 +01:00
var beepordered = 0 ;
2020-11-19 23:12:00 +01:00
var oneclickcooked = 0 ;
2020-11-19 23:10:48 +01:00
function beep ( ) {
var snd = new Audio ( " data : audio / wav ; base64 , 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qJrx4KOQjahZxWbcZgztj2c49nKmkId44S71j0c8eV9yDK6uPRzx5X18eDvjvQ6yKo9ZSS6l//8elePK/Lf//IInrOF/FvDoADYAGBMGb7FtErm5MXMlmPAJQVgWta7Zx2go+8xJ0UiCb8LHHdftWyLJE0QIAIsI+UbXu67dZMjmgDGCGl1H+vpF4NSDckSIkk7Vd+sxEhBQMRU8j/12UIRhzSaUdQ+rQU5kGeFxm+hb1oh6pWWmv3uvmReDl0UnvtapVaIzo1jZbf/pD6ElLqSX+rUmOQNpJFa/r+sa4e/pBlAABoAAAAA3CUgShLdGIxsY7AUABPRrgCABdDuQ5GC7DqPQCgbbJUAoRSUj+NIEig0YfyWUho1VBBBA//uQZB4ABZx5zfMakeAAAAmwAAAAF5F3P0w9GtAAACfAAAAAwLhMDmAYWMgVEG1U0FIGCBgXBXAtfMH10000EEEEEECUBYln03TTTdNBDZopopYvrTTdNa325mImNg3TTPV9q3pmY0xoO6bv3r00y+IDGid/9aaaZTGMuj9mpu9Mpio1dXrr5HERTZSmqU36A3CumzN/9Robv/Xx4v9ijkSRSNLQhAWumap82WRSBUqXStV/YcS+XVLnSS+WLDroqArFkMEsAS+eWmrUzrO0oEmE40RlMZ5+ODIkAyKAGUwZ3mVKmcamcJnMW26MRPgUw6j+LkhyHGVGYjSUUKNpuJUQoOIAyDvEyG8S5yfK6dhZc0Tx1KI/gviKL6qvvFs1+bWtaz58uUNnryq6kt5RzOCkPWlVqVX2a/EEBUdU1KrXLf40GoiiFXK///qpoiDXrOgqDR38JB0bw7SoL+ZB9o1RCkQjQ2CBYZKd/+VJxZRRZlqSkKiws0WFxUyCwsKiMy7hUVFhIaCrNQsKkTIsLivwKKigsj8XYlwt/WKi2N4d//uQRCSAAjURNIHpMZBGYiaQPSYyAAABLAAAAAAAACWAAAAApUF/Mg+0aohSIRobBAsMlO//Kk4soosy1JSFRYWaLC4qZBYWFRGZdwqKiwkNBVmoWFSJkWFxX4FFRQWR+LsS4W/rFRb/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU291bmRib3kuZGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAwNGh0dHA6Ly93d3cuc291bmRib3ku
snd . play ( ) ;
}
2020-11-19 22:47:44 +01:00
function declareProductBeCookingOrCooked ( queueid , action ) {
window . setTimeout ( function ( ) { declareProductBeCookingOrCooked _orig ( queueid , action ) } , 100 ) ;
}
function declareProductBeCookingOrCooked _orig ( queueid , action ) {
var data = { queueid : queueid ,
action : action } ;
2020-11-19 22:58:30 +01:00
doAjax ( "POST" , "php/contenthandler.php?module=queue&command=declareProductBeCookingOrCooked" , data , resultOfProductDeclaration , "could not declare product" , false ) ;
2020-11-19 22:47:44 +01:00
}
function resultOfProductDeclaration ( jsonText ) {
if ( jsonText . status != "OK" ) {
alert ( "Fehler " + jsonText . code + ": " + jsonText . msg ) ;
}
}
function declareProductNOTBeCooked ( queueid ) {
var data = { queueid : queueid } ;
doAjax ( "POST" , "php/contenthandler.php?module=queue&command=declareProductNotBeCooked" , data , resultOfProductDeclaration , "could not unmake product" ) ;
}
2020-11-19 23:10:48 +01:00
function fillTableWithEntriesToCook ( answer ) {
if ( answer . status == "OK" ) {
entriesToCook = answer . msg . tocook ;
fillTableWithEntriesToCookCore ( ) ;
bindEntriesToCook ( ) ;
var newproductsToPrepare = answer . msg . newproducts ;
if ( ( newproductsToPrepare == 1 ) && ( beepordered == 1 ) ) {
beep ( ) ;
}
}
2020-11-19 22:47:44 +01:00
}
function removeOrRedeclareAnIdFromPrepared ( theId , doRemove ) {
$ . each ( entriesToCook , function ( j , table ) {
var aList = table . queueitems ;
var tablename = table . table ;
var i = 0 ;
var found = false ;
for ( i = 0 ; i < aList . length ; i ++ ) {
var anEntry = aList [ i ] ;
if ( anEntry . id == theId ) {
found = true ;
var longname = anEntry . longname ;
2020-11-19 23:12:50 +01:00
var isguestorder = anEntry . isguestorder ;
2020-11-19 22:47:44 +01:00
var option = anEntry . option ;
var extras = anEntry . extras ;
break ;
}
}
if ( found ) {
if ( doRemove ) {
aList . splice ( i , 1 ) ;
var newEntry = {
id : theId ,
tablename : tablename ,
longname : longname ,
2020-11-19 23:12:50 +01:00
isguestorder : isguestorder ,
2020-11-19 22:47:44 +01:00
option : option ,
extras : extras
} ;
cookedEntries . splice ( 0 , 0 , newEntry ) ;
fillTableWithCookedEntriesCore ( ) ;
bindCookedEntries ( ) ;
} else {
var theEntry = aList [ i ] ;
theEntry . cooking = user ;
}
}
} ) ;
}
function bindEntriesToCook ( ) {
$ ( ".toprep" ) . off ( "click" ) . on ( "click" , function ( e ) {
e . stopImmediatePropagation ( ) ;
e . preventDefault ( ) ;
var ids = this . closest ( ".preparedlistitem" ) . id ;
var doRemove = false ;
2020-11-19 23:12:00 +01:00
if ( oneclickcooked == 1 ) {
doRemove = true ;
}
2020-11-19 22:47:44 +01:00
if ( $ ( this . closest ( ".preparedlistitem" ) ) . hasClass ( "cooking" ) ) {
doRemove = true ;
}
var idarr = ids . split ( "_" ) ;
var i = 0 ;
for ( i = 0 ; i < idarr . length ; i ++ ) {
var id = idarr [ i ] ;
if ( doRemove ) {
removeOrRedeclareAnIdFromPrepared ( id , true ) ;
declareProductBeCookingOrCooked ( id , "r" ) ;
} else {
removeOrRedeclareAnIdFromPrepared ( idarr [ i ] , false ) ;
declareProductBeCookingOrCooked ( id , "c" ) ;
}
}
fillTableWithEntriesToCookCore ( ) ;
bindEntriesToCook ( ) ;
} ) ;
$ ( ".preparedlistitem" ) . off ( "click" ) . on ( "click" , function ( e ) {
var idlist = this . id ;
var idarr = idlist . split ( "_" ) ;
var firstid = idarr [ 0 ] ; // this is the id to handle!
var doRemove = false ;
2020-11-19 23:12:00 +01:00
if ( oneclickcooked == 1 ) {
doRemove = true ;
}
2020-11-19 22:47:44 +01:00
if ( $ ( this ) . hasClass ( "cooking" ) ) {
doRemove = true ;
2020-11-19 23:12:00 +01:00
}
if ( doRemove ) {
2020-11-19 22:47:44 +01:00
declareProductBeCookingOrCooked ( firstid , "r" ) ;
} else {
declareProductBeCookingOrCooked ( firstid , "c" ) ;
}
removeOrRedeclareAnIdFromPrepared ( firstid , doRemove ) ;
fillTableWithEntriesToCookCore ( ) ;
bindEntriesToCook ( ) ;
} ) ;
}
function fillTableWithEntriesToCookCore ( ) {
var aList = '' ;
$ . each ( entriesToCook , function ( i , table ) {
aList += listOfTable ( table ) ;
} ) ;
$ ( "#listWithEntriesToCook" ) . html ( aList ) ;
$ ( "#listWithEntriesToCook" ) . trigger ( "create" ) ;
}
function listOfTable ( table ) {
var tableid = table . tableid ;
var tablename = table . table ;
var maxWaitTime = table . maxwaittime ;
var itemsForTable = table . queueitems ;
var qset = [ ] ;
$ . each ( itemsForTable , function ( i , entry ) {
var option = '' ;
if ( entry . option != '' ) {
var theComment = toHtml ( entry . option ) ;
option = '<p>' + theComment + '</p>' ;
}
var icon = "check" ;
var status = "not_cooking" ;
var label = toHtml ( entry . longname ) ;
2020-11-19 23:12:50 +01:00
if ( entry . isguestorder == 1 ) {
label = "<span class='guestorder'>" + label + "</span>" ;
}
2020-11-19 22:47:44 +01:00
if ( entry . cooking != '' ) {
theme = 'd' ;
status = "cooking" ;
label += "<small><i> (" + entry . cooking + ")</i></small>" ;
}
var extratxt = createExtraParagraph ( entry . extras ) ;
var entryToAdd = {
name : label + extratxt ,
2020-11-19 23:12:50 +01:00
isguestorder : entry . isguestorder ,
2020-11-19 22:47:44 +01:00
cooking : entry . cooking ,
queueid : entry . id ,
option : option ,
waiticon : entry . waiticon
} ;
var setLength = qset . length ;
qset [ setLength ] = entryToAdd ;
} ) ;
var grouped = groupItemToMake ( qset ) ;
var aList = '<ul data-role="listview" id="' + tableid + '" data-divider-theme="a" data-inset="true">' ;
aList += '<li data-role="list-divider" data-theme="c" data-role="heading">' + tablename + ' (' + KB _MAX _WAIT [ lang ] + maxWaitTime + ' min)</li>' ;
var i = 0 ;
var length = grouped . counts . length ;
for ( i = 0 ; i < length ; i ++ ) {
var img = '<img src="img/waittimes/' + grouped . waiticons [ i ] + '" />' ;
var id _joined = grouped . queueids [ i ] . join ( "_" ) ;
var theme = 'c' ;
var icon = "check" ;
var status = "not_cooking" ;
var count = grouped . counts [ i ] ;
var label = grouped . names [ i ] ;
var imgpart = "" ;
if ( count > 1 ) {
label = "<span style='font-size: 23px;'>" + count + "x</span> " + label ;
imgpart = "<div class='counting toprep'><img src='img/multi.png' /></div>" ;
}
var cooking = grouped . cookings [ i ] ;
var option = grouped . options [ i ] ;
if ( cooking != '' ) {
theme = 'd' ;
icon = "arrow-d" ;
status = "cooking" ;
}
aList += '<li data-theme="' + theme + '" data-icon="' + icon + '" class="preparedlistitem ' + status + '" + id="' + id _joined + '"><a href="#">' + img + label + option + imgpart + '</a></li>' ;
}
aList += '</ul>' ;
return aList ;
}
function fillTableWithCookedEntries ( entries ) {
cookedEntries = entries ;
fillTableWithCookedEntriesCore ( ) ;
bindCookedEntries ( ) ;
}
function bindCookedEntries ( ) {
$ ( ".deliveredlistitem" ) . off ( "click" ) . on ( "click" , function ( e ) {
var idlist = this . id ;
var idarr = idlist . split ( "_" ) ;
var firstid = idarr [ 0 ] ; // this is the id to handle!
declareProductNOTBeCooked ( firstid ) ;
getAndDisplayAllEntries ( ) ;
} ) ;
}
function fillTableWithCookedEntriesCore ( ) {
if ( ( cookedEntries != null ) && ( cookedEntries . length > 0 ) ) {
var qset = [ ] ;
$ . each ( cookedEntries , function ( i , entry ) {
var option = '' ;
if ( entry . option != '' ) {
var theComment = toHtml ( entry . option ) ;
option = '<p>' + theComment + '</p>' ;
}
var label = toHtml ( entry . longname ) ;
var extratxt = createExtraParagraph ( entry . extras ) ;
var table = entry . tablename ;
var entryToAdd = {
name : label + extratxt ,
queueid : entry . id ,
option : option ,
extras : extratxt ,
table : table
} ;
var setLength = qset . length ;
qset [ setLength ] = entryToAdd ;
} ) ;
var grouped = groupMadeItems ( qset ) ;
var theList = '<ul data-role="listview" id="deliveredProdsList" data-divider-theme="a" data-inset="true">' ;
theList += '<li data-role="list-divider" data-theme="b" data-role="heading" data-icon="check">' + KB _READY [ lang ] + '</li>' ;
var length = grouped . counts . length ;
2020-11-19 23:10:15 +01:00
for ( i = 0 ; i < Math . min ( length , 10 ) ; i ++ ) {
2020-11-19 22:47:44 +01:00
var count = grouped . counts [ i ] ;
var label = grouped . names [ i ] ;
var imgpart = "" ;
if ( count > 1 ) {
label = "<span style='font-size: 23px;'>" + count + "x</span> " + label ;
//imgpart = "<div class='counting'><img src='img/multi.png' /></div>";
}
var option = grouped . options [ i ] ;
var tablename = KB _TABLE [ lang ] + ": " + grouped . tables [ i ] ;
var infotext = tablename ;
if ( option != '' ) {
infotext = option + "<p>" + tablename + "</p>" ;
}
var id _joined = grouped . queueids [ i ] . join ( "_" ) ;
theList += '<li data-theme="e" data-icon="arrow-u" id="' + id _joined + '" class="deliveredlistitem"><a href="#">' + label ;
theList += '<p>' + infotext + '</p>' + imgpart ;
theList += '</A></LI>' ;
}
theList += '</ul>' ;
$ ( "#listWithCookedEntries" ) . html ( theList ) ;
$ ( "#listWithCookedEntries" ) . trigger ( "create" ) ;
} else {
$ ( "#listWithCookedEntries" ) . html ( "" ) ;
}
}
function handleGlobalRefresh ( name ) {
parent . frames [ name ] . location . reload ( ) ;
getAndDisplayAllEntries ( ) ;
}
function getAndDisplayAllEntries ( )
{
checkForLogIn ( ) ;
if ( isInitialized ) {
if ( displayWorkToDo ) {
getEntriesToCook ( ) ;
}
if ( displayFinished ) {
getCookedEntries ( ) ;
}
}
}
function getGeneralConfigItems ( ) {
doAjax ( "GET" , "php/contenthandler.php?module=admin&command=getGeneralConfigItems" , null , insertGeneralConfigItems , "Fehler Konfigurationsdaten" ) ;
2020-11-19 22:52:43 +01:00
doAjax ( "GET" , "php/contenthandler.php?module=admin&command=getJsonMenuItemsAndVersion" , null , setUser , "Benutzerdaten nicht übermittelt" ) ;
2020-11-19 22:47:44 +01:00
}
function setUser ( userAndVersion ) {
user = userAndVersion . user ;
}
function insertGeneralConfigItems ( configResult ) {
if ( configResult . status == "OK" ) {
var values = configResult . msg ;
2020-11-19 23:10:48 +01:00
beepordered = values . beepordered ;
2020-11-19 23:12:00 +01:00
oneclickcooked = values . oneclickcooked ;
2020-11-19 22:47:44 +01:00
setLanguage ( values . userlanguage ) ;
isInitialized = true ;
if ( displayHeaderFooter ) {
initializeMainMenu ( "#modulemenu" ) ;
} else {
$ ( "#modulepanel" ) . hide ( ) ;
$ ( "#menuswitch" ) . hide ( ) ;
$ ( "#thefooterr" ) . hide ( ) ;
}
initializeEverything ( ) ;
setHeadlines ( ) ;
getAndDisplayAllEntries ( ) ;
} else {
setTimeout ( function ( ) { document . location . href = "index.html" } , 250 ) ; // not logged in
}
}
function setWorkMode ( urlsuffix ) {
2020-11-19 22:52:43 +01:00
displayWorkToDo = true ;
displayFinished = true ;
displayHeaderFooter = true ;
return ;
2020-11-19 22:47:44 +01:00
}
/ * *
* Not possible in setWorkMode , because set Lang would overwrite .
* So set headlines in method that can be called later
* /
function setHeadlines ( ) {
if ( ! displayHeaderFooter ) {
if ( displayWorkToDo ) {
$ ( "#moduleheadline" ) . html ( KB _TO _MAKE [ lang ] ) ;
} else if ( displayFinished ) {
$ ( "#moduleheadline" ) . html ( KB _TO _FINISHED [ lang ] ) ;
}
$ ( "#headerline" ) . trigger ( "create" ) ;
}
}
function groupMadeItems ( theSet ) {
var counts = [ ] ;
var joinedvals = [ ] ;
var names = [ ] ;
2020-11-19 23:12:50 +01:00
var isguestorders = [ ] ;
2020-11-19 22:47:44 +01:00
var options = [ ] ;
var extras = [ ] ;
var tables = [ ] ;
var queueids = [ ] ;
var grouped = {
counts : counts ,
joinedvals : joinedvals ,
names : names ,
2020-11-19 23:12:50 +01:00
isguestorders : isguestorders ,
2020-11-19 22:47:44 +01:00
options : options ,
extras : extras ,
tables : tables ,
queueids : queueids
} ;
var i = 0 ;
for ( i = 0 ; i < theSet . length ; i ++ ) {
var anEntry = theSet [ i ] ;
var name = anEntry . name ;
2020-11-19 23:12:50 +01:00
var isguestorder = anEntry . isguestorder ;
2020-11-19 22:47:44 +01:00
var option = anEntry . option ;
var extras = anEntry . extras ;
var table = anEntry . table ;
var queueid = anEntry . queueid ;
2020-11-19 23:12:50 +01:00
var joinedNeedle = name + "-" + isguestorder + " - " + option + "-" + "-" + table + "_" + extras ;
2020-11-19 22:47:44 +01:00
var index = grouped . joinedvals . indexOf ( joinedNeedle ) ;
if ( index >= 0 ) {
grouped . counts [ index ] = grouped . counts [ index ] + 1 ;
var queueidsarr = grouped . queueids [ index ] ;
queueidsarr [ queueidsarr . length ] = queueid ;
grouped . queueids [ index ] = queueidsarr ;
} else {
var gLength = grouped . counts . length ;
grouped . counts [ gLength ] = 1 ;
grouped . joinedvals [ gLength ] = joinedNeedle ;
grouped . names [ gLength ] = name ;
2020-11-19 23:12:50 +01:00
grouped . isguestorders [ gLength ] = isguestorder ;
2020-11-19 22:47:44 +01:00
grouped . options [ gLength ] = option ;
grouped . extras [ gLength ] = extras ;
grouped . tables [ gLength ] = table ;
grouped . queueids [ gLength ] = [ queueid ] ;
}
}
return grouped ;
}
function groupItemToMake ( theSet ) {
var counts = [ ] ;
var joinedvals = [ ] ;
var names = [ ] ;
2020-11-19 23:12:50 +01:00
var isguestorders = [ ] ;
2020-11-19 22:47:44 +01:00
var options = [ ] ;
var cookings = [ ] ;
var waiticons = [ ] ;
var queueids = [ ] ;
var grouped = { counts : counts ,
joinedvals : joinedvals ,
names : names ,
2020-11-19 23:12:50 +01:00
isguestorders : isguestorders ,
2020-11-19 22:47:44 +01:00
options : options ,
cookings : cookings ,
waiticons : waiticons ,
queueids : queueids
} ;
var i = 0 ;
for ( i = 0 ; i < theSet . length ; i ++ ) {
var anEntry = theSet [ i ] ;
var name = anEntry . name ;
2020-11-19 23:12:50 +01:00
var isguestorder = anEntry . isguestorder ;
2020-11-19 22:47:44 +01:00
var option = anEntry . option ;
var waiticon = anEntry . waiticon ;
var cooking = anEntry . cooking ;
var queueid = anEntry . queueid ;
2020-11-19 23:12:50 +01:00
var joinedNeedle = name + "-" + isguestorder + "-" + option + "-" + waiticon + "-" + cooking ;
2020-11-19 22:47:44 +01:00
var index = grouped . joinedvals . indexOf ( joinedNeedle ) ;
if ( index >= 0 ) {
grouped . counts [ index ] = grouped . counts [ index ] + 1 ;
var queueidsarr = grouped . queueids [ index ] ;
queueidsarr [ queueidsarr . length ] = queueid ;
grouped . queueids [ index ] = queueidsarr ;
} else {
var gLength = grouped . counts . length ;
grouped . counts [ gLength ] = 1 ;
grouped . joinedvals [ gLength ] = joinedNeedle ;
grouped . names [ gLength ] = name ;
2020-11-19 23:12:50 +01:00
grouped . isguestorders [ gLength ] = isguestorder ;
2020-11-19 22:47:44 +01:00
grouped . options [ gLength ] = option ;
grouped . cookings [ gLength ] = cooking ;
grouped . waiticons [ gLength ] = waiticon ;
grouped . queueids [ gLength ] = [ queueid ] ;
}
}
return grouped ;
}