Chromium Code Reviews| Index: runtime/observatory/lib/src/elements/nav_bar.html |
| diff --git a/runtime/observatory/lib/src/elements/nav_bar.html b/runtime/observatory/lib/src/elements/nav_bar.html |
| index e9c782e29a15eacaf71caf836b83da66e484ccdb..eaf36b85931582569ba40c844b4688de3d669e97 100644 |
| --- a/runtime/observatory/lib/src/elements/nav_bar.html |
| +++ b/runtime/observatory/lib/src/elements/nav_bar.html |
| @@ -33,9 +33,8 @@ |
| </style> |
| <nav> |
| <ul> |
| - <template if="{{ showNotify }}"> |
| - <nav-notify events="{{ app.notifications }}"></nav-notify> |
| - </template> |
| + <nav-notify notifications="{{ app.notifications }}" |
| + notifyOnPause="{{ notifyOnPause }}"></nav-notify> |
| <content></content> |
| </ul> |
| </nav> |
| @@ -246,16 +245,28 @@ |
| <div class="menu"> |
| <div class="list"> |
| - <template repeat="{{ event in events }}"> |
| - <nav-notify-item events="{{ events }}" event="{{ event }}"> |
| - </nav-notify-item> |
| + <template repeat="{{ notification in notifications }}"> |
| + <template if="{{ notification.event != null }}"> |
| + <nav-notify-event notifications="{{ notifications }}" |
| + notification="{{ notification }}" |
| + event="{{ notification.event }}" |
| + notifyOnPause="{{ notifyOnPause }}"> |
| + </nav-notify-event> |
| + </template> |
| + <template if="{{ notification.exception != null }}"> |
| + <nav-notify-exception notifications="{{ notifications }}" |
| + notification="{{ notification }}" |
| + exception="{{ notification.exception }}" |
| + stacktrace="{{ notification.stacktrace }}"> |
| + </nav-notify-exception> |
| + </template> |
| </template> |
| </div> |
| </div> |
| </template> |
| </polymer-element> |
| -<polymer-element name="nav-notify-item" extends="observatory-element"> |
| +<polymer-element name="nav-notify-event" extends="observatory-element"> |
| <template> |
| <style> |
| .item { |
| @@ -264,7 +275,7 @@ |
| margin-top: 10px; |
| margin-right: 10px; |
| padding-right: 25px; |
| - width: 225px; |
| + width: 250px; |
| color: #ddd; |
| background: rgba(0,0,0,.6); |
| border: solid 2px white; |
| @@ -304,41 +315,135 @@ |
| background: rgba(255,255,255,0.5); |
| } |
| </style> |
| - <template if="{{ event.eventType == 'IsolateInterrupted' || |
| - event.eventType == 'BreakpointReached' || |
| - event.eventType == 'ExceptionThrown' }}"> |
| - <div class="item"> |
| - Isolate |
| - <a class="link" on-click="{{ goto }}" |
| - _href="{{ gotoLink('/inspect', event.isolate) }}">{{ event.isolate.name }}</a> |
| - is paused |
| - <template if="{{ event.breakpoint != null }}"> |
| - at breakpoint {{ event.breakpoint.number }} |
| - </template> |
| - <template if="{{ event.eventType == 'ExceptionThrown' }}"> |
| - at exception |
| - </template> |
| + <template if="{{ event != null }}"> |
| + <template if="{{ notifyOnPause && |
| + (event.eventType == 'PauseStart' || |
| + event.eventType == 'PauseExit' || |
| + event.eventType == 'PauseBreakpoint' || |
| + event.eventType == 'PauseInterrupted' || |
|
Cutch
2015/05/13 17:50:09
Can you move this logic outside of the template? i
turnidge
2015/05/14 17:53:43
Done.
|
| + event.eventType == 'PauseException') }}"> |
| + <div class="item"> |
| + Isolate |
| + <a class="link" on-click="{{ goto }}" |
| + _href="{{ gotoLink('/inspect', event.isolate) }}">{{ event.isolate.name }}</a> |
| + is paused |
| + <template if="{{ event.eventType == 'PauseStart' }}"> |
| + at isolate start |
| + </template> |
| + <template if="{{ event.eventType == 'PauseExit' }}"> |
| + at isolate exit |
| + </template> |
| + <template if="{{ event.breakpoint != null }}"> |
| + at breakpoint {{ event.breakpoint.number }} |
| + </template> |
| + <template if="{{ event.eventType == 'PauseException' }}"> |
| + due to exception |
| + </template> |
| - <br><br> |
| - [<a class="link" on-click="{{ goto }}" |
| - _href="{{ gotoLink('/debugger', event.isolate) }}">debug</a>] |
| + <br><br> |
| + [<a class="link" on-click="{{ goto }}" |
| + _href="{{ gotoLink('/debugger', event.isolate) }}">debug</a>] |
| - <a class="boxclose" on-click="{{ closeItem }}">×</a> |
| - </div> |
| + <a class="boxclose" on-click="{{ closeItem }}">×</a> |
| + </div> |
| + </template> |
| + <template if="{{ event.eventType == 'ConnectionClosed' }}"> |
| + <div class="item"> |
| + Disconnected from VM: {{ event.reason }} |
| + <br><br> |
| + [<a class="link" on-click="{{ goto }}" |
| + _href="{{ gotoLink('vm-connect') }}">Connect to a different VM</a>] |
| + <a class="boxclose" on-click="{{ closeItem }}">×</a> |
| + </div> |
| + </template> |
| + <template if="{{ event.eventType == 'Inspect' }}"> |
| + <div class="item"> |
| + Inspect <any-service-ref ref="{{ event.inspectee }}"></any-service-ref> |
| + <br><br> |
| + <a class="boxclose" on-click="{{ closeItem }}">×</a> |
| + </div> |
| + </template> |
| </template> |
| - <template if="{{ event.eventType == 'VMDisconnected' }}"> |
| + </template> |
| +</polymer-element> |
| + |
| + |
| +<polymer-element name="nav-notify-exception" extends="observatory-element"> |
| + <template> |
| + <style> |
| + .item { |
| + position: relative; |
| + padding: 16px; |
| + margin-top: 10px; |
| + margin-right: 10px; |
| + padding-right: 25px; |
| + width: 250px; |
| + color: #ddd; |
| + background: rgba(0,0,0,.6); |
| + border: solid 2px white; |
| + box-shadow: 0 0 5px black; |
| + border-radius: 5px; |
| + animation: fadein 1s; |
| + } |
| + |
| + @keyframes fadein { |
| + from { opacity: 0; } |
| + to { opacity: 1; } |
| + } |
| + |
| + a.link { |
| + color: white; |
| + text-decoration: none; |
| + } |
| + a.link:hover { |
| + text-decoration: underline; |
| + } |
| + .indent { |
| + margin-left:20px; |
| + } |
| + |
| + a.boxclose { |
| + position: absolute; |
| + display: block; |
| + top: 4px; |
| + right: 4px; |
| + height: 18px; |
| + width: 18px; |
| + line-height: 16px; |
| + border-radius: 9px; |
| + color: white; |
| + font-size: 18px; |
| + cursor: pointer; |
| + text-align: center; |
| + } |
| + a.boxclose:hover { |
| + background: rgba(255,255,255,0.5); |
| + } |
| + </style> |
| + <template if="{{ isUnexpectedError }}"> |
| + <!-- TODO(turnidge): Add a file-a-bug link to this notification --> |
| <div class="item"> |
| - Disconnected from VM |
| - <br><br> |
| + Unexpected exception:<br><br> |
| + <div class="indent">{{ exception.toString() }}</div><br> |
| + <template if="{{ stacktrace != null }}"> |
| + Stacktrace:<br><br> |
| + <div class="indent">{{ stacktrace.toString() }}</div> |
| + <br> |
| + </template> |
| + [<a class="link" on-click="{{ goto }}" |
| + _href="{{ gotoLink('vm-connect') }}">Connect to a different VM</a>] |
| <a class="boxclose" on-click="{{ closeItem }}">×</a> |
| - </div> |
| + </div> |
| </template> |
| - <template if="{{ event.eventType == 'Inspect' }}"> |
| + <template if="{{ isNetworkError }}"> |
| <div class="item"> |
| - Inspect <any-service-ref ref="{{ event.inspectee }}"></any-service-ref> |
| + The request cannot be completed because the VM is currently |
| + disconnected. |
| <br><br> |
| + [<a class="link" on-click="{{ goto }}" |
| + _href="{{ gotoLink('vm-connect') }}">Connect to a different VM</a>] |
| <a class="boxclose" on-click="{{ closeItem }}">×</a> |
| - </div> |
| + </div> |
| </template> |
| </template> |
| </polymer-element> |