src/Centralstage/SecurityBundle/Resources/views/base.html.twig line 1

Open in your IDE?
  1. {#
  2.   Copyright (c) 2023, Kripya Solutions Private Limited, India.
  3.   All rights reserved.
  4.   Redistribution and use in source and binary forms, with or without
  5.   modification, are permitted provided that the following conditions
  6.   are met:
  7.   Redistributions of source code must retain the above copyright
  8.   notice, this list of conditions and the following disclaimer.
  9.   Redistributions in binary form must reproduce the above
  10.   copyright notice, this list of conditions and the following
  11.   disclaimer in the documentation and/or other materials provided
  12.   with the distribution.
  13.   Neither the name of Kripya Solutions  nor the names
  14.   of its contributors may be used to endorse or promote products
  15.   derived from this software without specific prior written
  16.   permission.
  17.   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  18.   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  19.   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  20.   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  21.   COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  22.   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  23.   BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  24.   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  25.   CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  26.   LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
  27.   ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  28.   POSSIBILITY OF SUCH DAMAGE.
  29.  #}<!DOCTYPE html>
  30. <!-- Copyright (c) 2023, Kripya Solutions Private Limited, India. All rights reserved.-->
  31. <html>
  32.     <head>
  33.         {% set Device = app.request.headers.get('Device') %}
  34.         {% if Device == 'TV' %}
  35.             <meta name="viewport" content="width=device-width, initial-scale=0.5, shrink-to-fit=no">
  36.         {% else %}
  37.             <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  38.         {% endif %}
  39.         <meta charset="UTF-8" />
  40.         {{ render(controller( 'App\\Centralstage\\CoreBundle\\Controller\\DefaultController::getAsset', { 'type': 'organizationFavIcon' } ))}}
  41.         <title>{% block title %}CenterStage{% endblock %}</title>
  42.         {% set cssLibVersion = 'V1.4.3' %}
  43.         {% set cssSrcVersion = 'V1.4.3' %} 
  44.         {% block stylesheets %}        
  45.             <link rel="stylesheet" type="text/css" href="{{asset('js/libs/jquery-ui-1.12.1.custom/jquery-ui.css?v=' ~cssLibVersion)}}"/>
  46.             <link rel="stylesheet" type="text/css" href="{{asset('css/libs/bootstrap/bootstrap.min.css?v=' ~cssLibVersion)}}"/>
  47.             <link rel="stylesheet" type="text/css" href="{{asset('js/libs/DataTables-1.10.18/datatables.min.css?v=' ~cssLibVersion)}}"/>
  48.             <link rel="stylesheet" type="text/css" href="{{asset('css/libs/bootstrap-datetimepicker.min.css?v=' ~cssLibVersion)}}"/>    
  49.             <link rel="stylesheet" type="text/css" href="{{asset('css/libs/bootstrap/bootstrap-toggle.min.css?v=' ~cssLibVersion)}}"/>
  50.             <link rel="stylesheet" type="text/css" href="{{asset('css/libs/font-awesome-4.7.0/css/font-awesome.min.css?v=' ~cssLibVersion)}}"/>                    
  51.             <link rel="stylesheet" type="text/css" href="{{asset('assets/app/common/open-iconic/font/css/open-iconic-bootstrap.css?v=' ~cssSrcVersion)}}"/>
  52.             <link rel="stylesheet" type="text/css" href="{{asset('assets/app/common/material-design-icons/iconfont/material-icons.css?v=' ~cssSrcVersion)}}"/>
  53.             <link rel="stylesheet" type="text/css" href="{{asset('css/src/bootstrap_overrides.css?v=' ~cssSrcVersion)}}"/>
  54.             <link rel="stylesheet" type="text/css" href="{{asset('css/src/base.css?v=' ~cssSrcVersion)}}"/>    
  55.             <link rel="stylesheet" type="text/css" href="{{asset('css/src/skeletonloader.css?v=' ~cssSrcVersion)}}"/>    
  56.             <link rel="stylesheet" type="text/css"  href="{{asset('css/src/print.css?v=' ~cssSrcVersion)}}"/>    
  57.         {% endblock %}
  58.         {% set jsLibVersion = 'V1.5.4' %}
  59.         {% set jsSrcVersion = 'V1.5.4' %}
  60.         {% block javascripts %}    
  61.             <script src="{{asset('js/libs/umd/popper.min.js')}}"></script>
  62.             <script type="text/javascript" src="{{asset('js/libs/jquery-3.7.1.min.js?v='~jsLibVersion)}}"></script>
  63.             <script type="text/javascript" src="{{asset('js/libs/jquery-ui-1.13.2/jquery-ui.min.js?v='~jsLibVersion)}}"></script>
  64.             <script type="text/javascript" src="{{asset('js/libs/jquery.validate.min.js?v='~jsLibVersion)}}"></script>
  65.             <script type="text/javascript" src="{{asset('js/libs/jquery.cookie.min.js?v='~jsLibVersion)}}"></script>
  66.             <script type="text/javascript" src="{{asset('js/libs/bootstrap/bootstrap.min.js?v='~jsLibVersion)}}"></script>
  67.             
  68.             <script type="text/javascript" src="{{asset('js/libs/DataTables-1.10.18/datatables.min.js?v='~jsLibVersion)}}"></script>
  69.             <script src="{{asset('js/libs/moment.min.js')}}"></script>
  70.             <script type="text/javascript" src="{{asset('js/libs/bootstrap-datetimepicker.min.js')}}"></script>
  71.             <script type="text/javascript" src="{{asset('js/libs/bootstrap/bootstrap-toggle.min.js?v='~jsLibVersion)}}"></script>            
  72.             <script type="text/javascript" src="{{asset('js/src/func/lyfenet.core.js?v='~jsSrcVersion)}}"></script>
  73.             <script type="text/javascript" src="{{asset('js/src/func/lyfenet.functions.js?v='~jsSrcVersion)}}"></script>
  74.             <script type="text/javascript" src="{{asset('js/src/func/lyfenet.defaults.js?v='~jsSrcVersion)}}
  75.             "></script>
  76.             <script type="text/javascript" src="{{asset('js/src/func/lyfenet.numberformats.js?v='~jsSrcVersion)}}
  77.             "></script>
  78.             <script language="javascript" type="text/javascript" src="{{asset("js/src/func/lyfenet.ui.js?v="~jsSrcVersion)}}"></script>
  79.             <script language="javascript" type="text/javascript" src="{{asset("js/src/func/lyfenet.navigation.js?v="~jsSrcVersion)}}"></script>
  80.             <script type="text/javascript" src="{{asset('js/src/config/common.js?v='~jsSrcVersion)}}"></script>
  81.             <script type="text/javascript" src="{{asset('js/src/config/server.js?v='~jsSrcVersion)}}"></script>
  82.             {% if get_env_var() == 'true' %}
  83.                 <script type="text/javascript" src="{{asset('js/src/app/tracking.js?v='~jsSrcVersion)}}"></script> {# tracking mautic #}
  84.             {% endif %}
  85.         {% endblock %}
  86.     </head>
  87.     <style>
  88.         .androidBtn{
  89.     color: white;
  90.     background-color: #0B0B47 ;
  91.     border: 1px solid #0B0B47;
  92.     border-radius:4px;
  93.   }
  94.   
  95.   .androidBtn:hover{
  96.     color: white;
  97.     background-color:#0036e3 ;
  98.     border: 1px solid #0036e3;
  99.     border-radius:4px;
  100.   }
  101.   .footer .info-icon .fa{ 
  102.     cursor:pointer;
  103.   }
  104.     .footer .info-icon .fa:hover{ 
  105.         
  106.     }
  107.     </style>
  108.     {% if theme is defined %}
  109.         {% set pageTheme = theme %}
  110.     {% else %}
  111.         {% set pageTheme = app.request.cookies.get('pageTheme') %}
  112.     {% endif %}
  113.     <body class="{{ pageTheme is defined and pageTheme == "darkTheme" ? 'dark_theme' : 'light_theme' }} ">
  114.     
  115.         <div class="container-fluid">
  116.             
  117.             {% block header %}
  118.                 <nav class="navbar navbar-expand-lg navbar-light bg-light border-bottom shadow-sm topMenu fixed" style="z-index:4">
  119.                     
  120.                     {# <a class="navbar-brand" href="/">
  121.                     {{ render(controller( 'App\\Centralstage\\CoreBundle\\Controller\\DefaultController::getAsset', { 'type': 'projectLogo' } ))}}
  122.                     </a> #}
  123.                     <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
  124.                         <span class="navbar-toggler-icon"></span>
  125.                     </button>
  126.             
  127.                     {% if Device == 'TV' %}
  128.                     <div class="d-flex justify-content-center mt-1">
  129.                         <button class="androidBtn py-2" type="button" onclick="SideNav.androidSettings()">
  130.                         <span class=""><img src="../assets/app/common/images/android.png" style="width: 20px; height: auto;"> Settings </span>
  131.                       </button>
  132.                     </div>
  133.                   {% endif %}
  134.                     {# <div class="collapse navbar-collapse" id="navbarSupportedContent">
  135.                         {{ render(controller( 'App\\Centralstage\\CoreBundle\\Controller\\DefaultController::getMenu', { 'type': 'top' } ))}}
  136.                     </div> #}
  137.                     
  138.                 </nav>
  139.             {% endblock %}
  140.             {% block notifications %}
  141.                 <div class="row justify-content-center">
  142.                     <div class="col-sm-6 position-fixed onTop alertsContainer"></div>
  143.                 </div>
  144.                 <div class="row justify-content-end">
  145.                     <div class="col-sm-3 position-fixed onTop toastsContainer"></div>
  146.                 </div>
  147.             {% endblock %}
  148.             
  149.             <!-- div class="container-fluid bg-white">
  150.                 <div class="row">
  151.                     <nav class="sidebar sidebar-collapsed" style="width:3%;">
  152.                         <div class="sidebar-sticky">
  153.                             <ul class="nav flex-column">
  154.                                 <li class="nav-item sideNavToggleBtn" onclick="SideNav.toggle()">
  155.                                     <a class="nav-link active">
  156.                                     <span class="oi oi-arrow-thick-right" >&nbsp;</span>
  157.                                     <span class="nav-label">Collapse</span>
  158.                                     </a>
  159.                                 </li>
  160.                                 <li class="nav-item">
  161.                                     <a class="nav-link active" href="{{ path("home") }}">
  162.                                     <span class="oi oi-home">&nbsp;</span>
  163.                                     <span class="nav-label">Home</span>
  164.                                     </a>
  165.                                 </li>
  166.                                 <li class="nav-item">
  167.                                     <a class="nav-link" href="#">
  168.                                     <span class="oi oi-hard-drive">&nbsp;</span>
  169.                                     <span class="nav-label">Devices</span>
  170.                                     </a>
  171.                                 </li>
  172.                                 <li class="nav-item">
  173.                                     <a class="nav-link" href="#">
  174.                                     <span class="oi oi-pin">&nbsp;</span>
  175.                                     <span class="nav-label">Sites</span>
  176.                                     </a>
  177.                                 </li>
  178.                                 <li class="nav-item">
  179.                                     <a class="nav-link" href="#">
  180.                                     <span class="oi oi-clipboard">&nbsp;</span>
  181.                                     <span class="nav-label">Reports</span>
  182.                                     </a>
  183.                                 </li>
  184.                             </ul>
  185.                         </div>
  186.                     </nav>
  187.                     <div class="container-fluid bg-white" style="width:95%;">
  188.                         
  189.                     </div>
  190.                 </div>            
  191.             </div -->
  192.             <div class="baseContentWrapper" id="pdfHere">
  193.             {% block body %}
  194.             {% endblock %}
  195.             </div>
  196.             <div id="logoutConfirmModal" class="modal fade" role="dialog" data-keyboard="false" data-backdrop="static" > 
  197.                 <div class="modal-dialog modal-sm">
  198.                     <div class="modal-content">
  199.                         <div class="modal-body">                        
  200.                             <h5 class="modal-title">Are you sure want to logout?</h5>
  201.                         </div>
  202.                         <div class="modal-footer">
  203.                             <button type="button" data-dismiss="modal" class="btn btn-sm btn-primary" id="logoutYesBtn" onclick="location.href = '{{path('logout')}}';">Yes</button>
  204.                             <button type="button" data-dismiss="modal" class="btn btn-sm btn-danger">Cancel</button>
  205.                         </div>
  206.                     </div>
  207.                 </div>
  208.             </div>
  209.             
  210.             <nav class="navbar fixed-bottom navbar-light footer">
  211.                 {# <div class="text-muted foottext">All rights reserved. Copyright © 2014-2023</div> #}
  212.                 <div class="col-4 d-flex">
  213.                     <div class="text-muted foottext"><span class="copyright">All rights reserved. Copyright &copy; 2014 - {{ 'now'|date('Y') }}</span></div> 
  214.                     <div class="ml-2 info-icon" onclick="showPopup()">
  215.                         <i class="fa fa-info-circle"></i> 
  216.                     </div>
  217.                 </div>
  218.                 <div class="col-8 d-flex justify-content-end align-items-center">
  219.                     <div id="MyClockDisplay" class="btn mr-2 pt-2 font-weight-bolder" onload="showTime()"></div>
  220.                     {% block footer_contents %}{% endblock %}
  221.                     <a class="navbar-brand" href="#">{{ render(controller( 'App\\Centralstage\\CoreBundle\\Controller\\DefaultController::getAsset', { 'type': 'organizationLogo' } ))
  222.                     }}</a>
  223.                 </div>
  224.             </nav>
  225.             {# <div class="model" id="popup">
  226.                 {{ render(controller( 'App\\Centralstage\\CoreBundle\\Controller\\DefaultController::getRelease', { 'type': 'releaseNotes' } ))}}
  227.             </div> #}
  228.         </div>
  229.         <script>
  230.         /*    // var sessionData = JSON.parse('{{app.session.get("authDetails") | json_encode()}}');
  231.             var jsonPretty = JSON.stringify('{{app.session.get("authDetails") | raw}}');
  232.             
  233.             var json = JSON.parse(jsonPretty);
  234.             
  235.             console.log(typeof json, json.a);
  236.             console.log(jsonPretty.preferences);
  237.             // var jsonPretty = JSON.stringify(JSON.parse(app.session.get('authDetails')),null,2);
  238.             // console.log(jsonPretty); */
  239.       </script>
  240.         {% block themesheets %}
  241.             {% if pageTheme is defined and pageTheme == "darkTheme" %}
  242.                 <link rel="stylesheet" media="all"  type="text/css" href="{{asset('css/src/theme_dark_one.css?v=' ~cssSrcVersion)}}"/>
  243.             {% else %}
  244.                 <link rel="stylesheet" media="all"  type="text/css" href="{{asset('css/src/theme_light_one.css?v=' ~cssSrcVersion)}}"/>
  245.             {% endif %}
  246.         {% endblock %}
  247.         
  248.         {% block pagebottom_javascripts %} 
  249.         {% if pageTheme is defined and pageTheme == "darkTheme" %}
  250.         <script type="text/javascript">
  251.             // From Here Themes fontColor working
  252.                 var themeManager = {};
  253.                 themeManager.chartLabelColor  = '#fff';
  254.                 themeManager.chartBG  = '#1f2241';
  255.                 themeManager.pcLabelColor = '#fff';
  256.                 themeManager.chartTitleColor  = '#fff';
  257.                 themeManager.chartLegendColor = '#fff';
  258.                 themeManager.chartColorArray  = ['#FE5722','#FEC107','#25BA3A','#1DCDDB','#5677FC','#3F51B5','#009788','#9C28B1','#EA1E63','#FF0000','#03fc9d'];
  259.                 themeManager.chartColorArray2  = ['#1DCDDB','#F0834D','#FF0000','#FFA500','#2CB81B','#3F51B5','#009788','#9C28B1','#EA1E63','#FF0000','#03fc9d'];
  260.                 themeManager.hoverBackgroundColor = '#1DCDDBCC';
  261.         </script>
  262.         {% else %}
  263.         <script type="text/javascript">
  264.             // From Here Themes fontColor working
  265.                 var themeManager = {};
  266.                 themeManager.chartLabelColor  = '#000';
  267.                 themeManager.pcLabelColor = '#fff';
  268.                 themeManager.chartBG  = '#fff';
  269.                 themeManager.chartTitleColor  = '#000';
  270.                 themeManager.chartLegendColor = '#000';
  271.                 themeManager.chartColorArray  =   ['#FE5722','#FEC107','#25BA3A','#00BCD5','#5677FC','#3F51B5','#05D8BF','#AD0FD3','#EF0F65','#E51C24','#03fc9d'];          
  272.                 themeManager.chartColorArray2  =  ['#2D325A','#F0834D','#FF0000','#FFA500','#2CB81B','#3F51B5','#05D8BF','#AD0FD3','#EF0F65','#E51C24','#03fc9d'];     
  273.                 themeManager.hoverBackgroundColor = '#3394de';
  274.         </script>
  275.         {% endif %}
  276.         <script type="text/javascript">
  277.              // Theme fontColor end
  278.             var SideNav = {};
  279.             SideNav.isExpanded = false;
  280.             SideNav.toggle = function(){
  281.                 if(sideNavExpanded){
  282.                     console.log('Collapse Nav');
  283.                     SideNav.collapse();
  284.                     SideNav.isExpanded = false;
  285.                 }else{
  286.                     console.log('Expand Nav');
  287.                     SideNav.expand();
  288.                     SideNav.isExpanded = true;
  289.                 }
  290.             }
  291.             SideNav.androidSettings = function(){
  292.                 androidSettings.showSetting()
  293.             }
  294.             SideNav.expand = function(){                
  295.                 $('.sidebar').addClass("sidebar-expanded");
  296.                 $('.sidebar').removeClass("sidebar-collapsed");
  297.                 $('.sideNavToggleBtn .oi').removeClass("oi-arrow-thick-right");
  298.                 $('.sideNavToggleBtn .oi').addClass("oi-arrow-thick-left");                
  299.             }
  300.             SideNav.collapse = function(){                
  301.                 $('.sidebar').removeClass("sidebar-expanded");
  302.                 $('.sidebar').addClass("sidebar-collapsed");
  303.                 $('.sideNavToggleBtn .oi').removeClass("oi-arrow-thick-left");
  304.                 $('.sideNavToggleBtn .oi').addClass("oi-arrow-thick-right");             
  305.             }
  306.             $(document).ready(function () {
  307.                 $('.sidebar').on( "mouseleave", function(){
  308.                     SideNav.collapse();
  309.                 });
  310.                 $('.sidebar').on( "mouseenter", function(){
  311.                     SideNav.expand();
  312.                 });
  313.             });
  314.             </script>
  315.         {% endblock %}
  316.         <script type="text/javascript">
  317.             $(document).ready(function () {
  318.                 $(window).on('resize', function(){
  319.                     LN.UI.FullHeight('.baseContentWrapper');
  320.                 });
  321.                 LN.UI.FullHeight('.baseContentWrapper');
  322.             });
  323.             function showPopup() {
  324.                  $('#showmodals').modal('show');
  325.             }
  326.             function showTime(){
  327.                 var date = new Date();
  328.                 $('#MyClockDisplay').text(date.toLocaleTimeString());
  329.                 setTimeout(showTime, 1000);
  330.                 // var h = date.getHours(); // 0 - 23
  331.                 // var m = date.getMinutes(); // 0 - 59
  332.                 // var s = date.getSeconds(); // 0 - 59
  333.                 // var session = "AM";
  334.                 
  335.                 // if(h == 0){
  336.                 //     h = 12;
  337.                 // }
  338.                 
  339.                 // if(h > 12){
  340.                 //     h = h - 12;
  341.                 //     session = "PM";
  342.                 // }
  343.                 
  344.                 // h = (h < 10) ? "0" + h : h;
  345.                 // m = (m < 10) ? "0" + m : m;
  346.                 // s = (s < 10) ? "0" + s : s;
  347.                 
  348.                 // var time = h + ":" + m + ":" + s + " " + session;  
  349.                 // $('#MyClockDisplay').text(time);    
  350.             }
  351.         showTime();
  352.         </script>    
  353.         {# tracking mautic #}
  354.         <script>
  355.             document.addEventListener("DOMContentLoaded", function() {
  356.                 if(`{{ get_env_var() }}` == 'true') {
  357.                     mt('send', 'pageview', {page_url: window.location.href, page_title:document.title});
  358.                 }
  359.             });
  360.         </script>
  361.     </body>
  362. </html>