Advertisement
Guest User

Untitled

a guest
Dec 16th, 2016
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.71 KB | None | 0 0
  1. index.html
  2.  
  3. <!DOCTYPE html>
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
  7.  
  8.  
  9. <meta name="format-detection" content="telephone=no">
  10. <meta name="msapplication-tap-highlight" content="no">
  11. <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
  12.  
  13. <!-- ESTILOS -->
  14.  
  15. <link href="css/general.css" rel="stylesheet" />
  16. <link href="css/bootstrap.css" rel="stylesheet" />
  17. <link href="css/jquery.mobile-1.4.5.css" rel="stylesheet" />
  18.  
  19. <!--<link rel="stylesheet" type="text/css" href="css/index.css">-->
  20.  
  21.  
  22. <!-- SCRIPTS -->
  23. <script src="scripts/jquery-2.1.4.js" type="text/javascript"></script>
  24. <script src="scripts/jquery.mobile-1.4.5.min.js" type="text/javascript"></script>
  25. <script src="scripts/bootstrap.js" type="text/javascript"></script>
  26. <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?v3"></script>
  27. <script src="scripts/general.js" type="text/javascript"></script>
  28.  
  29.  
  30. <title>Ubicacion</title>
  31. </head>
  32. <body>
  33.  
  34. <!-- INICIAR SESION -->
  35. <div id="iniciarSesion" data-role="page">
  36. <header id="encabezado">
  37. <div class="row">
  38. <div class="col-sm-10">
  39. <h1 id="titulo">Iniciar sesi&oacute;n</h1>
  40. </div>
  41. <div class="col-sm-2">
  42.  
  43. </div>
  44. </div>
  45.  
  46. </header>
  47. <!--<header data-role="header"></header>-->
  48. <div data-role="content">
  49. <toast></toast>
  50. <div class="row">
  51. <div class="col-sm-12">
  52. <form>
  53. <div class="row form-group">
  54. <div class="col-sm-12 text-center">
  55. <input type="text" id="usuario" placeholder="Usuario" class="form-control" />
  56. &nbsp;
  57. <input type="password" id="pass" placeholder="Contrase&ntilde;a" class="form-control" autocomplete="off" />
  58. <p>&nbsp;</p>
  59. <a role="button" id="iniciar" class="btn btn-primary btn-lg" data-transition="flip">Iniciar sesi&oacute;n</a>
  60. </div>
  61. <p>&nbsp;</p>
  62. <div class="col-sm-12 text-center">
  63. <a href="#registro" role="button" id="crearCuenta" class="btn btn-link btn-lg" data-transition="slide">O crea una cuenta</a>
  64. </div>
  65. </div>
  66. </form>
  67.  
  68. </div>
  69. </div>
  70.  
  71. </div>
  72.  
  73. <footer>
  74. <div class="row">
  75. <div class="col-sm-12 text-right">
  76. <p class="pie">Universidad Tecnol&oacute;gica Fidel Vel&aacute;zquez | <span id="year"></span></p>
  77. </div>
  78. </div>
  79. </footer>
  80. </div>
  81. <!-- /INICIAR SESION -->
  82.  
  83. <!-- REGISTRO -->
  84. <div id="registro" data-role="page">
  85. <header id="encabezado">
  86. <div class="row">
  87. <div class="col-sm-10">
  88. <h1 id="titulo">Crea una cuenta</h1>
  89. </div>
  90. <div class="col-sm-2">
  91.  
  92. </div>
  93. </div>
  94.  
  95. </header>
  96. <div data-role="content">
  97. <div class="row">
  98. <div class="col-sm-12">
  99. <form id="registroUser">
  100. <div class="form-group text-center">
  101. <input type="text" name="user" id="usuarioR" class="form-control" placeholder="Usuario" />
  102. &nbsp;
  103. <input type="email" name="email" id="email" class="form-control" placeholder="Correo electrónico" />
  104. &nbsp;
  105. <input type="password" name="pass" id="passR" class="form-control" placeholder="Contraseña" />
  106. &nbsp;
  107. <input type="password" name="pass2" id="pass2" class="form-control" placeholder="Repetir contraseña" />
  108. <p>&nbsp;</p>
  109. <a role="button" class="btn btn-primary btn-md" id="registrarse">Registrarse</a>
  110. </div>
  111. </form>
  112. </div>
  113. <div class="col-sm-12 text-center">
  114. <a href="#iniciarSesion" role="button" class="btn btn-link btn-lg" id="iniciarS" data-transition="slide" data-direction="reverse">O inicia sesi&oacute;n</a>
  115. </div>
  116. </div>
  117. </div>
  118.  
  119. <toast></toast>
  120. <p>&nbsp;</p>
  121.  
  122. <footer>
  123. <div class="row">
  124. <div class="col-sm-12 text-right">
  125. <p class="pie">Universidad Tecnol&oacute;gica Fidel Vel&aacute;zquez | <span id="year"></span></p>
  126. </div>
  127. </div>
  128. </footer>
  129. </div>
  130.  
  131.  
  132. <!-- PRINCIPAL -->
  133. <div id="principal" data-role="page">
  134.  
  135. <header id="encabezado">
  136. <div class="row">
  137. <div class="col-sm-10">
  138. <h1 id="titulo">Tu informaci&oacute;n</h1>
  139. </div>
  140. <div class="col-sm-2">
  141. <a role="button" class="btn" id="logout"><img src="images/logout.png" class="img-responsive" alt="Icon Logout" /></a>
  142. </div>
  143. </div>
  144.  
  145. </header>
  146. <div data-role="content">
  147. <div class="row">
  148. <div class="col-sm-12">
  149. <h3 id="nombre">Usuario:</h3>
  150. <p>Latitud: <span id="latitud"></span></p>
  151. <p>Longitud: <span id="longitud"></span></p>
  152. <!--<p>Precisi&oacute;n: <span id="precision"></span></p>-->
  153. <div class="row">
  154. <div class="col-sm-12 text-center">
  155. <div id="map"></div>
  156.  
  157. </div>
  158. </div>
  159. <toast></toast>
  160. </div>
  161.  
  162. <p>&nbsp;</p>
  163. <!--<div class="col-sm-12 text-center">
  164. <a href="#buscar" role="button" class="btn btn-primary btn-lg" data-transition="slide">Buscar amigos</a>
  165. </div>-->
  166. </div>
  167.  
  168. <p>&nbsp;</p>
  169. <div id="buscar">
  170. <div class="row">
  171. <div class="col-sm-12">
  172. <form>
  173. <input type="search" id="buscarUser" class="form-control" />
  174. &nbsp;
  175. <a role="button" class="btn btn-primary btn-lg" id="buscarU">Buscar</a>
  176. </form>
  177. <toast></toast>
  178. </div>
  179. &nbsp;
  180. <div class="col-sm-12" id="infoUser">
  181. <h3 id="nombreAmigo"></h3>
  182. <p>Latitud: <span id="latitudA"></span></p>
  183. <p>Longitud: <span id="longitudA"></span></p>
  184.  
  185. </div>
  186. <p>&nbsp;</p>
  187.  
  188. </div>
  189. </div>
  190. </div>
  191.  
  192. <footer>
  193. <div class="row">
  194. <div class="col-sm-12 text-right">
  195. <p class="pie">Universidad Tecnol&oacute;gica Fidel Vel&aacute;zquez | <span id="year"></span></p>
  196. </div>
  197. </div>
  198. </footer>
  199.  
  200. </div><!-- fin page -->
  201.  
  202.  
  203.  
  204.  
  205.  
  206. <script type="text/javascript" src="cordova.js"></script>
  207. <script type="text/javascript" src="scripts/platformOverrides.js"></script>
  208. <script type="text/javascript" src="scripts/index.js"></script>
  209.  
  210.  
  211. </body>
  212. </html>
  213.  
  214. var ruta = "http://ubicacion.16mb.com/";
  215.  
  216.  
  217. //######################################################################
  218. //FUNCIONES
  219. function header(titulo) {
  220. $('#encabezado').html('<h1>'+ titulo +'</h1>');
  221. }
  222.  
  223. function getYear() {
  224. //Para obtener el año
  225. var fecha = new Date();
  226. var annio = fecha.getFullYear();
  227. $('#year').html(annio);
  228. }
  229.  
  230. function estaConectado() {
  231. //Funcion para validar si esta conectado a Internet
  232. var conexion = navigator.connection.type;
  233.  
  234. //var tipos = {};
  235. //tipos[connection.UNKNOWN] = 'Unknown connection';
  236. //tipos[connection.ETHERNET] = 'Ethernet connection';
  237. //tipos[connection.WIFI] = 'WiFi connection';
  238. //tipos[connection.CELL_2G] = 'Cell 2G connection';
  239. //tipos[connection.CELL_3G] = 'Cell 3G connection';
  240. //tipos[connection.CELL_4G] = 'Cell 4G connection';
  241. //tipos[connection.CELL] = 'Cell generic connection';
  242. //tipos[connection.NONE] = 'No network connection';
  243.  
  244. if (conexion == 'none' || conexion == 'unknown') {
  245. alert('Error con la Conexion de Internet');
  246. return false;
  247. }
  248. else {
  249. return true;
  250. }
  251. };
  252.  
  253. var toast = function (msg, color) {
  254. //Alerta
  255. $("<div class='ui-loader ui-overlay-shadow ui-body-e ui-corner-all'><h3>" + msg + "</h3></div>")
  256. .css({
  257. display: "block",
  258. opacity: 0.90,
  259. position: "fixed",
  260. padding: "5px",
  261. "text-align": "center",
  262. width: "200px",
  263. left: ($(window).width() - 284) / 2,
  264. top: $(window).height() / 2 - 20,
  265. background: color
  266. })
  267. .appendTo($.mobile.pageContainer).delay(1500)
  268. .fadeOut(400, function () {
  269. $(this).remove();
  270. });
  271. }
  272.  
  273. //Colores para el toast
  274. var danger = '#FE2E2E';
  275. var success = '#3ADF00';
  276. var warning = '#F7D358';
  277.  
  278.  
  279. function iniciarSeion(user, pass) {
  280. //Funcion para iniciar sesion
  281. //if (estaConectado()) {
  282. //var datos = { user: user, pass: pass };
  283. // }
  284.  
  285. $.ajax({
  286. type: 'post',
  287. url: ruta + 'login',
  288. data: { user: user, pass: pass },
  289. dataType: 'json'
  290. }).done(function (respuesta) {
  291. console.log(respuesta);
  292.  
  293. if (respuesta == "0") {
  294. toast('El usuario o la contraseña son incorrectos', danger);
  295. }
  296. else {
  297. toast('Bienvenido :)', success);
  298. localStorage.setItem('sesion', respuesta.usuario);
  299. localStorage.setItem('id', respuesta.id);
  300. $.mobile.changePage('#principal', { transition: "slidedown" });
  301. }
  302. }).fail(function (xhr, status, error) {
  303. alert("Error: " + xhr + " - " + status + " - " + error);
  304. });
  305. }
  306.  
  307. function registro(usuario, correo, pass) {
  308. idUser = Math.floor((Math.random() * 100) + 1); // Genera un numero aleatorio para el ID del usuario
  309. $.post(ruta + "registro", {
  310. idUser: idUser,
  311. user: usuario,
  312. email: correo,
  313. pass, pass
  314. }, function (respuesta) {
  315. if (respuesta == "1") {
  316. toast('¡Ya estas registrado! :D', success);
  317. localStorage.setItem('sesion', usuario);
  318. localStorage.setItem('id', idUser);
  319. $.mobile.changePage('#principal', {transition: "slidedown"});
  320. } else {
  321. toast('El usuario o el email ya estan registrados', warning);
  322. return;
  323. }
  324. });
  325. }
  326.  
  327. function ubicacion() {
  328. // onSuccess llamada
  329. // Este metodo acepta una 'position' object, que contiene las coordenadas GPS actuales del dispositivo
  330. // if (estaConectado()) {
  331. function onSuccess(position) {
  332. var latitud = position.coords.latitude;
  333. var longitud = position.coords.longitude;
  334.  
  335. $('#latitud').html(latitud);
  336. $('#longitud').html(longitud);
  337.  
  338. localStorage.setItem('latOrigen', latitud);
  339. localStorage.setItem('lonOrigen', longitud);
  340. //LLama a la funcion papa y pasa como parametro la latitud y longitud
  341. mapaPropio(latitud, longitud);
  342.  
  343. // Llama la funcion que inserta la ubicacion y la fecha
  344. insertarUbicacion(latitud, longitud);
  345. }
  346.  
  347. // onError Muestra el código y msj de error
  348. //
  349. function onError(error) {
  350. alert('code: ' + error.code + 'n' +
  351. 'message: ' + error.message + 'n');
  352. }
  353.  
  354. // Opciones: Muestra un error if la actualizacion no es recevida cada 30 segundos
  355. //
  356. //var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { timeout: 30000 });
  357. navigator.geolocation.getCurrentPosition(onSuccess, onError, { timeout: 30000 });
  358. // }
  359.  
  360.  
  361.  
  362. }
  363.  
  364. function mapaPropio(latitud, longitud) {
  365. //Funcion para hacer la imagen del mapa con base a las coordenadas (latitud y longitud)
  366. var idMapa = document.getElementById('map');
  367.  
  368. var gLanLngO = new google.maps.LatLng(latitud, longitud); // Latitud y Longitud de Origen
  369.  
  370.  
  371. var objConfigO = {
  372. zoom: 17,
  373. center: gLanLngO
  374. }
  375.  
  376. var gMapa = new google.maps.Map(idMapa, objConfigO); //Render del mapa
  377.  
  378.  
  379. //Marker Origen
  380. var objConfigMarker = {
  381. position: gLanLngO,
  382. map: gMapa,
  383. title: "Usted esta aqui"
  384. }
  385. var gMarkerOri = new google.maps.Marker(objConfigMarker);
  386.  
  387.  
  388. //localStorage.setItem('ubiOrigen', gLanLngO);
  389.  
  390. };
  391.  
  392.  
  393. //function mapaAmigo(latitud, longitud, gLanLngO) {
  394. // var idMapa = document.getElementById('map');
  395.  
  396. // //var gLanLngD = new google.maps.LatLng(latitud, longitud); // Latitud y Longitud de Destino
  397.  
  398. //}
  399.  
  400. function direcciones(latOrigen, lonOrigen, latDestino, lonDestino) {
  401. //function direcciones() {
  402.  
  403. var idMapa = document.getElementById('map');
  404.  
  405. var gLanLngO = new google.maps.LatLng(latOrigen, lonOrigen); // Latitud y Longitud de Origen
  406. var gLanLngD = new google.maps.LatLng(latDestino, lonDestino); // Latitud y Longitud de Destino
  407. //alert(gLanLngO, gLanLngD);
  408. //return;
  409. var objConfigO = {
  410. zoom: 17,
  411. center: gLanLngO
  412. }
  413.  
  414. var gMapa = new google.maps.Map(idMapa, objConfigO); //Render del mapa
  415.  
  416.  
  417. //Marker Origen
  418. var objConfigMarker = {
  419. position: gLanLngO,
  420. map: gMapa,
  421. title: "Usted esta aqui"
  422. }
  423. var gMarkerO = new google.maps.Marker(objConfigMarker);
  424.  
  425.  
  426.  
  427. var objConfigD = {
  428. zoom: 17,
  429. center: gLanLngD
  430. }
  431.  
  432. var gMapa = new google.maps.Map(idMapa, objConfigD); //Render del mapa
  433.  
  434. //Marker Destino
  435. //var gLanLngD = new google.maps.LatLng("19.592541", "-99.2457444"); // Latitud y longitud de Destino
  436. // var gLanLngD = new google.maps.LatLng(latitud, longitud); // Latitud y longitud de Destino
  437.  
  438. var objConfigMarkerD = {
  439. position: gLanLngD,
  440. map: gMapa,
  441. title: "Este es el destino"
  442. }
  443. var gMarkerDest = new google.maps.Marker(objConfigMarkerD);
  444.  
  445.  
  446.  
  447.  
  448. // Funcion para hacer la ruta
  449. //var gMapa = document.getElementById('map');
  450. /* Como parametros:
  451. * gLanLngO = latitud y longitud de Origen
  452. * gLanLngD = latitud y longitud de Destino
  453. * gMapa = Mapa de renderizado
  454. */
  455.  
  456. var objConfigDR = {
  457. // Objeto de configuracion del DirectionRenderer
  458. map: gMapa
  459. }
  460. var objConfigDS = {
  461. // Objeto de configuracion del DirectionService
  462. origin: gLanLngO, // Ubicacion del usuario
  463. destination: gLanLngD, // Ubicacion del destino
  464. travelMode: google.maps.TravelMode.WALKING
  465. }
  466.  
  467. var ds = new google.maps.DirectionsService() // Obitiene coordenadas
  468. var dr = new google.maps.DirectionsRenderer(objConfigDR) // Traduce coordenadas a la ruta visible
  469.  
  470. ds.route(objConfigDS, trazar) // Funcion para marcar la ruta dentro del mapa
  471. function trazar(resultados, status) {
  472. // Funcion para mostrar la linea entre A y B
  473. if (status == 'OK') {
  474. dr.setDirections(resultados);
  475. } else {
  476. toast('Error: ' + status, danger);
  477. }
  478. }
  479.  
  480.  
  481. $('#cargando').html('');
  482. }
  483.  
  484. function insertarUbicacion(latitud, longitud) {
  485. // Funcion para insertar los datos de ubicacion a la bd
  486. var idUser = localStorage.getItem('id');
  487.  
  488. $.post(ruta + "ubicacion", { idUser: idUser, latitud: latitud, longitud: longitud }, function (respuesta) {
  489. if (respuesta == "1") {
  490. toast('Ubicacion registrada :)', success);
  491. } else {
  492. toast('Error al registrar ubicación', danger);
  493. }
  494.  
  495. });
  496. }
  497.  
  498. $(function () {
  499.  
  500. getYear();//Llama a la funcion que obtiene y asigna el año al pie de pagina
  501.  
  502. if (localStorage.getItem('sesion') != null) {
  503. $.mobile.changePage('#principal');
  504. }
  505. });
  506.  
  507. //function bloqueBtnAtras() {
  508.  
  509. // console.log("PhoneGap is ready");
  510. //}
  511.  
  512. function backKeyDown(e) {
  513. navigator.app.exitApp(); // Sale de la app
  514. e.preventDefault(); // Deshabilita el boton atras del telefono
  515. }
  516.  
  517.  
  518. $(document).ready(function () {
  519. //TODO
  520. getYear();
  521.  
  522. //Funcion que al dar clic en el boton #iniciar se ejecutan las siguientes lineas
  523. $('#iniciar').click(function () {
  524. var usuario = $('#usuario').val().toUpperCase();
  525. var pass = $('#pass').val();
  526.  
  527. if (usuario == "" || usuario == null || pass == "" || pass == null) {
  528. toast('Hay campos vacios', warning);
  529. return false;
  530. } else {
  531. iniciarSeion(usuario, pass);
  532. }
  533. //alert(usuario + " - " + pass);
  534.  
  535. });
  536.  
  537. //Funcion que al dar clic en registro, se inserta la informacion en la bd
  538. $('#registrarse').click(function () {
  539. var usuario = $('#usuarioR').val().toUpperCase();
  540. var email = $('#email').val().toUpperCase();
  541. var pass = $('#passR').val();
  542.  
  543. if (usuario == "" || pass == "" || email == "") {
  544. //Comprueba si los campos estan vacios, manda una alerta de que hay campos vacios
  545. toast('Hay campos vacios', warning);
  546. return false;
  547. } else {
  548. var pass2 = $('#pass2').val();
  549. if (pass != pass2) {
  550. // Si las contraseñas no coinciden
  551. //Se vuelven en blanco los campos pass y pass2
  552. //Se termina la condicion
  553. toast('Las contraseñas no coinciden', warning);
  554. $('#passR').val('');
  555. $('#pass2').val('');
  556. return false;
  557. } else {
  558. registro(usuario, email, pass);
  559. }
  560. }
  561. });
  562.  
  563. $(document).on('pageshow', '#principal', function () {
  564. ubicacion(); // Llama a la funcion Ubicacion para obtener coordenadas y mapa
  565. $('#nombre').html("<h2>" + localStorage.getItem('sesion') + " tu ubicación actual es:");
  566. document.addEventListener("backbutton", backKeyDown, true);
  567.  
  568. //Cada que se muestra la pagina Principal
  569. //Se vaciará el campo de busqueda y las etiquetas de las coordenadas del amigo
  570. $('#buscarUser').val('');
  571. $('#nombreAmigo, #latitudA, #longitudA').text('');
  572. });
  573.  
  574.  
  575.  
  576. $('#buscarU').click(function () {
  577. //direcciones();
  578. var usuario = $('#buscarUser').val().toUpperCase();
  579.  
  580. if (usuario == "") {
  581. toast('El campo de búsqueda está vacío', warning);
  582. return false;
  583. }
  584. // alert(usuario);
  585. $.ajax({
  586. type: 'POST',
  587. url: ruta + 'buscar',
  588. data: { user: usuario },
  589. dataType: 'json'
  590. }).done(function (resultado) {
  591. //Funcion que obtiene los datos del amigo
  592. $('#cargando').html('<img src="../css/images/ajax-loader.gif" /><p>Trazando ruta</p>');
  593. if (resultado == "0") {
  594. toast('Ingresa un usuario válido', warning);
  595. return false;
  596. } else {
  597. $('#nombreAmigo').html("Las coordenadas de " + resultado.usuario + " son:");
  598. $('#latitudA').html(resultado.latitud);
  599. $('#longitudA').html(resultado.longitud);
  600. var latOrigen = localStorage.getItem('latOrigen');
  601. var lonOrigen = localStorage.getItem('lonOrigen');
  602. var latDestino = resultado.latitud;
  603. var lonDestino = resultado.longitud;
  604. direcciones(latOrigen, lonOrigen, latDestino, lonDestino);
  605. $('#cargando').html('');
  606. }
  607.  
  608. $('#buscarUser').val('');
  609.  
  610. }).fail(function (xhr, status, error) {
  611. toast('Error: ' + xhr + ' - ' + status + ' - ' + error, danger);
  612. });
  613. });
  614.  
  615.  
  616.  
  617. //Boton de cerrar sesion
  618. $('#logout').click(function () {
  619. localStorage.clear();
  620. $.mobile.changePage('#iniciarSesion', { transition: "slideup" });
  621. $('#usuario').val('');
  622. $('#pass').val('');
  623. });
  624. });
  625.  
  626. *{
  627. margin:0;
  628. padding:0;
  629. }
  630. a{
  631. text-shadow:none !important;
  632.  
  633. }
  634. body {
  635. width:97%;
  636. }
  637. div[data-role*="page"]{
  638. background: #265CFF !important;
  639. padding:0;
  640. width:100%;
  641. margin:0 auto;
  642. }
  643. header{
  644. background: #0040FF;
  645. box-shadow:0px 3px 1px black;
  646. padding:0 10px;
  647. margin: 0 0 15px 0 !important;
  648. float:left;
  649. width:100%;
  650. }
  651. p, h1, h2, h3{
  652. text-shadow:none;
  653. color:white !important;
  654. }
  655.  
  656. footer{
  657. background:none !important;
  658. border:none;
  659. }
  660. .btn-primary{
  661. background:#00A3D9 !important;
  662. border: none !important;
  663. color: white !important;
  664. text-shadow: none !important;
  665. box-shadow: 0px 2px 3px black !important;
  666. }
  667. .btn-link{
  668. color:white !important;
  669. }
  670. .pie{
  671. padding:5px;
  672. }
  673. #contenedor{
  674. padding:5px;
  675. }
  676. #logout{
  677. width:55px;
  678. }
  679. #map{
  680. width:300px;
  681. height:300px;
  682. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement