var listado_GMT = { "1":["-720","(GMT-12:00) Línea de fecha internacional del oeste"], "2":["-660","(GMT-11:00) Isla Midway, Samoa"], "3":["-600","(GMT-10:00) Hawai"], "4":["-540","(GMT-09:00) Alaska"], "5":["-480","(GMT-08:00) Tijuana, Baja California"], "6":["-480","(GMT-08:00) Hora del Pacífico (EE.) Tijuana"], "7":["-420","(GMT-07:00) Hora de las Montañas (EE.)"], "8":["-420","(GMT-07:00) Chihuahua, La Paz, Mazatlán"], "9":["-420","(GMT-07:00) Arizona"], "10":["-420","(GMT-07:00) Chihuahua, La Paz, Mazatlán"], "11":["-360","(GMT-06:00) Guadalajara, ciudad de México, Monterrey"], "12":["-360","(GMT-06:00) Hora del centro (EE.)"], "13":["-360","(GMT-06:00) Saskatchewan"], "14":["-360","(GMT-06:00) Guadalajara, ciudad de México, Monterrey"], "15":["-360","(GMT-06:00) América central"], "16":["-300","(GMT-05:00) Hora del Este (EE. UU. y Canadá)"], "17":["-300","(GMT-05:00) Indiana (este)"], "18":["-300","(GMT-05:00) Bogotá, Lima, Quito"], "19":["-270","(GMT-04:30) Caracas"], "20":["-240","(GMT-04:00) Hora del Atlántico (Canadá)"], "21":["-240","(GMT-04:00) Georgetown, La Paz, San Juan"], "22":["-240","(GMT-04:00) Santiago"], "23":["-240","(GMT-04:00) Manao"], "24":["-240","(GMT-04:00) Asunción"], "25":["-210","(GMT-03:30) Terranova"], "26":["-180","(GMT-03:00) Montevideo"], "27":["-180","(GMT-03:00) Brasilia"], "28":["-180","(GMT-03:00) Georgetown"], "29":["-180","(GMT-03:00) Buenos Aires"], "30":["-180","(GMT-03:00) Groenlandia"], "31":["-180","(GMT-03:00) Buenos Aires"], "32":["-120","(GMT-02:00) Atlántico central"], "33":["-60", "(GMT-01:00) Azores"], "34":["-60", "(GMT-01:00) Islas de cabo Verde"], "35":["0", "(GMT 00:00) Islas Canarias, Dublín, Edimburgo, Lisboa, Londres"], "36":["0", "(GMT 00:00) Monrovia, Reykjavik"], "37":["0", "(GMT 00:00) Casablanca"], "38":["60", "(GMT+01:00) Belgrado, Bratislava, Budapest, Ljubljana, Praga"], "39":["60", "(GMT+01:00) Sarajevo, Skopje, Varsovia, Zagreb"], "40":["60", "(GMT+01:00) Bruselas, Copenhague, Madrid, París"], "41":["60", "(GMT+01:00) Amsterdam, Berlín, Berna, Roma, Estocolmo, Viena"], "42":["60", "(GMT+01:00) África Central Occ."], "43":["120", "(GMT+02:00) Minsk"], "44":["120", "(GMT+02:00) El Cairo"], "45":["120", "(GMT+02:00) Helsinki, Kiev, Riga, Sofía, Tallinn, Vilnius"], "46":["120", "(GMT+02:00) Atenas, Bucarest, Estambul"], "47":["120", "(GMT+02:00) Jerusalén"], "48":["120", "(GMT+02:00) Harare, Pretoria"], "49":["120", "(GMT+02:00) Beirut"], "50":["120", "(GMT+02:00) Amman"], "51":["120", "(GMT+02:00) Windhoek"], "52":["180", "(GMT+03:00) Tiflis"], "53":["180", "(GMT+03:00) Moscú, San Petersburgo, Volgogrado"], "54":["180", "(GMT+03:00) Kuwait, Riad"], "55":["180", "(GMT+03:00) Nairobi"], "56":["180", "(GMT+03:00) Bagdad"], "57":["210", "(GMT+03:30) Teherán"], "58":["240", "(GMT+04:00) Abu Dhabi, Muscat"], "59":["240", "(GMT+04:00) Bakú, Tbilisi, Yerevan"], "60":["240", "(GMT+04:00) Yerevan"], "61":["240", "(GMT+04:00) Por Louis"], "62":["270", "(GMT+04:30) Kabul"], "63":["300", "(GMT+05:00) Ekaterinburgo"], "64":["300", "(GMT+05:00) Tashkent"], "65":["300", "(GMT+05:00) Islamabad, Karachi"], "66":["330", "(GMT+05:30) Chennai, Kolkhata (Calcuta), Mumbai, Nueva Delhi"], "67":["345", "(GMT+05:45) Katmandú"], "68":["360", "(GMT+06:00) Astana, Dhaka (Dacca)"], "69":["360", "(GMT+06:00) Sri Jayewardenepura"], "70":["360", "(GMT+06:00) Almaty, Novosibirsk"], "71":["390", "(GMT+06:30) Yangón (Rangún)"], "72":["420", "(GMT+07:00) Bangkok, Hanoi, Yakarta"], "73":["420", "(GMT+07:00) Krasnoyarsk"], "74":["480", "(GMT+08:00) Pekín, Chongqing, Hong Kong, Urumqi"], "75":["480", "(GMT+08:00) Kuala Lumpur, Singapur"], "76":["480", "(GMT+08:00) Taipei"], "77":["480", "(GMT+08:00) Perth"], "78":["480", "(GMT+08:00) Irkutsk, Ulán Bator"], "79":["540", "(GMT+09:00) Seúl"], "80":["540", "(GMT+09:00) Osaka, Sapporo, Tokio"], "81":["540", "(GMT+09:00) Yakutsk"], "82":["570", "(GMT+09:30) Darwin"], "83":["570", "(GMT+09:30) Adelaida"], "84":["600", "(GMT+10:00) Canberra, Melbourne, Sidney"], "85":["600", "(GMT+10:00) Brisbane"], "86":["600", "(GMT+10:00) Hobart"], "87":["600", "(GMT+10:00) Vladivostok"], "88":["600", "(GMT+10:00) Guam, Port Moresby"], "89":["660", "(GMT+11:00) Magadán, Islas Salomón, Nueva Caledonia"], "90":["720", "(GMT+12:00) Fiji, Kamchatka, Islas Marshall"], "91":["720", "(GMT+12:00) Auckland, Wellington"], "92":["720", "(GMT+12:00) Moscú"], "93":["780", "(GMT+13:00) Nukualofa"] } //------------------------------------------------------------------------------------------------------------------------------- // Variables globales //------------------------------------------------------------------------------------------------------------------------------- var TipoNIFCIFPASS = JSON.parse('{"NIF":0,"CIF":1,"PASS":2}'); /* Gonzalo */ var getUrlParameter = function getUrlParameter(sParam) { var sPageURL = decodeURIComponent(window.location.search.substring(1)), sURLVariables = sPageURL.split('&'), sParameterName, i; for (i = 0; i < sURLVariables.length; i++) { sParameterName = sURLVariables[i].split('='); if (sParameterName[0] === sParam) { return sParameterName[1] === undefined ? true : sParameterName[1]; } } }; /*fin Gonzalo*/ //------------------------------------------------------------------------------------------------------------------------------- // INICIALIZA los componentes: Tooltip, Tab seleccionado ... //------------------------------------------------------------------------------------------------------------------------------- $(function () { //Es lo mismo que document ready //Inicializo los tooltip, ojo, los que se cargan en los template hay que hacerlos en cada template $('[rel="tooltip"]').tooltip();//Inicializo tooltip //Soluciona el fallo de bootstrap de cuando abro una modal sobre otra que es muy grande y necesita scroll y cierro la primera deja de funcionar el scroll. $(document).on('hidden.bs.modal', '.modal', function () { $('.modal:visible').length && $(document.body).addClass('modal-open'); }); //Abro la primera pestaña del tab //$('#Menu a:first').click();//no dispara el handler del evento click sino lo meto dentro del document ready $('#tabInicio').click(); }); //Para backgrid (CONTRATOS) var FechaFormatter= _.extend({}, Backgrid.CellFormatter.prototype, { fromRaw: function (rawValue, model) { return BDDateToUserDate(rawValue); } }); var FechaCell = Backgrid.DateCell.extend({ formatter: FechaFormatter }); var HtmlCell = Backgrid.HtmlCell = Backgrid.Cell.extend({ /** @property */ className: "html-cell", initialize: function () { Backgrid.Cell.prototype.initialize.apply(this, arguments); }, render: function () { this.$el.empty(); var rawValue = this.model.get(this.column.get("name")); var formattedValue = this.formatter.fromRaw(rawValue, this.model); this.$el.append(formattedValue); this.delegateEvents(); return this; } }); var ButtonCellFileDownload = Backgrid.Cell.extend({ events: { "click span": "downloadFile" }, downloadFile: function(e) { e.preventDefault(); var url = 'https://segovia.atencionciudadana.es/upload/'+$("span#file" + this.model.get('idincidencia')).text(); // window.location.href = url; window.open(url, "_blank"); }, render: function () { var fileName = this.model.get(this.column.get('name')); this.$el.html('' + fileName + ''); this.delegateEvents(); return this; } }); var timeCell = Backgrid.Cell.extend({ render: function() { var timeValue = this.model.get(this.column.get('name')); if (timeValue != null ) { var datetime = timeValue.split(' '); var date = datetime[0]; var time = datetime[1]; var dateItems = date.split('-'); var timeItems = time.split(':'); var year = dateItems[0]; var month = dateItems[1]; var date = dateItems[2]; var hour = timeItems[0]; var minutes = timeItems[1]; var seconds = timeItems[2]; var originDate = new Date(); originDate.setFullYear(year); originDate.setMonth(month); originDate.setDate(date); originDate.setHours(hour); originDate.setMinutes(minutes); originDate.setSeconds(seconds); var timediff = parseInt(listado_GMT[this.model.get('gmtValue')]) - parseInt(listado_GMT[40]); var newDate = new Date(originDate.getTime() + timediff * 60000); var newYearString = String(newDate.getFullYear()); var newMonthString = String(newDate.getMonth()); var newDateString = String(newDate.getDate()); var newHourString = String(newDate.getHours()); var newMinString = String(newDate.getMinutes()); var newSecondString = String(newDate.getSeconds()); if (newMonthString.length < 2) newMonthString = "0" + newMonthString; if (newDateString.length < 2) newDateString = "0" + newDateString; if (newHourString.length < 2) newHourString = "0" + newHourString; if (newMinString.length < 2) newMinString = "0" + newMinString; if (newSecondString.length < 2) newSecondString = "0" + newSecondString; var newDateString = newYearString + "-" + newMonthString + "-" + newDateString + " " + newHourString + ":" + newMinString + ":" + newSecondString // var gmtValue = parseInt(listado_GMT[this.model.get('gmtValue')]); // var addedhour = Math.floor((gmtValue - 60) / 60); // var addedMinutes = (gmtValue - 60) % 60; // var modifiedhour = String(parseInt(hour) + (addedhour)); // var modifiedMinutes = String(parseInt(minutes) + (addedMinutes)); // if (modifiedhour.length < 2) // modifiedhour = '0' + modifiedhour; // if (modifiedMinutes.length < 2) // modifiedMinutes = '0' + modifiedMinutes; // timeValue = datetime[0] + ' ' + modifiedhour + ':' + modifiedMinutes + ':' + seconds; } this.$el.html(newDateString); this.delegateEvents(); return this; } }); //Para editar/borrar contratos var ButtonCellContratos = Backgrid.Cell.extend({ template: _.template(''), events: { "click .contratobotoneditar": "editRow", "click .contratobotonborrar": "deleteRow" }, editRow: function (e) { e.preventDefault(); $('#ModalEditarGrabarContratoTitle').html('Editar datos de contrato'); var template = _.template($('#Template-Editar-Grabar-Contrato').html(), {contrato : this.model}); $('#ModalEditarGrabarContratoMensaje').html(template); contratosListaView.PrepararFormulario(); $('#ModalEditarGrabarContrato').modal('show'); }, deleteRow: function (e) { e.preventDefault(); var idcontrato=this.model.get('idcontrato'); bootbox.dialog({message: "¿Está seguro de que quiere borrar definitivamente el contrato?",title: "Borrar Contrato", buttons: { success: { label: "Borrar", className: "btn-danger", callback: function() { $.ajax({ url: 'https://segovia.atencionciudadana.es/rest/data.php/borrarcontrato/'+idcontrato, type: 'POST', }). always(function( msg ) { CargaContratos(); }); } }, danger: { label: "Cancelar", className: "btn", callback: function() { //Example.show("uh oh, look out!"); } } } }); //this.model.collection.remove(this.model); }, render: function () { this.$el.html(this.template()); this.delegateEvents(); return this; } }); //Generales, funciones específicas de apoyo a ciertas zonas de la aplicación var lista_citas=[]; function pintaGridCitasInicio(idusuario,cita) { //PARA EL USUARIO NO REGISTRADO if (cita) { lista_citas.push(cita); } var template = _.template($('#Template-Grid-Citas').html(), {citas: lista_citas}); $('#contenedor_inicio_citas').html(template); //Cargo lo del GMT, está todo en citas.php, ya ha creado el json con la lista y funciones var temporal = CargaSelectGMT($('#SelectGMT_tabla_citas_principal')); $('#span_GMT_servidor_tabla_citas_principal').html(temporal[1]); //RICARDO 2018-2 $('#BodyTablaCitas').html(RellenaTablaCitas()); } //CONTROL DE EVENTOS //Evento de carga de tabs (disparo lectura de datos) cuando se pulsa sobre ellos //Cuando pulsa en un tab, busca su funcion asociada en data y la ejecuta $('body').on('click','a[data-toggle="tab"]', function (e) { //e.target // activated tab //e.relatedTarget // previous tab var funcionCarga = $(e.currentTarget).data('funcionCarga'); if(funcionCarga && window[funcionCarga]) window[funcionCarga](); //Llama a la funcion de disparo especificada en el tab // Resetea estado de otras barras de navegacion var currentNavId = $(e.target).parents('nav').attr('id'); $('nav:not(#' + currentNavId + ') .nav-item').removeClass('active'); }); //------------------------------------------------------------------------------------------------------------------------------- //FUNCIONES DE DISPARO //------------------------------------------------------------------------------------------------------------------------------- function CargaInicio() { inicioListaContratosView.render({idusuario:""}); } function CargaMisDatos() { //Si ha hecho login son sus datos y si no hace las labores de registro //Ahora renderizo la vista misDatosView.render({idusuario:""}); } // Para reseleccionar cuando cambia al filtro function CreditosFiltroChange(e) { var filtro = e.currentTarget.value; var urlfiltro = (filtro && filtro.length > 2) ? ("/" + filtro) : ""; CargaListaUsuariosInvitar('#usuario_historico_creditos', 'https://segovia.atencionciudadana.es/rest/data.php/usuariosfiltrados' + urlfiltro, 1, //idactual function(nuevoValor,objetoSelectize){ //Cargo el histórico de créditos del usuario seleccionado historialCreditosView.render({idusuario: objetoSelectize.getValue()}); }); } function CargaCreditos() { historialCreditosView.render({idusuario:""}); } function CargaContratos() { //Ahora renderizo la vista contratosListaView.render(); } function CargaRespondInFourtyEight() { contratosListaView.render(); } function CargaListados () { $('#lc_fecha_alta_desde').datetimepicker({ lang:'es', timepicker:false, format:'d/m/Y', closeOnDateSelect: true }); $('#lc_fecha_alta_hasta').datetimepicker({ lang:'es', timepicker:false, format:'d/m/Y', closeOnDateSelect: true }); $('#la_fecha_desde').datetimepicker({ lang:'es', timepicker:false, format:'d/m/Y', closeOnDateSelect: true }); $('#la_fecha_hasta').datetimepicker({ lang:'es', timepicker:false, format:'d/m/Y', closeOnDateSelect: true }); //Paises var O = $.getJSON( "rest/data.php/paises", function(ListaPaises) { $('#lc_idpais').empty();//Limpio el contenido del select paises _.each(ListaPaises, function(pais) { $('#lc_idpais').append($('