chg: [decoded items] bootstrap 4 migration

pull/422/head
Terrtia 2019-05-15 17:23:58 +02:00
parent 6480744641
commit cca69def71
No known key found for this signature in database
GPG Key ID: 1E1B1F50D84613D0
5 changed files with 449 additions and 408 deletions

View File

@ -66,13 +66,13 @@ def get_file_icon(estimated_type):
if file_type == 'application': if file_type == 'application':
file_icon = 'fa-file ' file_icon = 'fa-file '
elif file_type == 'audio': elif file_type == 'audio':
file_icon = 'fa-file-video-o ' file_icon = 'fa-file-audio '
elif file_type == 'image': elif file_type == 'image':
file_icon = 'fa-file-image-o' file_icon = 'fa-file-image'
elif file_type == 'text': elif file_type == 'text':
file_icon = 'fa-file-text-o' file_icon = 'fa-file-alt'
else: else:
file_icon = 'fa-file-o' file_icon = 'fa-sticky-note'
return file_icon return file_icon
@ -88,7 +88,7 @@ def get_file_icon_text(estimated_type):
elif file_type == 'text': elif file_type == 'text':
file_icon_text = '\uf15c' file_icon_text = '\uf15c'
else: else:
file_icon_text = '\uf15b' file_icon_text = '\uf249'
return file_icon_text return file_icon_text

View File

