diff options
Diffstat (limited to 'lib/srtgui/templates/publish.html')
-rw-r--r-- | lib/srtgui/templates/publish.html | 361 |
1 files changed, 43 insertions, 318 deletions
diff --git a/lib/srtgui/templates/publish.html b/lib/srtgui/templates/publish.html index cf0f2294..826e1953 100644 --- a/lib/srtgui/templates/publish.html +++ b/lib/srtgui/templates/publish.html @@ -4,324 +4,49 @@ {% load projecttags %} {% load humanize %} -{% block title %} Publish Requests {% endblock %} - +{% block title %} Publish Reports {% endblock %} {% block pagecontent %} -<div class="row"> - <!-- Breadcrumbs --> - <div class="col-md-12"> - <ul class="breadcrumb" id="breadcrumb"> - <li><a href="{% url 'landing' %}">Home</a></li><span class="divider">→</span> - <li><a href="{% url 'manage' %}">Management</a></li><span class="divider">→</span> - <li>Publish Report Management</li> - </ul> - </div> -</div> - -<h2>Publish Report Management</h2> -<ul> - <li>The SRTool supports exporting new and updated CVEs to external publishing tools</li> -</ul> - -<hr> - -<h2>Publish Via Database Snapshots</h2> -<h3> On Demand</h3> -<ul> - <li>This extracts the changes from a 'base' database backup snapshot to more recent 'top' snapshot</li> - <li>The 'start' and 'stop' dates can extract a subset of those changes. Normally they are set to the 'base' and 'top' dates</li> -</ul> - -<div style="padding-left:30px;"> - <div> - <label> Start Snapshot: </label> - <select id="snap_date_base"> - {% for snap in snapshot_list %} - <option value="{{snap.date}}" {% if snap_start_index == snap.index %}selected{% endif %}> - ({{snap.mode}}) {{snap.date}} {{snap.time}} | {{snap.day}} - </option> - {% endfor %} - </select> - </div> - <div> - <label> Stop Snapshot: </label> - <select id="snap_date_top"> - {% for snap in snapshot_list %} - <option value="{{snap.date}}" {% if snap_stop_index == snap.index %}selected{% endif %}> - ({{snap.mode}}) {{snap.date}} {{snap.time}} | {{snap.day}} - </option> - {% endfor %} - </select> - </div> - <div> - Start Date: <input type="text" id="snap_date_start" value="{{snap_date_start}}"> - Stop Date: <input type="text" id="snap_date_stop" value="{{snap_date_stop}}"> - <I>(Format: yyyy-mm-dd)</I> - </div> -<br> -</div> - -<div> - <span style="padding-left:30px;"><button id="export-snapshot" class="btn btn-default" type="button">Generate</button></span> - <!--<button type="submit" name="action" value="export-snapshot">Export</button> --> - <span id="export-snapshot-text">Generate the publish table on-demand (using snapshots)</span> - <span id="generating-report" hidden style="color:red"><I>... Generating the report - this will take a few minutes ...</I></span> -</div> -<br> - -<form method="POST"> {% csrf_token %} -<h3>Automatic (Under Development)</h3> -<div style="padding-left: 25px;"> - <label> Frequency: </label> - <select id="snap_frequency"> - {% for snap in snapshot_frequency_list %} - <option value="{{snap}}" {% if snap == snap_frequency_select %}selected{% endif %}> - {{snap}} - </option> - {% endfor %} - </select> - <span style="padding-left:30px;"><button id="export-snapshot" class="btn btn-default" type="button" disabled>Save</button></span> - <!--<button type="submit" name="action" value="export-snapshot">Export</button> --> - Save the automatic publishing frequency -</div> -</form> - -<h3>Generated Reports</h3> -<div style="padding-left: 25px;"> - <table class="table table-striped table-condensed" data-testid="vuln-hyperlinks-table"> - <thead> - <tr> - <th>Name</th> - <th>Size</th> - <th>Date</th> - <th>Manage</th> - </tr> - </thead> - {% if generated_report_list %} - {% for report in generated_report_list %} - <tr> - <td>{{report.name}}</td> - <td>{{report.size}}</td> - <td>{{report.date}}</td> - <td> - <span id="attachment_entry_'+{{report.name}}+'" class="js-config-var-name"></span> - <form id="downloadbanner-{{forloop.counter}}" enctype="multipart/form-data" method="post" >{% csrf_token %} - <input type="hidden" id="action" name="action" value="download"> - <input type="hidden" id="report_id" name="report_name" value={{report.name}}> - <span class="glyphicon glyphicon-download-alt submit-downloadreport" id="report_download_'+{{report.name}}+'" x-data="{{forloop.counter}}"></span> - {% if request.user.is_creator %} - <span class="glyphicon glyphicon-trash trash-report" id="report_trash_'+{{report.name}}+'" x-data="{{report.name}}"></span> - {% endif %} - </form> - </td> - </tr> - {% endfor %} - {% else %} - <tr> - <td>No report files found</td> - </tr> - {% endif %} - </table> - (last report = {{snap_last_calc}}) -</div> - -<hr> - -<form method="POST"> {% csrf_token %} -<h2>Publish Via History Tables (Under development)</h2> -<ul> - <li>These tools can be used to (a) gather the candidate CVEs, (b) review and edit the list if needed, (c) generate the report when ready</li> - <li>The user can explicitly include and exclude CVEs from the "New" list and the "Updated" list, in case the automatic caltulations need adjustment</li> - <li>These mark-ups are inserted into the respective CVE's history at a mid-point date of the period, so they are both persistent and period-specific</li> - <li>The user can clear the markups from the given period and start over, but this will not affect any other period</li> -</ul> -<h3> Publish Preparation</h3> -<ul> - <div> - Start Date: <input type="text" name="date_start" value="{{date_start}}"> - Stop Date: <input type="text" name="date_stop" value="{{date_stop}}"> - </div> - <br> - <div> - Product filter: - <select name="product-filter" id="select-product-filter"> - <option value="0">WR Linux Suported Products</option> - </select> - </div> - <br> - <div> - <button type="submit" name="action" value="recalculate">Recalculate publish table</button> - Gather the items for this period to be published from SRTool, with user changes (last done {{last_calc}}) - </div> - <br> - <div> - <button type="submit" name="action" value="reset">Reset user edits, Recalculate</button> - Remove the user changes for this period, recalculate the table - </div> -</ul> -<h3> Publish Preview and Modifications</h3> -<ul> - <div> - <button type="submit" name="action" value="view">View the publish table</button> - View the publish table, prune entries - </div> - <br> - <div> - <button type="submit" name="action" value="add-cve">Add via CVEs</button> - Add recent CVEs to the table - </div> - <br> - <div> - <button type="submit" name="action" value="add-defect">Add via defects</button> - Add CVEs of recent defects to the table - </div> - <br> -</ul> -<h3> Publish the Report</h3> -<ul> - <div> - <button type="submit" name="action" value="export">Export</button> - Export the publish table (using history) - </div> - <br> -</ul> -</form> - -<script> - var selected_newcomment=false; - - $(document).ready(function() { - - function onCommitAjaxSuccess(data, textstatus) { - document.getElementById("export-snapshot").disabled = false; - /* document.getElementById("download-snapshot").disabled = false;*/ - document.getElementById("export-snapshot-text").innerText = "Generate the publish table on-demand (using snapshots)"; - document.getElementById("generating-report").style.display = "block"; - if (window.console && window.console.log) { - console.log("XHR returned:", data, "(" + textstatus + ")"); - } else { - alert("NO CONSOLE:\n"); - return; - } - if (data.error != "ok") { - alert("error on request:\n" + data.error); - return; - } - // reload the page with the updated tables - location.reload(true); - } - - function onCommitAjaxError(jqXHR, textstatus, error) { - console.log("ERROR:"+error+"|"+textstatus); - alert("XHR errored1:\n" + error + "\n(" + textstatus + ")"); - document.getElementById("export-snapshot").disabled = false; - document.getElementById("export-snapshot-text").innerText = "Generate the publish table on-demand (using snapshots)"; - /* document.getElementById("download-snapshot").disabled = false; */ - document.getElementById("generating-report").style.display = "block"; - } - - /* ensure cookie exists {% csrf_token %} */ - function postCommitAjaxRequest(reqdata) { - var ajax = $.ajax({ - type:"POST", - data: reqdata, - url:"{% url 'xhr_publish' %}", - headers: { 'X-CSRFToken': $.cookie("csrftoken")}, - success: onCommitAjaxSuccess, - error: onCommitAjaxError, - }); - } - - $("#snap_date_base").change(function(){ - snap_date_base = $("#snap_date_base").val(); - snap_date_top = $("#snap_date_top").val(); - if (snap_date_base > snap_date_top) { - $("#snap_date_base").val(snap_date_top); - $("#snap_date_top").val(snap_date_base); - $("#snap_date_start").val(snap_date_top); - $("#snap_date_stop").val(snap_date_base); - } else { - snap_date_start = $("#snap_date_start").val(); - snap_date_stop = $("#snap_date_stop").val(); - $("#snap_date_start").val(snap_date_base); - if (snap_date_stop < snap_date_base) { - $("#snap_date_stop").val(snap_date_top); - } - } - }); - - $("#snap_date_top").change(function(){ - snap_date_base = $("#snap_date_base").val(); - snap_date_top = $("#snap_date_top").val(); - if (snap_date_base > snap_date_top) { - $("#snap_date_base").val(snap_date_top); - $("#snap_date_top").val(snap_date_base); - $("#snap_date_start").val(snap_date_top); - $("#snap_date_stop").val(snap_date_base); - } else { - snap_date_start = $("#snap_date_start").val(); - snap_date_stop = $("#snap_date_stop").val(); - if (snap_date_start > snap_date_top) { - $("#snap_date_start").val(snap_date_base); - } - $("#snap_date_stop").val(snap_date_top); - } - }); - - $('#export-snapshot').click(function(){ - snap_date_base = $("#snap_date_base").val(); - snap_date_top = $("#snap_date_top").val(); - snap_date_start = $("#snap_date_start").val(); - snap_date_stop = $("#snap_date_stop").val(); - if (snap_date_start > snap_date_stop) { - alert("Error: the start date is after the stop date"); - return; - } - if (snap_date_start < snap_date_base) { - alert("Error: the start date is before the snapshot base date"); - return; - } - if (snap_date_stop > snap_date_top) { - alert("Error: the stop date is after the snapshot top date"); - return; - } - var result = confirm("Generate the report? This will take several minutes."); - if (result){ - document.getElementById("export-snapshot").disabled = true; - document.getElementById("export-snapshot-text").innerText = "... Generating the report - this will take a few minutes ..."; - - /* document.getElementById("download-snapshot").disabled = true; */ - document.getElementById("generating-report").style.display = "none"; - postCommitAjaxRequest({ - "action" : 'export-snapshot', - "snap_date_base" : snap_date_base, - "snap_date_top" : snap_date_top, - "snap_date_start" : snap_date_start, - "snap_date_stop" : snap_date_stop - }); - } - }); - - - /* Manage report files */ - - $('.submit-downloadreport').click(function() { - $("#downloadbanner-"+this.getAttribute("x-data")).submit(); - }); - - $('.trash-report').click(function() { - var result = confirm("Are you sure?"); - if (result){ - postCommitAjaxRequest({ - "action" : 'submit-trashreport', - "report_name" : $(this).attr('x-data'), - }); - } - }); - - - - }); -</script> + <div class="row"> + <div class="col-md-7" style="padding-left: 50px;"> + <h1>Management</h1> + </div> + </div> + <div class="row"> + <div class="jumbotron well-transparent"> + + <div class="col-md-6"> + <div> + <table class="table table-striped table-condensed" data-testid="landing-hyperlinks-table"> + <thead> + <tr> + <th>Action</th> + <th>Description</th> + </tr> + </thead> + + <tr> + <td><a class="btn btn-info btn-lg" href="{% url 'report' 'publish-summary' %}">Summary of CVEs</a></td> + <td>Summary across CVEs and Products</td> + </tr> + + <tr> + <td><a class="btn btn-info btn-lg" href="{% url 'publish_diff_snapshot' %}">Difference Snapshots [UNDER DEVELOPMENT]</a></td> + <td>Difference Report via Snapshots</td> + </tr> + + <tr> + <td><a class="btn btn-info btn-lg" href="{% url 'publish_diff_history' %}">Difference History [UNDER DEVELOPMENT]</a></td> + <td>Difference Report via History</td> + </tr> + + </table> + </div> + + </div> + + </div> + + </div> + </div> {% endblock %} |