blob: b967f1c99760bafd4c06024bdbd99a48f87fd2b7 [file] [log] [blame]
<!DOCTYPE html>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Query Generator Results</title>
<!-- Bootstrap -->
<link href="{{ url_for('static', filename=assets['bootstrap_css']) }}" rel="stylesheet">
<link href="{{ url_for('static', filename=assets['hljs_css']) }}" rel="stylesheet">
<link href="{{ url_for('static', filename=assets['favicon']) }}" rel="shortcut icon" />
<style>
.top-buffer { margin-top:75px; }
</style>
</head>
<body>
<div class="modal fade" id="success_modal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<p class="text-success">Added To Schedule</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<div class="modal fade" id="fail_modal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<p class="text-success">Something went wrong!</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<a class="navbar-brand" href="/">Home</a>
<form class="navbar-form navbar-right" id="rerun_form" action="/start_run" method="post">
<div class="form-group">
<input type="text" class="form-control" name="run_name" placeholder="Run Name">
<input type="text" class="form-control" name="git_command" placeholder="Git Command">
<input type="hidden" name="report_id" value="{{report.job_id}}">
</div>
<button type="submit" class="btn btn-success">
Rerun Failed Queries
</button>
</form>
</div>
</nav>
<div class="container">
<div class="row top-buffer">
<!-- Outer Accordion -->
<div class="panel-group" role="tablist" aria-multiselectable="true">
<!-- Overview Accordion -->
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="heading_overview">
<h4 class="panel-title">
<a class="collapsed"
data-toggle="collapse"
data-parent="#accordion"
href="#collapse_overview"
aria-expanded="false"
aria-controls="collapse_overview">
Overview
</a>
</h4>
</div>
<div id="collapse_overview"
class="panel-collapse collapse in"
role="tabpanel"
aria-labelledby="heading_crashes">
<div class="panel-body">
<!-- inside overview -->
<div class="row">
<div class="col-md-4"> <!-- Left Column -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">
Queries Executed
</h3>
</div>
<div class="panel-body">
{{report.num_queries_executed}}
</div>
</div> <!-- panel -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">
Run Time
</h3>
</div>
<div class="panel-body">
{{report.run_time_str}}
</div>
</div> <!-- panel -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">
Git Hash
</h3>
</div>
<div class="panel-body">
{{report.git_hash}}
</div>
</div> <!-- panel -->
</div>
<div class="col-md-4"> <!-- Left Column -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">
Job Name
</h3>
</div>
<div class="panel-body">
{{report.job_name}}
</div>
</div>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">
Crashes
</h3>
</div>
<div class="panel-body">
{{report.num_crashes}}
</div>
</div>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">
Num Correct Data
</h3>
</div>
<div class="panel-body">
{{report.num_queries_returned_correct_data}}
</div>
</div>
</div>
<div class="col-md-4"> <!-- Right Column -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">
Row Count Mismatches
</h3>
</div>
<div class="panel-body">
{{report.num_row_count_mismatch}}
</div>
</div>
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">
Content Mismatches
</h3>
</div>
<div class="panel-body">
{{report.num_mismatch}}
</div>
</div>
</div>
</div>
<!-- End of inside overview -->
</div>
</div>
</div>
<!-- Crashes Accordion -->
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="heading_crashes">
<h4 class="panel-title">
<a class="collapsed"
data-toggle="collapse"
data-parent="#accordion"
href="#collapse_crashes"
aria-expanded="false"
aria-controls="collapse_crashes">
Crashes
</a>
</h4>
</div>
<div id="collapse_crashes"
class="panel-collapse collapse"
role="tabpanel"
aria-labelledby="heading_crashes">
<div class="panel-body">
{% for id, title, crashes_list in outer_crashes_list %}
<!-- Crashes Accordion -->
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="heading{{id}}">
<h4 class="panel-title">
<a class="collapsed"
data-toggle="collapse"
data-parent="#accordion"
href="#collapse{{id}}"
aria-expanded="false"
aria-controls="collapse{{id}}">
{{title}}
</a>
</h4>
</div>
<div id="collapse{{id}}"
class="panel-collapse collapse"
role="tabpanel"
aria-labelledby="heading{{id}}">
<div class="panel-body">
<!-- Inner Panel Body -> entire accordion should go here -->
<div class="panel-group"
id="accordion_crashes{{id}}"
role="tablist"
aria-multiselectable="true">
{% for inner_id, inner_title, content in crashes_list %}
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="heading{{inner_id}}">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion_crashes{{id}}" href="#collapse{{inner_id}}"
aria-expanded="true" aria-controls="collapse{{inner_id}}">
{{inner_title}}
</a>
</h4>
</div>
<div id="collapse{{inner_id}}" class="panel-collapse collapse"
role="tabpanel" aria-labelledby="heading{{inner_id}}">
<div class="panel-body">
{{content}}
</div>
</div>
</div>
{% endfor %}
</div>
<!-- Inner Panel Body -->
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
<!-- Row Count Mismatch Accordion -->
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="heading_mismatch">
<h4 class="panel-title">
<a class="collapsed"
data-toggle="collapse"
data-parent="#accordion"
href="#collapse_mismatch"
aria-expanded="false"
aria-controls="collapse_mismatch">
Row Count Mismatch
</a>
</h4>
</div>
<div id="collapse_mismatch"
class="panel-collapse collapse"
role="tabpanel"
aria-labelledby="heading_mismatch">
<div class="panel-body">
{% for id, title, content in row_count_list %}
<!-- Crashes Accordion -->
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="heading{{id}}">
<h4 class="panel-title">
<a class="collapsed"
data-toggle="collapse"
data-parent="#accordion"
href="#collapse{{id}}"
aria-expanded="false"
aria-controls="collapse{{id}}">
{{title}}
</a>
</h4>
</div>
<div id="collapse{{id}}"
class="panel-collapse collapse"
role="tabpanel"
aria-labelledby="heading{{id}}">
<div class="panel-body">
{{content}}
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
<!-- Content Mismatch Accordion -->
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="heading_content_mismatch">
<h4 class="panel-title">
<a class="collapsed"
data-toggle="collapse"
data-parent="#accordion"
href="#collapse_content_mismatch"
aria-expanded="false"
aria-controls="collapse_content_mismatch">
Content Mismatch
</a>
</h4>
</div>
<div id="collapse_content_mismatch"
class="panel-collapse collapse"
role="tabpanel"
aria-labelledby="heading_content_mismatch">
<div class="panel-body">
{% for id, title, content in mismatch_list %}
<!-- Crashes Accordion -->
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="heading{{id}}">
<h4 class="panel-title">
<a class="collapsed"
data-toggle="collapse"
data-parent="#accordion"
href="#collapse{{id}}"
aria-expanded="false"
aria-controls="collapse{{id}}">
{{title}}
</a>
</h4>
</div>
<div id="collapse{{id}}"
class="panel-collapse collapse"
role="tabpanel"
aria-labelledby="heading{{id}}">
<div class="panel-body">
{{content}}
</div>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
</div>
{% if parent_run_id %}
<ul class="list-group">
<li class="list-group-item list-group-item-heading">Parent Run</li>
<li class="list-group-item"><a href="/report/{{ report.parent_run_id }}">{{ report.parent_run_id }}</a></li>
</ul>
{% endif %}
</div>
</div><!-- /.container -->
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="{{ url_for('static', filename=assets['bootstrap_js']) }}"></script>
<script src="{{ url_for('static', filename=assets['hljs_js']) }}"></script>
<script>hljs.initHighlightingOnLoad();</script>
<script>
$('#rerun_form').submit(function(){
$.post($(this).attr('action'), $(this).serialize(), function(result){
if (result == 'success') {
$('#success_modal').modal('show');
} else {
$('#fail_modal').modal('show');
}
});
return false; // prevent default action
});
</script>
</body>
</html>