@ -1,37 +1,30 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <title>Decoded - AIL</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="icon" href="{{ url_for('static', filename='image/ail-icon.png') }}">
<title>HashesDecoded - AIL</title>
<!-- Core CSS --> <!-- Core CSS -->
<link href="{{ url_for('static', filename='css/bootstrap.min.css') }}" rel="stylesheet"> <link href="{{ url_for('static', filename='css/bootstrap4.min.css') }}" rel="stylesheet">
<link href="{{ url_for('static', filename='font-awesome/css/font-awesome.css') }}" rel="stylesheet"> <link href="{{ url_for('static', filename='css/font-awesome.min.css') }}" rel="stylesheet">
<link href="{{ url_for('static', filename='css/sb-admin-2.css') }}" rel="stylesheet"> <link href="{{ url_for('static', filename='css/dataTables.bootstrap.min.css') }}" rel="stylesheet">
<link href="{{ url_for('static', filename='css/dataTables.bootstrap.css') }}" rel="stylesheet" type="text/css" /> <link href="{{ url_for('static', filename='css/daterangepicker.min.css') }}" rel="stylesheet">
<link href="{{ url_for('static', filename='css/daterangepicker.min.css') }}" rel="stylesheet" type="text/css" />
<!-- JS --> <!-- JS -->
<script language="javascript" src="{{ url_for('static', filename='js/jquery.js')}}"></script> <script src="{{ url_for('static', filename='js/jquery.js')}}"></script>
<script src="{{ url_for('static', filename='js/bootstrap.min.js') }}"></script> <script src="{{ url_for('static', filename='js/popper.min.js')}}"></script>
<script src="{{ url_for('static', filename='js/jquery.dataTables.min.js') }}"></script> <script src="{{ url_for('static', filename='js/bootstrap4.min.js')}}"></script>
<script src="{{ url_for('static', filename='js/dataTables.bootstrap.js') }}"></script> <script src="{{ url_for('static', filename='js/jquery.dataTables.min.js')}}"></script>
<script src="{{ url_for('static', filename='js/jquery.flot.js') }}"></script> <script src="{{ url_for('static', filename='js/dataTables.bootstrap.min.js')}}"></script>
<script src="{{ url_for('static', filename='js/jquery.flot.time.js') }}"></script>
<script src="{{ url_for('static', filename='js/jquery.flot.stack.js') }}"></script>
<script language="javascript" src="{{ url_for('static', filename='js/moment.min.js') }}"></script> <script language="javascript" src="{{ url_for('static', filename='js/moment.min.js') }}"></script>
<script language="javascript" src="{{ url_for('static', filename='js/jquery.daterangepicker.min.js') }}"></script> <script language="javascript" src="{{ url_for('static', filename='js/jquery.daterangepicker.min.js') }}"></script>
<script language="javascript" src="{{ url_for('static', filename='js/d3.min.js') }}"></script> <script language="javascript" src="{{ url_for('static', filename='js/d3.min.js') }}"></script>
<style> <style>
.input-group .form-control { .input-group .form-control {
position: unset; position: unset;
} }
.red_table thead{
background: #d91f2d;
color: #fff;
}
.line { .line {
fill: none; fill: none;
stroke: #000; stroke: #000;
@ -65,42 +58,40 @@
color: #000000; color: #000000;
} }
</style> </style>
</head> </head>
<body> <body>
{% include 'navbar.html' %} {% include 'nav_bar.html' %}
<div id="page-wrapper"> <div class="container-fluid">
<div class="row"> <div class="row">
<div class="col-lg-12">
<h1 class="page-header" data-page="page-termsfrequency" >Hashed Files</h1>
<div>
</div> {% include 'decoded/menu_sidebar.html' %}
</div>
<!-- /.col-lg-12 --> <div class="col-12 col-lg-10" id="core_content">
<div class="row"> <div class="row">
<div class="col-md-10"> <div class="col-xl-10">
<div id="barchart_type"> <div class="mt-1" id="barchart_type">
</div> </div>
</div> </div>
<div class="col-md-2"> <div class="col-xl-2">
<div class="panel panel-info" style="text-align:center;">
<div class="panel-heading"> <div class="card mb-3 mt-2" style="background-color:#d9edf7;">
Select a date range : <div class="card-body text-center py-2">
<h6 class="card-title" style="color:#286090;">Select a date range :</h5>
<form action="{{ url_for('hashDecoded.all_hash_search') }}" id="hash_selector_form" method='post'> <form action="{{ url_for('hashDecoded.all_hash_search') }}" id="hash_selector_form" method='post'>
<div class="input-group"> <div class="input-group" id="date-range-from">
<span class="input-group-addon"><i class="fa fa-calendar fa" aria-hidden="true"></i></span> <div class="input-group-prepend"><span class="input-group-text"><i class="far fa-calendar-alt" aria-hidden="true"></i></span></div>
<input class="form-control" id="date-range-from" placeholder="yyyy-mm-dd" value="{{ date_from }}" name="date_from"> <input class="form-control" id="date-range-from-input" placeholder="yyyy-mm-dd" value="{{ date_from }}" name="date_from" autocomplete="off">
</div> </div>
<div class="input-group"> <div class="input-group" id="date-range-to">
<span class="input-group-addon"><i class="fa fa-calendar fa" aria-hidden="true"></i></span> <div class="input-group-prepend"><span class="input-group-text"><i class="far fa-calendar-alt" aria-hidden="true"></i></span></div>
<input class="form-control" id="date-range-to" placeholder="yyyy-mm-dd" value="{{ date_to }}" name="date_to"> <input class="form-control" id="date-range-to-input" placeholder="yyyy-mm-dd" value="{{ date_to }}" name="date_to" autocomplete="off">
</div> </div>
Encoding : <div class="mt-1" style="font-size: 14px;color:#286090;">Encoding :</div>
<select class="form-control" name="encoding" style="width=100%;"> <select class="custom-select" name="encoding">
<option>All encoding</option> <option>All encoding</option>
{% for encod in all_encoding %} {% for encod in all_encoding %}
{% if encoding|string() == encod|string() %} {% if encoding|string() == encod|string() %}
@ -110,8 +101,8 @@
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</select> </select>
File Type : <div class="mt-1" style="font-size: 14px;color:#286090;">File Type :</div>
<select class="form-control" name="type" style="width=100%;"> <select class="custom-select" name="type">
<option>All types</option> <option>All types</option>
{% for typ in l_type %} {% for typ in l_type %}
{% if type|string() == typ|string() %} {% if type|string() == typ|string() %}
@ -121,37 +112,36 @@
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</select> </select>
<div class="checkbox"> <div class="form-check my-1">
<label> <input class="form-check-input" type="checkbox" id="checkbox-input-show" name="show_decoded_files" value="True" {% if show_decoded_files %}checked{% endif %}>
<input type="checkbox" name="show_decoded_files" value="True" {% if show_decoded_files %}checked{% endif %}> <label class="form-check-label" for="checkbox-input-show">
<div style="color:#286090; display:inline-block"> <div style="color:#286090; font-size: 14px;">
Show decoded files <i class="fa fa-file"></i> Show decoded files <i class="fas fa-file"></i>
</div> </div>
</label> </label>
</div> </div>
<button class="btn btn-primary" style="text-align:center;"> <button class="btn btn-primary" style="text-align:center;">
<i class="fa fa-files-o"></i> Search <i class="fas fa-copy"></i> Search
</button> </button>
<form> <form>
</div> </div>
</div> </div>
<div id="pie_chart_encoded"> <div id="pie_chart_encoded">
</div> </div>
<div id="pie_chart_top5_types"> <div id="pie_chart_top5_types">
</div> </div>
</div> </div>
</div> </div>
</div>
<!-- /#page-wrapper -->
{% if l_64|length != 0 %} {% if l_64|length != 0 %}
{% if date_from|string == date_to|string %} {% if date_from|string == date_to|string %}
<h3> {{ date_from }} Hashed files: </h3> <h3> {{ date_from }} Decoded files: </h3>
{% else %} {% else %}
<h3> {{ date_from }} to {{ date_to }} Hashed files: </h3> <h3> {{ date_from }} to {{ date_to }} Decoded files: </h3>
{% endif %} {% endif %}
<table id="tableb64" class="red_table table table-striped table-bordered"> <table id="tableb64" class="table table-striped table-bordered">
<thead> <thead class="bg-dark text-white">
<tr> <tr>
<th>estimated type</th> <th>estimated type</th>
<th>hash</th> <th>hash</th>
@ -163,36 +153,35 @@
<th>Sparkline</th> <th>Sparkline</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody style="font-size: 15px;">
{% for b64 in l_64 %} {% for b64 in l_64 %}
<tr> <tr>
<td><i class="fa {{ b64[0] }}"></i>&nbsp;&nbsp;{{ b64[1] }}</td> <td><i class="fas {{ b64[0] }}"></i>&nbsp;&nbsp;{{ b64[1] }}</td>
<td><a target="_blank" href="{{ url_for('hashDecoded.showHash') }}?hash={{ b64[2] }}">{{ b64[2] }}</a></td> <td><a target="_blank" href="{{ url_for('hashDecoded.showHash') }}?hash={{ b64[2] }}">{{ b64[2] }}</a></td>
<td>{{ b64[5] }}</td> <td>{{ b64[5] }}</td>
<td>{{ b64[6] }}</td> <td>{{ b64[6] }}</td>
<td>{{ b64[3] }}</td> <td>{{ b64[3] }}</td>
<td>{{ b64[4] }}</td> <td>{{ b64[4] }}</td>
<td style="text-align:center;max-width:150px;"> <td>
{% if vt_enabled %} {% if vt_enabled %}
{% if not b64[7] %} {% if not b64[7] %}
<darkbutton_{{ b64[2] }}> <darkbutton_{{ b64[2] }}>
<button id="submit_vt_{{ b64[2] }}" class="btn btn-primary" onclick="sendFileToVT('{{ b64[2] }}')"> <button id="submit_vt_{{ b64[2] }}" class="btn btn-secondary" style="font-size: 14px;" onclick="sendFileToVT('{{ b64[2] }}')">
<i class="fa fa-paper-plane"></i>&nbsp;Send this file to VT <i class="fas fa-paper-plane"></i>&nbsp;Send this file to VT
</button> </button>
</darkbutton_{{ b64[2] }}> </darkbutton_{{ b64[2] }}>
{% else %} {% else %}
<a class="btn btn-primary" target="_blank" href="{{ b64[8] }}"><i class="fa fa-link"> VT Report</i></a> <a class="btn btn-secondary" target="_blank" href="{{ b64[8] }}" style="font-size: 14px;"><i class="fas fa-link"></i>&nbsp;VT Report</a>
{% endif %} {% endif %}
<button class="btn btn-default" onclick="updateVTReport('{{ b64[2] }}')"> <button class="btn btn-outline-dark" onclick="updateVTReport('{{ b64[2] }}')" style="font-size: 14px;">
<div id="report_vt_{{ b64[2] }}"><span class="glyphicon glyphicon-refresh"></span>&nbsp;{{ b64[9] }}</div> <div id="report_vt_{{ b64[2] }}"><i class="fas fa-sync-alt"></i>&nbsp;{{ b64[9] }}</div>
</button> </button>
{% else %} {% else %}
Virus Total submission is disabled Virus Total submission is disabled
{% endif %} {% endif %}
</td> </td>
<td id="sparklines_{{ b64[2] }}" style="text-align:center;"> <td id="sparklines_{{ b64[2] }}" style="text-align:center;"></td>
</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
@ -209,42 +198,43 @@
</div> </div>
</div> </div>
<!-- /.row --> </div>
</div>
<script> <script>
var chart = {}; var chart = {};
$(document).ready(function(){ $(document).ready(function(){
activePage = "page-hashDecoded" $("#page-Decoded").addClass("active");
$("#"+activePage).addClass("active"); $("#nav_dashboard").addClass("active");
$('#date-range-from').dateRangePicker({ $('#date-range-from').dateRangePicker({
separator : ' to ', separator : ' to ',
getValue: function() getValue: function()
{ {
if ($('#date-range-from').val() && $('#date-range-to').val() ) if ($('#date-range-from-input').val() && $('#date-range-to').val() )
return $('#date-range-from').val() + ' to ' + $('#date-range-to').val(); return $('#date-range-from-input').val() + ' to ' + $('#date-range-to').val();
else else
return ''; return '';
}, },
setValue: function(s,s1,s2) setValue: function(s,s1,s2)
{ {
$('#date-range-from').val(s1); $('#date-range-from-input').val(s1);
$('#date-range-to').val(s2); $('#date-range-to-input').val(s2);
} }
}); });
$('#date-range-to').dateRangePicker({ $('#date-range-to').dateRangePicker({
separator : ' to ', separator : ' to ',
getValue: function() getValue: function()
{ {
if ($('#date-range-from').val() && $('#date-range-to').val() ) if ($('#date-range-from-input').val() && $('#date-range-to').val() )
return $('#date-range-from').val() + ' to ' + $('#date-range-to').val(); return $('#date-range-from-input').val() + ' to ' + $('#date-range-to').val();
else else
return ''; return '';
}, },
setValue: function(s,s1,s2) setValue: function(s,s1,s2)
{ {
$('#date-range-from').val(s1); $('#date-range-from-input').val(s1);
$('#date-range-to').val(s2); $('#date-range-to-input').val(s2);
} }
}); });
@ -270,13 +260,28 @@
chart.onResize(); chart.onResize();
}); });
}); });
</script>
function toggle_sidebar(){
if($('#nav_menu').is(':visible')){
$('#nav_menu').hide();
$('#side_menu').removeClass('border-right')
$('#side_menu').removeClass('col-lg-2')
$('#core_content').removeClass('col-lg-10')
}else{
$('#nav_menu').show();
$('#side_menu').addClass('border-right')
$('#side_menu').addClass('col-lg-2')
$('#core_content').addClass('col-lg-10')
}
}
</script>
<script> <script>
function updateVTReport(hash) { function updateVTReport(hash) {
//updateReport //updateReport
$.getJSON("{{ url_for('hashDecoded.update_vt_result') }}?hash="+hash, $.getJSON("{{ url_for('hashDecoded.update_vt_result') }}?hash="+hash,
function(data) { function(data) {
content = '<span class="glyphicon glyphicon-refresh"></span> ' +data['report_vt'] content = '<i class="fas fa-sync-alt"></i> ' +data['report_vt']
$( "#report_vt_"+hash ).html(content); $( "#report_vt_"+hash ).html(content);
}); });
} }
@ -489,7 +494,7 @@ function removePopovers () {
function showPopover (d) { function showPopover (d) {
$(this).popover({ $(this).popover({
title: d.name, title: d.name,
placement: 'auto top', placement: 'top',
container: 'body', container: 'body',
trigger: 'manual', trigger: 'manual',
html : true, html : true,
@ -692,6 +697,6 @@ function barchart_type(url, id) {
</script> </script>
</body> </body>
</html> </html>

View File

@ -3,27 +3,20 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hash Information - AIL</title> <title>Hash Information - AIL</title>
<link rel="icon" href="{{ url_for('static', filename='image/ail-icon.png') }}">
<!-- Core CSS --> <!-- Core CSS -->
<link href="{{ url_for('static', filename='css/bootstrap.min.css') }}" rel="stylesheet"> <link href="{{ url_for('static', filename='css/bootstrap4.min.css') }}" rel="stylesheet">
<link href="{{ url_for('static', filename='font-awesome/css/font-awesome.css') }}" rel="stylesheet"> <link href="{{ url_for('static', filename='css/font-awesome.min.css') }}" rel="stylesheet">
<link href="{{ url_for('static', filename='css/sb-admin-2.css') }}" rel="stylesheet">
<link href="{{ url_for('static', filename='css/dataTables.bootstrap.css') }}" rel="stylesheet" type="text/css" />
<link href="{{ url_for('static', filename='css/daterangepicker.min.css') }}" rel="stylesheet" type="text/css" />
<!-- JS --> <!-- JS -->
<script language="javascript" src="{{ url_for('static', filename='js/jquery.js')}}"></script> <script src="{{ url_for('static', filename='js/jquery.js')}}"></script>
<script src="{{ url_for('static', filename='js/bootstrap.min.js') }}"></script> <script src="{{ url_for('static', filename='js/popper.min.js')}}"></script>
<script src="{{ url_for('static', filename='js/jquery.dataTables.min.js') }}"></script> <script src="{{ url_for('static', filename='js/bootstrap4.min.js')}}"></script>
<script src="{{ url_for('static', filename='js/dataTables.bootstrap.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/jquery.flot.stack.js') }}"></script>
<script language="javascript" src="{{ url_for('static', filename='js/moment.min.js') }}"></script>
<script language="javascript" src="{{ url_for('static', filename='js/jquery.daterangepicker.min.js') }}"></script>
<script language="javascript" src="{{ url_for('static', filename='js/d3.min.js') }}"></script> <script language="javascript" src="{{ url_for('static', filename='js/d3.min.js') }}"></script>
<style> <style>
line.link { line.link {
stroke: #666; stroke: #666;
@ -88,26 +81,23 @@
</head> </head>
<body> <body>
{% include 'navbar.html' %} {% include 'nav_bar.html' %}
<div id="page-wrapper"> <div class="container-fluid">
<div class="row"> <div class="row">
{% include 'decoded/menu_sidebar.html' %}
</div> <div class="col-12 col-lg-10" id="core_content">
<!-- /#page-wrapper -->
<div class="panel panel-info">
<div class="panel-heading panelText">
<h3>{{ hash }} :</h3>
<span class="pull-right">&nbsp;&nbsp;&nbsp;</span>
<span class="badge pull-right">6 / 26</span>
<ul class="list-group"><li class="list-group-item">
<div class="card my-3">
<div class="card-header" style="background-color:#d9edf7;font-size: 15px">
<h4 class="text-secondary">{{ hash }} :</h4>
<ul class="list-group mb-2">
<li class="list-group-item py-0">
<div class="row"> <div class="row">
<div class="col-md-10"> <div class="col-md-10">
<table class="table">
<table class="table table-condensed">
<thead> <thead>
<tr> <tr>
<th>Estimated type</th> <th>Estimated type</th>
@ -119,11 +109,11 @@
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td class="panelText"><i class="fa {{ file_icon }}"></i>&nbsp;&nbsp;{{ estimated_type }}</td> <td><i class="fas {{ file_icon }}"></i>&nbsp;&nbsp;{{ estimated_type }}</td>
<td class="panelText">{{ first_seen }}</td> <td>{{ first_seen }}</td>
<td class="panelText">{{ last_seen }}</td> <td>{{ last_seen }}</td>
<td class="panelText">{{ size }}</td> <td>{{ size }}</td>
<td class="panelText">{{ nb_seen_in_all_pastes }}</td> <td>{{ nb_seen_in_all_pastes }}</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -132,73 +122,75 @@
<div id="sparkline"></div> <div id="sparkline"></div>
</div> </div>
</div> </div>
</li></ul> </li>
</ul>
{% if vt_enabled %} {% if vt_enabled %}
{% if not b64_vt %} {% if not b64_vt %}
<darkbutton> <darkbutton>
<button id="submit_vt_b" class="btn btn-primary" onclick="sendFileToVT('{{ hash }}')"> <button id="submit_vt_b" class="btn btn-primary" onclick="sendFileToVT('{{ hash }}')" style="font-size: 15px">
<i class="fa fa-paper-plane"></i>&nbsp;Send this file to VT <i class="fas fa-paper-plane"></i>&nbsp;Send this file to VT
</button> </button>
</darkbutton> </darkbutton>
{% else %} {% else %}
<a class="btn btn-primary" target="_blank" href="{{ b64_vt_link }}"><i class="fa fa-link"> VT Report</i></a> <a class="btn btn-primary" target="_blank" href="{{ b64_vt_link }}" style="font-size: 15px"><i class="fas fa-link"></i> VT Report</a>
{% endif %} {% endif %}
<button class="btn btn-default" onclick="updateVTReport('{{ hash }}')"> <button class="btn btn-outline-secondary" onclick="updateVTReport('{{ hash }}')" style="font-size: 15px">
<div id="report_vt_b"><span class="glyphicon glyphicon-refresh"></span>&nbsp;{{ b64_vt_report }}</div> <div id="report_vt_b"><i class="fas fa-sync-alt"></i>&nbsp;{{ b64_vt_report }}</div>
</button> </button>
{% else %} {% else %}
Virus Total submission is disabled Virus Total submission is disabled
{% endif %} {% endif %}
<a href="{{ url_for('hashDecoded.downloadHash') }}?hash={{hash}}" target="blank"> <a href="{{ url_for('hashDecoded.downloadHash') }}?hash={{hash}}" target="blank" class="float-right" style="font-size: 15px">
<button class='btn btn-info pull-right'><i id="flash-tld" class="glyphicon glyphicon-download-alt " flash-tld=""></i> Download Hashed file <button class='btn btn-info'><i class="fas fa-download"></i> Download Decoded file
</button> </button>
</a> </a>
</div></div> </div>
</div>
<div class="row"> <div class="row">
<div class="col-md-10"> <div class="col-xl-10">
<div class="panel panel-default"> <div class="card mb-3">
<div class="panel-heading"> <div class="card-header">
<i id="flash-tld" class="glyphicon glyphicon-flash " flash-tld=""></i> Graph <i class="fas fa-project-diagram"></i> Graph
</div> </div>
<div class="panel-body graph_panel"> <div class="card-body graph_panel">
<div id="graph"> <div id="graph">
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-2"> <div class="col-xl-2">
<div class="panel panel-info"> <div class="card">
<div class="panel-heading"> <div class="card-header">
<i class="fa fa-unlock-alt" aria-hidden="true"></i> Encoding <i class="fas fa-unlock-alt" aria-hidden="true"></i> Encoding
</div> </div>
<div class="panel-body" style="text-align:center;"> <div class="card-body text-center">
{% for encoding in list_hash_decoder %} {% for encoding in list_hash_decoder %}
<button id="" class="btn btn-default"> <button class="btn" disabled>
{{encoding['encoding']}} <span class="badge">{{encoding['nb_seen']}}</span> {{encoding['encoding']}} <span class="badge">{{encoding['nb_seen']}}</span>
</button> </button>
{% endfor %} {% endfor %}
</div> </div>
</div> </div>
<div class="panel panel-default"> <div class="card my-3">
<div class="panel-heading"> <div class="card-header">
<i id="flash-tld" class="glyphicon glyphicon-flash " flash-tld=""></i> Graph <i class="fas fa-project-diagram"></i> Graph
</div> </div>
<div class="panel-body" style="text-align:center;"> <div class="card-body text-center px-0 py-0">
<button class="btn btn-primary" onclick="resize_graph();"> <button class="btn btn-primary my-4" onclick="resize_graph();">
<span class="glyphicon glyphicon-refresh"></span>&nbsp;Resize Graph</div> <i class="fas fa-sync"></i>&nbsp;Resize Graph
</button> </button>
<ul class="list-group"> <ul class="list-group">
<li class="list-group-item list-group-item-info" style="text-align:center;"><i class="fa fa-info-circle fa-2x"></i></li> <li class="list-group-item list-group-item-info"><i class="fas fa-info-circle fa-2x"></i></li>
<li class="list-group-item"> <li class="list-group-item text-left">
<p>Double click on a node to open Hash/Paste<br><br> <p>Double click on a node to open Hash/Paste<br><br>
<svg height="12" width="12"><g class="nodes"><circle cx="6" cy="6" r="6" fill="orange"></circle></g></svg> <svg height="12" width="12"><g class="nodes"><circle cx="6" cy="6" r="6" fill="orange"></circle></g></svg>
Current Hash<br> Current Hash<br>
@ -211,21 +203,22 @@
<li class="list-group-item list-group-item-info"> <li class="list-group-item list-group-item-info">
Hash Types: Hash Types:
</li> </li>
<li class="list-group-item"> <li class="list-group-item text-left">
<i class="fa fa-file"></i> Application<br> <i class="fas fa-file"></i> Application<br>
<i class="fa fa-file-video-o"></i> Audio<br> <i class="fas fa-file-video"></i> Audio<br>
<i class="fa fa-file-image-o"></i> Image<br> <i class="fas fa-file-image"></i> Image<br>
<i class="fa fa-file-text-o"></i> Text<br> <i class="fas fa-file-alt"></i> Text<br>
<i class="fa fa-file-o"></i> Other <i class="fas fa-sticky-note"></i> Other
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
</div>
<div class="panel panel-default"> <div class="card">
<div class="panel-heading"> <div class="card-header">
<i id="flash-tld" class="glyphicon glyphicon-stats" flash-tld=""></i> Graph <i class="fas fa-chart-bar"></i> Graph
</div> </div>
<div class="panel-body "> <div class="panel-body ">
<div id="graph_line"> <div id="graph_line">
@ -234,32 +227,45 @@
</div> </div>
</div> </div>
</div>
</div> </div>
</div> <script>
<!-- /.row --> var all_graph = {};
$(document).ready(function(){
<script> $("#page-Decoded").addClass("active");
var all_graph = {};
$(document).ready(function(){
sparklines("sparkline", {{ sparkline_values }}) sparklines("sparkline", {{ sparkline_values }})
all_graph.node_graph = create_graph("{{ url_for('hashDecoded.hash_graph_node_json') }}?hash={{hash}}"); all_graph.node_graph = create_graph("{{ url_for('hashDecoded.hash_graph_node_json') }}?hash={{hash}}");
all_graph.line_chart = create_line_chart('graph_line', "{{ url_for('hashDecoded.hash_graph_line_json') }}?hash={{hash}}"); all_graph.line_chart = create_line_chart('graph_line', "{{ url_for('hashDecoded.hash_graph_line_json') }}?hash={{hash}}");
all_graph.onResize(); all_graph.onResize();
}); });
$(window).on("resize", function() { $(window).on("resize", function() {
all_graph.onResize(); all_graph.onResize();
}); });
</script>
function toggle_sidebar(){
if($('#nav_menu').is(':visible')){
$('#nav_menu').hide();
$('#side_menu').removeClass('border-right')
$('#side_menu').removeClass('col-lg-2')
$('#core_content').removeClass('col-lg-10')
}else{
$('#nav_menu').show();
$('#side_menu').addClass('border-right')
$('#side_menu').addClass('col-lg-2')
$('#core_content').addClass('col-lg-10')
}
}
</script>
<script> <script>
function sendFileToVT(hash) { function sendFileToVT(hash) {
//send file to vt //send file to vt
$.getJSON("{{ url_for('hashDecoded.send_file_to_vt_js') }}?hash="+hash, $.getJSON("{{ url_for('hashDecoded.send_file_to_vt_js') }}?hash="+hash,
function(data) { function(data) {
var content = '<a id="submit_vt_b" class="btn btn-primary" target="_blank" href="'+ data['vt_link'] +'"><i class="fa fa-link"> '+ ' VT Report' +'</i></a>'; var content = '<a id="submit_vt_b" class="btn btn-primary" target="_blank" href="'+ data['vt_link'] +'"><i class="fas fa-link"> '+ ' VT Report' +'</i></a>';
$('#submit_vt_b').remove(); $('#submit_vt_b').remove();
$('darkbutton').append(content); $('darkbutton').append(content);
}); });
@ -269,7 +275,7 @@
//updateReport //updateReport
$.getJSON("{{ url_for('hashDecoded.update_vt_result') }}?hash="+hash, $.getJSON("{{ url_for('hashDecoded.update_vt_result') }}?hash="+hash,
function(data) { function(data) {
var content = '<span class="glyphicon glyphicon-refresh"></span> ' +data['report_vt']; var content = '<i class="fas fa-sync-alt"></i> ' +data['report_vt'];
$( "#report_vt_b" ).html(content); $( "#report_vt_b" ).html(content);
}); });
} }

View File

@ -0,0 +1,30 @@
<div class="col-12 col-lg-2 p-0 bg-light border-right" id="side_menu">
<button type="button" class="btn btn-outline-secondary mt-1 ml-3" onclick="toggle_sidebar()">
<i class="fas fa-align-left"></i>
<span>Toggle Sidebar</span>
</button>
<nav class="navbar navbar-expand navbar-light bg-light flex-md-column flex-row align-items-start py-2" id="nav_menu">
<h5 class="d-flex text-muted w-100">
<span>Items Decoded </span>
<a class="ml-auto" href="{{url_for('hiddenServices.manual')}}">
<i class="fas fa-plus-circle ml-auto"></i>
</a>
</h5>
<ul class="nav flex-md-column flex-row navbar-nav justify-content-between w-100"> <!--nav-pills-->
<li class="nav-item">
<a class="nav-link" href="{{url_for('hashDecoded.hashDecoded_page')}}" id="nav_dashboard">
<i class="fas fa-search"></i>
<span>Dashboard</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{url_for('hiddenServices.Crawler_Splash_last_by_type')}}?type=onion" id="nav_onion_crawler">
<i class="fas fa-user-secret"></i>
Onion Crawler
</a>
</li>
</ul>
</nav>
</div>

View File

@ -25,7 +25,7 @@
<a class="nav-link" id="page-Crawler" href="{{ url_for('hiddenServices.dashboard') }}" tabindex="-1" aria-disabled="true"><i class="fas fa-spider"></i> Crawlers</a> <a class="nav-link" id="page-Crawler" href="{{ url_for('hiddenServices.dashboard') }}" tabindex="-1" aria-disabled="true"><i class="fas fa-spider"></i> Crawlers</a>
</li> </li>
<li class="nav-item mr-3"> <li class="nav-item mr-3">
<a class="nav-link" href="{{ url_for('hashDecoded.hashDecoded_page') }}" aria-disabled="true"><i class="fas fa-lock-open"></i> Decoded</a> <a class="nav-link" id="page-Decoded" href="{{ url_for('hashDecoded.hashDecoded_page') }}" aria-disabled="true"><i class="fas fa-lock-open"></i> Decoded</a>
</li> </li>
<li class="nav-item mr-3"> <li class="nav-item mr-3">
<a class="nav-link" href="{{ url_for('trendingmodules.moduletrending') }}" aria-disabled="true"><i class="fas fa-chart-bar"></i> Statistics</a> <a class="nav-link" href="{{ url_for('trendingmodules.moduletrending') }}" aria-disabled="true"><i class="fas fa-chart-bar"></i> Statistics</a>