<!DOCTYPE html>
<html lang="{{ locale }}">
<head>
<meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title> {{ 'name'|trans({}, 'app') }} {% block title %} {% endblock %}</title>
<link rel="icon" type="image/x-icon" href="{{ asset('img/core-img/favicon.png') }}"/>
<meta name="robots" content="index,follow"/>
<meta name="viewport" content="width=device-width, minimum-scale=0.25, maximum-scale=1.6, initial-scale=1.0"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="author" content="Marius Stanislas KEMAYOU DJEUMENI."/>
<meta property="og:site_name" content="{{ 'name'|trans({}, 'app') }}">
<meta name="og:locale" content="{{ locale }}_{{ locale|upper }}"/>
<meta property="og:type" content="website">
{% block metaHeader %}
<meta property="og:title" content="{{ 'name'|trans({}, 'app') }}">
<meta property="og:description" content="{{ 'name'|trans({}, 'app') }}">
<meta property="og:image" content="{{ asset('img/core-img/logo.png') }}"><!-- link to image for socio -->
<meta property="og:url" content="{{ asset('img/core-img/logo.png') }}">
{% endblock %}
<meta charset="UTF-8">
<meta name="description" content="">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
{% block styles %}{% endblock %}
{% block lastStyles %}{% endblock %}
{% block topjavascripts %}{% endblock %}
{% block heardFiles %}{% endblock %}
{{ encore_entry_link_tags('app') }}
</head>
<body id="app" class="{% block body_class %}{% endblock %}">
{% block foundation %}{% endblock %}
<script type="text/javascript">
var $locale = 'fr';
</script>
<script type="text/javascript" src="{{ absolute_url(asset('vendor/jquery/jquery-1.12.0.min.js')) }}"></script>
<script type="text/javascript" src="{{ absolute_url(asset('vendor/jquery/jquery.form.js')) }}"></script>
{% block javascripts %}{% endblock %}
{{ encore_entry_script_tags('app') }}
<script>
// Global delegated handlers for request forms (attach once)
(function () {
if (window.__requestFormsGlobalInit) return;
window.__requestFormsGlobalInit = true;
// Utility to initialize UI for a form container (call after AJAX replace)
window.initRequestForm = function (container) {
if (!container) return;
try {
var inputs = container.querySelectorAll && container.querySelectorAll('input[type="file"]');
if (!inputs) return;
inputs.forEach(function (input) {
var display = input.parentNode.querySelector('.uploaded-file-name');
if (!display) {
display = document.createElement('span');
display.className = 'uploaded-file-name';
input.parentNode.appendChild(display);
}
// if input has a value (browser-dependent) show filename
if (input.files && input.files.length) {
display.textContent = Array.from(input.files).map(function (f) {
return f.name;
}).join(', ');
} else if (input.value) {
var val = input.value.split('\\').pop().split('/').pop();
display.textContent = val ? ('Fichier chargé: ' + val) : '';
}
});
} catch (e) {
console.warn('initRequestForm error', e);
}
};
// auto-initialize existing forms on page load
document.addEventListener('DOMContentLoaded', function () {
var forms = document.querySelectorAll('#request-form');
forms.forEach(function (f) {
window.initRequestForm(f);
});
});
document.addEventListener('change', function (e) {
var target = e.target;
if (!target) return;
if (target.matches('#request-form input[type="file"]')) {
var display = target.parentNode.querySelector('.uploaded-file-name');
if (!display) {
display = document.createElement('span');
display.className = 'uploaded-file-name';
target.parentNode.appendChild(display);
}
var names = Array.from(target.files || []).map(function (f) {
return f.name;
}).join(', ');
if (names) {
display.textContent = 'Fichier chargé: ' + names;
} else if (target.value) {
var val = target.value.split('\\').pop().split('/').pop();
display.textContent = val ? ('Fichier chargé: ' + val) : '';
} else {
display.textContent = '';
}
}
});
document.addEventListener('click', function (e) {
var target = e.target;
if (!target) return;
// Add momo
if (target.matches('#add-momo-item')) {
var collection = document.getElementById('momo-items-collection');
if (!collection) return;
var prototype = collection.getAttribute('data-prototype');
if (!prototype) return;
var index = collection.querySelectorAll('.momo-item').length;
var newForm = prototype.replace(/__name__/g, index);
var wrapper = document.createElement('div');
wrapper.className = 'momo-item';
wrapper.innerHTML = newForm + '<button type="button" class="btn btn-sm btn-danger remove-momo-item">Supprimer</button>';
collection.appendChild(wrapper);
return;
}
// Add moov
if (target.matches('#add-moov-item')) {
var collection2 = document.getElementById('moov-items-collection');
if (!collection2) return;
var prototype2 = collection2.getAttribute('data-prototype');
if (!prototype2) return;
var index2 = collection2.querySelectorAll('.moov-item').length;
var newForm2 = prototype2.replace(/__name__/g, index2);
var wrapper2 = document.createElement('div');
wrapper2.className = 'moov-item';
wrapper2.innerHTML = newForm2 + '<button type="button" class="btn btn-sm btn-danger remove-moov-item">Supprimer</button>';
collection2.appendChild(wrapper2);
return;
}
// Remove momo
if (target.matches('.remove-momo-item')) {
var item = target.closest('.momo-item');
if (item) item.remove();
return;
}
// Remove moov
if (target.matches('.remove-moov-item')) {
var item2 = target.closest('.moov-item');
if (item2) item2.remove();
return;
}
});
})();
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-PTWKTPS5LS"></script>
<script> window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-PTWKTPS5LS'); </script>
</body>
</html>