Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(510)

Side by Side Diff: go/src/infra/appengine/sheriff-o-matic/elements/som-app.html

Issue 2053893002: [som] Add bug queue UI. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: style nits, added a refresh() method Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | go/src/infra/appengine/sheriff-o-matic/elements/som-bug-queue.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <link rel="import" href="/bower_components/polymer/polymer.html"> 1 <link rel="import" href="/bower_components/polymer/polymer.html">
2 <link rel="import" href="/bower_components/iron-ajax/iron-ajax.html"> 2 <link rel="import" href="/bower_components/iron-ajax/iron-ajax.html">
3 <link rel="import" href="/bower_components/iron-flex-layout/classes/iron-flex-la yout.html"> 3 <link rel="import" href="/bower_components/iron-flex-layout/classes/iron-flex-la yout.html">
4 <link rel="import" href="/bower_components/iron-icons/hardware-icons.html"> 4 <link rel="import" href="/bower_components/iron-icons/hardware-icons.html">
5 <link rel="import" href="/bower_components/iron-icon/iron-icon.html"> 5 <link rel="import" href="/bower_components/iron-icon/iron-icon.html">
6 <link rel="import" href="/bower_components/iron-icons/iron-icons.html"> 6 <link rel="import" href="/bower_components/iron-icons/iron-icons.html">
7 <link rel="import" href="/bower_components/iron-list/iron-list.html"> 7 <link rel="import" href="/bower_components/iron-list/iron-list.html">
8 <link rel="import" href="/bower_components/iron-location/iron-location.html"> 8 <link rel="import" href="/bower_components/iron-location/iron-location.html">
9 <link rel="import" href="/bower_components/iron-pages/iron-pages.html"> 9 <link rel="import" href="/bower_components/iron-pages/iron-pages.html">
10 <link rel="import" href="/bower_components/neon-animation/animations/scale-up-an imation.html"> 10 <link rel="import" href="/bower_components/neon-animation/animations/scale-up-an imation.html">
11 <link rel="import" href="/bower_components/neon-animation/animations/fade-out-an imation.html"> 11 <link rel="import" href="/bower_components/neon-animation/animations/fade-out-an imation.html">
12 <link rel="import" href="/bower_components/paper-badge/paper-badge.html"> 12 <link rel="import" href="/bower_components/paper-badge/paper-badge.html">
13 <link rel="import" href="/bower_components/paper-button/paper-button.html"> 13 <link rel="import" href="/bower_components/paper-button/paper-button.html">
14 <link rel="import" href="/bower_components/paper-dialog/paper-dialog.html"> 14 <link rel="import" href="/bower_components/paper-dialog/paper-dialog.html">
15 <link rel="import" href="/bower_components/paper-drawer-panel/paper-drawer-panel .html"> 15 <link rel="import" href="/bower_components/paper-drawer-panel/paper-drawer-panel .html">
16 <link rel="import" href="/bower_components/paper-header-panel/paper-header-panel .html"> 16 <link rel="import" href="/bower_components/paper-header-panel/paper-header-panel .html">
17 <link rel="import" href="/bower_components/paper-icon-button/paper-icon-button.h tml"> 17 <link rel="import" href="/bower_components/paper-icon-button/paper-icon-button.h tml">
18 <link rel="import" href="/bower_components/paper-input/paper-input.html"> 18 <link rel="import" href="/bower_components/paper-input/paper-input.html">
19 <link rel="import" href="/bower_components/paper-spinner/paper-spinner.html"> 19 <link rel="import" href="/bower_components/paper-spinner/paper-spinner.html">
20 <link rel="import" href="/bower_components/paper-toolbar/paper-toolbar.html"> 20 <link rel="import" href="/bower_components/paper-toolbar/paper-toolbar.html">
21 <link rel="import" href="/elements/som-alert-item.html"> 21 <link rel="import" href="/elements/som-alert-item.html">
22 <link rel="import" href="/elements/som-bug-queue.html">
22 <link rel="import" href="/elements/som-drawer.html"> 23 <link rel="import" href="/elements/som-drawer.html">
23 <link rel="import" href="/elements/som-examine.html"> 24 <link rel="import" href="/elements/som-examine.html">
24 25
25 <dom-module id="som-app"> 26 <dom-module id="som-app">
26 <template> 27 <template>
27 <style> 28 <style>
28 paper-toolbar { 29 paper-toolbar {
29 --paper-toolbar-background: black; 30 --paper-toolbar-background: black;
30 } 31 }
31 paper-header-panel /deep/ #mainContainer { 32 paper-header-panel /deep/ #mainContainer {
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 <div class="user-name"> 119 <div class="user-name">
119 [[user]] (<a href$="[[logoutUrl]]">Log Out </a>) 120 [[user]] (<a href$="[[logoutUrl]]">Log Out </a>)
120 </div> 121 </div>
121 <paper-icon-button on-tap="_refresh" id="refresh" icon="refresh"></p aper-icon-button> 122 <paper-icon-button on-tap="_refresh" id="refresh" icon="refresh"></p aper-icon-button>
122 </div> 123 </div>
123 <paper-spinner active="[[_networkActive]]"></paper-spinner> 124 <paper-spinner active="[[_networkActive]]"></paper-spinner>
124 </paper-toolbar> 125 </paper-toolbar>
125 <div class="flex layout vertical"> 126 <div class="flex layout vertical">
126 <iron-pages attr-for-selected='id' selected="[[_selectedPage]]" class= "flex layout vertical"> 127 <iron-pages attr-for-selected='id' selected="[[_selectedPage]]" class= "flex layout vertical">
127 <div id="alertsList"> 128 <div id="alertsList">
128 <div hidden$="[[_haveAlerts]]"> 129 <som-bug-queue alerts-group="[[_alertsGroup]]"></som-bug-queue>
130 <div hidden$="[[_haveAlerts]]">
129 No alerts! 131 No alerts!
130 </div> 132 </div>
131 <iron-list id="alertsIronList" items="[[_alerts]]" as="alert" clas s="fit" selection-enabled multi-selection> 133 <iron-list id="alertsIronList" items="[[_alerts]]" as="alert" sele ction-enabled multi-selection>
132 <template> 134 <template>
133 <div class="list-item" tabindex$="[[tabIndex]]"> 135 <div class="list-item" tabindex$="[[tabIndex]]">
134 <som-alert-item 136 <som-alert-item
135 alert="{{alert}}" 137 alert="{{alert}}"
136 alerts-group="[[_alertsGroup]]" 138 alerts-group="[[_alertsGroup]]"
137 selected="[[selected]]" 139 selected="[[selected]]"
138 annotation="[[_computeAnnotation(annotations, alert)]]" 140 annotation="[[_computeAnnotation(annotations, alert)]]"
139 on-annotation-change="_handleAnnotation" 141 on-annotation-change="_handleAnnotation"
140 on-link-bug="_handleLinkBug" 142 on-link-bug="_handleLinkBug"
141 ></som-alert-item> 143 ></som-alert-item>
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 type: Object, 218 type: Object,
217 value: function() { return {}; }, 219 value: function() { return {}; },
218 }, 220 },
219 _bugModel: Object, 221 _bugModel: Object,
220 _filedBug: { 222 _filedBug: {
221 type: Boolean, 223 type: Boolean,
222 value: false, 224 value: false,
223 }, 225 },
224 _haveAlerts: { 226 _haveAlerts: {
225 type: Boolean, 227 type: Boolean,
226 computed: '_computeHaveAlerts(alerts)', 228 computed: '_computeHaveAlerts(_alerts)',
227 }, 229 },
228 logoutUrl: String, 230 logoutUrl: String,
229 _networkActive: { 231 _networkActive: {
230 type: Boolean, 232 type: Boolean,
231 value: false, 233 value: false,
232 }, 234 },
233 _path: { 235 _path: {
234 type: String, 236 type: String,
235 }, 237 },
236 _selectedPage: { 238 _selectedPage: {
(...skipping 15 matching lines...) Expand all
252 user: String, 254 user: String,
253 }, 255 },
254 256
255 created: function() { 257 created: function() {
256 this.async(this._refreshAsync, refreshDelayMs); 258 this.async(this._refreshAsync, refreshDelayMs);
257 }, 259 },
258 260
259 ////////////////////// Refresh /////////////////////////// 261 ////////////////////// Refresh ///////////////////////////
260 262
261 _refresh: function() { 263 _refresh: function() {
262 this.$.alertsAjax.generateRequest(); 264 this.$.alertsAjax.generateRequest();
martiniss 2016/06/10 21:35:58 add this.$.bugQueue.refresh() here as well
seanmccullough1 2016/06/10 21:56:49 Done.
263 }, 265 },
264 266
265 _refreshAsync: function() { 267 _refreshAsync: function() {
266 this._refresh(); 268 this._refresh();
267 this.async(this._refreshAsync, refreshDelayMs); 269 this.async(this._refreshAsync, refreshDelayMs);
268 }, 270 },
269 271
270 ////////////////////// Alerts and path /////////////////////////// 272 ////////////////////// Alerts and path ///////////////////////////
271 273
272 _computeAlertsGroup: function(path) { 274 _computeAlertsGroup: function(path) {
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 let aAnn = this._computeAnnotation(annotations, a); 345 let aAnn = this._computeAnnotation(annotations, a);
344 let bAnn = this._computeAnnotation(annotations, b); 346 let bAnn = this._computeAnnotation(annotations, b);
345 347
346 if (aAnn.snoozed == bAnn.snoozed) { 348 if (aAnn.snoozed == bAnn.snoozed) {
347 return a.severity - b.severity; 349 return a.severity - b.severity;
348 } 350 }
349 351
350 return aAnn.snoozed ? 1 : -1; 352 return aAnn.snoozed ? 1 : -1;
351 }); 353 });
352 354
355 // Otherwise alertsIronList doesn't render all of the alert items.
356 setTimeout(() => {
357 this.$.alertsIronList.notifyResize();
358 }, 250);
359
353 return alerts; 360 return alerts;
354 }, 361 },
355 362
363 _computeHaveAlerts: function(alerts) {
364 if (!alerts) {
365 return true;
366 }
367 return alerts.length > 0;
368 },
369
356 ////////////////////// Annotations /////////////////////////// 370 ////////////////////// Annotations ///////////////////////////
357 371
358 _computeAnnotations: function(annotationsJson) { 372 _computeAnnotations: function(annotationsJson) {
359 let annotations = {}; 373 let annotations = {};
360 if (!annotationsJson) { 374 if (!annotationsJson) {
361 return annotations; 375 return annotations;
362 } 376 }
363 annotationsJson.forEach(function(annotation) { 377 annotationsJson.forEach(function(annotation) {
364 annotations[annotation.key] = annotation; 378 annotations[annotation.key] = annotation;
365 }); 379 });
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 _saveBug: function() { 451 _saveBug: function() {
438 this._sendAnnotation( 452 this._sendAnnotation(
439 this._keyForAlert(this._bugModel), 'add', { 453 this._keyForAlert(this._bugModel), 'add', {
440 bugs: [this.$.bug.value] 454 bugs: [this.$.bug.value]
441 }); 455 });
442 }, 456 },
443 }); 457 });
444 })(); 458 })();
445 </script> 459 </script>
446 </dom-module> 460 </dom-module>
OLDNEW
« no previous file with comments | « no previous file | go/src/infra/appengine/sheriff-o-matic/elements/som-bug-queue.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698