<!DOCTYPE html> <html> <head> <title>Analysis Information Leak framework Dashboard</title> <link rel="icon" href="{{ url_for('static', filename='image/ail-icon.png') }}"> <!-- Core CSS --> <link href="{{ url_for('static', filename='css/bootstrap4.min.css') }}" rel="stylesheet"> <link href="{{ url_for('static', filename='css/font-awesome.min.css') }}" rel="stylesheet"> <link href="{{ url_for('static', filename='css/dygraph_gallery.css') }}" rel="stylesheet" type="text/css" /> <!-- JS --> <script type="text/javascript" src="{{ url_for('static', filename='js/dygraph-combined.js') }}"></script> <script src="{{ url_for('static', filename='js/jquery.js') }}"></script> <script src="{{ url_for('static', filename='js/jquery.flot.js') }}"></script> <script src="{{ url_for('static', filename='js/jquery.flot.time.js') }}"></script> <script src="{{ url_for('static', filename='js/bootstrap4.min.js')}}"></script> <script type="text/javascript" src="{{ url_for('static', filename='js/indexjavascript.js')}}" data-urlstuff="{{ url_for('dashboard.stuff') }}" data-urllog="{{ url_for('dashboard.logs') }}"> </script> <style> .tableQueue tbody tr td, .tableQueue tbody tr th, .tableQueue thead tr td, .tableQueue thead tr th{ padding: 1px; } tr.table-disabled { background-color: #f2f2f2; } tr.table-log-warning { background-color: #ccfae3; } </style> <script> window.default_minute = {{ default_minute }}; window.glob_tabvar = []; // Avoid undefined window.threshold_stucked_module = {{ threshold_stucked_module }} function update_values() { $.getJSON("{{ url_for('dashboard.stuff') }}", function(data) { window.glob_tabvar = data; }); }; update_values(); </script> </head> <body> {% include 'nav_bar.html' %} <div class="container-fluid"> <div class="row"> {% include 'dashboard/menu_sidebar.html' %} <div class="col-12 col-lg-10" id="core_content"> {%if update_in_progress%} <div class="alert alert-warning alert-dismissible fade show my-2" role="alert"> <strong>Warning!</strong> {{update_warning_message}} <strong>{{update_warning_message_notice_me}}</strong> (<a href="{{ url_for('settings.settings_page') }}">Check Update Status</a>) <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> {%endif%} <!-- TODO: Add users messages --> {%if update_note%} {% include 'dashboard/update_modal.html' %} {%endif%} <div class="row my-2"> <div class="col-xl-6"> <div class="card"> <div class="card-header"> <i class="far fa-chart-bar"></i> Feeder(s) Monitor: </div> <div class="card-body" id="panelbody" style="height:420px;"> <strong>Processed items</strong> <div id="Proc_feeder" style="height: 230px; padding: 0px; position: relative;"></div> <hr style="border-top: 2px solid #eee; margin-top: 7px; margin-bottom: 7px;"> <strong>Filtered duplicates</strong> <div id="Dup_feeder" style="height: 100px; padding: 0px; position: relative;"></div> </div> </div> </div> <div class="col-xl-6"> <div class="card"> <div class="card-header"> <i class="far fa-chart-bar"></i> Queues Monitor </div> <div class="card-body"> <div class="" id="Graph" style="height:195px; width:88%;"></div> <div style="height:10px;"></div> <div class="" id="Graph2" style="height:195px; width:88%;"></div> </div> </div> </div> </div> <div class="card"> <div class="card-header"> <i class="fas fa-clipboard-list"></i> Logs <div class="float-right"> <label style="padding-bottom:2px;"> <select class="form-control input-sm" id="log_select"> {% for log_selection in log_select %} {% if log_selection == selected %} <option value="{{ log_selection }}" selected>{{ log_selection }}</option> {% else %} <option value="{{ log_selection }}">{{ log_selection }}</option> {% endif %} {% endfor %} </select> </label> <input id="checkbox_log_info" type="checkbox" value="INFO"> INFO <input id="checkbox_log_warning" type="checkbox" value="WARNING" checked="true"> WARNING <input id="checkbox_log_critical" type="checkbox" value="CRITICAL" checked="true"> CRITICAL </div> </div> <div class="card-body"> <table class="table table-hover table-sm" id="table_log"> <thead> <tr> <th>Time</th> <th>Channel</th> <th>Level</th> <th>Script Name</th> <th>Source</th> <th>Date</th> <th>Paste name</th> <th>Message</th> <th>Actions</th> </tr> </thead> <tbody id="tab_body"> </tbody> </table> </div> </div> </div> </div> </div> </body> <script> var url_showSavedPath = "{{ url_for('objects_item.showItem') }}"; </script> <script> $("#page-Dashboard").addClass("active"); var tableBody = document.getElementById('tab_body') $.getJSON("{{ url_for('dashboard.get_last_logs_json') }}", function(data) { data.forEach(function (d) { var tr = document.createElement('TR') var time = document.createElement('TD') var chan = document.createElement('TD') var level = document.createElement('TD') var scrpt = document.createElement('TD') var src = document.createElement('TD') var pdate = document.createElement('TD') var nam = document.createElement('TD') var msage = document.createElement('TD') var inspect = document.createElement('TD') tr.className = "table-log-warning"; time.appendChild(document.createTextNode(d.time)) chan.appendChild(document.createTextNode('Script')) level.appendChild(document.createTextNode('WARNING')) scrpt.appendChild(document.createTextNode(d.script)) src.appendChild(document.createTextNode(d.domain)) pdate.appendChild(document.createTextNode(d.date_paste)) nam.appendChild(document.createTextNode(d.paste)) var iconspan = document.createElement('SPAN'); var message = d.message.split(" ") if (message[0] == "Detected"){ iconspan.className = "fas fa-eye"; } else if (message[0] == "Checked"){ iconspan.className = "far fa-thumbs-up"; } iconspan.innerHTML = " "; msage.appendChild(iconspan); msage.appendChild(document.createTextNode(message.join(" "))); var action_icon_a = document.createElement("A"); action_icon_a.setAttribute("TARGET", "_blank"); action_icon_a.setAttribute("HREF", d.path); var action_icon_span = document.createElement('SPAN'); action_icon_span.className = "fas fa-search-plus"; action_icon_a.appendChild(action_icon_span); inspect.appendChild(action_icon_a) inspect.setAttribute("style", "text-align:center;"); tr.appendChild(time) tr.appendChild(chan); tr.appendChild(level); tr.appendChild(scrpt); tr.appendChild(src); tr.appendChild(pdate); tr.appendChild(nam); tr.appendChild(msage); tr.appendChild(inspect); tableBody.appendChild(tr); }); }); function toggle_sidebar(){ if($('#nav_menu').is(':visible')){ $('#nav_menu').hide(); $('#side-bard-dashboard-content').hide(); $('#side_menu').removeClass('border-right') $('#side_menu').removeClass('col-lg-2') $('#core_content').removeClass('col-lg-10') }else{ $('#nav_menu').show(); $('#side-bard-dashboard-content').show(); $('#side_menu').addClass('border-right') $('#side_menu').addClass('col-lg-2') $('#core_content').addClass('col-lg-10') } } </script> </html>