Index: Tools/AutoSheriff/closers.html |
diff --git a/Tools/AutoSheriff/closers.html b/Tools/AutoSheriff/closers.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..26c6f2b2ec50900435b88c72d49a90f041755874 |
--- /dev/null |
+++ b/Tools/AutoSheriff/closers.html |
@@ -0,0 +1,85 @@ |
+<!doctype html> |
ojan
2014/07/22 02:01:24
Nit: We usually use <!DOCTYPE html> to match the o
|
+<html> |
+<head> |
+ <title>Tree Closers</title> |
+ <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes"> |
+ <script src="components/platform/platform.js"></script> |
+ <script src="scripts/repositories.js"></script> |
+ <script src="scripts/third_party/js_humanized_time_span/humanized_time_span.js"></script> |
ojan
2014/07/22 02:01:24
We've been standardizing on polymer+sugarjs for al
|
+ <style> |
+ html,body { |
ojan
2014/07/22 02:01:24
Nit: need space after the comma
|
+ height: 100%; |
+ margin: 0; |
+ background-color: #E5E5E5; |
+ font-family: 'RobotoDraft', sans-serif; |
+ } |
+ </style> |
+ <link rel="import" href="components/polymer/polymer.html"> |
+ <script src="ui/filters.js"></script> |
ojan
2014/07/22 02:01:24
If you use script tags, then your load order isn't
|
+ <link rel="import" href="components/core-ajax/core-ajax.html"> |
+ <link rel="import" href="components/font-roboto/roboto.html"> |
+ <link rel="import" href="components/paper-tabs/paper-tabs.html"> |
+ <link rel="import" href="components/sortable-table/sortable-table.html"> |
+ <link rel="import" href="ui/nb-changelogs.html"> |
+ <link rel="import" href="ui/nb-alert-list.html"> |
+ <link rel="import" href="ui/nb-grouped-alert-list.html"> |
+ <link rel="shortcut icon" href="/favicon.ico"> |
+</head> |
+ |
+<body unresolved touch-action="auto"> |
+ |
+<polymer-element name="nb-main" attributes='failures filteredFailures selectedTree'> |
+<template> |
+Updated: {{ response.date | since_string }}, |
+<h1>Open Tree Closing Issues</h1> |
+<style> |
+ paper-tabs { |
+ background-color: #00bcd4; |
+ color: #fff; |
+ box-shadow: 0px 3px 2px rgba(0, 0, 0, 0.2); |
+ } |
+</style> |
+<paper-tabs valueattr="tree" selected="{{ selectedTree }}"> |
+ <paper-tab tree='chromium-status'>Chromium</paper-tab> |
+ <paper-tab tree='blink-status'>Blink</paper-tab> |
+</paper-tabs> |
+<nb-alert-list failures='{{ filteredFailures }}'></nb-alert-list> |
+<core-ajax url="/data" id='loader' auto handleAs="json" response="{{ response }}"></core-ajax> |
+</template> |
+<script> |
+Polymer('nb-main', { |
+ ready: function() { |
+ console.log('nb-main ready'); |
+ window.setInterval(30 * 1000, function() { |
+ console.log('refreshing'); |
+ this.$.loader.go(); |
ojan
2014/07/22 02:01:24
We've been moving away from using core-ajax. This
|
+ }); |
+ this.failures = []; |
+ this.selectedTree = 'chromium-status'; |
+ }, |
+ failuresForTree: function(tree) { |
+ return this.failures.filter( |
+ function(failure) { |
+ return ((failure.tree_name == tree) && failure.would_close_tree); |
+ }, this) |
+ }, |
+ selectedTreeChanged: function() { |
+ this.filteredFailures = this.failuresForTree(this.selectedTree); |
+ }, |
+ responseChanged: function(oldValue, newValue) { |
+ this.failures = newValue.alerts; |
+ this.filteredFailures = this.failuresForTree(this.selectedTree); |
+ }, |
+}); |
+</script> |
+</polymer-element> |
+<nb-main></nb-main> |
+ |
+<form action='/ignore' method='post'> |
+<core-field> |
+ <label>Pattern:</label><input name='pattern'> |
+</core-field> |
+<input type='submit'> |
+</form> |
+</body> |
+</html> |