templates/welcome.html.twig line 1

Open in your IDE?
  1. <!doctype html>
  2. <!--[if lte IE 9]> <html class="lte-ie9" lang="en"> <![endif]-->
  3. <!--[if gt IE 9]><!--> <html lang="en"> <!--<![endif]-->
  4. <head>
  5.     <meta charset="UTF-8">
  6.     <meta name="viewport" content="initial-scale=1.0,maximum-scale=1.0,user-scalable=no">
  7.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
  8.     <!-- Remove Tap Highlight on Windows Phone IE -->
  9.     <meta name="msapplication-tap-highlight" content="no"/>
  10.     <link rel="icon" type="image/png" href="{{ asset('assets/img/favicon-16x16.png') }}" sizes="16x16">
  11.     <link rel="icon" type="image/png" href="{{ asset('assets/img/favicon-32x32.png') }}" sizes="32x32">
  12.     <title>GED</title>
  13.     <!-- uikit -->
  14.     <link rel="stylesheet" href="{{ asset('bower_components/uikit/css/uikit.almost-flat.min.css') }}"/>
  15.     <!-- flag icons -->
  16.     <link rel="stylesheet" href="{{ asset('assets/icons/flags/flags.min.css') }}" media="all">
  17.     <!-- altair admin login page -->
  18.     <link rel="stylesheet" href="{{ asset('assets/css/login_page.min.css') }}" />
  19.     <style>
  20.         .disabledelt {
  21.             pointer-events: none;
  22.             opacity: 0.4;
  23.         }
  24.         .linkdep{
  25.             cursor:pointer;
  26.         }
  27.     </style>
  28.     <script language="JavaScript">
  29.         function disableselect(e){ return false; }
  30.         function reEnable(){ return true; }
  31.         document.onselectstart=new Function ("return false");
  32.         document.oncontextmenu=new Function ("return false");
  33.         document.onmousedown=reEnable;
  34.         document.onclick=reEnable;
  35.     </script>
  36. </head>
  37. <body class="login_page login_page_v2">
  38. <div class="uk-container uk-container-center Aligner-item">
  39.     <div class="md-card">
  40.         <div class="md-card-content padding-reset">
  41.             <div class="uk-grid uk-grid-collapse ">
  42.                 <div class="uk-width-large-1-1  uk-container-center">
  43.                     <div class="login_page_forms hierarchical_show login-div" data-uk-grid-margin id="hierarchical-show" data-show-delay="280">
  44.                         <div id="login_card">
  45.                             <div id="login_form">
  46.                                 <div class="login_heading">
  47.                                     <img class="logo_regular" src="{{ asset('assets/img/others/ged_dgtfcm.png') }}" alt=""  style="cursor:pointer;"/>
  48.                                 </div>
  49.                                 <div class="uk-grid uk-grid-divider" data-uk-grid-margin align="center">
  50.                                     <div  class="uk-width-medium-1-2 login_code_show1" style="cursor:pointer;" id="fr">
  51.                                         <h2 class="heading_b uk-text-center uk-margin-bottom">
  52.                                             Bienvenue
  53.                                             <span class="sub-heading">Veuillez cliquer ici pour continuer</span>
  54.                                         </h2>
  55.                                     </div>
  56.                                     <div class="uk-width-medium-1-2 login_code_show1" style="cursor:pointer;" id="en">
  57.                                         <h2 class="heading_b uk-text-center uk-margin-bottom" style="cursor:pointer;">
  58.                                             Welcome
  59.                                             <span class="sub-heading">Please click here for next step</span>
  60.                                         </h2>
  61.                                     </div>
  62.                                 </div>
  63.                             </div>
  64.                             <div class="uk-position-relative" id="login_code" style="display: none">
  65.                                 <!---->
  66.                                 <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=""  >
  67.                                 </div>
  68.                                 <!---->
  69.                             </div>
  70.                         </div>
  71.                     </div>
  72.                 </div>
  73.             </div>
  74.         </div>
  75.     </div>
  76. </div>
  77. <!-- common functions -->
  78. <script src="{{ asset('assets/js/common.min.js') }}"></script>
  79. <!-- uikit functions -->
  80. <script src="{{ asset('assets/js/uikit_custom.min.js') }}"></script>
  81. <!-- altair core functions -->
  82. <script src="{{ asset('assets/js/altair_admin_common.min.js') }}"></script>
  83. <!-- altair login page functions -->
  84. <script src="{{ asset('assets/js/pages/login.js') }}"></script>
  85. <!--  animations functions -->
  86. <script src="{{ asset('assets/js/pages/components_animations.min.js') }}"></script>
  87. <!-- page specific plugins -->
  88. <!-- waitForImages  -->
  89. <script src="{{ asset('assets/js/custom/jquery.waitforimages.min.js') }}"></script>
  90. <!--  gallery functions -->
  91. <script src="{{ asset('assets/js/pages/page_gallery.min.js') }}"></script>
  92. <script>
  93.     // check for theme
  94.     if (typeof(Storage) !== "undefined") {
  95.         var root = document.getElementsByTagName( 'html' )[0],
  96.             theme = localStorage.getItem("altair_theme");
  97.         if(theme === 'app_theme_dark' || root.classList.contains('app_theme_dark')) {
  98.             root.className += ' app_theme_dark';
  99.         }
  100.     }
  101. </script>
  102. <script type="text/javascript" charset="UTF-8">
  103.     function OpenDep(activID,libe,lg) {
  104.         var lib="&Ecirc;tes-vous s&ucirc;re de vouloir ouvrir le d&eacute;partement : "+libe+"?";
  105.         var cancel_lg="Annuler";
  106.         var ok_lg="Ok";
  107.         if(lg === 'en'){
  108.             lib="Are you sure you want to open the department : "+libe+"?";
  109.             cancel_lg="Cancel";
  110.             ok_lg="Ok";
  111.         }
  112.         UIkit.modal.confirm(lib, function(){
  113.                 var obj = window.location="{{ path('api_home') }}";
  114.                 setTimeout(obj,1000);
  115.             },
  116.             {
  117.                 labels: {
  118.                     "Cancel": cancel_lg,
  119.                     "Ok": ok_lg
  120.                 }
  121.             });
  122.     }
  123.     $(document).ready(function(){
  124.         // variables
  125.         var $login_card = $('#login_card'),
  126.             $login_form = $('#login_form'),
  127.             $login_code = $('#login_code'),
  128.             $register_form = $('#register_form'),
  129.             $login_password_reset = $('#login_password_reset');
  130.     });
  131.     function getCookie(name)
  132.     {
  133.         var re = new RegExp(name + "=([^;]+)");
  134.         var value = re.exec(document.cookie);
  135.         return (value != null) ? unescape(value[1]) : null;
  136.     }
  137.     function setCookie(name, value, days) {
  138.         let cookieString = name + "=" + encodeURIComponent(value || "");
  139.         // Add expiration
  140.         if (days) {
  141.             const date = new Date();
  142.             date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
  143.             cookieString += "; expires=" + date.toUTCString();
  144.         }
  145.         // ✅ Dynamically get root domain from current hostname
  146.         const hostname = window.location.hostname;
  147.         const rootDomain = getRootDomain(hostname);
  148.         cookieString += "; path=/";
  149.         cookieString += "; domain=" + rootDomain;
  150.         cookieString += "; secure";
  151.         cookieString += "; samesite=none";
  152.         document.cookie = cookieString;
  153.         console.log('✅ Cookie set:', name, 'for domain:', rootDomain);
  154.     }
  155.     // Helper function to extract root domain
  156.     function getRootDomain(hostname) {
  157.         // Handle localhost
  158.         if (hostname === 'localhost' || hostname === '127.0.0.1') {
  159.             return hostname;
  160.         }
  161.         // Split by dots
  162.         const parts = hostname.split('.');
  163.         // If it's already a root domain (e.g., "example.com")
  164.         if (parts.length === 2) {
  165.             return '.' + hostname;
  166.         }
  167.         // If it's a subdomain (e.g., "ged.swissecoapp.tech" or "www.example.com")
  168.         // Take last 2 parts and add leading dot
  169.         if (parts.length >= 2) {
  170.             return '.' + parts.slice(-2).join('.');
  171.         }
  172.         // Fallback
  173.         return hostname;
  174.     }
  175.     function changeLang(lang)
  176.     {
  177.         var name="lang";
  178.         setCookie(name,lang,30);
  179.         //location.reload();
  180.     }
  181.     // show login code (hide other forms)
  182.     var login_code_show = function() {
  183.         $login_code
  184.             .show()
  185.             .siblings()
  186.             .hide();
  187.     };
  188.     $('.login_code_show1').on('click',function(e) {
  189.         e.preventDefault();
  190.         var lgID = $(this).attr("id");
  191.         /*$.getJSON( "{{ asset('assets/js/departements.json') }}", function( data ) {
  192.             var html = '';
  193.             var fc = '';
  194.             var actv = '';
  195.             var libDep = '';
  196.             var descDep = '';
  197.             $.each( data, function( key, Dept ) {
  198.                 fc = '';actv = 'disabledelt';
  199.                 if(key <= 0){
  200.                     actv = '';
  201.                     fc = 'class="uk-row-first" style="margin-bottom:1%"';
  202.                 }else if(key%6===0){
  203.                     fc = 'class="" style="margin-bottom:1%"';
  204.                 }
  205.                 libDep = Dept.Departement_fr;
  206.                 descDep = Dept.desc_fr;
  207.                 if(lgID === 'en'){
  208.                     changeLang('en');
  209.                     libDep = Dept.Departement_en;
  210.                     descDep = Dept.desc_en;
  211.                 }
  212.                 else {
  213.                     changeLang('fr');
  214.                 }
  215.                 html = '<div '+fc+' ><div class="md-card md-card-hover linkdep '+actv+'" onClick="OpenDep(\''+Dept.code+'\',\''+libDep+'\',\''+lgID+'\')">' +
  216.                     '<div class="gallery_grid_item md-card-content">' +
  217.                     '<img src="{{ asset('assets/img/others') }}/'+Dept.img+'" alt="">' +
  218.                     '<div class="gallery_grid_image_caption">' +
  219.                     '<span class="gallery_image_title uk-text-truncate">'+libDep+'</span>' +
  220.                     '<span class="uk-text-muted uk-text-small uk-text-truncate">'+descDep+'</span>' +
  221.                     '</div>' +
  222.                     '</div>' +
  223.                     '</div></div>';
  224.                 $(".depmindef").append(html);
  225.             });
  226.             // card animation & complete callback: login_code_show
  227.             altair_md.card_show_hide($login_card,undefined,login_code_show,undefined);
  228.         });*/
  229.         changeLang(lgID);
  230.         window.location="{{ path('api_home') }}";
  231.     });
  232. </script>
  233. </body>
  234. </html>