Sindbad~EG File Manager

Current Path : /home/numerotech/test-abs.numerotech.com/common_abs_v2/core/templates/backoffice/
Upload File :
Current File : //home/numerotech/test-abs.numerotech.com/common_abs_v2/core/templates/backoffice/layout.html

<!DOCTYPE html>
<html>
    <head>
        <title>
            {{Auth.get_conference(conf_id).get('conf_name')}} Backoffice {% block title %}{% endblock %}
        </title>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width-device-width, initial-scale=1.0" />

        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" />
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" />
        <link href="https://cdn.jsdelivr.net/gh/NumeroTec/ntec_cdn@main/static/css/v6/all.css" rel="stylesheet" />
        <link href="https://cdn.jsdelivr.net/gh/NumeroTec/ntec_cdn@main/static/css/v6/sharp-regular.css" rel="stylesheet" />
        <link href="https://cdn.jsdelivr.net/gh/NumeroTec/ntec_cdn@main/static/css/v6/sharp-solid.css" rel="stylesheet" />
        <!--<link media="all" type="text/css" rel="stylesheet" href="/static/css/selectize.bootstrap3.css" />-->
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.15.2/css/selectize.default.min.css" />
        <link rel="stylesheet" href="/static/css/bootstrap.min.css" />
        <link rel="stylesheet" type="text/css" href="/static/css/Backoffice.css" />
        <link rel="stylesheet" type="text/css" href="/static/css/style.css" />
        <link rel="stylesheet" type="text/css" href="/static/css/table_freeze.css" />
        <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/qtip2/3.0.3/jquery.qtip.css" />
        <link rel="shortcut icon" href="{{ Auth.get_conference(conf_id).get('favicon_url') or '#' }}" />
        <!--<link rel="stylesheet" type="text/css" href="/static/css/Backoffice_{{Auth.get_conference(conf_id).get('app_style')}}" />-->

        <style>
            .highlight {
                background-color: yellow;
                font-weight: bold;
            }
            .search_report_table {
                font-family: sans-serif;
            }
        </style>
    </head>
    {% set get_abs_type = BoModel().get_abstract(conf_id) %} 
    {% set get_reminder_attachment = BoModel().get_attachement_reminder(conf_id) %} 
    {% set society_id = Auth.get_conference(conf_id).get('society_id') %} 
    {% set app_type_id = Auth.get_conference(conf_id).get('app_type_id') %}
    <body>
        <div class="container-fluid">
            <div class="row  ">
                <div class="dashboard">
                <div class="dashboard-nav col-lg-1 col-md-12 col-sm-12" id="sidenav-3">
                    <header>
                        <a href="#!" class="menu-toggle"><i class="fa fa-bars"></i></a>
                        <a href="{{url_for('DB.Dashboard',conf_id=conf_id,conf_key=conf_key)}}" class="brand-logo"><img src="{{Auth.get_conference(conf_id).get('header_logo')}}" alt="logo" class="rounded" style="max-width: 200px;" /></a>
                    </header>
                    {% set email = Auth.get_user(society_id)['email'] %} 
                    {% set get_layout_data = Auth.get_bo_layout_v1(society_id,conf_id,email,app_type_id) %} 
                    {% if get_layout_data : %}
                    <div class="navbar-search-block">
                        <select name="searchInput" id="searchInput" placeholder="Search menu" onchange="submitBtn()">
                            <option></option>
                            {% for row in get_layout_data %} 
                            {% for r in get_layout_data[row] %} 
                            {% if r.url %}
                            <option value="{{r.display_name}}">{{r.display_name}}</option>
                            {% endif %} {% endfor %} {% endfor %}
                        </select>
                    </div>
                    {% endif %} {% macro render_menu(parent_id) %}
                    {% if get_layout_data : %}
                    {% for row in get_layout_data[parent_id] %}
                    {% set mdata = get_layout_data[row.menu_id] or [] %}
                        {% if mdata|length > 0 %}
                        <div class="dashboard-nav-dropdown">
                            <a href="#!" class="dashboard-nav-item dashboard-nav-dropdown-toggle {% if parent_id !=0 %} ml-3 {% endif %}">
                                <i class="{{row.menu_icon}}"></i> {{ row.display_name }} </a>
                            <div class="dashboard-nav-dropdown-menu">
                                {{ render_menu(row.menu_id) }}
                            </div>
                        </div>
                        {% else %} 
                        {% if row.parameter %} {% set params = Helper.convert_comma_to_dict(row.parameter) %}
                        <a href="{{url_for(row.url,conf_id=conf_id,conf_key=conf_key, **params)}}" class="dashboard-nav-item ml-3">
                            <i class="{{row.menu_icon}}"></i>{{row.display_name}}
                        </a>
                        {% else %}
                        {% if row.url %}
                        <a href="{{url_for(row.url,conf_id=conf_id,conf_key=conf_key)}}" class="dashboard-nav-item {% if parent_id !=0 %} ml-3 {% endif %}">
                            <i class="{{row.menu_icon}}"></i>{{row.display_name}}
                        </a>
                        {% elif row.custom_sub_menu %} 
                        {{ Helper.convert_html_for_mail_screen_v1(row.custom_sub_menu,get_abs_type,get_reminder_attachment,conf_id,conf_key)|safe}} 
                        {% else %}
                        <a href="#" class="dashboard-nav-item dashboard-nav-dropdown-toggle"><i class="{{row.menu_icon}}"></i>{{row.display_name}}</a>
                        {% endif %}
                        {% endif %}
                        {% endif %}
                        {% endfor %}
                        {% else %}
                    <a href="{{url_for('backoffice.bo_dashboard',conf_id=conf_id,conf_key=conf_key)}}" class="dashboard-nav-item"><i class="fa fa-dashboard"></i> Dashboard </a>
                    <a href="{{url_for('backoffice.bo_report_blank',conf_id=conf_id,conf_key=conf_key)}}" class="dashboard-nav-item"><i class="fa fa-file-text"></i> Report </a>

                    {% endif %} {% endmacro %} {{ render_menu(0) }}
                    <a href="{{url_for('user.Logout',conf_id=conf_id,conf_key=conf_key)}}" class="dashboard-nav-item"><i class="fa fa-sign-out-alt"></i> Logout </a>
                </div>

                <div class="dashboard-app col-lg-10 col-md-12 col-sm-12">
                    <header class="dashboard-toolbar">
                        <a href="#!" class="menu-toggle"><i class="fa fa-bars"></i></a>
                        <span class="text-center h2">{{Auth.get_conference(conf_id).get('conf_name')}}</span>
                        <button type="button" class="btn btn-outline-dark btn-lg text-center border" data-toggle="modal" data-target=".search_modal"><i class="fa-solid fa-magnifying-glass fa-xs"></i> Click here to search</button>
                        <div class="float-right">
                            <b class="h5">Welcome! {{Auth.get_user(society_id)['prefix'] or ''}}{{Auth.get_user(society_id)['full_name'] or ''}}</b><br />
                            <span class="h2">Backoffice</span>
                        </div>
                    </header>
                </div>
                </div>
            </div>
            <div class="container-fluid justify-content-center">
                <div class="dashboard-content " style="margin-top: -43.5rem !important;">
                    {% for mesg in get_flashed_messages(category_filter=["successMsg"]) %}
                    <div class="alert alert-success text-center alert-dismissible" id="successMessage">
                        <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
                        <h4><img src="/static/images/wrong.png" alt="right" height="21" width="21" />{{ mesg|safe }}</h4>
                    </div>
                    {% endfor %} {% for mesg in get_flashed_messages(category_filter=["errorMsg"]) %}
                    <div class="alert alert-danger text-center alert-dismissible" id="successMessage">
                        <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
                        <h4><img src="/static/images/right.png" alt="wrong" height="21" width="21" />{{ mesg }}</h4>
                    </div>
                    {% endfor %}
                    <div class="alert alert-warning alert-dismissible fade show" id="error_message_step1" role="alert">
                        <label id="error_message_label"></label>
                        <button type="button" class="close" aria-label="Close">
                            <span aria-hidden="true">&times;</span>
                        </button>
                    </div>
                    <div class="row justify-content-end">
                        <!--<div class="col-xl-2 col-lg-3 col-md-12 col-sm-12"></div>-->
                        <div class="col-xl-10 col-lg-9 col-md-12 col-sm-12">
                            <h2>{% block header %}{% endblock %}</h2>
                            {% block content %}{% endblock %}
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <!-- Search Modal -->
        <div class="modal fade search_modal">
        <div class="modal-dialog modal-xl">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title">Search</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                      <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body">
                    <div class="row">
                        <div class="col-md-12">
                            <input type="hidden" id="conf_id" name="conf_id" value="{{conf_id}}">
                            <input type="hidden" id="conf_key" name="conf_key" value="{{conf_key}}">
                            <input class="form-control search_txt" id="search_txt" name="search_txt" placeholder="Search here..">
                        </div>
                    </div>
                    
                    <div class="row">
                        <div class="col-md-12">
                            
                                {% if get_abs_type%}
                                {% for abt in get_abs_type%}
                                <input type="checkbox" class="abs_type" id="abs_type_{{abt.abs_type_id}}" name="abs_type" value="{{abt.abs_type}}">
                                <label class="btn_abs_type" id="btn_abs_type" for="abs_type_{{abt.abs_type_id}}">{{abt.abs_type}}</label>
                                {% endfor %}
                                {% endif %}
                                                    
                        </div>
                    </div>
                    
                    <div class="row">
                        <div class="col-md-12">
                        <input type="hidden" name="html_data" id="html_data" value="{{html_data or ''}}">
                        <div class="col-md-12" id="search_data">      
                        </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <!-- End Search Modal -->
        <!-- End Search Modal -->

        <script src="{{ Helper.cdn_url }}/static/js/jquery.min.js" charset="utf-8"></script>
        <script src="{{ Helper.cdn_url }}/static/js/bootstrap.min.js"></script>
        <script src="{{ Helper.cdn_url }}/static/js/popper.min.js"></script>
        <!--<script src="/static/js/bootstrap.bundle.min.js"></script>-->
        <script src="https://code.iconify.design/2/2.1.0/iconify.min.js"></script>
        <script src="{{ Helper.cdn_url }}/static/js/jquery.validate.js" charset="utf-8"></script>
        <script src="/static/js/ajaxloader.js"></script>
        <script src="/static/js/table_freeze.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.15.2/js/selectize.min.js"></script>
        <script src="https://cdn.jsdelivr.net/qtip2/3.0.3/jquery.qtip.min.js"></script>
        <script src="//cdn.datatables.net/1.13.4/js/jquery.dataTables.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.16/jquery.mask.js"></script>
        <script src="/static/js/nt-loader.js"></script>
        <script type="text/javascript">
            function pageleave() {
                alert("hello");
            }
            // const searchInputSidenav = document.getElementById('search-input-sidenav');
            // const sidenavOptions = document.querySelectorAll('#sidenav-3  .dashboard-nav-item');

            // searchInputSidenav.addEventListener('input', () => {
            //   const filter = searchInputSidenav.value.toLowerCase();
            //   showSidenavOptions();
            //   const valueExist = !!filter.length;

            //   if (valueExist) {
            //     sidenavOptions.forEach((el) => {
            //       const elText = el.textContent.trim().toLowerCase();
            //       const isIncluded = elText.includes(filter);
            //       if (!isIncluded) {
            //         el.style.display = 'none';
            //       }
            //     });
            //   }
            // });

            const showSidenavOptions = () => {
                sidenavOptions.forEach((el) => {
                    el.style.display = "flex";
                });
            };
            $(".hasTooltip").each(function () {
                // Notice the .each() loop, discussed below
                $(this).qtip({
                    style: {
                        classes: "qtip-dark qtip-rounded",
                    },
                    content: {
                        text: $("#" + $(this).attr("data-atip")).html(), // Use the "div" element next to this for the content
                    },
                });
            });
        </script>
        <script type="text/javascript">
            $("#error_message_step1").hide();
            var BaseUrl = document.location.origin;
            const mobileScreen = window.matchMedia("(max-width: 990px )");

            $(document).ready(function () {
                setTimeout(function () {
                    StopProgress();
                }, 2000);
                $(".dashboard-nav-dropdown-toggle").click(function () {
                    $(this).closest(".dashboard-nav-dropdown").toggleClass("show").find(".dashboard-nav-dropdown").removeClass("show");
                    $(this).parent().siblings().removeClass("show");
                });
                $(".menu-toggle").click(function () {
                    if (mobileScreen.matches) {
                        $(".dashboard-nav").toggleClass("mobile-show");
                    } else {
                        $(".dashboard").toggleClass("dashboard-compact");
                    }
                });
                // $("#search_txt").change(function(){
                $("#search_txt").keyup(function () {
                    // $("#search_txt").css("background-color", "pink");
                    var search_txt = $("#search_txt").val();
                    get_searched_data(search_txt);
                });
                $(".abs_type").on('click',function(){
                        // $("#search_txt").css("background-color", "pink");
                        // if (search_txt.length>2){
                           var search_txt = $("#search_txt").val();
                           get_searched_data(search_txt)
                        // }
                        
                    });
                // });
            });
            $(".close").click(function () {
                $(".alert").hide();
            });
            $(".Close_modal").click(function () {
                $(".modal").hide();
                $(".modal").modal("hide");
            });
            $(".close_btn").click(function () {
                $(".modal").hide();
                $(".modal").hide();
            });

            // var search_txt =  $("#search_txt").val();
            // var table_txt  = $(".table_content").text();

           function get_searched_data(search_txt){
                var html_data = $("#html_data").val();
                var conf_id = $("#conf_id").val();
                var conf_key = $("#conf_key").val();
                var abs_types = $('.abs_type:checked').map(function() {
                    var val = this.value;
                    return val
                }).get().join('","');
                if (abs_types){
                    var abs_types = '"'+abs_types+'"'
                }
                else{
                    var abs_types = null
                }
                $("#search_data").html(html_data);
                $.ajax({
                    type: "POST",
                    url: BaseUrl + "/bo/get_searched_data/"+conf_id+"/"+conf_key,
                    data: {
                        'search_txt'  : search_txt,
                        'conf_id'      : conf_id,
                        'abs_types' : abs_types
                    },
                    // dataType: 'json',
                    success: function(data) {
                        var data_1    = JSON.parse(data);
                        var msg       = data_1.msg;
                        var html_data = data_1.html_data;
                        if (msg == "success")
                        {
                            $("#search_data").empty();
                            $("#search_data").html(html_data);
                            
                            var table_txt  = $("#table_content").text();
                            
                            if (search_txt.length >= 3){
                                $("#search_report_table").find(".bg-warning").removeClass("bg-warning");

                                arr = search_txt.split(" ");

                                $.each(arr, function(index, value) {

                                    custfilter = new RegExp("(" + value + ")", "gi");

                                    if (value != "") {
                                    $('#search_report_table').each(function() {
                                        $(this).html($(this).html().replace(custfilter, "<span class='bg-warning'>$1</span>"));
                                    })
                                    }

                                });
                            }
                        }  
                        else
                        {
                          return false;
                        }
                    },
                })   
            }
            // $("#search_txt").on("input.highlight", "input", function() {
            //     var searchTerm = $("#search_txt").val();
            //     // Highlight search term inside a specific context
            //     $("#search_data").unmark().mark(searchTerm);
            // }).trigger("input.highlight").focus();
        </script>
        <script type="text/javascript">
            $(document).on("change", ".trim", function (e) {
                var val = $(this).val();
                var trim_val = $.trim(val);
                $(this).val(trim_val);
            });
            $(document).ready(function () {
                $("#searchInput").selectize({
                    delimiter: ",",
                    persist: false,
                    maxItems: 1,
                });
            });
            function submitBtn() {
                var searchQuery = $("#searchInput").val().trim().toLowerCase();
                // console.log(searchQuery)
                var menuItems = $(".dashboard-nav-item");

                menuItems.each(function (index, element) {
                    var menuItemText = $(element).text().trim().toLowerCase();
                    // console.log(menuItemText)
                    if (menuItemText.indexOf(searchQuery) !== -1) {
                        var menuItemUrl = $(element).attr("href");
                        navigateToMenuItem(menuItemUrl);
                        return false;
                    }
                });
            }
            function navigateToMenuItem(url) {
                if (url) {
                    // window.location.href = url;
                    history.pushState(null, null, url);
                    location.reload();
                }
            }
        </script>
        {% block script %}{% endblock %}
    </body>
</html>

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists