Interrogazione a livello nazionale (OE8)

Questa pagina è stata tradotta automaticamente. Possono verificarsi errori.
corpo { sfondo: #faf3e4; } .elenco-rapport { margine superiore: 10px; stile elenco: nessuno; imbottitura sinistra: 0; } elemento .rapporto { colore di sfondo: #f0f0f0; imbottitura: 5px 10px; bordo: 1px solido #ccc; raggio del bordo: 4px; margine inferiore: 5px; display: flessibile; giustifica-contenuto: spazio-tra; allineare gli elementi: centro; } .rapport-fields { display: flessibile; spazio: 10px; allineare gli elementi: centro; larghezza: 100%; } .rapport-elemento input[tipo=”testo”] { larghezza: 100px; /* Larghezza modificata */ bordo: nessuno; colore di sfondo: trasparente; } .rapport-item input:focus { contorno: nessuno; colore di sfondo: #fff; bordo: 1px solido #ccc; } .btn-eliminazione { colore di sfondo: rosso scuro; colore: bianco; bordo: nessuno; raggio del bordo: 4px; imbottitura: 2px 6px; cursore: puntatore; } .sezione di esportazione { margine superiore: 20px; } .mb-4-rapporto { margine inferiore: 20px; /* Distanza tra i distretti */ } .enteredData { sfondo: bianco !importante; } .rapport-fields input { sfondo: bianco !importante; } .rapport-list .rapport-fields>input:not(:last-of-type) { trasformazione del testo: maiuscolo; } .nominativo { trasformazione del testo: maiuscolo; } .nominativo::segnaposto { trasformazione testo: nessuna; } #operatore { larghezza massima: 200px; trasformazione del testo: maiuscolo; allineamento testo: centro; peso carattere: 900; } #operatore::segnaposto { trasformazione testo: nessuna; } #implementer-select { peso carattere: grassetto; dimensione carattere: 50px; }

Operatore

Data


    ${rapportList.map((rapport, indice) => `
  • `).join(”)}
`; }); rapportSection.innerHTML = rapportHTML; } altrimenti { rapportSection.innerHTML = ”; } } // Funzione per aggiungere un rapporto funzione addRapport(distretto, implementatore) { const nominativo = document.getElementById(`${district}-callsign`).value.toUpperCase(); const rapport = document.getElementById(`${district}-rapport`).value.toUpperCase(); const miscellaneo = document.getElementById(`${district}-miscellaneous`).value.trim(); if (nominativo && rapporto) { const list = document.getElementById(`${district}-list`); const listItem = document.createElement(“li”); listItem.className = “rapporto-elemento”; listItem.innerHTML = `
`; list.appendChild(listItem);// Aggiungi alla memoria locale if (!rapportData[traduttore]) rapportData[traduttore] = {}; if (!rapportData[traduttore][distretto]) rapportData[traduttore][distretto] = []; rapportData[implementer][district].push({ nominativo, rapporto, altro }); // Sincronizzazione dell’identificativo di chiamata con altri ripetitori senza rapporto Object.keys(frequencyDetails).forEach(otherTranslator => { if (convertitore!== altroconvertitore) { if (!rapportData[otherTranslator]) rapportData[otherConverter] = {}; if (!rapportData[altroImplementer][distretto]) rapportData[altroImplementer][distretto] = []; const esiste = rapportData[otherTranslator][district].some(r => r.callsign === nominativo); se (!esiste) { rapportData[otherTranslator][district].push({ nominativo, rapporto: ”, altro: ” }); } } }); localStorage.setItem(‘rapportData_land’, JSON.stringify(rapportData)); // Cancella i campi document.getElementById(`${district}-callsign`).value = ”; document.getElementById(`${district}-rapport`).value = ”; document.getElementById(`${district}-other`).value = ”; document.getElementById(`${district}-callsign`).focus(); } } funzione aggiornamentoOperatore() { let operator = localStorage.getItem(‘rapportData_land_operator’); document.getElementById(“operatore”).value = (operatore ?? “”); } aggiornamentoOperatore(); funzione operatoreChanged(evento) { localStorage.setItem(‘rapportData_land_operator’, event.srcElement.value.toUpperCase()); } // Funzione per ENTER per salvare function handleKeyPress(evento, distretto, implementatore) { if (event.key === ‘Invio’) { addRapport(distretto, implementatore); } } // Funzione per modificare i report funzione editRapport(distretto, convertitore, indice, campo, inputElement) { rapportData[implementer] [distretto] [indice] [campo] = inputElement.value; localStorage.setItem(‘rapportData_land’, JSON.stringify(rapportData)); } // Funzione per eliminare i report funzione deleteRapport(distretto, implementatore, indice) { rapportData[traduttore][distretto].splice(indice, 1); localStorage.setItem(‘rapportData_land’, JSON.stringify(rapportData)); mostraDettagli(); // Aggiorna la pagina } // Funzione per reimpostare tutti i dati funzione resetAllData() { if (confirm(“Sei sicuro di voler reimpostare tutti i dati?”)) { localStorage.removeItem(‘rapportData_land’); rapportoDati = {}; document.getElementById(“implementer-select”).value = “”; localStorage.removeItem(‘rapportData_land_datum’); mostraDettagli(); dataaggiornamento(); } } funzione aggiornamentoData() { let datum = localStorage.getItem(‘rapportData_land_datum’); se (data) { // Converte la stringa da localStorage in un oggetto Date document.getElementById(“data”).valueAsDate = nuova data(data); } altrimenti { // Se non è presente alcuna data in localStorage, imposta la data corrente document.getElementById(“date”).valueAsDate = new Date(); } } dataaggiornamento(); funzione dataChanged(evento) { // Salva la data come stringa localStorage.setItem(‘rapportData_land_datum’, event.target.value); } // Funzione per esportare tutti i report funzione esportaTuttiRaporte() { let exportContent = “”; // Ordine dei convertitori in base a FrequencyDetails const converterOrder = Object.keys(frequencyDetails); let operator = localStorage.getItem(“rapportData_land_operator”); if (!(operatore && operatore != “”)) { alert(“Inserisci operatore!”); ritorno; }let date = new Date(document.getElementById(‘datum’).value).toLocaleDateString(‘de-DE’, { giorno: ‘2 cifre’, mese: ‘lungo’, anno: ‘numerico’ }); let dateShort = new Date(document.getElementById(‘datum’).value).toLocaleDateString(‘de-DE’); exportContent += `Operatore: ${operatore}nData: ${data}nn`; traduttoreOrdine.forEach(translatorKey => { let implementerContent = “”; let hasValidEntries = false; // Controlla se il convertitore ha almeno un report valido Object.keys(rapportData[implementerKey] || {}).forEach(districtKey => { rapportData[implementerKey][districtKey].forEach(rapport => { if (rapport.callsign && rapport.rapport) { hasValidEntries = vero; // È stato trovato un report valido } }); }); // Se sono presenti voci valide, esportarle tutte se (haValidEntries) { const umsetzerSelect = document.getElementById(“umsetzer-select”); const converterOption = Array.from(translatorSelect.options).find(opzione => opzione.value === converterKey); const nomeconvertitore = opzioneconvertitore? converterOption.textContent.trim() : converterKey; Object.keys(rapportData[implementerKey] || {}).forEach(districtKey => { rapportData[implementerKey][districtKey].forEach(rapport => { if (rapport.callsign && rapport.rapport) { implementerContent += `${rapport.rufzeichen.toUpperCase()} – ${rapport.rapport.toUpperCase()}${rapport.other != ” ? ` – ${rapport.altro}` : ”}n`; } }); }); // Aggiunge i dettagli del convertitore exportContent += `${implementerName}n`; exportContent += implementerContent + “nnn”; } }); // Esporta il file const blob = new Blob([exportContent], { type: ‘text/plain’ }); const url = URL.createObjectURL(blob); const a = document.createElement(“a”); a.href = URL; a.download = `Query_${operatore}_${dateShort}_.txt`; document.body.appendChild(a); a.clic(); document.body.removeChild(a); } // Carica la pagina e visualizza i dati già salvati finestra.onload = funzione () { mostraDettagli(); }; document.addEventListener(‘keydown’, funzione (evento) { lascia activeElement = document.activeElement; // Controlla se l’elemento attivo è un campo di input if (activeElement.tagName === ‘INPUT’) { // Utilizza event.code per garantire che i numeri vengano intercettati lascia numero = evento.codice; // MAIUSC + numero (da cifra 1 a cifra 9) -> “5/” if (event.altKey && !event.ctrlKey && numero.startsWith(‘Digit’) && numero.length === 6) { let cifra = numero.fetta(-1); // Estrae il numero da ‘Digit1’, ‘Digit2’, ecc. lascia testo = ‘5/’ + cifra; insertText(elementoattivo, testo); evento.preventDefault(); } // CTRL + Numero (da Cifra 1 a Cifra 9) -> “OE” if (event.ctrlKey && !event.altKey && numero.startsWith(‘Digit’) && numero.length === 6) { let cifra = numero.fetta(-1); // Estrae il numero da ‘Digit1’, ‘Digit2’, ecc. lascia testo = ‘OE’ + cifra; insertText(elementoattivo, testo); evento.preventDefault(); } }// Inserisci il testo nell’elemento attivo nella posizione del cursore funzione insertText(elemento, testo) { lascia iniziare = element.selectionStart; lascia fine = elemento.selectionEnd; elemento.valore = elemento.valore.sottostringa(0, inizio) + testo + elemento.valore.sottostringa(fine); elemento.selectionStart = elemento.selectionEnd = inizio + testo.lunghezza; elemento.focus(); } });
„Wire and will, we’re breaking through – Share · Connect · Create!

Costruisci antenne, attivi cime, sperimenti con SDR o hackeri nodi Meshtastic? OERadio.at è la tua piattaforma. Condividi le tue conoscenze – come articolo, guida alla costruzione, report dal campo o consiglio tecnico. Che tu sia YL o OM esperto, appena licenziato o veterano: La tua esperienza conta.