Chromium Code Reviews| OLD | NEW |
|---|---|
| 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-location/iron-location.html"> | 7 <link rel="import" href="/bower_components/iron-location/iron-location.html"> |
| 8 <link rel="import" href="/bower_components/iron-pages/iron-pages.html"> | 8 <link rel="import" href="/bower_components/iron-pages/iron-pages.html"> |
| 9 <link rel="import" href="/bower_components/neon-animation/animations/scale-up-an imation.html"> | 9 <link rel="import" href="/bower_components/neon-animation/animations/scale-up-an imation.html"> |
| 10 <link rel="import" href="/bower_components/neon-animation/animations/fade-out-an imation.html"> | 10 <link rel="import" href="/bower_components/neon-animation/animations/fade-out-an imation.html"> |
| 11 <link rel="import" href="/bower_components/paper-badge/paper-badge.html"> | 11 <link rel="import" href="/bower_components/paper-badge/paper-badge.html"> |
| 12 <link rel="import" href="/bower_components/paper-button/paper-button.html"> | 12 <link rel="import" href="/bower_components/paper-button/paper-button.html"> |
| 13 <link rel="import" href="/bower_components/paper-dialog/paper-dialog.html"> | 13 <link rel="import" href="/bower_components/paper-dialog/paper-dialog.html"> |
| 14 <link rel="import" href="/bower_components/paper-drawer-panel/paper-drawer-panel .html"> | 14 <link rel="import" href="/bower_components/paper-drawer-panel/paper-drawer-panel .html"> |
| 15 <link rel="import" href="/bower_components/paper-header-panel/paper-header-panel .html"> | 15 <link rel="import" href="/bower_components/paper-header-panel/paper-header-panel .html"> |
| 16 <link rel="import" href="/bower_components/paper-icon-button/paper-icon-button.h tml"> | 16 <link rel="import" href="/bower_components/paper-icon-button/paper-icon-button.h tml"> |
| 17 <link rel="import" href="/bower_components/paper-input/paper-input.html"> | 17 <link rel="import" href="/bower_components/paper-input/paper-input.html"> |
| 18 <link rel="import" href="/bower_components/paper-spinner/paper-spinner.html"> | 18 <link rel="import" href="/bower_components/paper-spinner/paper-spinner.html"> |
| 19 <link rel="import" href="/bower_components/paper-toolbar/paper-toolbar.html"> | 19 <link rel="import" href="/bower_components/paper-toolbar/paper-toolbar.html"> |
| 20 <link rel="import" href="/elements/som-alert-item.html"> | 20 <link rel="import" href="/elements/som-alert-item.html"> |
| 21 <link rel="import" href="/elements/som-bug-queue.html"> | 21 <link rel="import" href="/elements/som-bug-queue.html"> |
| 22 <link rel="import" href="/elements/som-drawer.html"> | 22 <link rel="import" href="/elements/som-drawer.html"> |
| 23 <link rel="import" href="/elements/som-examine.html"> | 23 <link rel="import" href="/elements/som-examine.html"> |
| 24 <link rel="import" href="/elements/pages/som-help.html"> | |
| 25 <link rel="import" href="/elements/pages/som-rotation-calendar.html"> | |
| 24 | 26 |
| 25 <dom-module id="som-app"> | 27 <dom-module id="som-app"> |
| 26 <template> | 28 <template> |
| 27 <style> | 29 <style> |
| 28 paper-toolbar { | 30 paper-toolbar { |
| 29 --paper-toolbar-background: black; | 31 --paper-toolbar-background: black; |
| 30 } | 32 } |
| 31 paper-toolbar a { | 33 paper-toolbar a { |
| 32 color: #fff; | 34 color: #fff; |
| 33 } | 35 } |
| 34 paper-header-panel /deep/ #mainContainer { | 36 paper-header-panel /deep/ #mainContainer { |
| 35 @apply(--layout-vertical); | 37 @apply(--layout-vertical); |
| 36 } | 38 } |
| 37 .last-updated, .user-name { | |
| 38 text-align: right; | |
| 39 padding-right: 1em; | |
| 40 } | |
| 41 paper-header-panel[main] { | 39 paper-header-panel[main] { |
| 42 --paper-header-panel-body: { | 40 --paper-header-panel-body: { |
| 43 background: #eee; | 41 background: #eee; |
| 44 } | 42 } |
| 45 } | 43 } |
| 46 .title { | 44 #alertsList { |
| 47 font-size: big; | 45 padding: 0; |
| 48 } | 46 } |
| 49 .som-title { | 47 #noAlerts { |
| 50 font-weight: bold; | 48 margin: 1em; |
| 49 text-align: center; | |
| 50 font-size: 2.5em; | |
| 51 line-height: 150%; | |
| 52 } | |
| 53 #refresh { | |
| 54 width: 25px; | |
| 55 height: 25px; | |
| 56 padding: 0; | |
| 57 } | |
| 58 .last-updated, .user-name { | |
| 59 text-align: right; | |
| 60 padding-right: 1em; | |
| 51 } | 61 } |
| 52 .list-item { | 62 .list-item { |
| 53 @apply(--layout-flex); | 63 @apply(--layout-flex); |
| 54 @apply(--layout-vertical); | 64 @apply(--layout-vertical); |
| 55 margin: 1em; | 65 margin: 1em; |
| 56 border-bottom: 1px solid #ddd; | 66 border-bottom: 1px solid #ddd; |
| 57 } | 67 } |
| 58 #refresh { | |
| 59 width: 25px; | |
| 60 height: 25px; | |
| 61 padding: 0; | |
| 62 } | |
| 63 #alertsList { | |
| 64 background: white; | |
| 65 border-left: 1px solid #ddd; | |
| 66 } | |
| 67 #noAlerts { | |
| 68 margin: 1em; | |
| 69 text-align: center; | |
| 70 font-size: 2.5em; | |
| 71 line-height: 150%; | |
| 72 } | |
| 73 .notification { | 68 .notification { |
| 74 box-sizing: border-box; | 69 box-sizing: border-box; |
| 75 width: 100%; | 70 width: 100%; |
| 76 padding: 8px 10px; | 71 padding: 8px 10px; |
| 77 margin: 10px auto 20px; | 72 margin: 10px auto 20px; |
| 78 border: 1px solid #666; | 73 border: 1px solid #666; |
| 79 border-radius: 5px; | 74 border-radius: 5px; |
| 80 } | 75 } |
| 81 | 76 .page-body { |
| 77 background: white; | |
| 78 border-left: 1px solid #ddd; | |
| 79 padding: 1em; | |
| 80 } | |
| 81 .som-title { | |
| 82 font-weight: bold; | |
| 83 } | |
| 84 .title { | |
| 85 font-size: big; | |
| 86 } | |
| 82 @media (max-width: 1024px) { | 87 @media (max-width: 1024px) { |
| 83 .last-updated, .user-name { | 88 .last-updated, .user-name { |
| 84 padding-right: 0.5em; | 89 padding-right: 0.5em; |
| 85 font-size: 0.9em; | 90 font-size: 0.9em; |
| 86 } | 91 } |
| 87 } | 92 } |
| 88 </style> | 93 </style> |
| 89 <iron-location id="url" path="{{_path}}"></iron-location> | 94 <iron-location id="url" path="{{_path}}"></iron-location> |
| 90 <iron-ajax | 95 <iron-ajax |
| 91 auto | 96 auto |
| 92 id="annotations" | 97 id="annotations" |
| 93 url="/api/v1/annotations" | 98 url="/api/v1/annotations" |
| 94 handle-as="json" | 99 handle-as="json" |
| 95 last-error="{{_annotationsJsonError}}" | 100 last-error="{{_annotationsJsonError}}" |
| 96 last-response="{{annotationsJson}}" | 101 last-response="{{annotationsJson}}" |
| 97 debounce-duration="300"></iron-ajax> | 102 debounce-duration="300"></iron-ajax> |
| 98 <iron-ajax | 103 <iron-ajax |
| 99 id="annotationPost" | 104 id="annotationPost" |
| 100 method="post" | 105 method="post" |
| 101 handle-as="json" | 106 handle-as="json" |
| 102 last-error="{{_annotationPostError}}" | 107 last-error="{{_annotationPostError}}" |
| 103 on-response="_postResponse"></iron-ajax> | 108 on-response="_postResponse"></iron-ajax> |
| 104 <paper-drawer-panel responsive-width="1024px"> | 109 <paper-drawer-panel responsive-width="1024px"> |
| 105 <paper-header-panel drawer> | 110 <paper-header-panel drawer> |
| 106 <paper-toolbar> | 111 <paper-toolbar> |
| 107 <span class="som-title">Sheriff-o-Matic</span> | 112 <span class="som-title">Sheriff-o-Matic</span> |
| 108 </paper-toolbar> | 113 </paper-toolbar> |
| 109 <som-drawer id="drawer" tree="[[_tree]]" path="{{_path}}" show-infra-fai lures="{{showInfraFailures}}" trees="{{_trees}}"></som-drawer> | 114 <som-drawer id="drawer" tree="[[_tree]]" path="{{_path}}" static-pages=" [[_staticPages]]" show-infra-failures="{{showInfraFailures}}" trees="{{_trees}}" ></som-drawer> |
| 110 </paper-header-panel> | 115 </paper-header-panel> |
| 111 <paper-header-panel main id="mainHeaderPanel" class="flex layout vertical" > | 116 <paper-header-panel main id="mainHeaderPanel" class="flex layout vertical" > |
| 112 <paper-toolbar> | 117 <paper-toolbar> |
| 113 <paper-icon-button icon="menu" paper-drawer-toggle></paper-icon-button > | 118 <paper-icon-button icon="menu" paper-drawer-toggle></paper-icon-button > |
| 114 <div class="layout horizontal flex"> | 119 <div class="layout horizontal flex"> |
| 115 <div class="flex title">[[_tree]]</div> | 120 <div class="flex title">[[_tree]]</div> |
| 116 <div hidden$="[[_lastUpdate]]" class="flex last-updated"> | 121 <div hidden$="[[_lastUpdate]]" class="flex last-updated"> |
| 117 Last updated: [[_lastUpdated]] | 122 Last updated: [[_lastUpdated]] |
| 118 </div> | 123 </div> |
| 119 <div class="user-name"> | 124 <div class="user-name"> |
| 120 [[user]] (<a href$="[[logoutUrl]]">Log Out </a>) | 125 [[user]] (<a href$="[[logoutUrl]]">Log Out </a>) |
| 121 </div> | 126 </div> |
| 122 <paper-icon-button on-tap="_refresh" id="refresh" icon="refresh"></p aper-icon-button> | 127 <paper-icon-button on-tap="_refresh" id="refresh" icon="refresh"></p aper-icon-button> |
| 123 </div> | 128 </div> |
| 124 <paper-spinner active="[[_fetchingAlerts]]"></paper-spinner> | 129 <paper-spinner active="[[_fetchingAlerts]]"></paper-spinner> |
| 125 </paper-toolbar> | 130 </paper-toolbar> |
| 126 <div class="flex layout vertical"> | 131 <iron-pages attr-for-selected='id' selected="[[_selectedPage]]" class="f lex layout vertical"> |
| 127 <iron-pages attr-for-selected='id' selected="[[_selectedPage]]" class= "flex layout vertical"> | 132 <div id="alertsList" class="page-body"> |
| 128 <div id="alertsList"> | 133 <div class="list-item" hidden$="[[_hideWebkitNotice]]"> |
| 129 <div class="list-item" hidden$="[[_hideWebkitNotice]]"> | 134 <div class="notification"> |
| 130 <div class="notification"> | 135 Chromium sheriffs: you now need to handle WebKit bot failures to o. <a href="http://www.chromium.org/blink/sheriffing" target="_blank">More infor mation</a>. |
| 131 Chromium sheriffs: you now need to handle WebKit bot failures too. <a href="http://www.chromium.org/blink/sheriffing" target="_blank">More inf ormation</a>. | |
| 132 </div> | |
| 133 </div> | |
| 134 <div id="noAlerts" hidden$="[[_haveAlerts]]"> | |
| 135 No alerts! | |
| 136 <br> | |
| 137 <img src="/images/jparent-jump.gif" alt="Julie Jumping" title="J ulie Jumping"> | |
| 138 </div> | |
| 139 <div id="alertsListInner"> | |
| 140 <template is="dom-repeat" items="[[_alerts]]" as="alert"> | |
| 141 <div class="list-item" tabindex$="[[tabIndex]]"> | |
| 142 <som-alert-item | |
| 143 alert="{{alert}}" | |
| 144 tree="[[_tree]]" | |
| 145 selected="[[selected]]" | |
| 146 annotation="[[_computeAnnotation(annotations, alert)]]" | |
| 147 on-annotation-change="_handleAnnotation" | |
| 148 on-link-bug="_handleLinkBug" | |
| 149 on-snooze="_handleSnooze" | |
| 150 ></som-alert-item> | |
| 151 </div> | |
| 152 </template> | |
| 153 </div> | 136 </div> |
| 154 </div> | 137 </div> |
| 155 <div id="examineAlert" class="flex layout vertical"> | 138 <div id="noAlerts" hidden$="[[_haveAlerts]]"> |
| 156 <som-examine alert="[[_examinedAlert]]" class="flex layout vertica l"></som-examine> | 139 No alerts! |
| 140 <br> | |
| 141 <img src="/images/jparent-jump.gif" alt="Julie Jumping" title="Jul ie Jumping"> | |
| 157 </div> | 142 </div> |
| 158 </iron-pages> | 143 <div id="alertsListInner"> |
| 159 </div> | 144 <template is="dom-repeat" items="[[_alerts]]" as="alert"> |
| 145 <div class="list-item" tabindex$="[[tabIndex]]"> | |
| 146 <som-alert-item | |
| 147 alert="{{alert}}" | |
| 148 tree="[[_tree]]" | |
| 149 selected="[[selected]]" | |
| 150 annotation="[[_computeAnnotation(annotations, alert)]]" | |
| 151 on-annotation-change="_handleAnnotation" | |
| 152 on-link-bug="_handleLinkBug" | |
| 153 on-snooze="_handleSnooze" | |
| 154 ></som-alert-item> | |
| 155 </div> | |
| 156 </template> | |
| 157 </div> | |
| 158 </div> | |
| 159 <div id="examineAlert" class="flex layout vertical page-body"> | |
| 160 <som-examine alert="[[_examinedAlert]]" class="flex layout vertical" ></som-examine> | |
| 161 </div> | |
| 162 <som-help id="helpSOM" class="page-body"></som-help> | |
| 163 <som-rotation-calendar id="rotationCalendar" class="flex layout vertic al page-body"></som-rotation-calendar> | |
| 164 </iron-pages> | |
| 160 </paper-header-panel> | 165 </paper-header-panel> |
| 161 </paper-drawer-panel> | 166 </paper-drawer-panel> |
| 162 <paper-dialog id="bugDialog" with-backdrop entry-animation="scale-up-animati on" exit-animation="fade-out-animation" on-iron-overlay-closed="_resetBugDialog" > | 167 <paper-dialog id="bugDialog" with-backdrop entry-animation="scale-up-animati on" exit-animation="fade-out-animation" on-iron-overlay-closed="_resetBugDialog" > |
| 163 <h2>Enter bug number</h2> | 168 <h2>Enter bug number</h2> |
| 164 <paper-input autofocus id="bug" label="Bug # or URL"></paper-input> | 169 <paper-input autofocus id="bug" label="Bug # or URL"></paper-input> |
| 165 <a hidden$="[[_filedBug]]" id="fileBugLink" target="_blank" on-tap="_fileB ugClicked"> | 170 <a hidden$="[[_filedBug]]" id="fileBugLink" target="_blank" on-tap="_fileB ugClicked"> |
| 166 File bug | 171 File bug |
| 167 </a> | 172 </a> |
| 168 <div hidden$="[[!_filedBug]]" id="bugReminder"> | 173 <div hidden$="[[!_filedBug]]" id="bugReminder"> |
| 169 Remember to enter the new bug number above! | 174 Remember to enter the new bug number above! |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 281 showInfraFailures: { | 286 showInfraFailures: { |
| 282 type: Boolean, | 287 type: Boolean, |
| 283 value: true, | 288 value: true, |
| 284 }, | 289 }, |
| 285 _snoozeModel: Object, | 290 _snoozeModel: Object, |
| 286 _trees: Object, | 291 _trees: Object, |
| 287 _tree: { | 292 _tree: { |
| 288 type: String, | 293 type: String, |
| 289 computed: '_computeTree(_path)', | 294 computed: '_computeTree(_path)', |
| 290 }, | 295 }, |
| 296 _staticPages: { | |
| 297 type: Object, | |
| 298 value: { | |
| 299 "help-som" : { | |
| 300 pageId : "helpSOM", | |
| 301 displayText : "How to Use", | |
| 302 }, | |
| 303 "calendar" : { | |
| 304 pageId : "rotationCalendar", | |
| 305 displayText : "Rotation Calendar", | |
| 306 }, | |
| 307 }, | |
| 308 }, | |
| 291 _examinedAlert: { | 309 _examinedAlert: { |
| 292 type: Object, | 310 type: Object, |
| 293 computed: '_computeExaminedAlert(_alerts, _examinedAlertKey)', | 311 computed: '_computeExaminedAlert(_alerts, _examinedAlertKey)', |
| 294 }, | 312 }, |
| 295 _examinedAlertKey: { | 313 _examinedAlertKey: { |
| 296 type: String, | 314 type: String, |
| 297 computed: '_computeExaminedAlertKey(_path)', | 315 computed: '_computeExaminedAlertKey(_path)', |
| 298 }, | 316 }, |
| 299 user: String, | 317 user: String, |
| 300 }, | 318 }, |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 325 let pathParts = path.split('/'); | 343 let pathParts = path.split('/'); |
| 326 if (pathParts.length < 2 || pathParts[1] == "") { | 344 if (pathParts.length < 2 || pathParts[1] == "") { |
| 327 console.error('error: invalid pathParts', pathParts); | 345 console.error('error: invalid pathParts', pathParts); |
| 328 return ""; | 346 return ""; |
| 329 } | 347 } |
| 330 | 348 |
| 331 return pathParts[1]; | 349 return pathParts[1]; |
| 332 }, | 350 }, |
| 333 | 351 |
| 334 _computeAlertsGroups: function(tree, trees) { | 352 _computeAlertsGroups: function(tree, trees) { |
| 335 if (tree === '') { | 353 if (tree === '' || tree in this._staticPages) { |
| 336 return []; | 354 return []; |
| 337 } | 355 } |
| 338 | 356 |
| 339 if (trees && trees[tree] && trees[tree].alert_streams) { | 357 if (trees && trees[tree] && trees[tree].alert_streams) { |
| 340 return trees[tree].alert_streams | 358 return trees[tree].alert_streams |
| 341 } | 359 } |
| 342 | 360 |
| 343 return [tree]; | 361 return [tree]; |
| 344 }, | 362 }, |
| 345 | 363 |
| 346 _computeRefreshEnabled: function(selectedPage) { | 364 _computeRefreshEnabled: function(selectedPage) { |
| 347 return selectedPage == "alertsList"; | 365 return selectedPage == "alertsList"; |
| 348 }, | 366 }, |
| 349 | 367 |
| 350 _computeSelectedPage: function(path) { | 368 _computeSelectedPage: function(path) { |
| 351 let pathParts = path.split('/'); | 369 let pathParts = path.split('/'); |
| 352 if (pathParts.length < 2) { | 370 if (pathParts.length < 2) { |
| 353 console.error('error: pathParts < 2', pathParts); | 371 console.error('error: pathParts < 2', pathParts) |
|
martiniss
2016/06/30 00:40:15
Why'd the semi-colon go away?
Tiff
2016/06/30 00:44:16
Oops, this was a mistake! Thanks! :D
| |
| 354 } | 372 } |
| 355 if (pathParts.length < 3) { | 373 if (pathParts.length == 2) { |
| 356 return 'alertsList'; | 374 if (pathParts[1] in this._staticPages) { |
| 375 return this._staticPages[pathParts[1]].pageId; | |
| 376 } else { | |
| 377 // On the page for a tree | |
| 378 return 'alertsList'; | |
| 379 } | |
| 357 } | 380 } |
| 358 if (pathParts[2] == 'examine') { | 381 if (pathParts[2] == 'examine') { |
| 359 return 'examineAlert'; | 382 return 'examineAlert'; |
| 360 } | 383 } |
| 361 }, | 384 }, |
| 362 | 385 |
| 363 _computeExaminedAlertKey: function(path) { | 386 _computeExaminedAlertKey: function(path) { |
| 364 let pathParts = path.split('/'); | 387 let pathParts = path.split('/'); |
| 365 if (pathParts.length < 2) { | 388 if (pathParts.length < 2) { |
| 366 console.error('error: pathParts < 2', pathParts); | 389 console.error('error: pathParts < 2', pathParts); |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 574 } | 597 } |
| 575 ).completes.then(() => { | 598 ).completes.then(() => { |
| 576 this.$.snoozeTime.value = ''; | 599 this.$.snoozeTime.value = ''; |
| 577 }); | 600 }); |
| 578 }, | 601 }, |
| 579 | 602 |
| 580 }); | 603 }); |
| 581 })(); | 604 })(); |
| 582 </script> | 605 </script> |
| 583 </dom-module> | 606 </dom-module> |
| OLD | NEW |