Sindbad~EG File Manager
<!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">×</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">×</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">×</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">×</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