Commit f80a7642 by Manuel De la Penna

ajuste de interfaz y manejo de errores en busqueda de puntos

parent eb8a6522
......@@ -76,4 +76,8 @@
}
.no-padding{
padding: 0;
}
#point-1.error td input, #point-2.error td input{
color: #ffffff;
background-color: #d9534f;
}
\ No newline at end of file
......@@ -67,10 +67,15 @@
</nav>-->
<div class="container">
<div class="row">
<div id="botonera" class="col-xs-12">
<div id="info" class="col-xs-12 text-center">
<span id="version" class="label label-default"></span>
<span id="tarea" class="label label-primary"></span>
<span id="usuario" class="label label-success"></span>
</div>
</div>
<div class="row">
<div id="botonera" class="col-xs-12">
<button type="button" class="btn btn-primary btn-sm" data-toggle="modal" data-target="#subir-modal"><span class="glyphicon glyphicon-cloud-upload"></span> Subir</button>
<button id="logout" type="button" class="btn btn-danger btn-sm pull-right">
Logout
<span class="glyphicon glyphicon-log-out"></span>
......@@ -84,6 +89,8 @@
<div id="required-data" class="alert alert-danger hidden">
Completar campos obligatorios.
</div>
<div id="punto-lectura-error-1" class="alert alert-danger hidden"></div>
<div id="punto-lectura-error-2" class="alert alert-danger hidden"></div>
<div id="server-response-error" class="alert alert-danger hidden"></div>
<div id="server-response-info" class="alert alert-info hidden"></div>
<div id="server-response-success" class="alert alert-success hidden"></div>
......@@ -158,14 +165,14 @@
<div id="contenedor-puntos" class="col-xs-10">
<table id="tabla-puntos" class="table table-hover">
<tbody>
<tr>
<tr id="point-1">
<th>1</th>
<td><input type="text" id="pto-1-lat" placeholder=" -" readonly></td>
<td><input type="text" id="pto-1-long" placeholder=" -" readonly></td>
<td class="hidden"><input type="text" id="pto-1-datetime" placeholder=" -" readonly></td>
<th></th>
</tr>
<tr>
<tr id="point-2">
<th>2</th>
<td><input type="text" id="pto-2-lat" placeholder=" -" readonly></td>
<td><input type="text" id="pto-2-long" placeholder=" -" readonly></td>
......@@ -180,13 +187,10 @@
</div>
</div>
<div class="form-group">
<div class="col-xs-4">
<div class="col-xs-6">
<button id="anterior" type="button" class="btn btn-success"><span class="glyphicon glyphicon-backward"></span> Ant</button>
</div>
<div class="col-xs-4 text-center no-padding">
<button id="enviar-lecturas-server" type="button" class="btn btn-primary"><span class="glyphicon glyphicon-cloud-upload"></span> Subir</button>
</div>
<div class="col-xs-4">
<div class="col-xs-6">
<button id="siguiente" type="button" class="btn btn-primary pull-right">Sig <span class="glyphicon glyphicon-forward "></span></button>
</div>
</div>
......@@ -202,10 +206,35 @@
</div>
</div>
</div>
<!-- Modal -->
<div id="subir-modal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Subida de lecturas al servidor</h4>
</div>
<div class="modal-body">
<p>¿Confirma subida? Se eliminarán las lecturas del dispositivo y se reiniciará el numero de secuencia.</p>
</div>
<div class="modal-footer">
<button id="enviar-lecturas-server" type="button" class="btn btn-primary"><span class="glyphicon glyphicon-cloud-upload"></span> Subir</button>
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function () {
AppCache.habilitar();
Geolocator.getAccessToLocation({enableHighAccuracy: false, maximumAge: 0, timeout: 5000 });
Geolocator.getAccessToLocation({enableHighAccuracy: false, maximumAge: 0, timeout: 15000 }, function(where){
$('#punto-lectura-error-1').removeClass("hidden");
$('#punto-lectura-error-1').text('(' + where + ') Debe permitir el acceso al GPS.');
setTimeout(function(){
$('#punto-lectura-error-1').addClass("hidden");
}, 15000);
});
Interfaz.loadReadings(); /*levanta historia de lecturas (ocultas)*/
Interfaz.addListeners();
Interfaz.setModoLadoView();
......
var Geolocator = {};
Geolocator.getAccessToLocation=function(geoOptions) {
Geolocator.getAccessToLocation=function(geoOptions, callbackFunctionErr) {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {}, errorPosition(1), geoOptions);
navigator.geolocation.getCurrentPosition(function(position) {}, function(){callbackFunctionErr(1)}, geoOptions);
} else {
alert("Geolocation is not supported by this browser.");
}
}
Geolocator.getCurrentLocation=function(callbackFunction, secuencia, geoOptions) {
Geolocator.getCurrentLocation=function(callbackFunction, callbackFunctionErr, secuencia, numeroPunto, geoOptions) {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
if(callbackFunction){
callbackFunction(position, secuencia);
}
}, errorPosition(2), geoOptions);
callbackFunction(position, secuencia, numeroPunto);
},
function(){
callbackFunctionErr(2, secuencia, numeroPunto);
}, geoOptions);
} else {
alert("Geolocation is not supported by this browser.");
}
}
Geolocator.watchLocation=function(callbackFunction, geoOptions) {
Geolocator.watchLocation=function(callbackFunction, callbackFunctionErr, geoOptions) {
if (navigator.geolocation) {
navigator.geolocation.watchPosition(function(position) {
if(callbackFunction){
callbackFunction(position);
}
}, errorPosition(3), geoOptions);
}, callbackFunctionErr(3), geoOptions);
} else {
alert("Geolocation is not supported by this browser.");
}
}
function errorPosition(where){
return function(error) {
alert('Error al obtener posición,por favor active el GPS y reinicie la aplicación. ('+where+'): '+error.message);
}
}
\ No newline at end of file
......@@ -57,6 +57,8 @@ Interfaz.resetForm=function(){
$('#pto-2-long').val("");
$('#pto-2-datetime').val("");
$('#lado').change();
$("#point-1").removeClass("error");
$("#point-2").removeClass("error");
this.enableDisableNavigationButtons();
}
Interfaz.loadForm=function(positionObject){
......@@ -69,6 +71,12 @@ Interfaz.loadForm=function(positionObject){
$('#observaciones').val(positionObject.observaciones);
$("#obtener-posicion").prop("disabled",true);
var puntos = positionObject.puntos;
if(puntos[0].latitud == 0 && puntos[0].latitud == 0){
$("#point-1").addClass("error");
}
if(puntos[1].latitud == 0 && puntos[1].latitud == 0){
$("#point-2").addClass("error");
}
$('#pto-1-lat').val(puntos[0].latitud);
$('#pto-1-long').val(puntos[0].longitud);
$('#pto-1-datetime').val(puntos[0].datetime);
......@@ -163,6 +171,8 @@ Interfaz.addListeners=function(){
});
$("#secuencia").change(function(){
$("#required-data").addClass('hidden');
$("#point-1").removeClass("error");
$("#point-2").removeClass("error");
var secuenciaOld = parseInt($(this).prop('oldValue'));
if(secuenciaOld){
var positionObject = self.createPositionObjectFromForm(secuenciaOld);
......@@ -195,14 +205,24 @@ Interfaz.addListeners=function(){
$("#obtener-posicion").click(function(){
var secuencia = $("#secuencia").val();
if(secuencia){
var callBackFun = function(position, sec){
self.showPosition(position,'#pto-1-lat','#pto-1-long', '#pto-1-datetime', sec);
var callBackFun = function(position, sec, numeroPunto){
numeroPunto = numeroPunto.toString();
self.showPosition(position,'#pto-' + numeroPunto + '-lat','#pto-' + numeroPunto + '-long', '#pto-' + numeroPunto + '-datetime', sec);
$("#point-" + numeroPunto).removeClass("error");
};
Geolocator.getCurrentLocation(callBackFun, secuencia, {enableHighAccuracy: true, maximumAge: 0, timeout: 5000 });
var callBackFun = function(position, sec){
self.showPosition(position,'#pto-2-lat','#pto-2-long', '#pto-2-datetime', sec);
var callBackFunErr = function(where, sec, numeroPunto){
numeroPunto = numeroPunto.toString();
var position = {coords: {latitude: 0, longitude: 0}};
self.showPosition(position,'#pto-' + numeroPunto + '-lat','#pto-' + numeroPunto + '-long', '#pto-' + numeroPunto + '-datetime', sec);
$("#point-" + numeroPunto).addClass("error");
$('#punto-lectura-error-' + numeroPunto).removeClass("hidden");
$('#punto-lectura-error-' + numeroPunto).text('(' + where + ') Error al obtener la posición N°' + numeroPunto + '.');
setTimeout(function(){
$('#punto-lectura-error-' + numeroPunto).addClass("hidden");
}, 3000);
};
Geolocator.getCurrentLocation(callBackFun, secuencia, {enableHighAccuracy: false, maximumAge: 0, timeout: 5000 });
Geolocator.getCurrentLocation(callBackFun, callBackFunErr, secuencia, 1, {enableHighAccuracy: true, maximumAge: 0, timeout: 15000 });
Geolocator.getCurrentLocation(callBackFun, callBackFunErr, secuencia, 2, {enableHighAccuracy: false, maximumAge: 0, timeout: 5000 });
}
});
$("#modo-lado").click(function(){
......@@ -282,6 +302,7 @@ Interfaz.addListeners=function(){
$(alertId).text(result.message);
removeAlert(alertId, 3000);
$.LoadingOverlay("hide", true);
$('#subir-modal').modal('hide');
},
error: function(err) {
console.log("err: ", err);
......@@ -290,6 +311,7 @@ Interfaz.addListeners=function(){
alertId = '#server-response-error';
$(alertId).removeClass("hidden");
$(alertId).text('No se pudo conectar con el servidor.');
$('#subir-modal').modal('hide');
removeAlert(alertId, 3000);
}
})
......@@ -339,4 +361,9 @@ Interfaz.botonEnviar=function(){
Offline.on('down', function () {
$("#enviar-lecturas-server").prop("disabled", true);
});
}
Interfaz.mostrarError=function(error){
var alertId = '#server-response-error';
$(alertId).removeClass("hidden");
$(alertId).text(error);
}
\ No newline at end of file
CACHE MANIFEST
# Version 0.0.18
# Version 0.0.19
#--------------------------- HTMLs ---------------------------------
index.html
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment