mirror of https://github.com/CIRCL/AIL-framework
				
				
				
			chg: [UI dashboard + search] bootstrap 4 migration: dashbaord + fix search input
							parent
							
								
									42d32ef310
								
							
						
					
					
						commit
						8ca6e1a73c
					
				|  | @ -2,23 +2,40 @@ | |||
| <html> | ||||
| 
 | ||||
| <head> | ||||
|   <meta charset="utf-8"> | ||||
|   <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||
| 
 | ||||
|   <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/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/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" /> | ||||
|   <link href="{{ url_for('static', filename='css/switch_checkbox.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 | ||||
|  | @ -31,184 +48,127 @@ | |||
|       }; | ||||
|       update_values(); | ||||
|   </script> | ||||
|   <style> | ||||
| 			.tableQueue tbody tr td, | ||||
|       .tableQueue tbody tr th, | ||||
|       .tableQueue thead tr td, | ||||
|       .tableQueue thead tr th{ | ||||
| 				padding: 1px; | ||||
| 			} | ||||
| 	</style> | ||||
| 
 | ||||
| </head> | ||||
| <body> | ||||
| 
 | ||||
|     <div id="wrapper"> | ||||
|       <nav class="navbar navbar-inverse navbar-static-top nav"> | ||||
|           {% include 'header.html' %} | ||||
|           <!-- /.navbar-top-links --> | ||||
|           <div class="navbar-default sidebar" role="navigation"> | ||||
|               <div class="sidebar-collapse"> | ||||
|                   <ul class="nav" id="side-menu"> | ||||
|                       <li class="sidebar-search"> | ||||
|                           <a href="{{ url_for('dashboard.index') }}"><img src="{{ url_for('static', filename='image/AIL.png') }}" /></a> | ||||
|                           {% include 'searchbox.html' %} | ||||
|                           <!-- /input-group --> | ||||
|                       </li> | ||||
|                  </ul> | ||||
|                   <!-- /#side-menu --> | ||||
|               </div> | ||||
|               <!-- /.sidebar-collapse --> | ||||
|               <div class="panel panel-default"> | ||||
|                   <div class="panel-heading"> | ||||
|                       <i class="fa fa-dashboard  fa-fw"></i> Total pastes since {{ default_minute }} min | ||||
|                   </div> | ||||
|                   <div class="panel-body"> | ||||
|                        <div id="global" style="height: 90px; padding: 0px; position: relative;"></div> | ||||
|                   </div> | ||||
|               </div> | ||||
|                   <!-- <div id="Graph_paste_num" style="height:90px; width:100%;"></div> --> | ||||
|               <div class='pull_right'> | ||||
|                   <label class="switch"> | ||||
|                       <input id="button-toggle-queues" class="switch-input" type="checkbox" checked> | ||||
|                       <span class="switch-label" data-on="On" data-off="Off"></span> | ||||
|                       <span class="switch-handle"></span> | ||||
|                   </label> | ||||
|                   <strong style="top: 3px; position: relative;">Display queues</strong> | ||||
|               <div> | ||||
|               <div> | ||||
|                   <table id="queue-color-legend" class="table"> | ||||
|                   <thead> | ||||
|                   </thead> | ||||
|                   <tbody> | ||||
|                       <tr><td class="legendColorBox" style="vertical-align: ; "><div style="border:1px solid #ccc;padding:1px"><div style="width:100%;height:0;border:5px solid #d0e9c6;overflow:hidden"></div></div></td><td> Working queues</td></tr> | ||||
|                       <tr><td class="legendColorBox" style="vertical-align: ;"><div style="border:1px solid #ccc;padding:1px"><div style="width:100%;height:0;border:5px solid #faf2cc;overflow:hidden"></div></div></td><td> Idling queues</td></tr> | ||||
|                       <tr><td class="legendColorBox" style="vertical-align: ;"><div style="border:1px solid #ccc;padding:1px"><div style="width:100%;height:0;border:5px solid #ebcccc;overflow:hidden"></div></div></td><td> Stuck queues</td></tr> | ||||
|                   </tbody> | ||||
|                   </table> | ||||
|               </div> | ||||
|               <div class="table-responsive", id="queueing" style="margin-top:10px; font-size: small;"></div> | ||||
|              <a  href="{{ url_for('dashboard.index') }}"><img src="{{ url_for('static', filename='image/AIL.png') }}" /></a> | ||||
|           </div> | ||||
|           <!-- /.navbar-static-side --> | ||||
|       </nav> | ||||
|         <div id="page-wrapper"> | ||||
|         <div class="row"> | ||||
|                 <div class="col-lg-12"> | ||||
| 		</br> | ||||
|                 </div> | ||||
|         </div> | ||||
| 
 | ||||
| {% 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 in"> | ||||
|             <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a> | ||||
|           <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%} | ||||
| 
 | ||||
|         <div class="alert alert-info alert-dismissible fade in"> | ||||
|           <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a> | ||||
|           <strong>Bootstrap 4 migration!</strong> Some pages are still in bootstrap 3. You can check the migration progress <strong><a href="https://github.com/CIRCL/AIL-framework/issues/330" target="_blank">Here</a></strong>. | ||||
|         <div class="alert alert-info alert-dismissible fade show mt-1" role="alert"> | ||||
|             <strong>Bootstrap 4 migration!</strong> Some pages are still in bootstrap 3. You can check the migration progress <strong><a href="https://github.com/CIRCL/AIL-framework/issues/330" target="_blank">Here</a></strong>. | ||||
|           <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | ||||
|             <span aria-hidden="true">×</span> | ||||
|           </button> | ||||
|         </div> | ||||
| 
 | ||||
|             <div class="row"> | ||||
|                  <div class="col-lg-6"> | ||||
|                      <div class="panel panel-default"> | ||||
|                         <div class="panel-heading"> | ||||
|                            <i class="fa fa-bar-chart-o fa-fw"></i> Feeder(s) Monitor: | ||||
|                         </div> | ||||
|                         <div id="panelbody" class="panel-body" style="height:420px;"> | ||||
| 
 | ||||
|                        <strong>Processed pastes</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> | ||||
|                      <!-- /.panel-body --> | ||||
|                      </div> | ||||
|                       <!-- /.panel --> | ||||
|                  </div> | ||||
|                  <!-- /.col-lg-6 --> | ||||
|                  <div class="col-lg-6"> | ||||
|                      <div class="panel panel-default"> | ||||
|                         <div class="panel-heading"> | ||||
|                            <i class="fa fa-bar-chart-o fa-fw"></i> Queues Monitor | ||||
|                         </div> | ||||
|                         <div class="panel-body"> | ||||
|                            <div class="row"> | ||||
|                                <div class="col-lg-6" id="Graph" style="height:195px; width:88%;"></div> | ||||
|                                <div style="height:10px;"></div> | ||||
|                                <div class="col-lg-6" id="Graph2" style="height:195px; width:88%;"></div> | ||||
|                            </div> | ||||
|                         <!-- /.row --> | ||||
|                         </div> | ||||
|                      <!-- /.panel-body --> | ||||
|                      </div> | ||||
|                       <!-- /.panel --> | ||||
|                  </div> | ||||
|                  <!-- /.col-lg-6 --> | ||||
|         <div class="col-lg-12"> | ||||
|         <div class="panel panel-default"> | ||||
|         <div class="panel-heading"> | ||||
|             <i class="fa fa-tasks fa-fw"></i> Logs | ||||
|             <div class="pull-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 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 pastes</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 class="panel-body"> | ||||
|                     <div class="row"> | ||||
| 			    <div class="col-lg-12"> | ||||
| 				    <table class="table table-bordered table-hover table-striped" 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> | ||||
|             <!-- /.row --> | ||||
|         </div> | ||||
|         <!-- /#page-wrapper --> | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|     </div> | ||||
|   </div> | ||||
| 
 | ||||
|     <script> var url_showSavedPath = "{{ url_for('showsavedpastes.showsavedpaste') }}"; </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> | ||||
| </body> | ||||
| 
 | ||||
| <script> var url_showSavedPath = "{{ url_for('showsavedpastes.showsavedpaste') }}"; </script> | ||||
| 
 | ||||
|     <script> | ||||
|         activePage = "page-index"; | ||||
|         $("#"+activePage).addClass("active"); | ||||
|         $("#page-Dashboard").addClass("active"); | ||||
| 
 | ||||
|         var tableBody = document.getElementById('tab_body') | ||||
|         $.getJSON("{{ url_for('dashboard.get_last_logs_json') }}", function(data) { | ||||
|  | @ -224,7 +184,7 @@ | |||
|             var msage = document.createElement('TD') | ||||
|             var inspect = document.createElement('TD') | ||||
| 
 | ||||
|             tr.className = "warning"; | ||||
|             tr.className = "table-log-warning"; | ||||
|             time.appendChild(document.createTextNode(d.time)) | ||||
|             chan.appendChild(document.createTextNode('Script')) | ||||
|             level.appendChild(document.createTextNode('WARNING')) | ||||
|  | @ -236,10 +196,10 @@ | |||
|             var iconspan = document.createElement('SPAN'); | ||||
|             var message = d.message.split(" ") | ||||
|             if (message[0] == "Detected"){ | ||||
|                 iconspan.className = "glyphicon glyphicon-eye-open"; | ||||
|                 iconspan.className = "fas fa-eye"; | ||||
|             } | ||||
|             else if (message[0] == "Checked"){ | ||||
|                 iconspan.className = "glyphicon glyphicon-thumbs-up"; | ||||
|                 iconspan.className = "far fa-thumbs-up"; | ||||
|             } | ||||
|             iconspan.innerHTML = " "; | ||||
|             msage.appendChild(iconspan); | ||||
|  | @ -249,7 +209,7 @@ | |||
|             action_icon_a.setAttribute("TARGET", "_blank"); | ||||
|             action_icon_a.setAttribute("HREF", d.path); | ||||
|             var action_icon_span = document.createElement('SPAN'); | ||||
|             action_icon_span.className = "fa fa-search-plus"; | ||||
|             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;"); | ||||
|  | @ -269,14 +229,22 @@ | |||
| 
 | ||||
| 		      }); | ||||
|         }); | ||||
|     </script> | ||||
| 
 | ||||
|     <script type="text/javascript"> | ||||
|         initfunc( "{{ url_for('static', filename='csv/wordstrendingdata.csv') }}", {{ request.script_root|tojson|safe }} ); | ||||
|     </script> | ||||
| 
 | ||||
|     <script src="{{ url_for('static', filename='js/bootstrap.min.js') }}"></script> | ||||
| 
 | ||||
| </body> | ||||
| 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> | ||||
|  |  | |||
|  | @ -201,92 +201,94 @@ function create_log_table(obj_json) { | |||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     if( chansplit[1] == "INFO" ){ | ||||
|         tr.className = "info"; | ||||
|     } | ||||
|     else if ( chansplit[1] == "WARNING" ){ | ||||
|         tr.className = "warning"; | ||||
|     } | ||||
|     else if ( chansplit[1] == "CRITICAL"){ | ||||
|         tr.className = "danger" | ||||
|     } | ||||
|     if( parsedmess.length>2 ){ | ||||
|       if( chansplit[1] == "INFO" ){ | ||||
|           tr.className = "table-disabled"; | ||||
|       } | ||||
|       else if ( chansplit[1] == "WARNING" ){ | ||||
|           tr.className = "table-log-warning"; | ||||
|       } | ||||
|       else if ( chansplit[1] == "CRITICAL"){ | ||||
|           tr.className = "table-danger" | ||||
|       } | ||||
| 
 | ||||
|     source_link = document.createElement("A"); | ||||
|     if (parsedmess[1] == "slexy.org"){ | ||||
|         source_url = "http://"+parsedmess[1]+"/view/"+parsedmess[3].split(".")[0]; | ||||
|     } | ||||
|     else{ | ||||
|         source_url = "http://"+parsedmess[1]+"/"+parsedmess[3].split(".")[0]; | ||||
|     } | ||||
|     source_link.setAttribute("HREF",source_url); | ||||
|     source_link.setAttribute("TARGET", "_blank"); | ||||
|     source_link.appendChild(document.createTextNode(parsedmess[1])); | ||||
|       source_link = document.createElement("A"); | ||||
|       if (parsedmess[1] == "slexy.org"){ | ||||
|           source_url = "http://"+parsedmess[1]+"/view/"+parsedmess[3].split(".")[0]; | ||||
|       } | ||||
|       else{ | ||||
|           source_url = "http://"+parsedmess[1]+"/"+parsedmess[3].split(".")[0]; | ||||
|       } | ||||
|       source_link.setAttribute("HREF",source_url); | ||||
|       source_link.setAttribute("TARGET", "_blank"); | ||||
|       source_link.appendChild(document.createTextNode(parsedmess[1])); | ||||
| 
 | ||||
|     src.appendChild(source_link); | ||||
|       src.appendChild(source_link); | ||||
| 
 | ||||
|     var now = new Date(); | ||||
|     var timepaste = pad_2(now.getHours()) + ":" + pad_2(now.getMinutes()) + ":" + pad_2(now.getSeconds()); | ||||
|       var now = new Date(); | ||||
|       var timepaste = pad_2(now.getHours()) + ":" + pad_2(now.getMinutes()) + ":" + pad_2(now.getSeconds()); | ||||
| 
 | ||||
|     time.appendChild(document.createTextNode(timepaste)); | ||||
|     chan.appendChild(document.createTextNode(chansplit[0])); | ||||
|     level.appendChild(document.createTextNode(chansplit[1])); | ||||
|       time.appendChild(document.createTextNode(timepaste)); | ||||
|       chan.appendChild(document.createTextNode(chansplit[0])); | ||||
|       level.appendChild(document.createTextNode(chansplit[1])); | ||||
| 
 | ||||
|     scrpt.appendChild(document.createTextNode(parsedmess[0])); | ||||
|     pdate.appendChild(document.createTextNode(parsedmess[2])); | ||||
|     nam.appendChild(document.createTextNode(parsedmess[3])); | ||||
|       scrpt.appendChild(document.createTextNode(parsedmess[0])); | ||||
|       pdate.appendChild(document.createTextNode(parsedmess[2])); | ||||
|       nam.appendChild(document.createTextNode(parsedmess[3])); | ||||
| 
 | ||||
|     var iconspan = document.createElement('SPAN'); | ||||
|     if (parsedmess[4].split(" ")[0] == "Detected"){ | ||||
|         iconspan.className = "glyphicon glyphicon-eye-open"; | ||||
|     } | ||||
|     else if (parsedmess[4].split(" ")[0] == "Checked"){ | ||||
|         iconspan.className = "glyphicon glyphicon-thumbs-up"; | ||||
|     } | ||||
|     iconspan.innerHTML = " "; | ||||
|     msage.appendChild(iconspan); | ||||
|     var message = parsedmess[4].split(" "); | ||||
|     message.shift(); | ||||
|       var iconspan = document.createElement('SPAN'); | ||||
|       if (parsedmess[4].split(" ")[0] == "Detected"){ | ||||
|           iconspan.className = "fas fa-eye"; | ||||
|       } | ||||
|       else if (parsedmess[4].split(" ")[0] == "Checked"){ | ||||
|           iconspan.className = "far fa-thumbs-up"; | ||||
|       } | ||||
|       iconspan.innerHTML = " "; | ||||
|       msage.appendChild(iconspan); | ||||
|       var message = parsedmess[4].split(" "); | ||||
|       message.shift(); | ||||
| 
 | ||||
|     msage.appendChild(document.createTextNode(message.join(" "))); | ||||
|       msage.appendChild(document.createTextNode(message.join(" "))); | ||||
| 
 | ||||
|     var paste_path = parsedmess[5]; | ||||
|     var url_to_saved_paste = url_showSavedPath+"?paste="+paste_path+"&num="+parsedmess[0]; | ||||
|       var paste_path = parsedmess[5]; | ||||
|       var url_to_saved_paste = url_showSavedPath+"?paste="+paste_path+"&num="+parsedmess[0]; | ||||
| 
 | ||||
|     var action_icon_a = document.createElement("A"); | ||||
|     action_icon_a.setAttribute("TARGET", "_blank"); | ||||
|     action_icon_a.setAttribute("HREF", url_to_saved_paste); | ||||
|     var action_icon_span = document.createElement('SPAN'); | ||||
|     action_icon_span.className = "fa fa-search-plus"; | ||||
|     action_icon_a.appendChild(action_icon_span); | ||||
|       var action_icon_a = document.createElement("A"); | ||||
|       action_icon_a.setAttribute("TARGET", "_blank"); | ||||
|       action_icon_a.setAttribute("HREF", url_to_saved_paste); | ||||
|       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;"); | ||||
|       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); | ||||
|       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); | ||||
| 
 | ||||
|     if (tr.className == document.getElementById("checkbox_log_info").value && document.getElementById("checkbox_log_info").checked  == true) { | ||||
|            tableBody.appendChild(tr); | ||||
|        } | ||||
|     if (tr.className == document.getElementById("checkbox_log_warning").value && document.getElementById("checkbox_log_warning").checked == true) { | ||||
|         tableBody.appendChild(tr); | ||||
|     } | ||||
|     if (tr.className == document.getElementById("checkbox_log_critical").value && document.getElementById("checkbox_log_critical").checked == true) { | ||||
|         tableBody.appendChild(tr); | ||||
|     }; | ||||
|       if (chansplit[1] == document.getElementById("checkbox_log_info").value && document.getElementById("checkbox_log_info").checked  == true) { | ||||
|              tableBody.appendChild(tr); | ||||
|          } | ||||
|       if (chansplit[1] == document.getElementById("checkbox_log_warning").value && document.getElementById("checkbox_log_warning").checked == true) { | ||||
|           tableBody.appendChild(tr); | ||||
|       } | ||||
|       if (chansplit[1] == document.getElementById("checkbox_log_critical").value && document.getElementById("checkbox_log_critical").checked == true) { | ||||
|           tableBody.appendChild(tr); | ||||
|       }; | ||||
| 
 | ||||
|     var sel = document.getElementById("log_select") | ||||
|     if (tableBody.rows.length > sel.options[sel.options.selectedIndex].value) { | ||||
|         while (tableBody.rows.length != sel.options[sel.options.selectedIndex].value){ | ||||
|             tableBody.deleteRow(0); | ||||
|         } | ||||
|       var sel = document.getElementById("log_select") | ||||
|       if (tableBody.rows.length > sel.options[sel.options.selectedIndex].value) { | ||||
|           while (tableBody.rows.length != sel.options[sel.options.selectedIndex].value){ | ||||
|               tableBody.deleteRow(0); | ||||
|           } | ||||
|       } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  | @ -294,7 +296,7 @@ function create_queue_table() { | |||
|     document.getElementById("queueing").innerHTML = ""; | ||||
|     var Tablediv = document.getElementById("queueing") | ||||
|     var table = document.createElement('TABLE') | ||||
|     table.className = "table table-bordered table-hover table-striped tableQueue"; | ||||
|     table.className = "table table-bordered table-hover tableQueue"; | ||||
|     var tableHead = document.createElement('THEAD') | ||||
|     var tableBody = document.createElement('TBODY') | ||||
| 
 | ||||
|  | @ -323,8 +325,8 @@ function create_queue_table() { | |||
|         var td2 = document.createElement('TD'); | ||||
|         td.appendChild(document.createTextNode("No running queues")); | ||||
|         td2.appendChild(document.createTextNode("Or no feed")); | ||||
|         td.className += " danger"; | ||||
|         td2.className += " danger"; | ||||
|         td.className += " table-danger"; | ||||
|         td2.className += " table-danger"; | ||||
|         tr.appendChild(td); | ||||
|         tr.appendChild(td2); | ||||
|         tableBody.appendChild(tr); | ||||
|  | @ -345,11 +347,11 @@ function create_queue_table() { | |||
|             // - j=2: LastProcessedPasteTime
 | ||||
|             // - j=3: Number of the module belonging in the same category
 | ||||
|             if (parseInt(glob_tabvar.row1[i][2]) > window.threshold_stucked_module && parseInt(glob_tabvar.row1[i][1]) > 2) | ||||
|                 tr.className += " danger"; | ||||
|                 tr.className += " table-danger"; | ||||
|             else if (parseInt(glob_tabvar.row1[i][1]) == 0) | ||||
|                 tr.className += " warning"; | ||||
|                 tr.className += " table-disabled"; | ||||
|             else | ||||
|                 tr.className += " success"; | ||||
|                 tr.className += " table-success"; | ||||
|             tableBody.appendChild(tr); | ||||
|         } | ||||
|     } | ||||
|  | @ -474,29 +476,12 @@ function load_queues() { | |||
|                     g.updateOptions( { 'file': data } ); | ||||
|                     g2.updateOptions( { 'file': data2 } ); | ||||
| 
 | ||||
| 
 | ||||
|                    // TagCanvas.Reload('myCanvas');
 | ||||
| 
 | ||||
|                 }, interval); | ||||
|             } | ||||
|         }); | ||||
|     }; | ||||
| 
 | ||||
|     refresh(); | ||||
| 
 | ||||
|     try { | ||||
|       var options = { | ||||
|       weight:true, | ||||
|       weightMode:"both", | ||||
|       noMouse:true, | ||||
|       textColour: '#2E9AFE' | ||||
|       } | ||||
|       TagCanvas.Start('myCanvas','',options); | ||||
|       TagCanvas.SetSpeed('myCanvas', [0.05, -0.15]); | ||||
|     } catch(e) { | ||||
|       // something went wrong, hide the canvas container
 | ||||
|       document.getElementById('myCanvasContainer').style.display = 'none'; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| function manage_undefined() { | ||||
|  |  | |||
|  | @ -0,0 +1,41 @@ | |||
|       <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"> | ||||
|            | ||||
|       	</nav> | ||||
| 
 | ||||
|         <span id="side-bard-dashboard-content"> | ||||
|           <div class="card"> | ||||
|             <div class="card-header"> | ||||
|               <i class="fas fa-tachometer-alt"></i> Total pastes since {{ default_minute }} min | ||||
|             </div> | ||||
|             <div class="card-body"> | ||||
|               <div id="global" style="height: 90px; padding: 0px; position: relative;"></div> | ||||
|             </div> | ||||
|           </div> | ||||
| 
 | ||||
|           <div class="custom-control custom-switch ml-5 mt-2"> | ||||
|             <input class="custom-control-input" id="button-toggle-queues" type="checkbox" checked> | ||||
|             <label class="custom-control-label" for="button-toggle-queues"><strong style="top: 3px; position: relative;">Display queues</strong></label> | ||||
|           </div> | ||||
|           <hr> | ||||
| 
 | ||||
|           <div> | ||||
|             <div> | ||||
|               <table id="queue-color-legend" class="table table-borderless table-sm"> | ||||
|                 <tbody> | ||||
|                   <tr><td class="legendColorBox" style="vertical-align: ;"><div style="border:1px solid #ccc;padding:1px"><div style="width:100%;height:0;border:5px solid #e8e8e8;overflow:hidden"></div></div></td><td> Idling queues</td></tr> | ||||
|                   <tr><td class="legendColorBox" style="vertical-align: ; "><div style="border:1px solid #ccc;padding:1px"><div style="width:100%;height:0;border:5px solid #d0e9c6;overflow:hidden"></div></div></td><td> Working queues</td></tr> | ||||
|                   <tr><td class="legendColorBox" style="vertical-align: ;"><div style="border:1px solid #ccc;padding:1px"><div style="width:100%;height:0;border:5px solid #ebcccc;overflow:hidden"></div></div></td><td> Stuck queues</td></tr> | ||||
|                 </tbody> | ||||
|               </table> | ||||
|             </div> | ||||
|             <div class="table-responsive", id="queueing" style="margin-top:10px; font-size: small;"></div> | ||||
|           </div> | ||||
|         </span> | ||||
|       </div> | ||||
|  | @ -10,7 +10,7 @@ | |||
|   <div class="collapse navbar-collapse" id="navbarSupportedContent"> | ||||
|     <ul class="navbar-nav"> | ||||
|       <li class="nav-item"> | ||||
|         <a class="nav-link mr-3" href="{{ url_for('dashboard.index') }}">Home</a> | ||||
|         <a class="nav-link mr-3" id="page-Dashboard" href="{{ url_for('dashboard.index') }}">Home</a> | ||||
|       </li> | ||||
|       <li class="nav-item mr-3"> | ||||
|         <a class="nav-link" href="{{ url_for('PasteSubmit.PasteSubmit_page') }}" aria-disabled="true"><i class="fas fa-external-link-alt"></i> Submit</a> | ||||
|  | @ -35,10 +35,11 @@ | |||
|       </li> | ||||
|     </ul> | ||||
| 
 | ||||
|     <form class="form-inline my-2 my-lg-0 ml-auto justify-content-center"> | ||||
|     <form class="form-inline my-2 my-lg-0 ml-auto justify-content-center" action="{{ url_for('searches.search') }}" method=POST> | ||||
|       <div class="d-flex flex-column"> | ||||
|         <div> | ||||
|         <input class="form-control mr-sm-2" type="search" id="global_search" placeholder="Search" aria-label="Search" aria-describedby="advanced_search"> | ||||
|         <input class="form-control mr-sm-2" type="search" id="global_search" name="query" placeholder="Search" aria-label="Search" aria-describedby="advanced_search"> | ||||
|         <input type="hidden" name="index_name" class="form-control" value="0" placeholder="Index Name"> | ||||
|         <button class="btn btn-outline-info my-2 my-sm-0" type="submit"><i class="fas fa-search"></i></button> | ||||
|         </div> | ||||
|         <small id="advanced_search" class="form-text"><a class="nav text-muted" href="#" aria-disabled="true">Advanced Search</a></small> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Terrtia
						Terrtia