blob: e7f82a1471925d491227c931dc316e9928b041a5 [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright 2016 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<!--
This template contains HTML for the following things:
- A form for creating a new bug for an alert.
- A form for choosing an existing bug number for an alert.
- A message with a link after creating a new bug.
- A "bug created" message with a link after creating a new bug.
- Error messages related to the above.
-->
<html>
<head>
<style>
body {
color: #222;
font: normal 13px arial, sans-serif;
line-height: 1.4;
}
b {
color: #000;
}
a:visited {
color: #61c;
}
a:link {
color: #15c;
}
.bug-list {
/* Note: pop-up window size 600x480 is set in triage-dialog.html. */
box-sizing: border-box;
max-width: 550px;
overflow-x: visible;
}
/* Style of the bug list table should fit with the style of the
alerts table. See the CSS in alerts-table.html. */
.bug-list td {
border: 1px solid #eee;
border-bottom: 2px solid #ccc;
padding-left: 7px;
padding-right: 7px;
}
.bug-list tr:first-child td {
border-top: 0px;
}
.bug-list tr:last-child td {
border-bottom: 0px;
}
.bug-list td:first-child {
border-left: 0px;
}
.bug-list td:last-child {
border-right: 0px;
}
.bug-list .bug-author {
max-width: 60px;
overflow: hidden;
}
.bug-list .bug-summary {
max-width: 350px;
}
/* Color matches that of the color in the alerts table. */
.highlighted {
background-color: #f6ebae;
border-color: #ebdb84 transparent;
z-index: 2;
}
.bug-closed {
text-decoration: line-through;
}
input[type=text] {
background-color: #fff;
border: 1px solid #d9d9d9;
border-top: 1px solid #c0c0c0;
-webkit-border-radius: 1px;
border-radius: 1px;
box-sizing: border-box;
color: #333;
height: 29px;
line-height: 27px;
padding-left: 8px;
vertical-align: top;
}
input[type=checkbox], input[type=radio], .fakecheckbox, .fakeradio {
border: 1px solid #c6c6c6;
border-radius: 1px;
bottom: -1px;
box-sizing: border-box;
cursor: default;
height: 13px;
margin: 0;
margin-right: 5px;
position: relative;
width: 13px;
-webkit-appearance: none;
}
input[type=checkbox]:checked::after, .fakecheckbox.checked::after {
font-size: 1.3em;
content: "✓";
position: absolute;
top: -5px;
left: -1px;
}
input[type=submit] {
background-color: #4d90fe;
background-image: -webkit-linear-gradient(top, #4d90fe, #4787ed);
background-image: linear-gradient(to bottom, #4d90fe, #4787ed);
border: 1px solid #3079ed;
color: #fff;
}
button {
background-color: #f5f5f5;
border: 1px solid rgba(0, 0, 0, 0.1);
color: #444;
background-image: -webkit-linear-gradient(top, #f5f5f5, #f1f1f1);
background-image: linear-gradient(to bottom, #f5f5f5, #f1f1f1);
}
button, input[type=submit] {
border-radius: 2px;
font-size: 11px;
font-weight: bold;
height: 27px;
line-height: 27px;
min-width: 54px;
padding: 0px 8px;
-webkit-user-select: none;
}
popup-tooltip {
white-space: normal;
}
</style>
</head>
<body>
{% if error %}
<div class="error">{{error}}</div><br><br>
<button onclick="window.close()">Close</button>
{% elif bug_associate_form %}
<form action="/associate_alerts" method="POST">
<input type="hidden" name="keys" value="{{keys}}">
<input type="text" name="bug_id" id="bug_id"
required placeholder="Bug ID"><br><br>
<input type="submit">
</form>
<p>Recent bugs shown below. Click on a bug ID to copy into the form field.
Highlighting indicates overlapping revision range.</p>
<div class="bug-list">
<table>
<thead>
<tr>
<th class="bug-link">Bug ID</th>
<th class="bug-status">Status</th>
<th class="bug-author">Author</th>
<th class="bug-summary">Summary</th>
</tr>
</thead>
<tbody>
{% for bug in bugs %}
<tr {% if bug.relevant %} class="highlighted" {% endif %}>
<td>
<a href="http://crbug.com/{{bug.id}}"
data-bugid="{{bug.id}}"
target="_blank"
class="bug-link bug-{{bug.state}} bug-{{bug.status}}">
{{bug.id}}
</a>
</td>
<td class="bug-status">{{bug.status}}</td>
<td class="bug-author">{{bug.author.name}}</td>
<td class="bug-summary">{{bug.summary}}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<script>
function init() {
var bugLinks = document.getElementsByClassName('bug-link');
for (var i = 0; i < bugLinks.length; i++) {
bugLinks[i].addEventListener('click', function(e) {
var bugId = e.target.getAttribute('data-bugid');
document.getElementById('bug_id').value = bugId;
e.preventDefault();
}, true);
}
}
document.addEventListener('DOMContentLoaded', init);
</script>
{% elif bug_create_form %}
<form action="/file_bug" method="POST">
<input type="hidden" name="finish" value="true">
<input type="hidden" name="keys" value="{{keys}}">
<b>Summary:</b><br>
<input name="summary" value="{{summary}}" size=83>
<br><br>
<b>Description:</b><br>
<textarea rows=10 cols=60 name="description">{{description}}</textarea>
<br><br>
<b>Labels:</b><br>
{% for label in labels %}
<label>
<input type="checkbox" checked name="label" value="{{label}}">
{{label}}
</label><br>
{% endfor %}
<br>
<b>Components:</b><br>
{% for component in components %}
<label>
<input type="checkbox" checked name="component" value="{{component}}">
{{component}}
</label><br>
{% endfor %}
<b>Owner:</b><br>
<input type="text" name="owner" value="{{owner}}"><br><br>
<input type="submit">
</form>
{% elif confirmation_required %}
<p>{{message}}</p>
<p>Do you want to continue?</p>
<form action="/{{handler}}" method="POST">
<input type="hidden" name="confirm" value="true">
{% for key, value in parameters.iteritems() %}
<input type="hidden" name="{{key}}" value="{{value}}">
{% endfor %}
<button onclick="window.history.go(-1); return false;">Back</button>
<input type="submit" value="Confirm">
</form>
{% else %}
<script>
function postClose() {
var data = {
'action': 'bug_create_result',
'bug_id': {{bug_id}},
'bisect_error': '{{bisect_error}}',
'issue_url': '{{issue_url}}',
'issue_id': '{{issue_id}}',
};
window.opener.postMessage(JSON.stringify(data), '*');
window.close();
}
window.addEventListener('DOMContentLoaded', postClose, false);
</script>
{% endif %}
</body>
</html>