<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Rspamd Web Interface</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content=""> <meta name="author" content=""> <link href="./css/bootstrap.min.css" rel="stylesheet"> <link rel="stylesheet" type="text/css" href="./css/footable.bootstrap.min.css"/> <link rel="stylesheet" type="text/css" href="./css/d3evolution.css"> <link href="./css/rspamd.css" rel="stylesheet"> </head> <body> <nav class="navbar navbar-default" id="navBar"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-brand" href="."><img src="./img/rspamd_logo_navbar.png" style="width: 67px; margin-top: -16px;"/></a> </div> <form class="navbar-form navbar-left"> <select id="selSrv" class="form-control"></select> </form> <ul class="nav navbar-nav nav-pills" role="tablist"> <li role="presentation" class="active"><a id="status_nav" aria-controls="status" role="tab" href="#status" data-toggle="tab">Status</a></li> <li role="presentation"><a id="throughput_nav" aria-controls="throughput" role="tab" href="#throughput" data-toggle="tab">Throughput</a></li> <li role="presentation"><a id="configuration_nav" aria-controls="configuration" role="tab" href="#configuration" data-toggle="tab">Configuration</a></li> <li role="presentation"><a id="symbols_nav" aria-controls="symbols" role="tab" href="#symbols" data-toggle="tab">Symbols</a></li> <li role="presentation"><a id="learning_nav" aria-controls="learning" role="tab" href="#learning" data-toggle="tab">Learning</a></li> <li role="presentation"><a id="scan_nav" aria-controls="scan" role="tab" href="#scan" data-toggle="tab">Scan</a></li> <li role="presentation"><a id="history_nav" aria-controls="history" role="tab" href="#history" data-toggle="tab">History</a></li> </ul> <ul class="nav navbar-nav nav-pills pull-right" style="display:none"> <li><a href="#" data-toggle="tab" id="refresh"><i class="glyphicon glyphicon-refresh glyphicon-spin"></i> Refresh</a></li> <li><a href="#" data-toggle="tab" id="disconnect"><i class="glyphicon glyphicon-off"></i> Disconnect</a></li> </ul> </div> </nav> <div class="notification-area"></div> <div id="mainUI" style="display:none"> <div class="container-fluid"> <div class="tab-content"> <div class="tab-pane active" id="status"> <div class="row"> <div class="col-md-12"> <div class="widget-box widget-plain"> <ul id="statWidgets" class="stat-boxes" style="display:none"> </ul> </div> </div> </div> <div class="widget-box"> <div class="widget-title"> <span class="icon"><i class="glyphicon glyphicon-signal"></i></span> <h5>Statistics</h5> </div> <div class="widget-content chart-content"> <div class="row"> <div class="chart" id="chart"> <span class="notice">Loading..</span> <noscript>Please enable Javascript</noscript> </div> </div> </div> </div> <div class="widget-box"> <!--iv class="widget-title"> <span class="icon"><i class="glyphicon glyphicon-tasks"></i></span> <h5>Servers</h5> </div--> <div class="widget-content nopadding"> <table class="table table-log table-hover" id="clusterTable"> <thead> <tr> <th class="col1" title="Radio"></th> <th class="col2" title="SName">Server name</th> <th class="col3" title="SHost">Host</th> <th class="col4" title="SStatus">Status</th> <th class="col5" title="SId">Configuration ID</th> </tr> </thead> <tbody> </tbody> </table> </div> </div> </div> <div class="tab-pane" id="throughput"> <div class="widget-box"> <div class="widget-title"> <span class="icon"><i class="glyphicon glyphicon-stats"></i></span> <h5>Throughput</h5> </div> <div class="widget-content"> <div> <div class="row"> <div id="graph"> <span class="notice">Loading..</span> <noscript>Please enable Javascript</noscript> </div> </div> <div id="summary-row" class="row"> <div class="col-fixed" id="rrd-pie" > <span class="notice">Loading..</span> <noscript>Please enable Javascript</noscript> </div> <div class="col-fluid"> <table id="rrd-table" class="table table-striped table-hover"></table> <div id="rrd-table_toggle"></div> </div> </div> <form id="graph_controls" action="#"> Select dataset: <select id="selData" class="form-control"> <option value="hourly" selected>Hourly</option> <option value="daily">Daily</option> <option value="weekly">Weekly</option> <option value="monthly">Monthly</option> </select> Convert to: <select id="selConvert" class="form-control"> <option value="" selected>--</option> <option value="percentage">percentage</option> </select> Select chart type: <select id="selType" class="form-control"> <option value="line" selected>Line</option> <option value="area">Stacked area</option> </select> Select <a title="View Mike Bostock's Block." href="https://bl.ocks.org/mbostock/4342190" target="_blank">interpolation mode</a>: <select id="selInterpolate" class="form-control"> <option value="linear" selected>linear</option> <option value="step">step</option> <option value="step-before">step-before</option> <option value="step-after">step-after</option> <option value="basis">basis</option> <option value="basis-open">basis-open</option> <option value="bundle">bundle</option> <option value="cardinal">cardinal</option> <option value="cardinal-open">cardinal-open</option> <option value="monotone">monotone</option> </select> </form> </div> </div> </div> </div> <div class="tab-pane" id="configuration"> <div class="widget-box"> <div class="widget-title"> <span class="icon"><i class="glyphicon glyphicon-tasks"></i></span><h5>Actions</h5> </div> <div class="widget-content actions-content" id="actionsBody"></div> </div> <div class="widget-box"> <div class="widget-title"> <span class="icon"><i class="glyphicon glyphicon-list"></i></span><h5>Lists</h5> </div> <div class="widget-content nopadding"> <table class="table table-condensed table-hover" id="listMaps"> </table> </div> </div> </div> <div class="tab-pane" id="symbols"> <div class="widget-box"> <div class="widget-title"> <div class="buttons pull-right"> <button class="btn btn-info btn-sm" id="updateSymbols"> <i class="glyphicon glyphicon-refresh"></i> Update </button> </div> <span class="icon"><i class="glyphicon glyphicon-tasks"></i></span> <h5>Symbols and rules</h5> </div> <div class="widget-content nopadding"> <table class="table table-hover" id="symbolsTable"></table> </div> </div> </div> <div class="tab-pane" id="learning"> <div class="widget-box"> <div class="widget-title"> <span class="icon"><i class="glyphicon glyphicon-file"></i></span> <h5>Learn RSPAMD</h5> </div> <div class="widget-content"> <div class="row"> <form class="col-md-6"> <h5>Insert raw SPAM source:</h5> <textarea class="col-md-5 upload-textarea" id="spamTextSource" value=""></textarea> <p><button class="btn btn-default pull-right" data-upload="spam"><i class="glyphicon glyphicon-upload"></i> Upload text</button></p> </form> <form class="col-md-6"> <h5>Insert raw HAM source:</h5> <textarea class="col-md-5 upload-textarea" id="hamTextSource" value=""></textarea> <p><button class="btn btn-default pull-right" data-upload="ham"><i class="glyphicon glyphicon-upload"></i> Upload text</button></p> </form> </div> <div class="row"> <form class="col-md-6"> <h5>Insert raw Fuzzy storage:</h5> <textarea class="col-md-5 upload-textarea" id="fuzzyTextSource" value=""></textarea> <div class="row"> <label class="pull-left"> Flag </label> <div class="pull-right col-md-10"> <input id="fuzzyFlagText" class="slider" type="slider" value="1"/> </div> </div> <div class="row"> <label class="pull-left"> Weight </label> <div class="pull-right col-md-10"> <input id="fuzzyWeightText" class="slider" type="slider" value="1"/> </div> </div> <p><button class="btn btn-default pull-right" data-upload="fuzzy"><i class="glyphicon glyphicon-upload"></i> Upload text</button></p> </form> </div> </div> </div> </div> <div class="tab-pane" id="scan"> <div class="widget-box"> <div class="widget-title"> <span class="icon"><i class="glyphicon glyphicon-info-sign"></i></span> <h5>Online scan suspected message</h5> </div> <div class="widget-content"> <h5>Paste and scan suspicious message</h5> <div class="row"> <form class="col-md-12 nomargin" id="scanForm"> <textarea class="col-md-12 scan-textarea" id="scanTextSource"></textarea> <button type="submit" class="btn btn-default btn-primary" data-upload="scan">Scan message</button> <!--span class="btn btn-default btn-file" style="margin-top:10px; margin-left:5px;"> <i class="glyphicon glyphicon-upload"></i> Upload file <input type="file" class="btn btn-default" id="inputFile"> </span--> <button class="btn btn-default pull-right" id="scanClean">Clean form</button> </form> </div> <div id="scanResult" style="display:none"> <h4>Scan results:</h4> <div class="well nomargin nopadding"> <table class="table table-log table-hover" id="scanOutput"> <thead> <tr> <th class="col4" title="Action">Action</th> <th class="col5" title="Score / Req. score">Score / Req. score</th> <th class="col6" title="Symbols">Symbols</th> </tr> </thead> </table> </div> </div> </div> </div> </div> <div class="tab-pane" id="history"> <div class="widget-box"> <div class="widget-title"> <div class="buttons pull-right"> <button class="btn btn-danger btn-sm" id="resetHistory"> <i class="glyphicon glyphicon-remove-circle"></i> Reset </button> <button class="btn btn-info btn-sm" id="updateHistory"> <i class="glyphicon glyphicon-refresh"></i> Update </button> </div> <span class="icon"><i class="glyphicon glyphicon-eye-open"></i></span> <h5>History</h5> </div> <div class="widget-content nopadding"> <div id="historyLog"> <table class="table" id="historyTable"></table> </div> </div> </div> <div class="widget-box" id="errors-history"> <div class="widget-title"> <div class="buttons pull-right"> <button class="btn btn-info btn-sm" id="updateErrors"> <i class="glyphicon glyphicon-refresh"></i> Update </button> </div> <span class="icon"><i class="glyphicon glyphicon-eye-open"></i></span> <h5>Errors</h5> </div> <div class="widget-content nopadding"> <table class="table table-hover" id="errorsLog"></table> </div> </div> </div> </div> </div> </div> <!-- Common modal --> <div id="modalDialog" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modalLabel"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3 id="modalTitle"></h3> </div> <div class="modal-body" id="modalBody"> <div class="progress progress-striped active"> <div class="bar" style="width:100%;"></div> </div> </div> <div class="modal-footer"> <button class="btn btn-default" data-dismiss="modal" aria-hidden="true" id="modalClose">Close</button> <button class="btn btn-primary" id="modalSave">Save changes</button> <button class="btn btn-primary" id="modalSaveAll">Save on cluster</button> </div> </div> </div> </div> <!-- login modal --> <div id="connectDialog" class="modal" tabindex="-1" role="dialog" aria-labelledby="RSPAMD Connect"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h3>RSPAMD Connect</h3> </div> <div class="modal-body" id="connectBody"> <form id="connectForm"> <!-- <div class="form-group"> <label class="control-label" for="connectHost">Hostname</label> <div class="controls"> <input class=col-md-2" type="text" id="connectHost" placeholder="Hostname" tabindex="1"> </div> </div> --> <div class="form-group"> <div class="input-group"> <input class="form-control" type="password" id="connectPassword" placeholder="Password" tabindex="1" data-cip-id="connectPassword"> <span class="input-group-btn"> <button type="submit" id="connectButton" class="btn btn-primary" tabindex="1">Connect</button> </span> </div> </div> </form> </div> </div> </div> </div> <div id="backDrop" class="modal-backdrop fade in" style="display:none"></div> <script data-main="./js/main.js" src="./js/require.js"></script> </body> </html>