Sindbad~EG File Manager
{% extends "backoffice/layout.html" %}
{% block title %}REPORT{% endblock %}
{% block header %}Filter Report{% endblock %}
{% block content %}
{% set bg_color = namespace(val="") %}
<form id="form_filter" action="{{url_for('backoffice.Bo_filter_report',conf_id=conf_id,conf_key=conf_key)}}" method="POST">
<input type="hidden" name="conf_id" id="conf_id" value="{{conf_id}}">
<input type="hidden" name="conf_key" id="conf_key" value="{{conf_key}}">
<input type="hidden" name="export_file" id="export_file" value="{{export_file}}">
{% if categories_data %}
<div class="container border border-primary bg-light rounded py-2 " >
<div class="row">
<div class="col-md-12">
{% for c in categories_data %}
<div class="hasTooltip" style="float: left;width: 20px;height: 20px;margin: 5px;border: 1px solid rgba(0, 0, 0, .2);background: {{c.color_code}};" onclick="change_color({{c.category_id}})" data-atip="change_color">
</div>
<div style="float:left;">
<a href="{{url_for('backoffice.Bo_filter_report',conf_id=conf_id,conf_key=conf_key)}}?ddlCategory={{c.category_id}}&ddlAbstractType={{abs_type}}&ddlstatus={{status_type[0]}}" class="text-dark font-weight-bold">{{c.display_name}}</a>
</div>
{% endfor %}
</div>
</div>
</div>
<div class="d-none" id="change_color">
<h6>Click here to change the color</h6>
</div>
{% endif %}
<div class="container border border-primary bg-light rounded py-2 " >
<div class="row " >
<div class="col-6">
<i class="fa-light fa fa-filter" id="colse_filter" ><a href="#"class="text-dark">Filter</a></i>
</div>
<div class="col-6 text-right">
<a href="{{url_for('backoffice.bo_report',abs_type=abs_type,status_type=1,conf_id=conf_id,conf_key=conf_key)}}">Clear Filter</a>
</div>
</div>
<div id="filter_con" style="padding-top: 5px; padding-bottom: 5px; ">
<div class="row" >
<div class="col-sm-6">
<div class="form-group">
<label>Abstract Type</label>
<select id="ddlAbstractType" class="form-control ddlAbstractType" name="ddlAbstractType">
<option value="">--Select--</option>
{% if abs_types %}
{% for item in abs_types %}
{% if item.abs_type == abs_type %}
<option value="{{item.abs_type or ''}}" selected >{{item.title or ''}}</option>
{% else %}
<option value="{{item.abs_type or ''}}" >{{item.title or ''}}</option>
{% endif %}
{% endfor %}
{% endif %}
</select>
</div>
</div>
<div class="col-sm-6" >
<div class="form-group">
<label>Category</label>
<select id="ddlCategory" class=" ddlCategory" name="ddlCategory">
<option value="">--Select--</option>
{% if categories %}
{% for item in categories %}
<option value="{{item.category_id}}"> {{item.display_name}} </option>
{% endfor %}
{% endif %}
</select>
</div>
</div>
</div>
<div class="row">
{% if presentation %}
<div class="col">
<label>Presentation Type</label>
<select id="ddlpresentation" class=" ddlpresentation" multiple name="ddlpresentation">
<option value="">--Select--</option>
{% for item in presentation %}
{% for i in range (0,presentation_type|length) %}
{% if presentation_type[i]|int == item.presentation_type_id %}
<option value="{{item.presentation_type_id}}" selected> {{item.type}} </option>
{% endif %}
{% endfor %}
<option value="{{item.presentation_type_id}}" > {{item.type}} </option>
{% endfor %}
</select>
</div>
{% endif %}
<div class="col">
<label>Status</label>
<select id="ddlstatus" class=" ddlstatus" multiple name="ddlstatus">
<option value="">--Select--</option>
{% if status %}
{% for item in status %}
{% for i in range (0,status_type|length) %}
{% if status_type[i]|int == item.abs_status_id and status_type[i] != '' %}
<option value="{{item.abs_status_id}}" onclick="$(#filter_con).toggle();" selected> {{item.status}} </option>
{% endif %}
{% endfor %}
<option value="{{item.abs_status_id}}"> {{item.status}} </option>
{% endfor %}
{% endif %}
</select>
</div>
</div>
<div class="row">
<div class="col">
<label>selection type</label>
<select id="ddlselection" class=" form-group ddlselection"multiple name="ddlselection">
<option value="">--Select--</option>
{% if selection %}
{% for item in selection %}
{% for i in range (0, selection_type|length) %}
{% if selection_type[i]|int == item.selection_type_id %}
<option value="{{item.selection_type_id}}" selected> {{item.type}} </option>
{% endif %}
{% endfor %}
<option value="{{item.selection_type_id}}"> {{item.type}} </option>
{% endfor %}
{% endif %}
</select>
</div>
{% if awards %}
<div class="col">
<label>Awards</label>
<select id="ddlawards" class=" form-group ddlawards"multiple name="ddlawards">
<option value="">--Select--</option>
{% if awards %}
{% for item in awards %}
<option value="{{item.award_id}}"> {{item.award_name}} </option>
{% endfor %}
{% endif %}
</select>
</div>
{% endif %}
</div>
<div class="row">
<div class="col">
<input type="submit" name="submit" id="submit" class="btn btn-outline-primary" value="Filter">
</div>
</div>
</div>
</div>
<div class="modal" id="export_modal" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Export</h4>
</div>
<div class="modal-body">
<div class="container">
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
<div class="form-group">
<label class="font-weight-bold">Select Column Names</label>
<select id="selected_fields" class=" selected_fields" name="selected_fields" multiple>
<option value="">--Select--</option>
{{col_name}}
{% if col_name %}
{% for item in col_name %}
<option value="{{item.cols_value_name}}"> {{item.cols_display_name}} </option>
{% endfor %}
{% endif %}
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<input type="radio" name="export_type" id="csv" value="csv"><label for="csv" class="ml-2">CSV(.csv)</label>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<input type="radio" name="export_type" id="xl" value="xl"><label for="xl" class="ml-2">Excel(.xlsx)</label>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary submit_btn" id="submit_btn" class="submit_btn" onclick="get_export_type()">Submit</button>
<button type="button" class="btn btn-danger" id="close_btn" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</form>
<div class="container border border-primary rounded bg-light ">
<div class="row" >
<div class="col-lg-6 col-md-6 col-sm-12">
<h3 class="font-weight-bold" style="padding-top:7px" id="report_title"></h3>
<h5><span class="text-danger">{% if data %}Total record returned - {% if data[0]["user_id"] %}{{ data|length or ''}}{% else %} 0 {% endif %} {% endif %}</span> |
<span class="font-weight-bold">Filter by :</span><span id="report_filter"></span></h5>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<button type="button" class="btn btn-primary export_btn float-right m-2" id="export_btn" data-toggle="modal" data-target="#export_modal">Export</button>
</div>
</div>
<div class="card p-2 mb-2" id="view_mail_template">
<div class="row" >
{% if mail_templates %}
<div class="col-md-6 form-group">
<label>Mail Template</label>
<select id="mail_template_id" multiple name="mail_template_id">
<option value="">--Select--</option>
{% if mail_templates %}
{% for item in mail_templates %}
<option value="{{item.mail_template_id}}"> {{item.display_name}} </option>
{% endfor %}
{% endif %}
</select>
</div>
{% endif %}
<div class="col-md-6 mt-4">
<button type="button" class="btn btn-danger" id='sendtestmail'>Test Mail</button>
<button type="button" class="btn btn-primary" id='send_all_mail' onclick="send_selected_mailtemplate()">Send Mail</button>
<button type="button" class="btn btn-secondary" id="preview_mail">Preview</button>
</div>
<div class="col-md-6">
<label>To</label>
<select id="to_mail" class="to_mail" multiple name="to_mail">
{% if abs_type != 'IC' %}
<option value="">--Select--</option>
<option value="34">Chief Author</option>
<option value="35">Presenting Author</option>
<option value="36">Co Author(s)</option>
{% else %}
<option value="">--Select--</option>
<option value="32">Chief Instructor</option>
<option value="33">Co-Instructor</option>
{% endif %}
</select>
</div>
<div class="col-md-6">
<label>CC</label>
<select id="cc_mail" class=" cc_mail" multiple name="cc_mail">
{% if abs_type != 'IC' %}
<option value="">--Select--</option>
<option value="34">Chief Author</option>
<option value="35">Presenting Author</option>
<option value="36">Co Author(s)</option>
{% else %}
<option value="">--Select--</option>
<option value="32">Chief Instructor</option>
<option value="33">Co-Instructor</option>
{% endif %}
</select>
</div>
</div>
</div>
<div class="row">
<div class="col">
<div class=" table-responsive mobile-responsive table-freeze">
<table class="table table-bordered table-striped ">
<thead class="thead-dark">
<!-- <th scope ="col">Edit/View</th> -->
{% if Auth.get_user(society_id).get("admin_type")|int != 3 %}
<th scope="col" class="col-freeze" ></th>
{% endif %}
<th scope="col" class="col-freeze">ABS NO</th>
<th scope="col" class="">TITLE</th>
<th scope="col">CATEGORY</th>
{% if awards %}
<th scope="col">Award</th>
{% endif %}
{% if abs_type != 'IC' %}
<th scope="col">CHIEF AUTHOR</th>
<!-- <th scope="col">CHIEF AUTHOR MEMBERSHIP NO</th> -->
{% endif %}
{% if abs_type != 'IC' %}
<th scope="col">CHIEF AUTHOR MEMBERSHIP NO</th>
{% endif %}
<th scope="col">
{% if abs_type == 'IC' %}
CHIEF INSTRUCTOR
{% else %}
PRESENTING AUTHOR
{% endif %}
</th>
<th scope="col">
{% if abs_type == 'IC' %}
CHIEF INSTRUCTOR MEMBERSHIP NO
{% else %}
PRESENTING AUTHOR MEMBERSHIP NO
{% endif %}
</th>
<th scope="col">
{% if abs_type == 'IC' %}
CO INSTRUCTOR
{% else %}
CO AUTHOR
{% endif %}
</th>
{% if abs_type == 'IC' or abs_type == 'FP' or abs_type == 'PP' %}
<th scope="col">{% if abs_type == 'IC' %}LEVEL{% else %}TYPE OF PRESENTATION{% endif %}</th>
{% endif %}
</thead>
<tbody>
{% if data %}
{% if data[0]["user_id"] %}
{% for i in data %}
{% set bg_color = namespace(val="") %}
{% if categories_data and i.category_id %}
{% for c in categories_data %}
{% if i.category_id|int == c.category_id|int %}
{% set bg_color.val = c.color_code %}
{% endif %}
{% endfor %}
{% endif %}
<tr style="background-color:{{bg_color.val}} ;">
{% if Auth.get_user(society_id).get("admin_type")|int != 3 %}
<td class="col-freeze"><input type="checkbox" name="select_to_mail" id="select_to_mail" class="select_to_mail" value="{{i.abs_id}}" /></td>
{% endif %}
<td class="col-freeze" data-label = "ABS NO">
<a href="{{url_for('backoffice.bo_View',abs_id=i.abs_id,inuser_id=i.user_id,conf_id=conf_id,conf_key=conf_key)}}" style="color:black;" >{{i.abs_type}}{{i.abs_no or ''}}</a>
<a href="{{url_for('backoffice.bo_View',abs_id=i.abs_id,inuser_id=i.user_id,conf_id=conf_id,conf_key=conf_key)}}"><i class="fa fa-eye text-info "></i></a>
{% if Auth.get_user(society_id).get("admin_type")|int != 3 %}
<a class="pr-4" href="{{url_for('backoffice.edit',abs_id=i.abs_id,abs_type=i.abs_type,inuser_id=i.user_id,conf_id=conf_id,conf_key=conf_key)}}"><i class="fa fa-edit text-info "></i></a>
{% if i.abs_status_id > 0 %}
<a class="pr-4" href="{{url_for('backoffice.SubmittedMailView',abs_id=i.abs_id,user_id=i.user_id,conf_id=conf_id,conf_key=conf_key)}}"
target="blank"><i class="fa fa-envelope"></i></a>
{% endif %}
{% endif %}
</td>
<td class="col-freeze" data-label = "TITLE">
<a href="{{url_for('backoffice.bo_View',abs_id=i.abs_id,inuser_id=i.user_id,conf_id=conf_id,conf_key=conf_key)}}" style="color:black;" >{% if i.title %}{{i.title or ''}}{% else %}
<span class='text-danger'>Incomplete</span>{% endif %}
</a>
</td>
<td data-label = "CATEGORY">{{i.display_name or ''}}</td>
{% if awards %}
<td data-label = "AWARD">{{i.award_name or ''}}</td>
{% endif %}
{% if abs_type != 'IC' %}
<td data-label = "CHIEF AUTHOR">{{ i.prefix or '' }}{{ i.full_name or '' }}</td>
{% endif %}
{% if abs_type != 'IC' %}
<td data-label = "CHIEF AUTHOR MEMBERSHIP NO">{{i.membership_no or 'Non Member' }}</td>
{% endif %}
<td data-label = "PRESENTING AUTHOR">{{ i.presenting_authour or '' }}</td>
<td>{{i.presenting_membership_no or 'Non-Member'}}</td>
<td data-label = "CO AUTHOR">{{ i.co_author or '' }}</td>
{% if abs_type == 'IC' or abs_type == 'FP' or abs_type == 'PP' %}
<td data-label = "level">{% if abs_type == 'IC'%}{{i.level or '' }}{% else %}{{i.type or '' }}{% endif %}</td>
{% endif %}
</tr>
{% endfor %}
{% endif %}
{% endif %}
</tbody>
</table>
</div>
</div>
</div>
</div>
<input type="hidden" name="category_id" id="category_id" value="{{category_id}}">
<div class="modal" id="testmailid_modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Test Mail ID</h5>
<button type="button" class="close Close_modal" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="row">
<div class="col">
<label>Enter the testing email id</label>
</div>
</div>
<div class="row">
<div class="col-12">
<label>TO</label>
<input type="text" name="test_to_mail_id" id="test_to_mail_id" class="form-control" required />
</div>
<div class="col-12">
<label>CC</label>
<input type="text" name="test_cc_mail_id" id="test_cc_mail_id" class="form-control" required />
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" id="sendtest" class="btn btn-primary">Send</button>
<button type="button" class="btn btn-secondary Close_modal" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div class="modal" id="previewmail_modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document" style="max-width: 750px;">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Preview Mail</h5>
<button type="button" class="close Close_modal" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="row">
<div class="col">
<div id="show_preview_mail"></div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary Close_modal" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div class="modal" id="myModal">
<div class="modal-dialog modal-lg">
<div class="modal-content ">
<!-- Modal Header -->
<div class="modal-header text-center">
<h4 class="modal-title ">Color Change</h4>
<button type="button" class="close Close_modal" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<!-- Modal body -->
<div class="modal-body">
<div class="row">
<div class="col-md-12">
<label><b>Category :</b></label>
<label id="cat_display_name"></label>
</div>
<div class="col-md-12">
<label><b>Color :</b></label>
</div>
<div class="col-md-3">
<input type="color" class="m-auto form-control form-control-color" id="color_codes" value="">
</div>
<input type="hidden" id="c_category_id" value="">
</div>
<div class="row">
<div class="col-md-12 text-right p-2 mb-2">
<input type="button" class="btn btn-primary" id="update_color" name="update_color" value="Update">
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block script %}
<script type="text/javascript">
var abs_type = '{{abs_type}}'
var conf_id = "{{conf_id}}"
var conf_key = "{{conf_key}}"
$("#view_mail_template").hide();
$(document).on("click","input[name=select_to_mail]",function(e){
if($('input[name=select_to_mail]').is(":checked")) {
$("#view_mail_template").show();}
else{
$("#view_mail_template").hide();
}
if (abs_type == 'IC') {
$("#ic_view").show();
}
else {
$("#others_view").show();
}
})
function get_export_type()
{
var export_type = $("input[name=export_type]:checked").val();
// alert(export_type);
$("#export_file").val(export_type);
};
$("#ddlstatus").selectize({
maxItems: 10,
plugins: ['remove_button'],
});
$("#ddlpresentation").selectize({
maxItems: 10,
plugins: ['remove_button'],
});
$("#ddlselection").selectize({
maxItems: 20,
plugins: ['remove_button'],
});
$("#ddlawards").selectize({
maxItems: 20,
plugins: ['remove_button'],
});
$("#selected_fields").selectize(
{
maxItems: 100,
plugins: ['remove_button'],
});
$("#ddlCategory").selectize(
{
maxItems: 100,
plugins: ['remove_button'],
});
$("#to_mail").selectize({
maxItems: 10,
plugins: ['remove_button'],
});
$("#cc_mail").selectize({
maxItems: 10,
plugins: ['remove_button'],
});
$("#mail_template_id").selectize({
maxItems: 1,
});
var category_id =$("#category_id").val();
var dataarray=category_id.split(",");
var category = $(ddlCategory).selectize({sortField:'text'})[0].selectize;
$(document).ready(function ()
{
$("#filter_con").hide();
change_category($(".ddlAbstractType").val())
$(".ddlAbstractType").change(function(){
category.clearOptions()
var id=$(this).val();
change_category(id)
});
$("#colse_filter").click(function() {
$("#filter_con").toggle();
});
});
function change_category(abs_type){
var conf_id = $("#conf_id").val();
var conf_key = $("#conf_key").val();
$.ajax({
type: "GET",
url: BaseUrl + "/bo/category/"+conf_id+"/"+conf_key,
data:{'abs_type': abs_type},
dataType: "json",
})
.done(function(d) {
result = d;
setCategory(result);
})
};
function setCategory(arr)
{
$.each(arr, function (i, category)
{
// $(...)[0].selectize.addOption(...)
$(".ddlCategory")[0].selectize.addOption({value:category.category_id,text:category.display_name});
});
$(".ddlCategory")[0].selectize.setValue(dataarray);
};
var m_abs_type_text = $('#ddlAbstractType option:selected').toArray().map(item => item.text).join();
if (m_abs_type_text){
var abs_type_text = m_abs_type_text + ',';
}
var section_text = $('#ddlselection option:selected').toArray().map(item => item.text).join();
if (section_text){
var section_text = section_text+',';
}
var presentation_text = $('#ddlpresentation option:selected').toArray().map(item => item.text).join();
if (presentation_text){
var presentation_text= presentation_text+','
}
var award_text = $('#ddlawards option:selected').toArray().map(item => item.text).join();
if (award_text){
var award_text= award_text+','
}
var statustext = $('#ddlstatus option:selected').toArray().map(item => item.text).join();
$("#report_title").text(m_abs_type_text);
$("#report_filter").text((section_text+presentation_text+statustext));
function send_selected_mailtemplate() {
var mail_template_id = $("#mail_template_id").val();
var conf_id = "{{conf_id}}"
var conf_key = "{{conf_key}}"
var to_mail_role_id = []
var cc_mail_role_id = []
var selected_mail_ids = []
$("input[name='select_to_mail']:checked").each(function(){
selected_mail_ids.push(this.value)
});
var to_mail_role_id = $('#to_mail').val();
var cc_mail_role_id = $('#cc_mail').val();
if (mail_template_id.length == 0)
{
alert('Please select mail template')
}
else if(to_mail_role_id == null)
{
alert('Please select TO mail')
}
else {
if(cc_mail_role_id != null)
{
cc_mail_role_id = cc_mail_role_id.join(",")
}
$.ajax({
type: 'POST',
url: BaseUrl + "/bo/report/send_mail/"+mail_template_id+"/"+conf_id+"/"+conf_key,
data:{
'is_test' : 0,
'selected_mail_ids':selected_mail_ids.join(","),
'to_mail_role_id':to_mail_role_id.join(","),
'cc_mail_role_id':cc_mail_role_id
},
dataType: 'json',
success: function(data)
{
if (data["msg"])
{
$("#error_message_step1").show();
$("#error_message_step1").html(data["msg"]);
}
}
})
}
}
$("#sendtestmail").click(function(){
$('#testmailid_modal').show();
})
$("#sendtest").click(function(){
var mail_template_id = $("#mail_template_id").val();
var conf_id = "{{conf_id}}"
var conf_key = "{{conf_key}}"
var test_to_mail_id = []
var test_cc_mail_id = []
var selected_mail_ids = []
$("input[name='select_to_mail']:checked").each(function(){
selected_mail_ids.push(this.value)
});
var test_to_mail_id = $('#test_to_mail_id').val();
var test_cc_mail_id = $('#test_cc_mail_id').val();
if (mail_template_id.length == 0)
{
alert('Please select mail template')
$('#testmailid_modal').hide();
}
else if(test_to_mail_id.length == 0)
{
alert('Please select TO mail')
$('#testmailid_modal').hide();
}
else {
$.ajax({
type: 'POST',
url: BaseUrl + "/bo/report/send_mail/"+mail_template_id+"/"+conf_id+"/"+conf_key,
data:{
'is_test' : 1,
'selected_mail_ids':selected_mail_ids.join(","),
'to_mail_role_id':test_to_mail_id,
'cc_mail_role_id':test_cc_mail_id
},
dataType: 'json',
success: function(data)
{
if (data["msg"])
{
$("#error_message_step1").show();
$("#error_message_step1").html(data["msg"]);
}
$('#testmailid_modal').hide();
}
})
}
})
$("#preview_mail").click(function(){
var mail_template_id = $("#mail_template_id").val();
var conf_id = "{{conf_id}}"
var conf_key = "{{conf_key}}"
var selected_mail_ids = []
$("input[name='select_to_mail']:checked").each(function(){
selected_mail_ids.push(this.value)
});
if (mail_template_id == null)
{
alert('Please select mail template')
}
else
{
$.ajax({
type: 'POST',
url: BaseUrl + "/bo/report/send_mail/"+mail_template_id+"/"+conf_id+"/"+conf_key,
data:{
'is_preview' : 1,
'selected_mail_ids':selected_mail_ids.join(",")
},
dataType: 'json',
success: function(data)
{
$("#previewmail_modal").show();
$("#show_preview_mail").html(data["html"])
}
})
}
})
function change_color(category_id) {
$("#myModal").show();
$.ajax({
type: 'POST',
url: BaseUrl + "/bo/get_categories/"+conf_id+"/"+conf_key,
data:{'category_id' : category_id},
dataType: 'json',
success: function(data)
{
$('#cat_display_name').html(data.display_name);
$('#color_codes').val(data.color_code)
$('#c_category_id').val(category_id)
}
})
}
$('#update_color').click(function(){
var color_code = $('#color_codes').val();
var category_id = $('#c_category_id').val();
$.ajax({
type: 'POST',
url: BaseUrl + "/bo/update_color_code/"+conf_id+"/"+conf_key,
data:{'color_code' : color_code,'category_id':category_id},
dataType: 'json',
success: function(data)
{
location.reload();
$("#myModal").show();
}
})
})
</script>
{% endblock %}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists