diff --git a/assets/static/appico/piggy_bank.png b/assets/static/appico/piggy_bank.png new file mode 100644 index 0000000..5b42a70 Binary files /dev/null and b/assets/static/appico/piggy_bank.png differ diff --git a/src/config.js b/src/config.js index 5b4e3a9..47d0501 100644 --- a/src/config.js +++ b/src/config.js @@ -127,4 +127,13 @@ function LogOutTeleSec() { history.replaceState(null, '', '?' + urlParams.toString()); location.reload(); } -var TTS_RATE = parseFloat(urlParams.get('tts_rate')) || 0.75; \ No newline at end of file +var TTS_RATE = parseFloat(urlParams.get('tts_rate')) || 0.75; +function TS_SayTTS(msg) { + try { + if (window.speechSynthesis) { + let utterance = new SpeechSynthesisUtterance(tts_msg); + utterance.rate = TTS_RATE; + speechSynthesis.speak(utterance); + } + } catch { console.warn('TTS error'); } +} diff --git a/src/page/cajas.js b/src/page/cajas.js index f0f07eb..2007261 100644 --- a/src/page/cajas.js +++ b/src/page/cajas.js @@ -2,7 +2,7 @@ PERMS['cajas'] = 'Cajas'; PERMS['cajas:edit'] = '> Editar'; PAGES.cajas = { navcss: 'btn8', - icon: 'static/appico/credit_cards.png', + icon: 'static/appico/piggy_bank.png', AccessControl: true, Title: 'Cajas', diff --git a/src/page/supercafe.js b/src/page/supercafe.js index b241d47..8f5a3e6 100644 --- a/src/page/supercafe.js +++ b/src/page/supercafe.js @@ -80,6 +80,8 @@ PAGES.supercafe = { // When all rows are processed, show warning if needed if (processed === total && deudasCount >= 3) { + var tts_msg = `Atención: Esta persona tiene ${deudasCount} comandas en deuda. No se podrá guardar el pedido.`; + TS_SayTTS(tts_msg) toastr.warning(`Esta persona tiene ${deudasCount} comandas en deuda. No se podrá guardar el pedido.`, '', { timeOut: 5000 }); @@ -279,6 +281,10 @@ PAGES.supercafe = {
`; + document.getElementById(tts_check).checked = localStorage.getItem('TELESEC_TTS_ENABLED') === 'true'; + document.getElementById(tts_check).onchange = function () { + localStorage.setItem('TELESEC_TTS_ENABLED', this.checked); + } var config = [ { key: 'Persona', @@ -361,49 +367,35 @@ PAGES.supercafe = { } if (old[key] != data.Estado) { if (tts && document.getElementById(tts_check).checked) { - // say "El pedido está de camino a ${Region}" when all comandas for that aula are set to "Entregado". if (ttS_data[data.Region] == undefined) { ttS_data[data.Region] = {}; } ttS_data[data.Region][data._key] = data.Estado; - var allEntregado = true; + var allReady = true; Object.values(ttS_data[data.Region]).forEach((estado) => { - if (estado != 'Entregado') { - allEntregado = false; + if (estado != 'Listo') { + allReady = false; } }); - if (allEntregado) { - var msgRegion = `Hola, ${SC_Personas[data.Persona].Region}. - Estamos entregando vuestro pedido. ¡Que aproveche!`; - let utteranceRegion = new SpeechSynthesisUtterance(msgRegion); - utteranceRegion.rate = TTS_RATE; - speechSynthesis.speak(utteranceRegion); + if (allReady) { + var msgRegion = `Hola, ${SC_Personas[data.Persona].Region}. - Vamos a entregar vuestro pedido. ¡Que aproveche!`; + TS_SayTTS(msgRegion) } if (data.Estado == 'Entregado') { var msgEntregado = `El pedido de ${SC_Personas[data.Persona].Nombre} en ${SC_Personas[data.Persona].Region} ha sido entregado.`; - let utteranceEntregado = new SpeechSynthesisUtterance(msgEntregado); - utteranceEntregado.rate = TTS_RATE; - speechSynthesis.speak(utteranceEntregado); + TS_SayTTS(msgEntregado) } else if (data.Estado == 'En preparación') { var msgPreparacion = `El pedido de ${SC_Personas[data.Persona].Nombre} en ${SC_Personas[data.Persona].Region} está en preparación.`; - let utterancePreparacion = new SpeechSynthesisUtterance(msgPreparacion); - utterancePreparacion.rate = TTS_RATE; - speechSynthesis.speak(utterancePreparacion); + TS_SayTTS(msgPreparacion) } else if (data.Estado == 'Listo') { var msgListo = `El pedido de ${SC_Personas[data.Persona].Nombre} en ${SC_Personas[data.Persona].Region} está listo para ser entregado.`; - let utteranceListo = new SpeechSynthesisUtterance(msgListo); - utteranceListo.rate = TTS_RATE; - speechSynthesis.speak(utteranceListo); + TS_SayTTS(msgListo) } else if (data.Estado == 'Pedido') { var msgPedido = `Se ha realizado un nuevo pedido para ${SC_Personas[data.Persona].Nombre} en ${SC_Personas[data.Persona].Region}.`; - let utterancePedido = new SpeechSynthesisUtterance(msgPedido); - utterancePedido.rate = TTS_RATE; - speechSynthesis.speak(utterancePedido); + TS_SayTTS(msgPedido) } else { var msg = `Comanda de ${SC_Personas[data.Persona].Region}. - ${JSON.parse(data.Comanda)['Selección'] }. - ${SC_Personas[data.Persona].Nombre}. - ${data.Estado}`; - let utterance = new SpeechSynthesisUtterance(msg); - utterance.rate = TTS_RATE; - // utterance.voice = speechSynthesis.getVoices()[7] - speechSynthesis.speak(utterance); + TS_SayTTS(msg) } } } @@ -449,10 +441,7 @@ PAGES.supercafe = { if (old[key] != data.Estado) { if (tts && document.getElementById(tts_check).checked) { var msg = `La comanda de ${SC_Personas[data.Persona].Nombre} en ${SC_Personas[data.Persona].Region} ha pasado a deuda.`; - let utterance = new SpeechSynthesisUtterance(msg); - utterance.rate = TTS_RATE; - // utterance.voice = speechSynthesis.getVoices()[7] - speechSynthesis.speak(utterance); + TS_SayTTS(msg) } } old[key] = data.Estado;