{% extends 'base.html.twig' %}
{% block metaTitle %}{{ schulung.schulungName }} - {{ parent() }}{% endblock %}
{% block body %}
{% include('/user/produkt_details/schulung.html.twig') %}
<div class="modal fade" id="modal-warenkorb" tabindex="-1" role="dialog" aria-labelledby="ModalWarenkorbTitle" aria-hidden="true">
<div class="modal-dialog modal-md modal-dialog-scrollable" role="document" style="max-height: 90%;">
<div class="modal-content" id="warenkorbHinzufuegen">
</div>
</div>
</div>
<div class="modal fade" id="scrollable-modal" tabindex="-1" role="dialog" aria-labelledby="scrollableModalTitle" aria-hidden="true">
<div class="modal-dialog modal-md modal-dialog-scrollable" role="document" style="max-height: 90%;">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title mb-0" id="scrollableModalTitle">Termine</h4>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
</div>
<div class="modal-body">
<div id="seminarTermine">
</div>
</div>
</div>
</div>
</div>
<div class="modal fade task-modal-content" id="modal-1" tabindex="-1" role="dialog"
aria-labelledby="Modal-Label-1" aria-hidden="true">
<div class="modal-dialog modal-md modal-dialog-scrollable" role="document" style="max-height: 90%;">
<div class="modal-content">
<div class="modal-header">
<h4>Schulung hinzufügen</h4>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
</div>
<div class="modal-body">
<b>Der Campus befindet sich noch im Aufbau.</b><br>
Im Moment sind Buchungen nur möglich, wenn du mit deiner Firma verbunden bist.
<div class="mt-3 fw-bolder">Was kann ich tun?</div>
<div class="ps-3">
<li>Frage in deiner Firma nach, ob ihr bereits einen Firmenaccount im Campus besitzt.</li>
<li>Wenn JA: Verbinde dich mit deiner Firma und nutze die Vorteile auf Firmenrechnung zu buchen</li>
<li>Wenn NEIN: Frage in deiner Firma nach, ob sie nicht Teil des Campus werden wollen.</li>
</div>
<div class="mt-3">
Für weitere Informationen schreibe an<br><a href="mailto:support@handwerkXcampus.de">support@handwerkXcampus.de</a><br>
oder ruf einfach an unter<br>
<a href="tel:04919922222">0491 / 99 22222</a>
</div>
</div>
</div>
</div>
</div>
<script>
jQuery(function ($) {
$('#staerkenkompass-mobil-ansicht').removeClass('d-none')
$('.hauptseite-campus-logo').addClass('d-none')
$('.hauptseite-zurueck-symbol').removeClass('d-none')
{% if zurueckLink == null %}
$('.hauptseite-zurueck-link').attr('href', 'javascript:history.back()')
{% else %}
$('.hauptseite-zurueck-link').attr('href', '{{ zurueckLink }}')
{% endif %}
$(document).on('click', '.lade-modal-fenster', function (event) {
event.preventDefault();
let href = $(this).attr('href');
$.ajax({
'url': href,
'method': 'get',
'success': function (response) {
$('#seminarTermine').html(response);
},
'error': function (response) {
console.log('Fehler bei Ajax-Link' + response)
}
});
});
$(document).on('click', '.fremdanbieter-counter-link', function (event) {
let counterLink = $(this).attr('data-counter-link');
$.ajax({
'url': counterLink,
'method': 'get',
'success': function (response) {
},
'error': function (response) {
console.log('Fehler bei Ajax-Link' + response)
}
});
});
$(document).on('click', '.modal-warenkorb-hinzufuegen', function (event) {
event.preventDefault();
let terminId = $('.modal-warenkorb-hinzufuegen').attr('data-termin-id');
$.ajax({
'url': '/user/produkt/details/warenkorb/' + terminId,
'method': 'get',
'success': function (response) {
$("#warenkorbHinzufuegen").html(response);
window.refreshFilterList();
},
'error': function (response) {
console.log('Fehler bei Ajax-Link' + response)
}
});
});
$(document).on('click', '.provisorischen-mitarbeiter-anlegen', function (event) {
event.preventDefault();
let href = $(this).attr('href');
let sortieren = parseInt($(this).attr('data-sortieren'));
let mailadresse = $('#mailversand').val().trim().toLowerCase();
let firmenposition = $('#personal-firmenposition').val().trim();
let vorname = $('#personal-vorname').val().trim();
let nachname = $('#personal-nachname').val().trim();
let ansprechpartner = vorname + ' ' + nachname;
if (sortieren === 12) {
ansprechpartner = nachname + ' ' + vorname;
}
if (!validateEmail(mailadresse) || mailadresse.length === 0) {
window.toastSpeichern('ungültige E-Mail-Adresse', 'error', 3000);
return;
}
if (firmenposition.length === 0 || vorname.length === 0 || nachname.length === 0 || mailadresse.length === 0) {
window.toastSpeichern('Bitte alle Felder ausfüllen', 'error', 3000);
return;
}
$('.provisorischen-mitarbeiter-anlegen').addClass('d-none')
$('.provisorischen-mitarbeiter-anlegen-warten').removeClass('d-none')
$.ajax({
'url': href,
'method': 'post',
'data': {
'email': mailadresse.toLowerCase(),
'firmenposition': firmenposition,
'vorname': vorname,
'nachname': nachname,
},
'success': function (response) {
if (!response['error']) {
let teilnehmer = `<div class="row widget-filter-item border-top pb-2 pt-2">
<div class="col-1">
<input type="checkbox" checked
class="checkbox-user-id form-checkbox"
data-user-id="${response['userId']}">
</div>
<div class="col-2">
<img class="rounded-circle" src="/img/campus/kein_user.png" alt="Profilbild" width="40px">
</div>
<div class="col-8 widget-filter-item-text">
<div class="text-success fw-bolder">NEU</div>
<div class="text-info small fw-bolder">Inaktiver Account</div>
${ansprechpartner}
<br>
<span class="text-muted">${firmenposition}</span>
</div>
</div>`;
$(teilnehmer).insertBefore($('.div-neuer-ansprechpartner'));
$('#mailversand').val('');
$('#personal-firmenposition').val('');
$('#personal-vorname').val('');
$('#personal-nachname').val('');
$('.collapse-weitere-Teilnehmer').trigger('click');
} else {
window.toastSpeichern(response['fehlermeldung'], 'error', 5000);
}
$('.provisorischen-mitarbeiter-anlegen').removeClass('d-none')
$('.provisorischen-mitarbeiter-anlegen-warten').addClass('d-none')
},
'error': function (response) {
console.log('Konnte nicht gespeichert werden.' + response)
}
});
})
$(document).on('click', '.link-schulung-beobachten', function (event) {
event.preventDefault();
let href = $(this).attr('href');
window.confirmModal('Schulung beobachten', '', 'Möchtest du eine E-Mail erhalten wenn ein neuer Termin zu dieser Schulung veröffentlicht wird?', 'Beobachtung aktivieren', function () {
$.ajax({
'url': href,
'method': 'get',
'success': function (response) {
window.location.reload();
},
'error': function (response) {
console.log('Fehler bei Ajax-Link' + response)
}
});
});
});
$(document).on('click', '.link-schulung-beobachten-loeschen', function (event) {
event.preventDefault();
let href = $(this).attr('href');
window.confirmModal('Schulung beobachten', '', 'Du möchtest bei neuen Terminen nicht mehr informiert werden?', 'Beobachtung deaktivieren', function () {
$.ajax({
'url': href,
'method': 'get',
'success': function (response) {
window.location.reload();
},
'error': function (response) {
console.log('Fehler bei Ajax-Link' + response)
}
});
});
});
$(document).on('click', '.inhouse-schulung-hinzufuegen', function (event) {
event.preventDefault();
let href = $(this).attr('href');
window.confirmModal('Inhouse-Schulungen', '', 'Die Anfrage der Inhouse-Schulung findet im Adminbereich statt. Du wirst nun zum Adminbereich weitergeleitet.' +
'<span class="text-info small"><br> <br>Der Adminbereich ist für die App-Nutzung nicht so gut geeignet. Es wäre vom Vorteil die Desctop-Version zu verwenden.</span>', 'Zum Adminbereich', function () {
window.location.href = href;
});
});
$(document).on('click', '.modal-empfehlung-hinzufuegen', function (event) {
event.preventDefault();
let href = $(this).attr('href');
$.ajax({
'url': href,
'method': 'get',
'success': function (response) {
$("#warenkorbHinzufuegen").html(response);
window.refreshFilterList();
},
'error': function (response) {
console.log('Fehler bei Ajax-Link' + response)
}
});
});
$(document).on('change', '.checkbox-user-id', function (event) {
event.preventDefault();
$('.button-empfehlung-speichern').addClass('d-none')
let arrayTeilnehmer = [];
$('.checkbox-user-id:checked').each(function (index, checkboxUserId) {
arrayTeilnehmer.push(parseInt($(checkboxUserId).attr('data-user-id')));
});
if (arrayTeilnehmer.length > 0) {
$('.keinMitarbeiterAusgewaehlt').text(arrayTeilnehmer.length + ' ausgewählt')
$('.keinMitarbeiterAusgewaehlt').removeClass('d-none')
$('.button-empfehlung-speichern').removeClass('d-none')
} else {
$('.keinMitarbeiterAusgewaehlt').text('Personen auswählen')
}
});
$(document).on('click', '.button-empfehlung-speichern', function (event) {
event.preventDefault();
let href = $(this).attr('href');
$('.keinMitarbeiterAusgewaehlt').addClass('d-none')
let arrayTeilnehmer = [];
$('.checkbox-user-id:checked').each(function (index, checkboxUserId) {
arrayTeilnehmer.push(parseInt($(checkboxUserId).attr('data-user-id')));
});
if (arrayTeilnehmer.length === 0) {
window.toastSpeichern('Bitte mindestens eine Person auswählen', 'error', 3000);
$('.keinMitarbeiterAusgewaehlt').text('Min. 1 Person auswählen')
$('.keinMitarbeiterAusgewaehlt').removeClass('d-none')
return;
}
let terminIDs = '-1';
let arrayTermine = [];
$('.checkbox-termin-empfehlen:checked').each(function (index, checkboxTerminId) {
arrayTermine.push(parseInt($(checkboxTerminId).attr('data-termin-id')));
});
if (arrayTermine.length > 0) {
terminIDs = JSON.stringify(arrayTermine)
}
$.ajax({
'url': href,
'method': 'post',
'data': {
'arrayTeilnehmer': JSON.stringify(arrayTeilnehmer),
'terminIDs': terminIDs,
},
'success': function (response) {
let modal = bootstrap.Modal.getInstance(document.getElementById('modal-warenkorb'));
modal.hide();
window.toastSpeichern('Empfehlungen wurden gesendet', 'success', 3000);
},
'error': function (response) {
console.log('Fehler bei Ajax-Link' + response)
}
});
});
/*
$(document).on('click', '.button-warenkorb-entfernen', function (event) {
event.preventDefault();
let href = $(this).attr('href');
$.ajax({
'url': href,
'method': 'get',
'success': function (response) {
window.refreshUserNotification();
let modal = bootstrap.Modal.getInstance(document.getElementById('modal-warenkorb'));
modal.hide();
},
'error': function (response) {
console.log('Fehler bei Ajax-Link' + response)
}
});
});
*/
$(document).on('click', '.button-warenkorb-speichern', function (event) {
event.preventDefault();
let href = $(this).attr('href');
let freiePlaetze = parseInt($(this).attr('data-freie-plaetze'));
$('.keinMitarbeiterAusgewaehlt').addClass('d-none')
$('.zuvielMitarbeiterAusgewaehlt').addClass('d-none')
let arrayTeilnehmer = [];
$('.checkbox-user-id:checked').each(function (index, checkboxUserId) {
arrayTeilnehmer.push(parseInt($(checkboxUserId).attr('data-user-id')));
});
if (arrayTeilnehmer.length === 0) {
$('.keinMitarbeiterAusgewaehlt').removeClass('d-none')
return;
}
let anzahl = arrayTeilnehmer.length;
if (freiePlaetze === -1 || (freiePlaetze > 0 && anzahl > freiePlaetze)) {
$('.zuvielMitarbeiterAusgewaehlt').removeClass('d-none')
return;
}
let bemerkung = $('#textarea-bemerkung').val();
$(this).addClass('d-none')
$('.bitte-warten-spinner').removeClass('d-none')
$.ajax({
'url': href,
'method': 'post',
'data': {
'arrayTeilnehmer': JSON.stringify(arrayTeilnehmer),
'anzahl': anzahl,
'bemerkung': bemerkung,
},
'success': function (response) {
let modal = bootstrap.Modal.getInstance(document.getElementById('modal-warenkorb'));
modal.hide();
if (!response['ueberbucht']) {
window.location.href = '/user/bestellung/' + response['buchungId'];
} else {
window.confirmModal('Ausgebucht', '', 'Es tut uns leid.<br>Die restlichen freien Plätze wurden in der Zwischenzeit von anderen Teilnehmern gebucht.', 'ok', function () {
});
}
},
'error': function (response) {
console.log('Fehler bei Ajax-Link' + response)
}
});
});
const urlParams = new URLSearchParams(window.location.search);
const termin_filter_id = urlParams.get('terminId');
if (termin_filter_id != null) {
$('.termine-div').addClass('d-none');
$('.termin-id' + termin_filter_id).removeClass('d-none');
}
$(document).on('click', '.termin-uebernehmen-link', function (e) {
let terminId = $(this).attr('data-termin-id');
$('.modal-warenkorb-hinzufuegen').attr('data-termin-id', terminId);
$('.termine-div').addClass('d-none');
$('.termin-id' + terminId).removeClass('d-none');
window.toastSpeichern('Termin wurde übernommen', 'success', 2000);
});
$(document).on('click', '.btn-wishlist', function (event) {
event.preventDefault();
let $button = $(this);
let $container = $button.closest('.favoriten-buttons');
let href = $(this).attr('href');
let buttonArt = $(this).attr('data-herz-button-art');
console.log($container)
$.ajax({
'url': href,
'method': 'get',
'success': function (response) {
$button.addClass('d-none');
if (buttonArt === 'plus') {
$('a[data-herz-button-art="minus"]', $container).removeClass('d-none');
$button.removeClass('d-none');
}
if (buttonArt === 'minus') {
$('a[data-herz-button-art="plus"]', $container).removeClass('d-none');
}
},
'error': function (response) {
console.log('Fehler bei Ajax-Link' + response)
}
});
});
$(document).on('click', 'div.star-rating > s', function (e) {
$(this).closest('div').find('.active').removeClass('active');
$(e.target).parentsUntil("div").addClass('active'); // all elements up from the clicked one excluding self
$(e.target).addClass('active'); // the element user has clicked on
let numStars = $(e.target).parentsUntil("div").length + 1;
$('.sterne-bewertung').text(numStars);
});
$(document).on('click', '.kommentar-text-absenden', function (event) {
event.preventDefault();
let href = $(this).attr('href');
let weiterleitung = $(this).attr('data-weiterleitung');
let name = $(".kommentar-name").val().trim();
let text = $(".kommentar-text").val().trim();
$('.fehler-kommentar-name').attr("style", "display: none");
$('.fehler-kommentar-text').attr("style", "display: none");
if (name.length < 1 || text.length < 1) {
if (name.length < 1) {
$('.fehler-kommentar-name').attr("style", "display: block");
}
if (text.length < 1) {
$('.fehler-kommentar-text').attr("style", "display: block");
}
return
}
$.ajax({
'url': href,
'method': 'post',
'data': {
'name': name,
'text': text,
},
'success': function (response) {
ladeKommentare(weiterleitung)
},
'error': function (response) {
console.log('Fehler bei antwort_link' + response)
}
});
});
$(document).on('click', '.kommentar-antwort-absenden', function (event) {
event.preventDefault();
let href = $(this).attr('href');
let weiterleitung = $(this).attr('data-weiterleitung');
let kommentarId = $(this).attr('data-kommentar-id');
let antwort = $(".kommentar-antwort-text" + kommentarId).val().trim();
$('.fehler-kommentar-antwort').attr("style", "display: none");
if (antwort.length < 1) {
$('.fehler-kommentar-antwort').attr("style", "display: block");
return
}
$.ajax({
'url': href,
'method': 'post',
'data': {
'kommentarId': kommentarId,
'antwort': antwort,
},
'success': function (response) {
ladeKommentare(weiterleitung)
},
'error': function (response) {
console.log('Fehler bei antwort_link' + response)
}
});
});
$(document).on('click', '.bewertung-absenden', function (event) {
event.preventDefault();
let href = $(this).attr('href');
let weiterleitung = $(this).attr('data-weiterleitung');
let username = $('.bewertung-username').val().trim();
let text = $('.bewertung-text').val().trim();
let sterne = parseInt($('.sterne-bewertung').text().trim());
$('.fehler-bewertung-name').attr("style", "display: none");
$('.fehler-sterne-vergeben').attr("style", "display: none");
console.log(sterne)
if (username.length < 1 || sterne === 0) {
if (username.length < 1) {
$('.fehler-bewertung-name').attr("style", "display: block");
}
if (sterne === 0) {
$('.fehler-sterne-vergeben').attr("style", "display: block");
}
return
}
$.ajax({
'url': href,
'method': 'post',
'data': {
'username': username,
'text': text,
'sterne': sterne,
},
'success': function (response) {
ladeBewertungen(weiterleitung)
},
'error': function (response) {
console.log('Fehler bei antwort_link' + response)
}
});
});
function validateEmail(email) {
let emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if (!emailReg.test(email)) {
return false;
} else {
return true;
}
}
function ladeBewertungen(link) {
const xhttp = new XMLHttpRequest();
xhttp.onload = function () {
if (this.readyState === 4 && this.status === 200) {
document.getElementById("bewertungen-anzeige-fenster").innerHTML = this.responseText;
$('.bewertungen-klick').trigger('click');
}
}
xhttp.open("GET", link);
xhttp.send();
}
function ladeKommentare(link) {
const xhttp = new XMLHttpRequest();
xhttp.onload = function () {
if (this.readyState === 4 && this.status === 200) {
document.getElementById("kommentare-anzeige-fenster").innerHTML = this.responseText;
}
}
xhttp.open("GET", link);
xhttp.send();
}
});
</script>
{% endblock %}