Comunicacion Operacion UAS

Comunicacion Operacion UAS en Web del Ministerio de Interior

  1. // ==UserScript==
  2. // @name Comunicacion Operacion UAS
  3. // @namespace http://tampermonkey.net/
  4. // @version 2025-03-03
  5. // @description Comunicacion Operacion UAS en Web del Ministerio de Interior
  6. // @author You
  7. // @match https://drones.ses.mir.es/drones-web/formulario
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=mir.es
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. // Create UI elements
  16. const container = createContainer();
  17. const idText = createIdText(container);
  18. const operatorSelect = createOperatorSelect(container);
  19. const fillButton = createButton(container, 'Rellena', handleFillButtonClick);
  20. const saveButton = createButton(container, 'Graba', handleSaveButtonClick);
  21. const deleteButton = createButton(container, 'Elimina', handleDeleteButtonClick);
  22.  
  23. // Initialize
  24. initialize();
  25.  
  26. function createContainer() {
  27. const container = document.createElement('div');
  28. container.style.position = 'fixed';
  29. container.style.top = '10px';
  30. container.style.right = '10px';
  31. container.style.display = 'flex';
  32. container.style.gap = '10px';
  33. document.body.appendChild(container);
  34. return container;
  35. }
  36.  
  37. function createIdText(container) {
  38. const idText = document.createElement('div');
  39. container.appendChild(idText);
  40. return idText;
  41. }
  42.  
  43. function createOperatorSelect(container) {
  44. const operatorSelect = document.createElement('select');
  45. container.appendChild(operatorSelect);
  46. return operatorSelect;
  47. }
  48.  
  49. function createButton(container, text, onClick) {
  50. const button = document.createElement('button');
  51. button.innerText = text;
  52. button.addEventListener('click', onClick);
  53. container.appendChild(button);
  54. return button;
  55. }
  56.  
  57. function setCookie(name, value) {
  58. const expires = "expires=Fri, 31 Dec 9999 23:59:59 GMT";
  59. document.cookie = name + "=" + value + ";" + expires + ";path=/";
  60. }
  61.  
  62. function getCookie(name) {
  63. const nameEQ = name + "=";
  64. const ca = document.cookie.split(';');
  65. for (let i = 0; i < ca.length; i++) {
  66. let c = ca[i];
  67. while (c.charAt(0) === ' ') c = c.substring(1, c.length);
  68. if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);
  69. }
  70. return null;
  71. }
  72.  
  73. function updateSelect() {
  74. operatorSelect.innerHTML = '';
  75. const operators = JSON.parse(getCookie(idText.innerText) || '[]');
  76. operators.forEach(operator => {
  77. const option = document.createElement('option');
  78. option.value = operator.key;
  79. option.innerText = operator.key;
  80. operatorSelect.appendChild(option);
  81. });
  82. }
  83.  
  84. function handleFillButtonClick() {
  85. switch (idText.innerText) {
  86. case 'Operador':
  87. fillOperatorForm();
  88. break;
  89. case 'Piloto':
  90. fillPilotForm();
  91. break;
  92. case 'Uas':
  93. fillUasForm();
  94. break;
  95. case 'Observadores':
  96. fillObserversForm();
  97. break;
  98. case 'Operacion':
  99. fillOperationForm();
  100. break;
  101. default:
  102. alert('No form found!');
  103. }
  104. }
  105.  
  106. function handleSaveButtonClick() {
  107. switch (idText.innerText) {
  108. case 'Operador':
  109. saveOperatorForm();
  110. break;
  111. case 'Piloto':
  112. savePilotForm();
  113. break;
  114. case 'Uas':
  115. saveUasForm();
  116. break;
  117. case 'Observadores':
  118. saveObserversForm();
  119. break;
  120. case 'Operacion':
  121. saveOperationForm();
  122. break;
  123. default:
  124. alert('No form found!');
  125. }
  126. }
  127.  
  128. function handleDeleteButtonClick() {
  129. const key = operatorSelect.value;
  130. let items = JSON.parse(getCookie(idText.innerText) || '[]');
  131. const existingItemIndex = items.findIndex(op => op.key === key);
  132. if (existingItemIndex !== -1) {
  133. const confirmDelete = confirm(`¿Estás seguro de que deseas eliminar este ${idText.innerText} "${key}"?`);
  134. if (!confirmDelete)
  135. return;
  136.  
  137. items.splice(existingItemIndex, 1);
  138. setCookie(idText.innerText, JSON.stringify(items));
  139. updateSelect();
  140. }
  141. }
  142.  
  143. function fillOperatorForm() {
  144. const operators = JSON.parse(getCookie(idText.innerText) || '[]');
  145. const selectedOperator = operators.find(op => op.key === operatorSelect.value);
  146. if (selectedOperator) {
  147. const formData = selectedOperator.data;
  148. document.querySelector('#formCampos\\:viaOPERADOR').value = formData.viaOPERADOR;
  149.  
  150. const comboBoxViaOperador = document.querySelector('#formCampos\\:tipoViaOPERADOR_input');
  151. if (comboBoxViaOperador) {
  152. comboBoxViaOperador.value = formData.tipoViaOPERADOR;
  153. const event = new Event('change', { bubbles: false });
  154. comboBoxViaOperador.dispatchEvent(event);
  155. }
  156.  
  157. setTimeout(() => {
  158. const comboBoxProvinciaOperador = document.querySelector('#formCampos\\:provinciaOPERADOR_input');
  159. if (comboBoxProvinciaOperador) {
  160. comboBoxProvinciaOperador.value = formData.provinciaOPERADOR;
  161. const event = new Event('change', { bubbles: false });
  162. comboBoxProvinciaOperador.dispatchEvent(event);
  163.  
  164. setTimeout(() => {
  165. const comboBoxLocalidadOperador = document.querySelector('#formCampos\\:localidadOPERADOR_input');
  166. if (comboBoxLocalidadOperador) {
  167. comboBoxLocalidadOperador.value = formData.localidadOPERADOR;
  168. const event = new Event('change', { bubbles: false });
  169. comboBoxLocalidadOperador.dispatchEvent(event);
  170.  
  171. setTimeout(() => {
  172. document.querySelector('#formCampos\\:viaOPERADOR').value = formData.viaOPERADOR;
  173. document.querySelector('#formCampos\\:numeroOPERADOR').value = formData.numeroOPERADOR;
  174. document.querySelector('#formCampos\\:pisoOPERADOR').value = formData.pisoOPERADOR;
  175. document.querySelector('#formCampos\\:codPostalOPERADOR').value = formData.codPostalOPERADOR;
  176. document.querySelector('#formCampos\\:telefono1OPERADOR').value = formData.telefono1OPERADOR;
  177. document.querySelector('#formCampos\\:telefono2OPERADOR').value = formData.telefono2OPERADOR;
  178. document.querySelector('#formCampos\\:emailOPERADOR').value = formData.emailOPERADOR;
  179. document.querySelector('#formCampos\\:codigoOp').value = formData.codigoOp;
  180. }, 1000); // Adjust the delay as needed
  181. }
  182. }, 1000); // Adjust the delay as needed
  183. }
  184. }, 1000); // Adjust the delay as needed
  185. } else {
  186. alert('No hay operador seleccionado o no se ha encontrado la información del operador!');
  187. }
  188. }
  189.  
  190. function fillPilotForm() {
  191. const pilots = JSON.parse(getCookie(idText.innerText) || '[]');
  192. const selectedPilot = pilots.find(op => op.key === operatorSelect.value);
  193. if (selectedPilot) {
  194. const formData = selectedPilot.data;
  195.  
  196.  
  197. const comboBoxTipoDocPiloto = document.querySelector('#formCampos\\:tipoDocPILOTO_input');
  198. if (comboBoxTipoDocPiloto) {
  199. comboBoxTipoDocPiloto.value = formData.tipoDocPiloto;
  200. const event = new Event('change', { bubbles: false });
  201. comboBoxTipoDocPiloto.dispatchEvent(event);
  202. }
  203.  
  204. setTimeout(() => {
  205.  
  206.  
  207. const comboBoxViaPiloto = document.querySelector('#formCampos\\:tipoViaPILOTO_input');
  208. if (comboBoxViaPiloto) {
  209. comboBoxViaPiloto.value = formData.tipoViaPILOTO;
  210. const event = new Event('change', { bubbles: false });
  211. comboBoxViaPiloto.dispatchEvent(event);
  212. }
  213.  
  214. setTimeout(() => {
  215. const comboBoxProvinciaPiloto = document.querySelector('#formCampos\\:provinciaPILOTO_input');
  216. if (comboBoxProvinciaPiloto) {
  217.  
  218. comboBoxProvinciaPiloto.value = formData.provinciaPILOTO;
  219. const event = new Event('change', { bubbles: false });
  220. comboBoxProvinciaPiloto.dispatchEvent(event);
  221.  
  222. setTimeout(() => {
  223. const comboBoxLocalidadPiloto = document.querySelector('#formCampos\\:localidadPILOTO_input');
  224. if (comboBoxLocalidadPiloto) {
  225.  
  226. comboBoxLocalidadPiloto.value = formData.localidadPILOTO;
  227. const event = new Event('change', { bubbles: false });
  228. comboBoxLocalidadPiloto.dispatchEvent(event);
  229.  
  230. setTimeout(() => {
  231.  
  232. document.querySelector('#formCampos\\:nombreRazonPILOTO').value = formData.nombreRazonPILOTO;
  233. document.querySelector('#formCampos\\:apellido1PILOTO').value = formData.apellido1PILOTO;
  234. document.querySelector('#formCampos\\:apellido2PILOTO').value = formData.apellido2PILOTO;
  235.  
  236. document.querySelector('#formCampos\\:documentoPILOTO').value = formData.documentoPILOTO;
  237. document.querySelector('#formCampos\\:viaPILOTO').value = formData.viaPILOTO;
  238.  
  239. document.querySelector('#formCampos\\:numeroPILOTO').value = formData.numeroPILOTO;
  240. document.querySelector('#formCampos\\:portalPILOTO').value = formData.portalPILOTO;
  241. document.querySelector('#formCampos\\:pisoPILOTO').value = formData.pisoPILOTO;
  242. document.querySelector('#formCampos\\:letraPILOTO').value = formData.letraPILOTO;
  243. document.querySelector('#formCampos\\:codPostalPILOTO').value = formData.codPostalPILOTO;
  244. document.querySelector('#formCampos\\:telefono1PILOTO').value = formData.telefono1PILOTO;
  245. document.querySelector('#formCampos\\:telefono2PILOTO').value = formData.telefono2PILOTO;
  246.  
  247. document.querySelector('#formCampos\\:emailPILOTO').value = formData.emailPILOTO;
  248.  
  249. document.querySelector('#formCampos\\:desCertCompetPil').value = formData.desCertCompetPil;
  250. document.querySelector('#formCampos\\:desCertFormacionPil').value = formData.desCertFormacionPil;
  251. document.querySelector('#formCampos\\:desCertSeguroPil').value = formData.desCertSeguroPil;
  252. document.querySelector('#formCampos\\:fechaVigCertSeguroPil_input').value = formData.fechaVigCertSeguroPil;
  253. document.querySelector('#formCampos\\:entidadCertSeguroPil').value = formData.entidadCertSeguroPil;
  254. }, 1000); // Adjust the delay as needed
  255. }
  256. }, 1000); // Adjust the delay as needed
  257. }
  258. }, 2000); // Adjust the delay as needed
  259. }, 2000); // Adjust the delay as needed
  260. } else {
  261. alert('no se hay piloto seleccionado o no se ha encontrado la información del piloto!');
  262. }
  263. }
  264.  
  265. function fillUasForm() {
  266. const uas = JSON.parse(getCookie(idText.innerText) || '[]');
  267. const selectedUas = uas.find(op => op.key === operatorSelect.value);
  268. if (selectedUas) {
  269. const formData = selectedUas.data;
  270. const comboBoxClaseRpa = document.querySelector('#formCampos\\:codClaseRpa_input');
  271. if (comboBoxClaseRpa) {
  272. comboBoxClaseRpa.value = formData.codClaseRpa;
  273. const event = new Event('change', { bubbles: false });
  274. comboBoxClaseRpa.dispatchEvent(event);
  275. }
  276.  
  277. setTimeout(() => {
  278. document.querySelector('#formCampos\\:nomFabricanteRpa').value = formData.nomFabricanteRpa;
  279. document.querySelector('#formCampos\\:codModeloRpa').value = formData.codModeloRpa;
  280. document.querySelector('#formCampos\\:desModeloRpa').value = formData.desModeloRpa;
  281. document.querySelector('#formCampos\\:numSerieRpa').value = formData.numSerieRpa;
  282. document.querySelector('#formCampos\\:matriculaRpa').value = formData.matriculaRpa;
  283. const inputMtomRpa = document.querySelector('#formCampos\\:mtomRpa_input');
  284. if (inputMtomRpa) {
  285. inputMtomRpa.value = formData.mtomRpa;
  286. const event = new Event('change', { bubbles: false });
  287. inputMtomRpa.dispatchEvent(event);
  288. }
  289. const inputAutonomiaRpa = document.querySelector('#formCampos\\:autonomiaRpa_input');
  290. if (inputAutonomiaRpa) {
  291. inputAutonomiaRpa.value = formData.autonomiaRpa;
  292. const event = new Event('change', { bubbles: false });
  293. inputAutonomiaRpa.dispatchEvent(event);
  294. }
  295. document.querySelector('#formCampos\\:autopilotoRpa').value = formData.autopilotoRpa;
  296. document.querySelector('#formCampos\\:bandaRpa').value = formData.bandaRpa;
  297. document.querySelector('#formCampos\\:colorRpa').value = formData.colorRpa;
  298. document.querySelector('#formCampos\\:lucesRpa').value = formData.lucesRpa;
  299. document.querySelector('#formCampos\\:cargaRpa').value = formData.cargaRpa;
  300. document.querySelector('#formCampos\\:vhfRpa').value = formData.vhfRpa;
  301. document.querySelector('#formCampos\\:eqEmergenciaRpa').value = formData.eqEmergenciaRpa;
  302. document.querySelector('#formCampos\\:visionRpa').value = formData.visionRpa;
  303. document.querySelector('#formCampos\\:modoSRpa').value = formData.modoSRpa;
  304. }
  305. , 1000); // Adjust the delay as needed
  306. } else {
  307. alert('No hay UAS seleccionado o no se ha encontrado la información del UAS!');
  308. }
  309. }
  310.  
  311. function fillObserversForm() {
  312. const observers = JSON.parse(getCookie(idText.innerText) || '[]');
  313. const selectedObserver = observers.find(op => op.key === operatorSelect.value);
  314.  
  315. if (selectedObserver) {
  316. const formData = selectedObserver.data;
  317. const comboBoxTipoDocObservadores = document.querySelector('#formCampos\\:tipoDocOBSERVADORES_input');
  318. if (comboBoxTipoDocObservadores) {
  319. comboBoxTipoDocObservadores.value = formData.tipoDocObservadores;
  320. const event = new Event('change', { bubbles: false });
  321. comboBoxTipoDocObservadores.dispatchEvent(event);
  322. }
  323.  
  324. setTimeout(() => {
  325. const comboBoxViaObservadores = document.querySelector('#formCampos\\:tipoViaOBSERVADORES_input');
  326. if (comboBoxViaObservadores) {
  327. comboBoxViaObservadores.value = formData.tipoViaOBSERVADORES;
  328. const event = new Event('change', { bubbles: false });
  329. comboBoxViaObservadores.dispatchEvent(event);
  330. }
  331.  
  332. setTimeout(() => {
  333. const comboBoxProvinciaObservadores = document.querySelector('#formCampos\\:provinciaOBSERVADORES_input');
  334.  
  335. if (comboBoxProvinciaObservadores) {
  336.  
  337. comboBoxProvinciaObservadores.value = formData.provinciaOBSERVADORES;
  338. const event = new Event('change', { bubbles: false });
  339. comboBoxProvinciaObservadores.dispatchEvent(event);
  340.  
  341. setTimeout(() => {
  342. const comboBoxLocalidadObservadores = document.querySelector('#formCampos\\:localidadOBSERVADORES_input');
  343. if (comboBoxLocalidadObservadores) {
  344.  
  345. comboBoxLocalidadObservadores.value = formData.localidadOBSERVADORES;
  346. const event = new Event('change', { bubbles: false });
  347. comboBoxLocalidadObservadores.dispatchEvent(event);
  348.  
  349. setTimeout(() => {
  350.  
  351. document.querySelector('#formCampos\\:nombreRazonOBSERVADORES').value = formData.nombreRazonOBSERVADORES;
  352. document.querySelector('#formCampos\\:apellido1OBSERVADORES').value = formData.apellido1OBSERVADORES;
  353. document.querySelector('#formCampos\\:apellido2OBSERVADORES').value = formData.apellido2OBSERVADORES;
  354. document.querySelector('#formCampos\\:documentoOBSERVADORES').value = formData.documentoOBSERVADORES;
  355. document.querySelector('#formCampos\\:viaOBSERVADORES').value = formData.viaOBSERVADORES;
  356. document.querySelector('#formCampos\\:numeroOBSERVADORES').value = formData.numeroOBSERVADORES;
  357. document.querySelector('#formCampos\\:portalOBSERVADORES').value = formData.portalOBSERVADORES;
  358. document.querySelector('#formCampos\\:pisoOBSERVADORES').value = formData.pisoOBSERVADORES;
  359. document.querySelector('#formCampos\\:letraOBSERVADORES').value = formData.letraOBSERVADORES;
  360. document.querySelector('#formCampos\\:codPostalOBSERVADORES').value = formData.codPostalOBSERVADORES;
  361. document.querySelector('#formCampos\\:telefono1OBSERVADORES').value = formData.telefono1OBSERVADORES;
  362. document.querySelector('#formCampos\\:telefono2OBSERVADORES').value = formData.telefono2OBSERVADORES;
  363. document.querySelector('#formCampos\\:emailOBSERVADORES').value = formData.emailOBSERVADORES;
  364. }, 1000); // Adjust the delay as needed
  365. }
  366. }, 1000); // Adjust the delay as needed
  367. }
  368. }, 1000); // Adjust the delay as needed
  369. }, 1000); // Adjust the delay as needed
  370. } else {
  371. alert('No hay observador seleccionado o no se ha encontrado la información del observador!');
  372. }
  373. }
  374.  
  375. function fillOperationForm() {
  376. const operations = JSON.parse(getCookie(idText.innerText) || '[]');
  377. const selectedOperation = operations.find(op => op.key === operatorSelect.value);
  378. if (selectedOperation) {
  379. const formData = selectedOperation.data;
  380. document.querySelector('#formCampos\\:tipo').value = formData.tipo;
  381. document.querySelector('#formCampos\\:fecha_input').value = formData.fecha;
  382. document.querySelector('#formCampos\\:horaInicio_input').value = formData.horaInicio;
  383. document.querySelector('#formCampos\\:minutosInicio_input').value = formData.minutosInicio;
  384. document.querySelector('#formCampos\\:horaFin_input').value = formData.horaFin;
  385. document.querySelector('#formCampos\\:minutosFin_input').value = formData.minutosFin;
  386. document.querySelector('#formCampos\\:lugarProteccion').value = formData.lugarProteccion;
  387. document.querySelector('#formCampos\\:lugarRecuperacionRem').value = formData.lugarRecuperacionRem;
  388. const inputAlturaRem = document.querySelector('#formCampos\\:alturaRem_input');
  389. if (inputAlturaRem) {
  390. inputAlturaRem.value = formData.alturaRem;
  391. const event = new Event('change', { bubbles: false });
  392. inputAlturaRem.dispatchEvent(event);
  393. }
  394. const inputZonaVuelo = document.querySelector('#formCampos\\:zona\\:mapa_value');
  395. if (inputZonaVuelo) {
  396. inputZonaVuelo.value = formData.ZonaVuelo;
  397. const event = new Event('change', { bubbles: false });
  398. inputZonaVuelo.dispatchEvent(event);
  399. }
  400. const ccAas = formData.ccAas;
  401. if (ccAas) {
  402. ccAas.forEach(ccAa => {
  403. const inputCcAa = document.querySelector(`#formCampos\\:ccAas input[value="${ccAa}"]`);
  404. if (inputCcAa) {
  405. inputCcAa.click();
  406. }
  407. });
  408. }
  409. } else {
  410. alert('No hay operación seleccionada o no se ha encontrado la información de la operación!');
  411. }
  412. }
  413.  
  414.  
  415. function saveOperatorForm() {
  416. const key = `${document.querySelector('#formCampos\\:nombreRazonOPERADOR').value} ${document.querySelector('#formCampos\\:apellido1OPERADOR').value} ${document.querySelector('#formCampos\\:apellido2OPERADOR').value}`;
  417. const formData = {
  418. viaOPERADOR: document.querySelector('#formCampos\\:viaOPERADOR').value,
  419. tipoViaOPERADOR: document.querySelector('#formCampos\\:tipoViaOPERADOR_input').value,
  420. paisOPERADOR: document.querySelector('#formCampos\\:paisOPERADOR_input').value,
  421. provinciaOPERADOR: document.querySelector('#formCampos\\:provinciaOPERADOR_input').value,
  422. localidadOPERADOR: document.querySelector('#formCampos\\:localidadOPERADOR_input').value,
  423. numeroOPERADOR: document.querySelector('#formCampos\\:numeroOPERADOR').value,
  424. portalOPERADOR: document.querySelector('#formCampos\\:portalOPERADOR').value,
  425. pisoOPERADOR: document.querySelector('#formCampos\\:pisoOPERADOR').value,
  426. letraOPERADOR: document.querySelector('#formCampos\\:letraOPERADOR').value,
  427. codPostalOPERADOR: document.querySelector('#formCampos\\:codPostalOPERADOR').value,
  428. telefono1OPERADOR: document.querySelector('#formCampos\\:telefono1OPERADOR').value,
  429. telefono2OPERADOR: document.querySelector('#formCampos\\:telefono2OPERADOR').value,
  430. emailOPERADOR: document.querySelector('#formCampos\\:emailOPERADOR').value,
  431. codigoOp: document.querySelector('#formCampos\\:codigoOp').value
  432. };
  433.  
  434. let operators = JSON.parse(getCookie(idText.innerText) || '[]');
  435. const existingOperatorIndex = operators.findIndex(op => op.key === key);
  436. if (existingOperatorIndex !== -1) {
  437. const confirmOverride = confirm('Ya existen datos de este operador, quieres sobreescribirlos?');
  438. if (!confirmOverride)
  439. return;
  440. operators[existingOperatorIndex].data = formData;
  441. } else {
  442. operators.push({ key, data: formData });
  443. }
  444.  
  445. setCookie(idText.innerText, JSON.stringify(operators));
  446. updateSelect();
  447. }
  448.  
  449. function savePilotForm() {
  450. if (!document.querySelector('#formCampos\\:nombreRazonPILOTO').value) {
  451. alert('El campo "Nombre" es obligatorio');
  452. return;
  453. }
  454. if (!document.querySelector('#formCampos\\:apellido1PILOTO').value) {
  455. alert('El campo "Primer apellido" es obligatorio');
  456. return;
  457. }
  458. const key = `${document.querySelector('#formCampos\\:nombreRazonPILOTO').value} ${document.querySelector('#formCampos\\:apellido1PILOTO').value} ${document.querySelector('#formCampos\\:apellido2PILOTO').value}`;
  459. const formData = {
  460. nombreRazonPILOTO: document.querySelector('#formCampos\\:nombreRazonPILOTO').value,
  461. apellido1PILOTO: document.querySelector('#formCampos\\:apellido1PILOTO').value,
  462. apellido2PILOTO: document.querySelector('#formCampos\\:apellido2PILOTO').value,
  463. tipoDocPiloto: document.querySelector('#formCampos\\:tipoDocPILOTO_input').value,
  464. documentoPILOTO: document.querySelector('#formCampos\\:documentoPILOTO').value,
  465. viaPILOTO: document.querySelector('#formCampos\\:viaPILOTO').value,
  466. tipoViaPILOTO: document.querySelector('#formCampos\\:tipoViaPILOTO_input').value,
  467. paisPILOTO: document.querySelector('#formCampos\\:paisPILOTO_input').value,
  468. provinciaPILOTO: document.querySelector('#formCampos\\:provinciaPILOTO_input').value,
  469. localidadPILOTO: document.querySelector('#formCampos\\:localidadPILOTO_input').value,
  470. numeroPILOTO: document.querySelector('#formCampos\\:numeroPILOTO').value,
  471. portalPILOTO: document.querySelector('#formCampos\\:portalPILOTO').value,
  472. pisoPILOTO: document.querySelector('#formCampos\\:pisoPILOTO').value,
  473. letraPILOTO: document.querySelector('#formCampos\\:letraPILOTO').value,
  474. codPostalPILOTO: document.querySelector('#formCampos\\:codPostalPILOTO').value,
  475.  
  476. telefono1PILOTO: document.querySelector('#formCampos\\:telefono1PILOTO').value,
  477. telefono2PILOTO: document.querySelector('#formCampos\\:telefono2PILOTO').value,
  478. emailPILOTO: document.querySelector('#formCampos\\:emailPILOTO').value,
  479. desCertCompetPil: document.querySelector('#formCampos\\:desCertCompetPil').value,
  480. desCertFormacionPil: document.querySelector('#formCampos\\:desCertFormacionPil').value,
  481. desCertSeguroPil: document.querySelector('#formCampos\\:desCertSeguroPil').value,
  482. fechaVigCertSeguroPil: document.querySelector('#formCampos\\:fechaVigCertSeguroPil_input').value,
  483. entidadCertSeguroPil: document.querySelector('#formCampos\\:entidadCertSeguroPil').value
  484. };
  485.  
  486. let pilots = JSON.parse(getCookie(idText.innerText) || '[]');
  487. const existingPilotIndex = pilots.findIndex(op => op.key === key);
  488. if (existingPilotIndex !== -1) {
  489. const confirmOverride = confirm('Ya existen datos de este piloto, queres sobreescribirlos?');
  490. if (!confirmOverride)
  491. return;
  492. pilots[existingPilotIndex].data = formData;
  493. } else {
  494. pilots.push({ key, data: formData });
  495. }
  496.  
  497. setCookie(idText.innerText, JSON.stringify(pilots));
  498. updateSelect();
  499. }
  500.  
  501. function saveUasForm() {
  502. if (!document.querySelector('#formCampos\\:desModeloRpa').value) {
  503. alert('El campo "Modelo" es obligatorio');
  504. return;
  505. }
  506. const key = `${document.querySelector('#formCampos\\:nomFabricanteRpa').value} ${document.querySelector('#formCampos\\:desModeloRpa').value}`;
  507. const formData = {
  508. codClaseRpa: document.querySelector('#formCampos\\:codClaseRpa_input').value,
  509. nomFabricanteRpa: document.querySelector('#formCampos\\:nomFabricanteRpa').value,
  510. codModeloRpa: document.querySelector('#formCampos\\:codModeloRpa').value,
  511. desModeloRpa: document.querySelector('#formCampos\\:desModeloRpa').value,
  512. numSerieRpa: document.querySelector('#formCampos\\:numSerieRpa').value,
  513. matriculaRpa: document.querySelector('#formCampos\\:matriculaRpa').value,
  514. mtomRpa: document.querySelector('#formCampos\\:mtomRpa_input').value,
  515. autonomiaRpa: document.querySelector('#formCampos\\:autonomiaRpa_input').value,
  516. autopilotoRpa: document.querySelector('#formCampos\\:autopilotoRpa').value,
  517. bandaRpa: document.querySelector('#formCampos\\:bandaRpa').value,
  518. colorRpa: document.querySelector('#formCampos\\:colorRpa').value,
  519. lucesRpa: document.querySelector('#formCampos\\:lucesRpa').value,
  520. cargaRpa: document.querySelector('#formCampos\\:cargaRpa').value,
  521. vhfRpa: document.querySelector('#formCampos\\:vhfRpa').value,
  522. modoSRpa: document.querySelector('#formCampos\\:modoSRpa').value,
  523. eqEmergenciaRpa: document.querySelector('#formCampos\\:eqEmergenciaRpa').value,
  524. visionRpa: document.querySelector('#formCampos\\:visionRpa').value
  525. };
  526.  
  527. let uas = JSON.parse(getCookie(idText.innerText) || '[]');
  528. const existingUasIndex = uas.findIndex(op => op.key === key);
  529.  
  530. if (existingUasIndex !== -1) {
  531. const confirmOverride = confirm('Ya existen datos de esta UAS, queres sobreescribirlos?');
  532. if (!confirmOverride)
  533. return;
  534. uas[existingUasIndex].data = formData;
  535. }
  536. else {
  537. uas.push({ key, data: formData });
  538. }
  539.  
  540. setCookie(idText.innerText, JSON.stringify(uas));
  541. updateSelect();
  542. }
  543.  
  544. function saveObserversForm() {
  545. if (!document.querySelector('#formCampos\\:nombreRazonOBSERVADORES').value) {
  546. alert('El campo "Nombre" es obligatorio');
  547. return;
  548. }
  549. if (!document.querySelector('#formCampos\\:apellido1OBSERVADORES').value) {
  550. alert('El campo "Primer apellido" es obligatorio');
  551. return;
  552. }
  553. const key = `${document.querySelector('#formCampos\\:nombreRazonOBSERVADORES').value} ${document.querySelector('#formCampos\\:apellido1OBSERVADORES').value} ${document.querySelector('#formCampos\\:apellido2OBSERVADORES').value}`;
  554. const formData = {
  555. nombreRazonOBSERVADORES: document.querySelector('#formCampos\\:nombreRazonOBSERVADORES').value,
  556. apellido1OBSERVADORES: document.querySelector('#formCampos\\:apellido1OBSERVADORES').value,
  557. apellido2OBSERVADORES: document.querySelector('#formCampos\\:apellido2OBSERVADORES').value,
  558. tipoDocObservadores: document.querySelector('#formCampos\\:tipoDocOBSERVADORES_input').value,
  559. documentoOBSERVADORES: document.querySelector('#formCampos\\:documentoOBSERVADORES').value,
  560. viaOBSERVADORES: document.querySelector('#formCampos\\:viaOBSERVADORES').value,
  561. tipoViaOBSERVADORES: document.querySelector('#formCampos\\:tipoViaOBSERVADORES_input').value,
  562. paisOBSERVADORES: document.querySelector('#formCampos\\:paisOBSERVADORES_input').value,
  563. provinciaOBSERVADORES: document.querySelector('#formCampos\\:provinciaOBSERVADORES_input').value,
  564. localidadOBSERVADORES: document.querySelector('#formCampos\\:localidadOBSERVADORES_input').value,
  565.  
  566. numeroOBSERVADORES: document.querySelector('#formCampos\\:numeroOBSERVADORES').value,
  567. portalOBSERVADORES: document.querySelector('#formCampos\\:portalOBSERVADORES').value,
  568. pisoOBSERVADORES: document.querySelector('#formCampos\\:pisoOBSERVADORES').value,
  569. letraOBSERVADORES: document.querySelector('#formCampos\\:letraOBSERVADORES').value,
  570. codPostalOBSERVADORES: document.querySelector('#formCampos\\:codPostalOBSERVADORES').value,
  571. telefono1OBSERVADORES: document.querySelector('#formCampos\\:telefono1OBSERVADORES').value,
  572. telefono2OBSERVADORES: document.querySelector('#formCampos\\:telefono2OBSERVADORES').value,
  573. emailOBSERVADORES: document.querySelector('#formCampos\\:emailOBSERVADORES').value
  574. };
  575.  
  576. let observers = JSON.parse(getCookie(idText.innerText) || '[]');
  577. const existingObserverIndex = observers.findIndex(op => op.key === key);
  578.  
  579. if (existingObserverIndex !== -1) {
  580. const confirmOverride = confirm('Ya existen datos de este observador, queres sobreescribirlos?');
  581. if (!confirmOverride)
  582. return;
  583. observers[existingObserverIndex].data = formData;
  584. }
  585. else {
  586. observers.push({ key, data: formData });
  587. }
  588.  
  589. setCookie(idText.innerText, JSON.stringify(observers));
  590. updateSelect();
  591. }
  592.  
  593. function saveOperationForm() {
  594. const key = document.querySelector('#formCampos\\:tipo').value;
  595. const formData = {
  596. tipo: document.querySelector('#formCampos\\:tipo').value,
  597. fecha: document.querySelector('#formCampos\\:fecha_input').value,
  598. horaInicio: document.querySelector('#formCampos\\:horaInicio_input').value,
  599. minutosInicio: document.querySelector('#formCampos\\:minutosInicio_input').value,
  600. horaFin: document.querySelector('#formCampos\\:horaFin_input').value,
  601. minutosFin: document.querySelector('#formCampos\\:minutosFin_input').value,
  602. lugarProteccion: document.querySelector('#formCampos\\:lugarProteccion').value,
  603. lugarRecuperacionRem: document.querySelector('#formCampos\\:lugarRecuperacionRem').value,
  604. alturaRem: document.querySelector('#formCampos\\:alturaRem_input').value,
  605. ccAas: Array.from(document.querySelectorAll('#formCampos\\:ccAas .ui-state-highlight')).map(item => item.innerText),
  606. ZonaVuelo: document.querySelector('#formCampos\\:zona\\:mapa_value').value
  607. };
  608.  
  609. let operations = JSON.parse(getCookie(idText.innerText) || '[]');
  610. const existingOperationIndex = operations.findIndex(op => op.key === key);
  611.  
  612. if (existingOperationIndex !== -1) {
  613. const confirmOverride = confirm('Ya existen datos de esta operación, queres sobreescribirlos?');
  614. if (!confirmOverride)
  615. return;
  616. operations[existingOperationIndex].data = formData;
  617. } else {
  618. operations.push({ key, data: formData });
  619. }
  620.  
  621. setCookie(idText.innerText, JSON.stringify(operations));
  622. updateSelect();
  623. }
  624.  
  625. function updateIdText() {
  626. const dictionary = {
  627. "formCampos:campos": "Operador",
  628. "formCampos:camposPiloto": "Piloto",
  629. "formCampos:camposRpa": "Uas",
  630. "formCampos:camposObservadores": "Observadores",
  631. "formCampos:camposRem": "Operacion"
  632. };
  633. const wizardContent = document.querySelector('#formCampos\\:idWizard_content');
  634. if (wizardContent) {
  635. const firstDiv = wizardContent.querySelector('div');
  636. if (firstDiv) {
  637. idText.innerText = dictionary[firstDiv.id] || '';
  638. } else {
  639. idText.innerText = 'No div found inside formCampos:idWizard_content';
  640. }
  641. } else {
  642. idText.innerText = 'formCampos:idWizard_content not found';
  643. }
  644. updateSelect();
  645. }
  646.  
  647. function initialize() {
  648. const wizardContent = document.querySelector('#formCampos\\:idWizard_content');
  649. if (wizardContent) {
  650. const wizardContentObserver = new MutationObserver(updateIdText);
  651. wizardContentObserver.observe(wizardContent, { childList: true, subtree: true });
  652. }
  653. updateIdText();
  654. }
  655. })();