<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Analysis Information Leak framework Dashboard</title> <!-- Core CSS --> <link href="{{ url_for('static', filename='css/bootstrap.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/sb-admin-2.css') }}" rel="stylesheet"> <link href="{{ url_for('static', filename='css/dygraph_gallery.css') }}" rel="stylesheet" type="text/css" /> <link href="{{ url_for('static', filename='css/dataTables.bootstrap.css') }}" rel="stylesheet" type="text/css" /> <!-- JS --> <script type="text/javascript" src="{{ url_for('static', filename='js/dygraph-combined.js') }}"></script> <script language="javascript" src="{{ url_for('static', filename='js/jquery.js')}}"></script> <script src="{{ url_for('static', filename='js/jquery.dataTables.min.js') }}"></script> <script src="{{ url_for('static', filename='js/dataTables.bootstrap.js') }}"></script> <!-- Custom style --> <style> .tooltip-inner { text-align: left; height: 200%; width: 200%; max-width: 500px; max-height: 500px; font-size: 13px; } xmp { white-space:pre-wrap; word-wrap:break-word; } .modal-backdrop.fade { opacity: 0; } </style> </head> <body> <div id="wrapper"> <nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0"> <div class="navbar-header"> <ul class="nav navbar-nav"> <li class="active"><a href="{{ url_for('index') }}"><i class="fa fa-dashboard fa-fw"></i> Dashboard</a></li> <li><a href="{{ url_for('trending') }}"><i class="glyphicon glyphicon-stats"></i> Trending charts</a></li> </ul> </div> <!-- /.navbar-top-links --> <div class="navbar-default sidebar" role="navigation"> <div class="sidebar-collapse"> <ul class="nav" id="side-menu"> {% include 'searchbox.html' %} </ul> <!-- /#side-menu --> </div> <!-- /.sidebar-collapse --> <a href="{{ url_for('index') }}"><img src="{{ url_for('static', filename='image/AIL.png') }}" /></a> </div> <!-- /.navbar-static-side --> </nav> <!-- Modal --> <div id="mymodal" class="modal fade" role="dialog"> <div class="modal-dialog modal-lg"> <!-- Modal content--> <div id="mymodalcontent" class="modal-content"> <div id="mymodalbody" class="modal-body" max-width="850px"> <p>Loading paste information...</p> <img id="loading-gif-modal" src="{{url_for('static', filename='image/loading.gif') }}" height="26" width="26" style="margin: 4px;"> </div> <div class="modal-footer"> <a id="button_show_path" target="_blank" href=""><button type="button" class="btn btn-info">Show saved paste</button></a> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div> </div> </div> </div> <div id="page-wrapper"> <!-- /.row --> <div class="row"> </div> <div class="row"> <div class="col-lg-12"> </br> <div class="panel panel-default"> <div class="panel-heading"> <i class="glyphicon glyphicon-search"></i> {{ r|length }} Results for "<strong>{{ query }}</strong>" <div class="pull-right"> </div> </div> <!-- /.panel-heading --> <div class="panel-body"> <table class="table table-striped table-bordered table-hover" id="myTable"> <thead> <tr> <th>#</th> <th style="max-width: 800px;">Path</th> <th>Date</th> <th>Size (Kb)</th> <th>Action</th> </tr> </thead> <tbody> {% set i = 0 %} {% for path in r %} <tr> <td>{{ i + 1 }}</td> <td><a target="_blank" href="{{ url_for('showsavedpaste') }}?paste={{ path }}&num={{ i+1 }}"> {{ path }}</a></td> <td>{{ paste_date[i] }}</td> <td>{{ paste_size[i] }}</td> <td><p><span class="glyphicon glyphicon-info-sign" data-toggle="tooltip" data-placement="left" title="{{ c[i] }}"></span> <button type="button" class="btn-link" data-num="{{ i + 1 }}" data-toggle="modal" data-target="#mymodal" data-url="{{ url_for('showsavedpaste') }}?paste={{ path }}&num={{ i+1 }}" data-path="{{ path }}"><span class="fa fa-search-plus"></span></button></p></td> </tr> {% set i = i + 1 %} {% endfor %} </tbody> </table> </div> <!-- /.panel-body --> </div> </div> <!-- /.row --> </div> <!-- /#page-wrapper --> </div> <script src="{{ url_for('static', filename='js/bootstrap.min.js') }}"></script> </body> <!-- enable tooltip and dataTable --> <script> $(document).ready(function(){ $('[data-toggle="tooltip"]').tooltip(); $("#button_show_path").hide(); $('#myTable').dataTable(); }); </script> <!-- Dynamically update the modal --> <script type="text/javascript"> // static data var alert_message = '<div class="alert alert-info alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button><strong>No more data.</strong> Full paste displayed.</div>'; var complete_paste = null; var char_to_display = {{ char_to_display }}; var start_index = 0; // On click, get html content from url and update the corresponding modal $("[data-toggle='modal']").on("click", function (event) { event.preventDefault(); var modal=$(this); var url = " {{ url_for('showpreviewpaste') }}?paste=" + $(this).attr('data-path') + "&num=" + $(this).attr('data-num'); $.get(url, function (data) { $("#mymodalbody").html(data); var button = $('<button type="button" id="load-more-button" class="btn btn-info btn-xs center-block" data-url="' + $(modal).attr('data-path') +'" data-toggle="tooltip" data-placement="bottom" title="Load more content"><span class="glyphicon glyphicon-download"></span></button>'); button.tooltip(); $("#mymodalbody").children(".panel-default").append(button); $("#button_show_path").attr('href', $(modal).attr('data-url')); $("#button_show_path").show('fast'); $("#loading-gif-modal").css("visibility", "hidden"); // Hide the loading GIF if ($("[data-initsize]").attr('data-initsize') < char_to_display) { // All the content is displayed nothing_to_display(); } // On click, donwload all paste's content $("#load-more-button").on("click", function (event) { if (complete_paste == null) { //Donwload only once $.get("{{ url_for('getmoredata') }}"+"?paste="+$(modal).attr('data-path'), function(data, status){ complete_paste = data; update_preview(); }); } else { update_preview(); } }); }); }); // When the modal goes out, refresh it to normal content $("#mymodal").on('hidden.bs.modal', function () { $("#mymodalbody").html("<p>Loading paste information...</p>"); var loading_gif = "<img id='loading-gif-modal' class='img-center' src=\"{{url_for('static', filename='image/loading.gif') }}\" height='26' width='26' style='margin: 4px;'>"; $("#mymodalbody").append(loading_gif); // Show the loading GIF $("#button_show_path").attr('href', ''); $("#button_show_path").hide(); complete_paste = null; start_index = 0; }); // Update the paste preview in the modal function update_preview() { if (start_index + char_to_display > complete_paste.length-1){ // end of paste reached var final_index = complete_paste.length-1; var flag_stop = true; } else { var final_index = start_index + char_to_display; } if (final_index != start_index){ // still have data to display $("#mymodalbody").find("#paste-holder").append(complete_paste.substring(start_index+1, final_index+1)); // Append the new content start_index = final_index; if (flag_stop) nothing_to_display(); } else { nothing_to_display(); } } // Update the modal when there is no more data function nothing_to_display() { var new_content = $(alert_message).hide(); $("#mymodalbody").find("#panel-body").append(new_content); new_content.show('fast'); $("#load-more-button").hide(); } </script> </html>