1
0
Fork 0
forked from Simnation/Main
Main/resources/[tools]/nordi_license/html/script.js

119 lines
3.9 KiB
JavaScript
Raw Normal View History

2025-08-04 06:14:47 +02:00
let currentLicense = null;
// Event Listener für Nachrichten von FiveM
window.addEventListener('message', function(event) {
const data = event.data;
switch(data.action) {
case 'showLicense':
showLicense(data.data);
break;
}
});
// Lizenz anzeigen
function showLicense(data) {
currentLicense = data;
const container = document.getElementById('license-container');
const card = document.getElementById('license-card');
// Lizenztyp-spezifische Klasse hinzufügen
card.className = 'license-card ' + data.license.license_type;
// Header befüllen
document.querySelector('.license-title').textContent = data.config.label;
document.querySelector('.license-icon').className = 'license-icon ' + data.config.icon;
// Lizenzinformationen befüllen
document.getElementById('license-name').textContent = data.license.name || 'N/A';
document.getElementById('license-birthday').textContent = data.license.birthday || 'N/A';
document.getElementById('license-gender').textContent = formatGender(data.license.gender) || 'N/A';
document.getElementById('license-issue').textContent = data.license.issue_date || 'N/A';
document.getElementById('license-expire').textContent = data.license.expire_date || 'N/A';
// Klassen anzeigen (nur bei Führerschein)
const classesRow = document.getElementById('license-classes-row');
if (data.license.classes && data.license.classes !== '[]') {
try {
const classes = JSON.parse(data.license.classes);
if (classes && classes.length > 0) {
document.getElementById('license-classes').textContent = classes.join(', ');
classesRow.style.display = 'flex';
} else {
classesRow.style.display = 'none';
}
} catch (e) {
classesRow.style.display = 'none';
}
} else {
classesRow.style.display = 'none';
}
// Status anzeigen
const statusElement = document.getElementById('license-status');
if (data.license.is_active) {
statusElement.textContent = '✅ Gültig';
statusElement.className = 'license-status active';
} else {
statusElement.textContent = '❌ Ungültig';
statusElement.className = 'license-status inactive';
}
// Container anzeigen
container.classList.remove('hidden');
}
2025-08-04 06:51:25 +02:00
// Foto anzeigen
const photoImg = document.getElementById('player-photo');
const photoPlaceholder = document.getElementById('photo-placeholder');
if (data.license.photo_url && data.license.photo_url !== '') {
// Echtes Foto anzeigen
photoImg.src = data.license.photo_url;
photoImg.classList.remove('hidden');
photoPlaceholder.classList.add('hidden');
} else {
// Platzhalter anzeigen
photoImg.classList.add('hidden');
photoPlaceholder.classList.remove('hidden');
}
2025-08-04 06:14:47 +02:00
// Geschlecht formatieren
function formatGender(gender) {
const genderMap = {
'male': 'Männlich',
'female': 'Weiblich',
'other': 'Divers'
};
return genderMap[gender] || gender;
}
// Lizenz schließen
function closeLicense() {
const container = document.getElementById('license-container');
container.classList.add('hidden');
// Callback an FiveM senden
fetch(`https://${GetParentResourceName()}/closeLicense`, {
method: 'POST',
headers: {
'Content-Type': 'application/json; charset=UTF-8',
},
body: JSON.stringify({})
});
}
// ESC-Taste zum Schließen
document.addEventListener('keydown', function(event) {
if (event.key === 'Escape') {
closeLicense();
}
});
// Klick außerhalb der Karte zum Schließen
document.getElementById('license-container').addEventListener('click', function(event) {
if (event.target === this) {
closeLicense();
}
});