Spaces:
Sleeping
Sleeping
| |
<html> | |
<head> | |
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> | |
<meta http-equiv="Pragma" content="no-cache" /> | |
<meta http-equiv="Expires" content="0" /> | |
<meta charset="utf-8" /> | |
<title>ATUALLI MOSAICO WEB</title> | |
<meta name="viewport" content="width=device-width, initial-scale=1"> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> | |
<link rel="stylesheet" type="text/css" href="a-operation.css" /> | |
</head> | |
<body onload="iniciaPagina();"> | |
<!-- <title>Hello</title> --> | |
<!--Add buttons to initiate auth sequence and sign out | |
<button id="authorize_button" style="display: none;">Authorize</button> | |
<button id="signout_button" style="display: none;">Sign Out</button> | |
--> | |
<script type="text/javascript"> | |
// Client ID and API key from the Developer Console | |
var CLIENT_ID = '346985849712-4diehepugvj39n4e3ednr25qieekkmen.apps.googleusercontent.com'; //'392646183283-5f9h5jgsll9hfcb46mlfplu57vtmhaa0.apps.googleusercontent.com'; | |
var API_KEY = 'AIzaSyDGpegS1TV-7moMp5dKz-BEtt6bA864h_4';//'AIzaSyASaqrMk2sPLTnXsW8fjCcTvAsagc28DhA'; | |
// Array of API discovery doc URLs for APIs used by the quickstart | |
var DISCOVERY_DOCS = ["https://sheets.googleapis.com/$discovery/rest?version=v4"]; | |
// Authorization scopes required by the API; multiple scopes can be | |
// included, separated by spaces. | |
var SCOPES = "https://www.googleapis.com/auth/spreadsheets.readonly"; | |
// var authorizeButton = document.getElementById('authorize_button'); | |
//var signoutButton = document.getElementById('signout_button'); | |
/** | |
* On load, called to load the auth2 library and API client library. | |
*/ | |
function storeLogin(name) | |
{ | |
setCookieh("LOGIN",name,10); | |
} | |
function loadLogin() { | |
var name = getCookieh("LOGIN"); | |
return name; | |
} | |
function setCookieh(name,value,days) { | |
window.localStorage.setItem(name, value); | |
} | |
function getCookieh(name) { | |
return window.localStorage.getItem(name); | |
} | |
function sleeph(time) { | |
return new Promise((resolve) => setTimeout(resolve, time)); | |
} | |
function handleClientLoad() { | |
sleeph(100).then(() => { | |
document.getElementById("conteudo").style.display = "flex"; | |
var name=loadLogin(); | |
if((!name) || (name=="LOGIN")) | |
{ | |
waitLogin(); | |
} | |
else | |
{ | |
waitLogout(name); | |
} | |
}); | |
} | |
function SignOUT() | |
{ | |
var name = gapi.auth2.getAuthInstance().currentUser.get(); | |
if(name.getBasicProfile()) | |
{ | |
var logname = name.getBasicProfile().getName() + " ( " + name.getBasicProfile().getEmail() + " )"; | |
logout(logname); | |
} | |
else | |
{ | |
var logname = loadLogin(); | |
logout(logname); | |
} | |
gapi.auth2.getAuthInstance().signOut(); | |
gapi.auth2.getAuthInstance().disconnect(); | |
} | |
/** | |
* Initializes the API client library and sets up sign-in state | |
* listeners. | |
*/ | |
function initClient() { | |
gapi.client.init({ | |
apiKey: API_KEY, | |
clientId: CLIENT_ID, | |
discoveryDocs: DISCOVERY_DOCS, | |
scope: SCOPES | |
}).then(function () { | |
// Listen for sign-in state changes. | |
gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus); | |
// Handle the initial sign-in state. | |
updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get()); | |
}, function(error) { | |
waitLogin(); | |
alert(error.message); | |
}); | |
} | |
function initClientSigIn() { | |
gapi.client.init({ | |
apiKey: API_KEY, | |
clientId: CLIENT_ID, | |
discoveryDocs: DISCOVERY_DOCS, | |
scope: SCOPES | |
}).then(function () { | |
// Listen for sign-in state changes. | |
gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus); | |
// Handle the initial sign-in state. | |
updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get()); | |
gapi.auth2.getAuthInstance().signIn(); | |
}, function(error) { | |
waitLogin(); | |
alert(error.message); | |
}); | |
} | |
function initClientSigOut() { | |
gapi.client.init({ | |
apiKey: API_KEY, | |
clientId: CLIENT_ID, | |
discoveryDocs: DISCOVERY_DOCS, | |
scope: SCOPES | |
}).then(function () { | |
// Listen for sign-in state changes. | |
gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus); | |
// Handle the initial sign-in state. | |
// updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get()); | |
SignOUT(); | |
waitLogin(); | |
}, function(error) { | |
waitLogin(); | |
alert(error.message); | |
}); | |
} | |
/** | |
* Called when the signed in status changes, to update the UI | |
* appropriately. After a sign-in, the API is called. | |
*/ | |
function updateSigninStatus(isSignedIn) { | |
if (isSignedIn) { | |
//authorizeButton.style.display = 'none'; | |
//signoutButton.style.display = 'block'; | |
listMajors(); | |
} else { | |
//authorizeButton.style.display = 'block'; | |
//signoutButton.style.display = 'none'; | |
waitLogin(); | |
} | |
} | |
/** | |
* Sign in the user upon button click. | |
*/ | |
var init=0; | |
function handleAuthClick(event) { | |
document.getElementById("myLogin").innerHTML = "AGUARDE..."; | |
if(init==0) | |
{ | |
gapi.load('client:auth2', initClientSigIn); | |
init=1; | |
} | |
else | |
gapi.auth2.getAuthInstance().signIn(); | |
} | |
function waitLogin() | |
{ | |
document.getElementById("conteudo").style.display = "none"; | |
document.getElementById("listaclientes").style.display = "none"; | |
// document.getElementById("ferramentas").style.display = "none"; | |
document.getElementById("Fila").style.display = "none"; | |
document.getElementById("operacao").style.display = "none"; | |
document.getElementById("viewList").style.display = "none"; | |
document.getElementById("portal").style.display = "flex"; | |
document.getElementById("myLogin").innerHTML = "LOGIN"; | |
document.getElementById("myLoginS").innerHTML = "LOGIN"; | |
var obj = document.getElementById("myLoginS"); | |
obj.setAttribute('href', "javascript:handleAuthClick(0);"); | |
document.getElementById("Fila").setAttribute('onclick', "document.getElementById('ocoModal').style.display = 'none'; javascript:void(0);"); | |
storeLogin("LOGIN"); | |
} | |
function waitLogout(logname) { | |
document.getElementById("conteudo").style.display = "flex"; | |
document.getElementById("listaclientes").style.display = "inline"; | |
// document.getElementById("ferramentas").style.display = "inline"; | |
document.getElementById("Fila").style.display = "flex"; | |
document.getElementById("operacao").style.display = "flex"; | |
document.getElementById("viewList").style.display = "inline"; | |
document.getElementById("portal").style.display = "none"; | |
document.getElementById("myLogin").innerHTML = "LOGOFF"; | |
var obj = document.getElementById("myLoginS"); | |
obj.setAttribute('href', "javascript:handleSignoutClick(0);"); | |
document.getElementById("Fila").setAttribute('onclick', "getVideoOcorrencia();"); | |
// var name = gapi.auth2.getAuthInstance().currentUser.get(); | |
// var logname = name.getBasicProfile().getName() + " ( " + name.getBasicProfile().getEmail() + " )"; | |
//login(logname); | |
document.getElementById("myLogin").innerHTML = logname; // Qt.Au = email , Qt.Bd= fullname, Qt.zU=lastname, Qt.zW=firstname. | |
var clip=logname.indexOf("("); | |
document.getElementById("myLoginS").innerHTML = logname.substring(0,clip); | |
storeLogin(logname); | |
} | |
/** | |
* Sign out the user upon button click. | |
*/ | |
function handleSignoutClick(event) { | |
var x; | |
var r = confirm("Deseja finalizar a sessao ?"); | |
if (r == true) { | |
document.getElementById("myLogin").innerHTML = "AGUARDE..."; | |
gapi.load('client:auth2', initClientSigOut); | |
init=1; | |
} | |
} | |
/** | |
* Append a pre element to the body containing the given message | |
* as its text node. Used to display the results of the API call. | |
* | |
* @param {string} message Text to be placed in pre element. | |
*/ | |
function appendPre(message) { | |
//var pre = document.getElementById('content'); | |
// var textContent = document.createTextNode(message + '\n'); | |
document.body.innerHTML = message.trim(); | |
//pre.appendChild(message); | |
} | |
/** | |
* Print the names and majors of students in a sample spreadsheet: | |
* https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit | |
*/ | |
function listMajors() { | |
gapi.client.sheets.spreadsheets.values.get({ | |
spreadsheetId: '1edERX6z500r_PzovDi0zuRxU_wKrBGxZlTAPDWKZKEY', // '1PIAQ9qDorLJ99SjXmtx_OsT_aSI2_oumHw4ukgqwQos', | |
range: 'PESSOAS!A1:N23', | |
}).then(function(response) { | |
var name = gapi.auth2.getAuthInstance().currentUser.get(); | |
var logname = name.getBasicProfile().getName() + " ( " + name.getBasicProfile().getEmail() + " )"; | |
waitLogout(logname); | |
}, function(response) { | |
// appendPre('Error: ' + response.result.error.message); | |
// nao tem acesso desconecta | |
waitLogin(); | |
gapi.auth2.getAuthInstance().signOut(); | |
gapi.auth2.getAuthInstance().disconnect(); | |
alert("ACESSO NEGADO!") | |
}); | |
} | |
</script> | |
<script async defer src="https://apis.google.com/js/api.js" | |
onload="this.onload=function(){};handleClientLoad()" | |
onreadystatechange="if (this.readyState === 'complete') this.onload()"> | |
</script> | |
<div class="tudo"> | |
<div id="mySidenav" class="sidenav"> | |
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a> | |
<a href="javascript:setMosaico();" id="mosaico">Mosaico1</a> | |
<!--a href="javascript:popupwindow('https://datastudio.google.com/reporting/9aefeac4-1d0d-47c4-b5cf-66f49d41c4f2/page/p_2yjwggbisc', 'RESUMO', screen.width/1.5, screen.height/1.5);" id="dash">Dashboard</a--> | |
<a href="javascript:setDash();" id="dash">Operacao</a> | |
<!--a href="javascript:window.open('https://datastudio.google.com/reporting/9aefeac4-1d0d-47c4-b5cf-66f49d41c4f2/page/p_2yjwggbisc', '_blank').focus();" id="dash">Operacao</a--> | |
<a href="javascript:popupwindow('/visualizacao','VISUALIZACAO', screen.width/1, screen.height/1);"> Visualizacao</a> | |
<!--a href="javascript:popupwindow('/programacao?id=1','PROGRAMACAO', screen.width/2, screen.height/2);"> Programacao</a--> | |
<!--a href="javascript:setCercaVirtual()" id="conf">Cerca Virtual</a--> | |
<!--a href="javascript:popupwindow('https://www.appsheet.com/start/8ec6ba07-1f60-4525-87a4-bd3208dfb0b7', 'CONFIGURACAO', screen.width/1.5, screen.height/1.5);" id="conf">Configuracao</a--> | |
<a href="javascript:setConfig()" id="conf">Configuracao</a> | |
<a href="javascript:setConfigCheckList()" id="conf">Check-List</a> | |
<a href="javascript:setTelegram()" id="conf">Telegram</a> | |
<a href="javascript:setSimulador()" id="conf">Simulador</a> | |
<a href="" id="conf">Bloqueios</a> | |
<!--a href="javascript:popupwindow('http://painel.atualli.com/recogimg', 'SIMULADOR', screen.width/1.5, screen.height/1.5);" id="conf">Simulador</a--> | |
<a href="javascript:setResetMosaico();" id="reset">Reset Mosaico</a> | |
</div> | |
<div class="topnav" id="myTopnav"> | |
<span style="background-color: #000000;color: blue;float:left;font-size:40px;cursor:pointer" onclick="openNav()">☰ </span> | |
<img title = "logo" src="getresource?r=alogo.png" align="left"> | |
<!--a href="#news" onclick="javascript:void(0);" id="Fila">Fila</a--> | |
<div class="buttondiv"> | |
<button class="buttonfila" id="Fila">Fila</button> | |
</div> | |
<div class="dropdown" id="listaclientes"> | |
<button class="dropbtn" id="clientelabel"> | |
</button> | |
<div class="dropdown-content"> | |
</div> | |
</div> | |
<!--a href="javascript:void(0);" id="clientelabel">(MULTILASER-MANAUS-DVR-1)</a--> | |
<!--div class="dropdown" id="ferramentas"> | |
<button class="dropbtn"> | |
Ferramentas | |
<i class="fa fa-caret-down"></i> | |
</button> | |
<div class="dropdown-content"> | |
<a href="javascript:resetMosaico(0);" id="reset">RESET MOSAICO</a> | |
<a href="javascript:popupwindow('https://datastudio.google.com/reporting/9aefeac4-1d0d-47c4-b5cf-66f49d41c4f2', 'RESUMO', screen.width/1.5, screen.height/1.5);" id="dash">Dashboard</a> | |
<a href="javascript:popupwindow('/visualizacao','VISUALIZACAO', screen.width/1, screen.height/1);"> Visualizacao</a> | |
<a href="javascript:popupwindow('/programacao?id=1','PROGRAMACAO', screen.width/2, screen.height/2);"> Programacao</a> | |
<a href="javascript:popupwindow('https://www.appsheet.com/start/8ec6ba07-1f60-4525-87a4-bd3208dfb0b7', 'CONFIGURACAO', screen.width/1.5, screen.height/1.5);" id="conf">Configuracao</a> | |
<a href="javascript:popupwindow('http://painel.atualli.com/recogimg', 'SIMULADOR', screen.width/1.5, screen.height/1.5);" id="conf">Simulador</a> | |
</div> | |
</div--> | |
<!--a href="javascript:handleAuthClick(0);" id="myLogin"></a--> | |
<!--div class="dropdown" id="loginlist"> | |
<button class="dropbtn" id="myLogin"> | |
LOGIN | |
<i class="fa fa-caret-down"></i> | |
</button> | |
<div class="dropdown-content"> | |
<a href="javascript:selecionaOperador('LOGOFF');">LOGIN</a> | |
<a href="javascript:selecionaOperador('PAUSAR');">PAUSAR</a> | |
<a href="javascript:selecionaOperador('LOGIN');">LOGOFF</a> | |
</div> | |
</div--> | |
<!--a href="javascript:setoperacao(0);" id="operacao">AGUARDE...</a--> | |
<div class="buttondiv"> | |
<button onclick="javascript:setoperacao(0);" class="buttonwork" id="operacao">>AGUARDE...</button> | |
</div> | |
<!--a href="javascript:void(0);" class="icon" onclick="myFunctionNav()"> | |
<i class="fa fa-bars"></i> | |
</a--> | |
<div class="dropdown" id="viewList"> | |
<button class="dropbtn"> | |
VIEW | |
<i class="fa fa-caret-down"></i> | |
</button> | |
<div class="dropdown-content"> | |
<a href="javascript:changeGrade('column7x');">7x</a> | |
<a href="javascript:changeGrade('column6x');">6x</a> | |
<a href="javascript:changeGrade('column5x');">5x</a> | |
<a href="javascript:changeGrade('column');">4x</a> | |
<a href="javascript:changeGrade('column3x');">3x</a> | |
<a href="javascript:changeGrade('Auto');">Auto</a> | |
</div> | |
</div> | |
<img title = "avatar" id="myavatar" style="width:3%" src="getresource?r=anonymus.jpg" align="left"> | |
<a href="" style="display:none" id="myLogin"></a> | |
<a href="javascript:handleAuthClick(0);" id="myLoginS"></a> | |
<a href="javascript:void(0);" class="icon" onclick="NavResponsive()"> | |
<i class="fa fa-bars"></i> | |
</a> | |
</div> | |
<div class="rowblock" id="portal"> | |
<tr></tr> | |
</div> | |
<div style="display:none" id="listocorrencias"> | |
<tr> | |
<iframe id="iframelistocorrencias" src="" frameborder="0" style="position:absolute; top:7%; left:0; width:100%; height:100%; border:0" allowfullscreen></iframe> | |
</tr> | |
</div> | |
<div style="display:none" id="configuracao"> | |
<tr> | |
<iframe id="iframeconfiguracao" src="" frameborder="0" style="position:absolute; top:7%; left:0; width:80%; height:100%; border:0" allowfullscreen></iframe> | |
</tr> | |
</div> | |
<div style="display:none" id="configuracaochecklist"> | |
<tr> | |
<iframe id="iframeconfiguracaochecklist" src="" frameborder="0" style="position:absolute; top:7%; left:0; width:100%; height:100%; border:0" allowfullscreen></iframe> | |
</tr> | |
</div> | |
<div style="display:none" id="cercavirtual"> | |
<tr> | |
<iframe id="iframecercavirtual" src="" frameborder="0" style="position:absolute; top:7%; left:80%; width:20%; height:100%; border:0" allowfullscreen></iframe> | |
</tr> | |
</div> | |
<div style="display:none" id="simulador"> | |
<tr> | |
<iframe id="iframesimulador" src="" frameborder="0" style="position:absolute; top:7%; left:0; width:100%; height:100%; border:0" allowfullscreen></iframe> | |
</tr> | |
</div> | |
<div class="row" id="conteudo"> | |
<tr> | |
<div id="ocoModal" class="modal"> | |
<form class="modal-content animate" id="formOcorrencia" action="javascript:gravaOcorrencia()" method="get"> | |
<div class="imgcontainer"> | |
<div style="width:100%"> | |
<p><b>TRATAMENTO DE OCORRENCIA</b></p> <span onclick="document.getElementById('ocoModal').style.display = 'none'" class="close" title="Close Modal">×</span> | |
</div> | |
<div class="imgchild"> | |
<p><b>Gravacao</b></p> | |
<video id="videoocorrencia" preload="metadata" autoplay loop muted playsinline width=100% height=77% controls src="getresource?r=atualli.png&" type="video/mp4"> </video> | |
</div> | |
<div class="imgchild"> | |
<p><b>Ao Vivo</b></p> | |
<img src="" id="aovivo" class="refrx" alt="" style="width:100%;display:none;"> | |
<canvas title="Ao vivo" id="cvcx" alt="" style="width:100%"></canvas> | |
</div> | |
</div> | |
<div class="container" style="background-color:#f1f1f1"> | |
<label for="rot"><b>.</b></label></br> | |
<label id="IdOcoView" for="rot"><b>ID: </b></label></br> | |
<label id="IdCliente" for="rot"><b>Cliente: </b></label></br> | |
<label id="Operador" for="rot"><b>Operador: </b></label></br> | |
<label id="DataOcorrencia" for="rot"><b>Data: </b></label></br> | |
<label id="NomeRoteiro" for="rot"><b>Roteiro: </b></label></br> | |
<label id="Prioridade" for="rot"><b>Prioridade: </b></label></br> | |
<!--label id="videoOco" for="rot"><b>Video: </b></label></br--> | |
</div> | |
<div class="container"> | |
<label id="pergunta1" for="uname"><b>Procedimento</b></label> | |
<input type="text" id="procedimento" placeholder="Texto livre" name="procedimento" readonly style="background-color:#f1f1f1"> | |
<label id="pergunta2" for="psw"><b>Motivo</b></label> | |
<input type="text" id="template" placeholder="Texto livre" name="template" required onkeydown="return (event.keyCode!=13);"> | |
<!--textarea placeholder="Texto livre" rows="5" cols="10" id="template" style = "font-size: 12pt; width:100%; margin:5px 0;padding:3px" ></textarea--> | |
<label id="pergunta3" for="psw"><b>Audio</b></label> | |
<input type="file" id="audio" name="audio" accept="audio/*" multiple> | |
<button type="button" id="loadLastAudio" onclick="javascript:getUltimoAudio()">Carrega Ultimos Audios</button> | |
<select id="listaAudios" class="select_audio" style="background-color:#f1f1f1" name="formal" onchange="javascript:selAudio(this)"></select> | |
</br></br> | |
<a href="" id="lastaudio"></a> | |
<input type="hidden" name="cmd" id="GravaOcorrencia" value=""> | |
<input type="hidden" name="idOco" id="idOco" value=""> | |
<input type="hidden" name="idCamera" id="idCamera" value=""> | |
<input type="hidden" name="nomeOperador" id="nomeOperador" value=""> | |
<input type="hidden" name="idChat" id="idChat" value=""> | |
<input type="hidden" name="cliente" id="cliente" value=""> | |
<input type="hidden" name="roteiro" id="roteiro" value=""> | |
<button type="submit" style="display:none" id="gravar" class="button">Grava</button> | |
<button type="button" style="display:none" id="descartar" onclick="javascript:descartaOcorrencia(0)" class="cancelbtn">Descartar</button> | |
<button type="button" style="display:none" id="desbloqueio" onclick="" class="cancelbtn">Desbloqueio</button> | |
<select class="select" id="listaContatos" style="background-color:#f1f1f1" name="formal" onchange="javascript:handleSelect(this)"></select> | |
<script type="text/javascript"> | |
function handleSelect(elm) | |
{ | |
if(elm.value.length>1) | |
window.location = elm.value; | |
} | |
</script> | |
</div> | |
</form> | |
</div> | |
</tr> | |
</div> | |
</div> | |
<script async"> | |
// setInterval("gogo();", 1500); | |
var to = 1; // 2; //3; | |
var first = 0; | |
var idx = 0; | |
var tamFila = 0; | |
var myFila = 0; | |
var onlyView = 0; | |
// Get the modal | |
//var modalOcorrencia = document.getElementById('ocoModal'); | |
// When the user clicks anywhere outside of the modal, close it | |
//window.onclick = function (event) { | |
// if (event.target == modalOcorrencia) { | |
// modalOcorrencia.style.display = "none"; | |
// } | |
//} | |
function NavResponsive() { | |
var x = document.getElementById("myTopnav"); | |
if (x.className === "topnav") { | |
x.className += " responsive"; | |
} else { | |
x.className = "topnav"; | |
} | |
} | |
function setTelegram() { | |
popupwindow('https://web.telegram.org/z','TELEGRAM', screen.width/4, screen.height) | |
closeNav(); | |
} | |
function resetAllView() { | |
document.getElementById("configuracao").style.display = "none"; | |
document.getElementById("configuracaochecklist").style.display = "none"; | |
document.getElementById("conteudo").style.display = "none"; | |
document.getElementById("listocorrencias").style.display = "none"; | |
document.getElementById("simulador").style.display = "none"; | |
document.getElementById("cercavirtual").style.display = "none"; | |
} | |
function setCercaVirtual() | |
{ | |
// resetAllView(); | |
var objAovivo = document.getElementById("iframecercavirtual"); | |
var osrc= objAovivo.getAttribute('src'); | |
if ( osrc=="") | |
{ | |
objAovivo.setAttribute('src', "/programacao?id=1"); | |
} | |
document.getElementById("cercavirtual").style.display = "flex"; | |
closeNav(); | |
} | |
function setDash() { | |
/* resetAllView(); | |
var objAovivo = document.getElementById("iframelistocorrencias"); | |
var osrc= objAovivo.getAttribute('src'); | |
if ( osrc=="") | |
{ | |
objAovivo.setAttribute('src', "https://datastudio.google.com/embed/reporting/9aefeac4-1d0d-47c4-b5cf-66f49d41c4f2/page/p_2yjwggbisc"); | |
} | |
document.getElementById("listocorrencias").style.display = "flex"; */ | |
popupwindow('https://datastudio.google.com/reporting/9aefeac4-1d0d-47c4-b5cf-66f49d41c4f2/page/p_2yjwggbisc', 'RESUMO', screen.width/1, screen.height/1); | |
closeNav(); | |
} | |
function setMosaico() { | |
resetAllView(); | |
document.getElementById("conteudo").style.display = "flex"; | |
closeNav(); | |
} | |
function setResetMosaico() | |
{ | |
setMosaico(); | |
resetMosaico(0); | |
} | |
function setSimulador() | |
{ | |
resetAllView(); | |
var objAovivo = document.getElementById("iframesimulador"); | |
var osrc= objAovivo.getAttribute('src'); | |
if ( osrc=="") | |
{ | |
objAovivo.setAttribute('src', "http://painel.atualli.com/recogimg"); | |
} | |
document.getElementById("simulador").style.display = "flex"; | |
closeNav(); | |
} | |
function setConfig() { | |
resetAllView(); | |
var objAovivo = document.getElementById("iframeconfiguracao"); | |
var osrc= objAovivo.getAttribute('src'); | |
if ( osrc=="") | |
{ | |
// objAovivo.setAttribute('src', "https://www.appsheet.com/start/8ec6ba07-1f60-4525-87a4-bd3208dfb0b7#view=PROGRAMACAO"); | |
objAovivo.setAttribute('src', "https://www.appsheet.com/start/99e79f6b-62fe-44c8-bab4-b4b9de10cd7d#view=PROGRAMACAO"); | |
} | |
document.getElementById("configuracao").style.display = "flex"; | |
setCercaVirtual(); | |
closeNav(); | |
} | |
function setConfigCheckList() { | |
resetAllView(); | |
var objAovivo = document.getElementById("iframeconfiguracaochecklist"); | |
var osrc= objAovivo.getAttribute('src'); | |
if ( osrc=="") | |
{ | |
// objAovivo.setAttribute('src', "https://www.appsheet.com/start/8ec6ba07-1f60-4525-87a4-bd3208dfb0b7#view=PROGRAMACAO"); | |
objAovivo.setAttribute('src', "https://www.appsheet.com/start/54218ac3-e0db-414a-b3e5-1fb46540b5c4#view=PROGRAMACAO_CHECKLIST"); | |
} | |
document.getElementById("configuracaochecklist").style.display = "flex"; | |
closeNav(); | |
} | |
function openNav() { | |
document.getElementById("mySidenav").style.width = "250px"; | |
} | |
function closeNav() { | |
document.getElementById("mySidenav").style.width = "0"; | |
} | |
var atualColumn="column"; | |
function changeGrade(novo) | |
{ | |
var lista = document.getElementsByClassName(atualColumn); | |
var len=lista.length; | |
var newClass=novo; | |
if(novo=="Auto") | |
{ newClass="column3x"; | |
if (len>=8) newClass="column"; | |
if (len>=16) newClass="column5x"; | |
if (len>=24) newClass="column6x"; | |
if (len>=31) newClass="column7x"; | |
} | |
for (var i = 0; i < len; i ++) | |
{ | |
lista[0].className = newClass; | |
} | |
atualColumn=newClass; | |
let cliente=document.getElementById("clientelabel").innerHTML; | |
cliente=cliente.trim(); | |
setCookie("GRADE-"+cliente,novo,10); | |
} | |
function drawOperador(name) { | |
document.getElementById("myLogin").innerHTML = name; | |
} | |
function selecionaOperador(name) { | |
var atual= getCookie("LOGIN"); | |
if (name!=atual) | |
{ | |
if((name.length>0) && (name!="LOGOFF")&& (name!="LOGIN")) | |
login(name); | |
if(atual.length>0) | |
logout(atual); | |
} | |
if(!name) name="LOGIN"; | |
setCookie("LOGIN",name,10); | |
drawOperador(name); | |
} | |
function setCookie(name,value,days) { | |
/* var expires = ""; | |
if (days) { | |
var date = new Date(); | |
date.setTime(date.getTime() + (days*24*60*60*1000)); | |
expires = "; expires=" + date.toUTCString(); | |
} | |
document.cookie = name + "=" + (value || "") + expires + "; path=/"; */ | |
window.localStorage.setItem(name,value); | |
} | |
function getCookie(name) { | |
/* var nameEQ = name + "="; | |
var ca = document.cookie.split(';'); | |
for(var i=0;i < ca.length;i++) { | |
var c = ca[i]; | |
while (c.charAt(0)==' ') c = c.substring(1,c.length); | |
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); | |
} | |
return null; */ | |
return window.localStorage.getItem(name); | |
} | |
function eraseCookie(name) { | |
document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'; | |
} | |
function openForm() { | |
document.getElementById("myForm").style.display = "block"; | |
} | |
function closeForm() { | |
document.getElementById("myForm").style.display = "none"; | |
} | |
function resetFormOcorrencia() | |
{ | |
var obj = document.getElementById("videoocorrencia"); | |
obj.setAttribute('src', ""); | |
var objproc = document.getElementById("procedimento"); | |
objproc.setAttribute('value', ""); | |
var objtmp = document.getElementById("template"); | |
objtmp.setAttribute('value', ""); | |
// document.getElementById("videoOco").innerHTML = "<b> Video: Aguarde...</b>"; | |
document.getElementById("IdCliente").innerHTML = "<b> Cliente: Aguarde...</b>"; | |
document.getElementById("IdOcoView").innerHTML = "<b> ID: Aguarde...</b>"; | |
document.getElementById("NomeRoteiro").innerHTML = "<b> Roteiro: Aguarde...</b>"; | |
document.getElementById("DataOcorrencia").innerHTML = "<b> Data: Aguarde... </b>"; | |
document.getElementById("Operador").innerHTML = "<b> Operador: Aguarde... </b>"; | |
document.getElementById("Prioridade").innerHTML = "<b> Prioridade: Aguarde...</b>"; | |
var objidOco = document.getElementById("idOco"); | |
objidOco.setAttribute('value', ""); | |
var objnOp = document.getElementById("nomeOperador"); | |
objnOp.setAttribute('value', ""); | |
var objnidChat = document.getElementById("idChat"); | |
objnidChat.setAttribute('value', ""); | |
document.getElementById("desbloqueio").style.display = 'none' | |
document.getElementById("gravar").style.display = 'none' | |
document.getElementById("descartar").style.display = 'none' | |
document.getElementById("gravar").innerHTML = "Gravar"; | |
document.getElementById("gravar").disabled = false; | |
document.getElementById("descartar").innerHTML = "Descartar"; | |
document.getElementById("descartar").disabled = false; | |
var objAovivo = document.getElementById("aovivo"); | |
objAovivo.setAttribute('src', ''); | |
objAovivo.setAttribute('class', 'refrx'); | |
document.getElementById("audio").value = ""; | |
document.getElementById("lastaudio").innerHTML = ""; | |
document.getElementById("listaAudios").innerHTML = ""; | |
} | |
function popupwindow(url, title, w, h) { | |
var left = (screen.width / 2) - (w / 2); | |
var top = (screen.height / 2) - (h / 2); | |
return window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left); | |
} | |
function openurl(url) | |
{ | |
var urls = url; | |
if (onlyView==1) | |
urls = urls + "?view=true"; | |
window.location.replace(urls); | |
// return window.open(urls,'_self'); | |
} | |
function execDesbloqueio(url) | |
{ | |
var xhttp = new XMLHttpRequest(); | |
xhttp.onreadystatechange = function () { | |
if (this.readyState == 4 && this.status == 200) { | |
var desbloqueio = document.getElementById("desbloqueio"); | |
desbloqueio.innerHTML = this.responseText; | |
} | |
}; | |
var desbloqueio = document.getElementById("desbloqueio").innerHTML = "AGUARDE..."; | |
xhttp.open("GET", url, true); | |
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); | |
xhttp.send(""); | |
} | |
function sleep(time) { | |
return new Promise((resolve) => setTimeout(resolve, time)); | |
} | |
function getVideoOcorrencia() { | |
if (myFila <= 0) return; | |
resetFormOcorrencia(); | |
// Usage! | |
sleep(100).then(() => { | |
// Do something after the sleep! | |
if (myFila <= 0) return; | |
// document.getElementById('ocoModal').style.display = 'block'; | |
// resetFormOcorrencia(); | |
/* var audio = new Audio('http://atualli.ddns.net/getresource?r=alarm.ogg'); | |
audio.addEventListener('canplaythrough', function () { | |
audio.play(); | |
}); */ | |
document.getElementById("desbloqueio").innerHTML="Desbloqueio"; | |
document.getElementById("gravar").innerHTML = "Grava"; | |
//document.getElementById('ocoModal').style.display = 'block' | |
var xhttp = new XMLHttpRequest(); | |
xhttp.onreadystatechange = function () { | |
if (this.readyState == 4 && this.status == 200) { | |
if(this.responseText.indexOf("VAZIO") !== -1) return; | |
var json = JSON.parse(this.responseText); | |
if (json.status == "Manual") { | |
document.getElementById('ocoModal').style.display = 'block'; | |
resetFormOcorrencia(); | |
//document.getElementById('ocoModal').style.display = 'block'; | |
document.getElementById("descartar").style.display = 'block' | |
document.getElementById("gravar").style.display = 'block' | |
document.getElementById("desbloqueio").style.display = 'none' | |
var obj = document.getElementById("videoocorrencia"); | |
obj.setAttribute('src', json.video); | |
//document.getElementById("procedimento").innerHTML = "<b>" + json.procedimento + "</b>"; | |
document.getElementById("template").innerHTML = json.templat ; | |
var objproc = document.getElementById("procedimento"); | |
objproc.setAttribute('value', json.procedimento); | |
var objtmp = document.getElementById("template"); | |
objtmp.setAttribute('value', json.templat); | |
var objidChat = document.getElementById("idChat"); | |
objidChat.setAttribute('value', json.idchat); | |
var objCliente = document.getElementById("cliente"); | |
objCliente.setAttribute('value', json.cliente); | |
var objRoteiro = document.getElementById("roteiro"); | |
objRoteiro.setAttribute('value', json.roteiro); | |
var objAovivo = document.getElementById("aovivo"); | |
objAovivo.setAttribute('src', json.urlcamera); | |
// document.getElementById("videoOco").innerHTML = "<b> Video: " + json.video + "</b>"; | |
document.getElementById("IdCliente").innerHTML = "<b> Cliente: " + json.cliente + "</b>"; | |
document.getElementById("IdOcoView").innerHTML = "<b> ID: " + json.id + "</b>"; | |
document.getElementById("NomeRoteiro").innerHTML = "<b> Roteiro: " + json.roteiro + "</b>"; | |
document.getElementById("DataOcorrencia").innerHTML = "<b> Data: " + json.data + "</b>"; | |
document.getElementById("Prioridade").innerHTML = "<b> Prioridade: " + json.prioridade + "</b>"; | |
if (json.desbloqueio) { | |
var desbloqueio = document.getElementById("desbloqueio"); | |
desbloqueio.style.display = 'block' | |
var url = json.desbloqueio; | |
desbloqueio.setAttribute('onclick', "execDesbloqueio('" + url + "')"); | |
} | |
var lista = json.contatos.split(/,| |-/); | |
var options = "<option value=\"\">REALIZAR CONTATO</option>"; | |
for (var i = 0; i < lista.length; i += 2) { | |
nome = lista[i]; | |
telefone = lista[i + 1]; | |
options += "<option value=\"tel:80" + telefone + "\">Ligar para " + nome + " " + telefone + "</option>"; | |
} | |
document.getElementById("listaContatos").innerHTML = options; | |
document.getElementById("Operador").innerHTML = "<b> Operador: " + document.getElementById("myLogin").innerHTML + "</b>"; | |
var objidOco = document.getElementById("idOco"); | |
objidOco.setAttribute('value', json.id); | |
var objnOp = document.getElementById("nomeOperador"); | |
objnOp.setAttribute('value', document.getElementById("myLogin").innerHTML); | |
//document.getElementById('ocoModal').style.display = 'block'; | |
} | |
else { | |
document.getElementById('ocoModal').style.display = 'none'; | |
} | |
} | |
}; | |
// xhttp.open("GET", "https://script.google.com/macros/s/AKfycbziTdRkV1r6WFdUMoaBAugEkywspV6TqhPE8fTQnl2FOZ6Qn2E/exec?cmd=Ocorrencia&operador=" + document.getElementById("myLogin").innerHTML, true); | |
xhttp.open("GET", "getdatalocal?comando=Ocorrencia&operador=" + document.getElementById("myLogin").innerHTML, true); | |
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); | |
xhttp.send(""); | |
}); | |
} | |
const fileInput = document.getElementById('audio'); | |
fileInput.onchange = () => { | |
const selectedFile = fileInput.files[0]; | |
if ((selectedFile) && (selectedFile.name.length > 0)) | |
{ | |
var dt = new Date(); | |
var path = "ftp://192.168.0.10/" + dt.getFullYear() + "/" + String(dt.getMonth() + 1).padStart(2, '0') + "/" + String(dt.getDate()).padStart(2, '0') + "/"; | |
var saudio = path+selectedFile.name; | |
var saudio = saudio.replace("[1]", ""); | |
var objAudio = document.getElementById("lastaudio"); | |
objAudio.setAttribute('href', saudio); | |
document.getElementById("lastaudio").innerHTML = saudio; | |
} | |
else { | |
document.getElementById("lastaudio").innerHTML = ""; | |
} | |
} | |
function getUltimoAudio() | |
{ | |
var xhttp = new XMLHttpRequest(); | |
xhttp.onreadystatechange = function () | |
{ | |
if (this.readyState == 4 && this.status == 200) | |
{ | |
var json = JSON.parse(this.responseText); | |
var file = json.voips[0].file; | |
var sfile = file.replace("/var/spool/asterisk/monitor", "ftp://192.168.0.10"); | |
var objAudio = document.getElementById("lastaudio"); | |
//objAudio.setAttribute('href', "javascript:testAudio(\"" + sfile + "\")"); | |
objAudio.setAttribute('href', sfile); | |
document.getElementById("lastaudio").innerHTML = sfile; | |
document.getElementById("loadLastAudio").innerHTML = "Carrega Ultimos Audios"; | |
var options = "<option value=\"\">Lista Ultimos Audios</option>"; | |
for (var i = 0; i < json.voips.length; i ++) { | |
var nome = json.voips[i].file; | |
var snome = nome.replace("/var/spool/asterisk/monitor", "ftp://192.168.0.10"); | |
options += "<option value=\"" + snome + "\">" + snome + "</option>"; | |
} | |
document.getElementById("listaAudios").innerHTML = options; | |
} | |
} | |
var videoobj = document.getElementById("videoocorrencia"); | |
var video = videoobj.getAttribute('src'); | |
var dvideo = video; // video.replace("http://atualli.ddns.net", "http://localhost:8088"); // video; // apenas para debug local | |
document.getElementById("loadLastAudio").innerHTML = "AGUARDE..."; | |
xhttp.open("GET", dvideo + "&ramal=2002&phone=0", true); | |
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); | |
xhttp.send(""); | |
} | |
function testAudio(elm) | |
{ | |
window.open(elm.value); | |
} | |
function selAudio(elm) { | |
if (elm.value.length > 1) { | |
var objAudio = document.getElementById("lastaudio"); | |
objAudio.setAttribute('href', elm.value); | |
document.getElementById("lastaudio").innerHTML = elm.value; | |
} | |
} | |
function sendMsgFinal(status) | |
{ | |
var xhttp = new XMLHttpRequest(); | |
var videoobj = document.getElementById("videoocorrencia"); | |
var video = videoobj.getAttribute('src'); | |
var objnOp = document.getElementById("nomeOperador"); | |
var operador = objnOp.getAttribute('value'); | |
var idResp2 = document.getElementById("template").value; | |
var idChat = document.getElementById("idChat").value; | |
var cliente = document.getElementById("cliente").value; | |
var roteiro = document.getElementById("roteiro").value; | |
var idOco = document.getElementById("idOco").value; | |
// var audio = document.getElementById("audio").value; | |
//var dt = new Date(); | |
//var path = "ftp://192.168.0.10/" + dt.getFullYear() + "/" + String (dt.getMonth() + 1).padStart(2, '0') + "/" + String (dt.getDate()).padStart(2, '0') + "/"; | |
// var saudio = audio.replace("fakepath", "SIP\\Recordings"); | |
//var saudio = audio.replace("C:\\fakepath\\", path); | |
//var saudio = saudio.replace("[1]", ""); | |
var saudio = document.getElementById("lastaudio").innerHTML; | |
if (saudio.length > 0) | |
idResp2 = idResp2 + " (AUDIO ANEXADO)"; | |
var dvideo = video.replace("http://atualli.ddns.net", "http://localhost:8088"); // video; // apenas para debug local | |
// var url = dvideo + "&idchat=" + idChat + "&status=" + status + "&idoco=" + idOco + "&motivo=" + cliente + " - " + roteiro + " - " + idResp2 + "&audio=" + saudio; | |
var url = dvideo + "&idchat=" + idChat + "&status=" + status + "&idoco=" + idOco + "&cliente=" + cliente + "&roteiro=" + roteiro + "&motivo=" + idResp2 + "&audio=" + saudio; | |
xhttp.open("GET", url, true); | |
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); | |
xhttp.send(""); | |
} | |
function gravaOcorrencia() | |
{ | |
var template = document.getElementById("template").value; | |
if (template.length > 0) { | |
var r = confirm("Deseja realmente salvar a ocorrencia ?"); | |
if (r == true) { | |
var xhttp = new XMLHttpRequest(); | |
xhttp.onreadystatechange = function () { | |
if (this.readyState == 4 && this.status == 200) { | |
var json = JSON.parse(this.responseText); | |
sendMsgFinal("grava"); | |
resetFormOcorrencia(); | |
document.getElementById('ocoModal').style.display = 'none'; | |
alert("OCORRENCIA GRAVADA COM SUCESSO !"); | |
document.getElementById("gravar").innerHTML = "Gravar"; | |
document.getElementById("gravar").disabled = false; | |
} | |
}; | |
document.getElementById("gravar").innerHTML = "Aguarde.."; | |
document.getElementById("gravar").disabled = true; | |
var objidOco = document.getElementById("idOco"); | |
var idOco = objidOco.getAttribute('value'); | |
var objnOp = document.getElementById("nomeOperador"); | |
var operador = objnOp.getAttribute('value'); | |
var idResp1 = document.getElementById("procedimento").value; | |
var idResp2 = document.getElementById("template").value; | |
var idChat = document.getElementById("idChat").value; | |
// xhttp.open("GET", "https://script.google.com/macros/s/AKfycbziTdRkV1r6WFdUMoaBAugEkywspV6TqhPE8fTQnl2FOZ6Qn2E/exec?cmd=GravaOcorrencia&idOco=" + idOco + "&resposta1=" + idResp1 + "&resposta2=" + idResp2 + "&operador=" + operador, true); | |
xhttp.open("GET", "getdatalocal?comando=GravaOcorrencia&idOco=" + idOco + "&resposta1=" + idResp1 + "&resposta2=" + idResp2 + "&operador=" + operador, true); | |
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); | |
// xhttp.timeout = 8000; // Set timeout to 4 seconds (4000 milliseconds) | |
// xhttp.ontimeout = function () { alert("Timed out!!!"); } | |
xhttp.send(""); | |
} | |
} | |
else | |
alert("Preencha o campo motivo e justifique a ocorrencia !"); | |
} | |
function resetMosaico() { | |
var r = confirm("Deseja realmente reiniciar o Mosaico ?. Use apenas em quando as imagens estiverem congeladas a mais de 1 hora"); | |
if (r == true) { | |
var xhttp = new XMLHttpRequest(); | |
xhttp.onreadystatechange = function () { | |
if (this.readyState == 4 && this.status == 200) { | |
alert("MOSAICO REINICIADO COM SUCESSO !"); | |
document.getElementById("reset").innerHTML = "RESET"; | |
document.getElementById("reset").disabled = false; | |
} | |
}; | |
document.getElementById("reset").innerHTML = "AGUARDE.."; | |
document.getElementById("reset").disabled = true; | |
var login = document.getElementById("myLogin").innerHTML; | |
var cliente = document.getElementById("clientelabel").innerHTML; | |
var texto = "AT" + cliente + "_reiniciado_pelo_operador_" + login; | |
xhttp.open("GET", "<?URLBASE?>/resetmosaico?msg=" + texto, true); | |
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); | |
xhttp.send(""); | |
} | |
} | |
function descartaOcorrencia() { | |
var template = document.getElementById("template").value; | |
if (template.length > 0) { | |
var r = confirm("Deseja realmente descartar ocorrencia ?"); | |
if (r == true) { | |
var xhttp = new XMLHttpRequest(); | |
xhttp.onreadystatechange = function () { | |
if (this.readyState == 4 && this.status == 200) { | |
var json = JSON.parse(this.responseText); | |
sendMsgFinal("descarta"); | |
resetFormOcorrencia(); | |
document.getElementById('ocoModal').style.display = 'none'; | |
alert("OCORRENCIA DESCARTADA COM SUCESSO !"); | |
document.getElementById("descartar").innerHTML = "Descartar"; | |
document.getElementById("descartar").disabled = false; | |
} | |
}; | |
document.getElementById("descartar").innerHTML = "Aguarde.."; | |
document.getElementById("descartar").disabled = true; | |
var objidOco = document.getElementById("idOco"); | |
var idOco = objidOco.getAttribute('value'); | |
var objnOp = document.getElementById("nomeOperador"); | |
var operador = objnOp.getAttribute('value'); | |
var idResp1 = document.getElementById("procedimento").value; | |
var idResp2 = document.getElementById("template").value; | |
// xhttp.open("GET", "https://script.google.com/macros/s/AKfycbziTdRkV1r6WFdUMoaBAugEkywspV6TqhPE8fTQnl2FOZ6Qn2E/exec?cmd=GravaOcorrencia&descarta=true&idOco=" + idOco + "&resposta1=" + idResp1 + "&resposta2=" + idResp2 + "&operador=" + operador, true); | |
xhttp.open("GET", "getdatalocal?comando=GravaOcorrencia&descarta=true&idOco=" + idOco + "&resposta1=" + idResp1 + "&resposta2=" + idResp2 + "&operador=" + operador, true); | |
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); | |
xhttp.send(""); | |
} | |
} | |
else | |
alert("Preencha o campo motivo e justifique o Descarte!"); | |
} | |
function myFunctionNav() { | |
var x = document.getElementById("myTopnav"); | |
if (x.className === "topnav") { | |
x.className += " responsive"; | |
} else { | |
x.className = "topnav"; | |
} | |
} | |
var solicitaLog = 0; | |
function login(login) { | |
var xhttp = new XMLHttpRequest(); | |
xhttp.onreadystatechange = function () { | |
if (this.readyState == 4) { | |
solicitaLog = 0; | |
} | |
}; | |
// xhttp.open("GET", "https://script.google.com/macros/s/AKfycbziTdRkV1r6WFdUMoaBAugEkywspV6TqhPE8fTQnl2FOZ6Qn2E/exec?cmd=Login&login="+login+"&ip=0", true); | |
xhttp.open("GET", "getdatalocal?comando=Login&login="+login+"&ip=0", true); | |
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); | |
xhttp.send(""); | |
} | |
function logout(login) { | |
var xhttp = new XMLHttpRequest(); | |
xhttp.onreadystatechange = function () { | |
if (this.readyState == 4) { | |
solicitaLog = 0; | |
} | |
}; | |
// xhttp.open("GET", "https://script.google.com/macros/s/AKfycbziTdRkV1r6WFdUMoaBAugEkywspV6TqhPE8fTQnl2FOZ6Qn2E/exec?cmd=Logout&login=" + login + "&ip=0", true); | |
xhttp.open("GET", "getdatalocal?comando=Logout&login=" + login + "&ip=0", true); | |
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); | |
xhttp.send(""); | |
} | |
function setoperacao() { | |
var status = document.getElementById("operacao").innerHTML; | |
var usuario = document.getElementById("myLogin").innerHTML; | |
if ((usuario != "LOGIN") && (usuario != "")) { | |
if (status == "QUERO TRABALHAR") { | |
solicitaLog = 1; | |
document.getElementById("operacao").innerHTML = "AGUARDE..."; | |
login(usuario); | |
} | |
if (status == "TRABALHANDO") { | |
solicitaLog = 1; | |
document.getElementById("operacao").innerHTML = "AGUARDE..."; | |
logout(usuario); | |
} | |
} | |
} | |
function getFila() | |
{ | |
if (onlyView==1) { | |
document.getElementById("operacao").innerHTML = "VISUALIZANDO"; | |
tamFila = 0; | |
myFila = 0; | |
return; | |
} | |
var xhttp = new XMLHttpRequest(); | |
xhttp.onreadystatechange = function () { | |
if (this.readyState == 4 && this.status == 200) { | |
var json = JSON.parse(this.responseText); | |
document.getElementById("Fila").innerHTML = "FILA OCORRENCIAS " + "(" + json.myFila +"/"+json.numFila + ") "; | |
if (solicitaLog == 0) { | |
document.getElementById("operacao").innerHTML = json.status; | |
} | |
var status = document.getElementById("operacao").innerHTML; | |
if (status == "TRABALHANDO") { | |
if (json.numFila != "0") { | |
tamFila = parseInt(json.numFila); | |
myFila = parseInt(json.myFila); | |
if (document.getElementById('ocoModal').style.display != 'block') { | |
getVideoOcorrencia(); | |
} | |
} | |
else { | |
tamFila = 0; | |
myFila = 0; | |
} | |
} | |
else { | |
tamFila = 0; | |
myFila = 0; | |
} | |
} | |
}; | |
var usuario = document.getElementById("myLogin").innerHTML; | |
// xhttp.open("GET", "https://script.google.com/macros/s/AKfycbziTdRkV1r6WFdUMoaBAugEkywspV6TqhPE8fTQnl2FOZ6Qn2E/exec?cmd=F2ila&login="+usuario, true); | |
xhttp.open("GET", "getdatalocal?comando=F2ila&login="+usuario, true); | |
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); | |
xhttp.send(""); | |
} | |
function gogo2() | |
{ | |
getFila() | |
setTimeout(gogo2, to * 1000); | |
} | |
function refreshimg(img) | |
{ | |
} | |
function imgRedirect(img) | |
{ | |
} | |
function errorloadimg(img) { | |
var d = new Date(), | |
dummy = d.getTime(); | |
var newurl = 'getresource?r=atualli.png&'; | |
var obj = img, | |
s_rc = obj.getAttribute('src'), | |
pure_src = s_rc.substring(s_rc.indexOf('c='), s_rc.indexOf('c=') + 4); | |
obj.setAttribute('src',newurl+pure_src + '&' + dummy); | |
//obj.nextSibling.innerHTML = obj.getAttribute('src'); | |
} | |
var resx = 1000; | |
var resy = 1000; | |
function binaryToDataURL(inputArray){ | |
let TYPED_ARRAY = new Uint8Array(inputArray); | |
const STRING_CHAR = String.fromCharCode.apply(null, TYPED_ARRAY); | |
let base64String = btoa(STRING_CHAR); | |
var uri = 'data:image/jpeg;base64,' + base64String; | |
return uri; | |
} | |
var canvasx=480; | |
var canvasy=320; | |
var urlBase = '<?URL?>' | |
async function playframe(img,blob) | |
{ | |
/* const ArrayBuffer = await blob.arrayBuffer(); | |
const src = binaryToDataURL(ArrayBuffer); | |
img.src = src; | |
img.onload = function () { | |
var ids = this.id; | |
var cam = "cvc" + ids.substring(3, 5); | |
var c = document.getElementById(cam); | |
var ctx = c.getContext("2d"); | |
var resx = 720; //this.width | |
var resy = 480; //this.height; | |
c.setAttribute('width', resx); | |
c.setAttribute('height', resy); | |
ctx.drawImage(this, 0, 0, resx, resy); | |
}; */ | |
// const ArrayBuffer = await blob.arrayBuffer(); | |
// let TYPED_ARRAY = new Uint8Array(ArrayBuffer); | |
var fileReader = new FileReader(); | |
fileReader.onload = function(event) { | |
ArrayBuffer = event.target.result; | |
let TYPED_ARRAY = new Uint8Array(ArrayBuffer); | |
// let TYPED_ARRAY = new Uint16Array(ArrayBuffer); | |
var ids = img.id; | |
var cam = "cvc" + ids.substring(3, 5); | |
var c = document.getElementById(cam); | |
var ctx = c.getContext("2d"); | |
var resx = canvasx; | |
var resy = canvasy; | |
c.setAttribute('width', resx); | |
c.setAttribute('height', resy); | |
const imageData = ctx.createImageData(resx, resy); | |
// Iterate through every pixel | |
let j=0; | |
/* | |
const m = new Uint16Array(3); | |
let p = new Uint16Array(3); | |
m[0] = 0xF800; | |
m[1] = 0x07E0; | |
m[2] = 0x001F; | |
for (let i = 0; i < imageData.data.length; i += 4) { | |
// Modify pixel data | |
const pixel = TYPED_ARRAY[j]; | |
p[0] = (pixel & m[0]) >> 11; | |
p[1] = (pixel & m[1]) >> 5; | |
p[2] = (pixel & m[2]); | |
imageData.data[i + 0] = p[0]; // R value | |
imageData.data[i + 1] = p[1]; // G value | |
imageData.data[i + 2] = p[2]; // B value | |
imageData.data[i + 3] = 255; // A value | |
j++; | |
} | |
*/ | |
for (let i = 0; i < imageData.data.length; i += 4) { | |
// Modify pixel data | |
imageData.data[i + 0] = TYPED_ARRAY[j + 2]; // R value | |
imageData.data[i + 1] = TYPED_ARRAY[j + 1]; // G value | |
imageData.data[i + 2] = TYPED_ARRAY[j + 0]; // B value | |
imageData.data[i + 3] = 255; // A value | |
j+=3; | |
} | |
ctx.putImageData(imageData, 0, 0); | |
} | |
fileReader.readAsArrayBuffer(blob); | |
} | |
async function playstream(img) | |
{ | |
img.setAttribute("data-completed", 0); | |
var cam = img.id.substring(3, 5); | |
var newurl = urlBase + "c=" + cam + "&resx=" + canvasx + "&resy=" + canvasy ; | |
let wnewurl = newurl.replace("http","ws"); | |
wnewurl = wnewurl.replace("getcamera","getstream"); | |
// wnewurl = wnewurl.replace("getcamera","stream"); | |
var ws = new WebSocket(wnewurl); | |
ws.onopen = function () { | |
console.log("Message to send"); | |
img.setAttribute("data-completed", 0); | |
}; | |
ws.onmessage = function (evt) { | |
playframe(img,evt.data); | |
}; | |
ws.onclose = function () { | |
// websocket is closed. | |
console.log("Connection is closed..."); | |
img.setAttribute("data-completed", -1); | |
}; | |
} | |
async function preload(img) | |
{ | |
var imp = function(img) { | |
var cam = img.id.substring(3, 5); | |
var newurl = urlBase + "c=" + cam; | |
var xhttp = new XMLHttpRequest(); | |
xhttp.onreadystatechange = function () | |
{ | |
if (this.readyState == 4 && this.status == 200) | |
{ | |
var json = this.response; | |
var reader = new FileReader(); | |
reader.onloadend = function () | |
{ | |
if (reader.result.length > 0) | |
{ | |
img.src = reader.result; | |
img.onload = function () | |
{ | |
var ids = this.id; | |
var cam = "cvc" + ids.substring(3, 5); | |
var c = document.getElementById(cam); | |
var ctx = c.getContext("2d"); | |
c.setAttribute('width', canvasx); | |
c.setAttribute('height', canvasy); | |
ctx.drawImage(this, 0, 0, canvasx, canvasy); | |
} | |
} | |
} | |
reader.readAsDataURL(json); | |
} | |
}; | |
xhttp.open("GET", newurl, true); | |
xhttp.responseType = 'blob'; | |
xhttp.send(null); | |
} | |
imp(img); | |
} | |
async function playget(img) | |
{ | |
var imp = function(img) { | |
img.src = img.src; | |
img.setAttribute("data-completed", -1); | |
img.onload = function () { | |
var ids = this.id; | |
var cam = "cvc" + ids.substring(3, 5); | |
var c = document.getElementById(cam); | |
var ctx = c.getContext("2d"); | |
c.setAttribute('width', canvasx); | |
c.setAttribute('height', canvasy); | |
ctx.drawImage(this, 0, 0, canvasx, canvasy); | |
} | |
} | |
imp(img); | |
} | |
function gogo() { | |
var pix = document.getElementsByClassName('refr'); | |
for (var i = 0; i < pix.length; i++) { | |
var img = pix[i]; | |
if (!img.hasAttribute("data-completed") || img.getAttribute("data-completed")<0) | |
{ | |
if(first==0) | |
{ | |
playget(img); | |
} | |
if(first==1) | |
{ | |
preload(img); | |
} | |
if(first>1) | |
{ | |
playstream(img); | |
} | |
} | |
} | |
if(first<=1) { | |
setTimeout(gogo, 1); | |
} else { | |
setTimeout(gogo, 500); | |
} | |
first++; | |
} | |
function iniciaPagina() | |
{ | |
const urlParams = new URLSearchParams(window.location.search); | |
const myParam = urlParams.get('view'); | |
if (myParam) | |
onlyView = 1; | |
gogo2(); | |
// document.getElementById("Fila").setAttribute('onclick', "document.getElementById('ocoModal').style.display = 'block'; getVideoOcorrencia();"); | |
gogo(); | |
let cliente=document.getElementById("clientelabel").innerHTML; | |
cliente=cliente.trim(); | |
var novaGrade=getCookie("GRADE-"+cliente); | |
if(novaGrade) | |
changeGrade(novaGrade); | |
else | |
changeGrade("Auto"); | |
setCookie("CLIENTE",cliente,10); | |
// selecionaOperador(getCookie("LOGIN")); | |
// document.getElementById("Fila").setAttribute('onclick', "getVideoOcorrencia();"); | |
} | |
//Make the DIV element draggagle: | |
dragElement(document.getElementById("ocoModal")); | |
function dragElement(elmnt) { | |
var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0; | |
if (document.getElementById(elmnt.id + "header")) { | |
/* if present, the header is where you move the DIV from:*/ | |
document.getElementById(elmnt.id + "header").onmousedown = dragMouseDown; | |
} else { | |
/* otherwise, move the DIV from anywhere inside the DIV:*/ | |
elmnt.onmousedown = dragMouseDown; | |
} | |
function dragMouseDown(e) { | |
e = e || window.event; | |
//e.preventDefault(); | |
// get the mouse cursor position at startup: | |
pos3 = e.clientX; | |
pos4 = e.clientY; | |
var elementId = e.srcElement.id; | |
if (elementId != "template") { | |
document.onmouseup = closeDragElement; | |
// call a function whenever the cursor moves: | |
document.onmousemove = elementDrag; | |
} | |
} | |
function elementDrag(e) { | |
e = e || window.event; | |
//e.preventDefault(); | |
// calculate the new cursor position: | |
pos1 = pos3 - e.clientX; | |
pos2 = pos4 - e.clientY; | |
pos3 = e.clientX; | |
pos4 = e.clientY; | |
// set the element's new position: | |
elmnt.style.top = (elmnt.offsetTop - pos2) + "px"; | |
elmnt.style.left = (elmnt.offsetLeft - pos1) + "px"; | |
} | |
function closeDragElement() { | |
/* stop moving when mouse button is released:*/ | |
document.onmouseup = null; | |
document.onmousemove = null; | |
} | |
} | |
</script> | |
</body> | |
</html> | |