<!doctype html>
<!--[if lte IE 9]> <html class="lte-ie9" lang="en"> <![endif]-->
<!--[if gt IE 9]><!--> <html lang="en"> <!--<![endif]-->
<head>
<meta charset="UTF-8">
<meta name="viewport" content="initial-scale=1.0,maximum-scale=1.0,user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- Remove Tap Highlight on Windows Phone IE -->
<meta name="msapplication-tap-highlight" content="no"/>
<link rel="icon" type="image/png" href="{{ asset('assets/img/favicon-16x16.png') }}" sizes="16x16">
<link rel="icon" type="image/png" href="{{ asset('assets/img/favicon-32x32.png') }}" sizes="32x32">
<title>GED</title>
<!-- uikit -->
<link rel="stylesheet" href="{{ asset('bower_components/uikit/css/uikit.almost-flat.min.css') }}"/>
<!-- flag icons -->
<link rel="stylesheet" href="{{ asset('assets/icons/flags/flags.min.css') }}" media="all">
<!-- altair admin login page -->
<link rel="stylesheet" href="{{ asset('assets/css/login_page.min.css') }}" />
<style>
.disabledelt {
pointer-events: none;
opacity: 0.4;
}
.linkdep{
cursor:pointer;
}
</style>
<script language="JavaScript">
function disableselect(e){ return false; }
function reEnable(){ return true; }
document.onselectstart=new Function ("return false");
document.oncontextmenu=new Function ("return false");
document.onmousedown=reEnable;
document.onclick=reEnable;
</script>
</head>
<body class="login_page login_page_v2">
<div class="uk-container uk-container-center Aligner-item">
<div class="md-card">
<div class="md-card-content padding-reset">
<div class="uk-grid uk-grid-collapse ">
<div class="uk-width-large-1-1 uk-container-center">
<div class="login_page_forms hierarchical_show login-div" data-uk-grid-margin id="hierarchical-show" data-show-delay="280">
<div id="login_card">
<div id="login_form">
<div class="login_heading">
<img class="logo_regular" src="{{ asset('assets/img/others/ged_dgtfcm.png') }}" alt="" style="cursor:pointer;"/>
</div>
<div class="uk-grid uk-grid-divider" data-uk-grid-margin align="center">
<div class="uk-width-medium-1-2 login_code_show1" style="cursor:pointer;" id="fr">
<h2 class="heading_b uk-text-center uk-margin-bottom">
Bienvenue
<span class="sub-heading">Veuillez cliquer ici pour continuer</span>
</h2>
</div>
<div class="uk-width-medium-1-2 login_code_show1" style="cursor:pointer;" id="en">
<h2 class="heading_b uk-text-center uk-margin-bottom" style="cursor:pointer;">
Welcome
<span class="sub-heading">Please click here for next step</span>
</h2>
</div>
</div>
</div>
<div class="uk-position-relative" id="login_code" style="display: none">
<!---->
<div class="depmindef uk-grid uk-grid-width-small-1-2 uk-grid-width-large-1-3 uk-grid-width-xlarge-1-5 uk-text-center uk-sortable sortable-handler" id="dashboard_sortable_cards" data-uk-sortable="" data-uk-grid-margin="" >
</div>
<!---->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- common functions -->
<script src="{{ asset('assets/js/common.min.js') }}"></script>
<!-- uikit functions -->
<script src="{{ asset('assets/js/uikit_custom.min.js') }}"></script>
<!-- altair core functions -->
<script src="{{ asset('assets/js/altair_admin_common.min.js') }}"></script>
<!-- altair login page functions -->
<script src="{{ asset('assets/js/pages/login.js') }}"></script>
<!-- animations functions -->
<script src="{{ asset('assets/js/pages/components_animations.min.js') }}"></script>
<!-- page specific plugins -->
<!-- waitForImages -->
<script src="{{ asset('assets/js/custom/jquery.waitforimages.min.js') }}"></script>
<!-- gallery functions -->
<script src="{{ asset('assets/js/pages/page_gallery.min.js') }}"></script>
<script>
// check for theme
if (typeof(Storage) !== "undefined") {
var root = document.getElementsByTagName( 'html' )[0],
theme = localStorage.getItem("altair_theme");
if(theme === 'app_theme_dark' || root.classList.contains('app_theme_dark')) {
root.className += ' app_theme_dark';
}
}
</script>
<script type="text/javascript" charset="UTF-8">
function OpenDep(activID,libe,lg) {
var lib="Êtes-vous sûre de vouloir ouvrir le département : "+libe+"?";
var cancel_lg="Annuler";
var ok_lg="Ok";
if(lg === 'en'){
lib="Are you sure you want to open the department : "+libe+"?";
cancel_lg="Cancel";
ok_lg="Ok";
}
UIkit.modal.confirm(lib, function(){
var obj = window.location="{{ path('api_home') }}";
setTimeout(obj,1000);
},
{
labels: {
"Cancel": cancel_lg,
"Ok": ok_lg
}
});
}
$(document).ready(function(){
// variables
var $login_card = $('#login_card'),
$login_form = $('#login_form'),
$login_code = $('#login_code'),
$register_form = $('#register_form'),
$login_password_reset = $('#login_password_reset');
});
function getCookie(name)
{
var re = new RegExp(name + "=([^;]+)");
var value = re.exec(document.cookie);
return (value != null) ? unescape(value[1]) : null;
}
function setCookie(name, value, days) {
let cookieString = name + "=" + encodeURIComponent(value || "");
// Add expiration
if (days) {
const date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
cookieString += "; expires=" + date.toUTCString();
}
// ✅ Dynamically get root domain from current hostname
const hostname = window.location.hostname;
const rootDomain = getRootDomain(hostname);
cookieString += "; path=/";
cookieString += "; domain=" + rootDomain;
cookieString += "; secure";
cookieString += "; samesite=none";
document.cookie = cookieString;
console.log('✅ Cookie set:', name, 'for domain:', rootDomain);
}
// Helper function to extract root domain
function getRootDomain(hostname) {
// Handle localhost
if (hostname === 'localhost' || hostname === '127.0.0.1') {
return hostname;
}
// Split by dots
const parts = hostname.split('.');
// If it's already a root domain (e.g., "example.com")
if (parts.length === 2) {
return '.' + hostname;
}
// If it's a subdomain (e.g., "ged.swissecoapp.tech" or "www.example.com")
// Take last 2 parts and add leading dot
if (parts.length >= 2) {
return '.' + parts.slice(-2).join('.');
}
// Fallback
return hostname;
}
function changeLang(lang)
{
var name="lang";
setCookie(name,lang,30);
//location.reload();
}
// show login code (hide other forms)
var login_code_show = function() {
$login_code
.show()
.siblings()
.hide();
};
$('.login_code_show1').on('click',function(e) {
e.preventDefault();
var lgID = $(this).attr("id");
/*$.getJSON( "{{ asset('assets/js/departements.json') }}", function( data ) {
var html = '';
var fc = '';
var actv = '';
var libDep = '';
var descDep = '';
$.each( data, function( key, Dept ) {
fc = '';actv = 'disabledelt';
if(key <= 0){
actv = '';
fc = 'class="uk-row-first" style="margin-bottom:1%"';
}else if(key%6===0){
fc = 'class="" style="margin-bottom:1%"';
}
libDep = Dept.Departement_fr;
descDep = Dept.desc_fr;
if(lgID === 'en'){
changeLang('en');
libDep = Dept.Departement_en;
descDep = Dept.desc_en;
}
else {
changeLang('fr');
}
html = '<div '+fc+' ><div class="md-card md-card-hover linkdep '+actv+'" onClick="OpenDep(\''+Dept.code+'\',\''+libDep+'\',\''+lgID+'\')">' +
'<div class="gallery_grid_item md-card-content">' +
'<img src="{{ asset('assets/img/others') }}/'+Dept.img+'" alt="">' +
'<div class="gallery_grid_image_caption">' +
'<span class="gallery_image_title uk-text-truncate">'+libDep+'</span>' +
'<span class="uk-text-muted uk-text-small uk-text-truncate">'+descDep+'</span>' +
'</div>' +
'</div>' +
'</div></div>';
$(".depmindef").append(html);
});
// card animation & complete callback: login_code_show
altair_md.card_show_hide($login_card,undefined,login_code_show,undefined);
});*/
changeLang(lgID);
window.location="{{ path('api_home') }}";
});
</script>
</body>
</html>