OLD | NEW |
1 <link rel="import" href="../../../../packages/polymer/polymer.html"> | 1 <link rel="import" href="../../../../packages/polymer/polymer.html"> |
2 <link rel="import" href="action_link.html"> | 2 <link rel="import" href="action_link.html"> |
3 <link rel="import" href="observatory_element.html"> | 3 <link rel="import" href="observatory_element.html"> |
4 | 4 |
5 <polymer-element name="nav-bar" extends="observatory-element"> | 5 <polymer-element name="nav-bar" extends="observatory-element"> |
6 <template> | 6 <template> |
7 <link rel="stylesheet" href="css/shared.css"> | 7 <link rel="stylesheet" href="css/shared.css"> |
8 <style> | 8 <style> |
9 nav { | 9 nav { |
10 position: fixed; | 10 position: fixed; |
(...skipping 15 matching lines...) Expand all Loading... |
26 nav ul:after { | 26 nav ul:after { |
27 content: ""; clear: both; display: block; | 27 content: ""; clear: both; display: block; |
28 } | 28 } |
29 .vertical-spacer { | 29 .vertical-spacer { |
30 height: 40px; | 30 height: 40px; |
31 background-color: #0489c3; | 31 background-color: #0489c3; |
32 } | 32 } |
33 </style> | 33 </style> |
34 <nav> | 34 <nav> |
35 <ul> | 35 <ul> |
36 <template if="{{ showNotify }}"> | 36 <nav-notify notifications="{{ app.notifications }}" |
37 <nav-notify events="{{ app.notifications }}"></nav-notify> | 37 notifyOnPause="{{ notifyOnPause }}"></nav-notify> |
38 </template> | |
39 <content></content> | 38 <content></content> |
40 </ul> | 39 </ul> |
41 </nav> | 40 </nav> |
42 <div class="vertical-spacer"> | 41 <div class="vertical-spacer"> |
43 </div> | 42 </div> |
44 <template if="{{ pad }}"> | 43 <template if="{{ pad }}"> |
45 <br> | 44 <br> |
46 </template> | 45 </template> |
47 </template> | 46 </template> |
48 </polymer-element> | 47 </polymer-element> |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 <template if="{{ !active }}"> | 163 <template if="{{ !active }}"> |
165 <button class="idle" on-click="{{ buttonClick }}">{{ label }}</button> | 164 <button class="idle" on-click="{{ buttonClick }}">{{ label }}</button> |
166 </template> | 165 </template> |
167 </li> | 166 </li> |
168 </template> | 167 </template> |
169 </polymer-element> | 168 </polymer-element> |
170 | 169 |
171 <polymer-element name="top-nav-menu"> | 170 <polymer-element name="top-nav-menu"> |
172 <template> | 171 <template> |
173 <nav-menu link="/vm" anchor="Observatory" last="{{ last }}"> | 172 <nav-menu link="/vm" anchor="Observatory" last="{{ last }}"> |
174 <nav-menu-item link="/vm-connect" anchor="Connect to a different VM"></nav
-menu-item> | 173 <nav-menu-item link="/vm-connect" anchor="Connect to a VM"></nav-menu-item
> |
175 <content></content> | 174 <content></content> |
176 </nav-menu> | 175 </nav-menu> |
177 </template> | 176 </template> |
178 </polymer-element> | 177 </polymer-element> |
179 | 178 |
180 <polymer-element name="vm-nav-menu"> | 179 <polymer-element name="vm-nav-menu"> |
181 <template> | 180 <template> |
182 <nav-menu link="/vm" anchor="{{ vm.target.name }}" last="{{ last }}"> | 181 <nav-menu link="/vm" anchor="{{ vm.target.name }}" last="{{ last }}"> |
183 <template repeat="{{ isolate in vm.isolates }}"> | 182 <template repeat="{{ isolate in vm.isolates }}"> |
184 <nav-menu-item link="{{ makeLink('/inspect', isolate) }}" | 183 <nav-menu-item link="{{ makeLink('/inspect', isolate) }}" |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 width: auto; | 238 width: auto; |
240 z-index: 1000; | 239 z-index: 1000; |
241 font: 400 12px 'Montserrat', sans-serif; | 240 font: 400 12px 'Montserrat', sans-serif; |
242 color: white; | 241 color: white; |
243 background: none; | 242 background: none; |
244 } | 243 } |
245 </style> | 244 </style> |
246 | 245 |
247 <div class="menu"> | 246 <div class="menu"> |
248 <div class="list"> | 247 <div class="list"> |
249 <template repeat="{{ event in events }}"> | 248 <template repeat="{{ notification in notifications }}"> |
250 <nav-notify-item events="{{ events }}" event="{{ event }}"> | 249 <template if="{{ notification.event != null }}"> |
251 </nav-notify-item> | 250 <nav-notify-event notifications="{{ notifications }}" |
| 251 notification="{{ notification }}" |
| 252 event="{{ notification.event }}" |
| 253 notifyOnPause="{{ notifyOnPause }}"> |
| 254 </nav-notify-event> |
| 255 </template> |
| 256 <template if="{{ notification.exception != null }}"> |
| 257 <nav-notify-exception notifications="{{ notifications }}" |
| 258 notification="{{ notification }}" |
| 259 exception="{{ notification.exception }}" |
| 260 stacktrace="{{ notification.stacktrace }}"> |
| 261 </nav-notify-exception> |
| 262 </template> |
252 </template> | 263 </template> |
253 </div> | 264 </div> |
254 </div> | 265 </div> |
255 </template> | 266 </template> |
256 </polymer-element> | 267 </polymer-element> |
257 | 268 |
258 <polymer-element name="nav-notify-item" extends="observatory-element"> | 269 <polymer-element name="nav-notify-event" extends="observatory-element"> |
259 <template> | 270 <template> |
260 <style> | 271 <style> |
261 .item { | 272 .item { |
262 position: relative; | 273 position: relative; |
263 padding: 16px; | 274 padding: 16px; |
264 margin-top: 10px; | 275 margin-top: 10px; |
265 margin-right: 10px; | 276 margin-right: 10px; |
266 padding-right: 25px; | 277 padding-right: 25px; |
267 width: 225px; | 278 width: 250px; |
268 color: #ddd; | 279 color: #ddd; |
269 background: rgba(0,0,0,.6); | 280 background: rgba(0,0,0,.6); |
270 border: solid 2px white; | 281 border: solid 2px white; |
271 box-shadow: 0 0 5px black; | 282 box-shadow: 0 0 5px black; |
272 border-radius: 5px; | 283 border-radius: 5px; |
273 animation: fadein 1s; | 284 animation: fadein 1s; |
274 } | 285 } |
275 | 286 |
276 @keyframes fadein { | 287 @keyframes fadein { |
277 from { opacity: 0; } | 288 from { opacity: 0; } |
(...skipping 19 matching lines...) Expand all Loading... |
297 border-radius: 9px; | 308 border-radius: 9px; |
298 color: white; | 309 color: white; |
299 font-size: 18px; | 310 font-size: 18px; |
300 cursor: pointer; | 311 cursor: pointer; |
301 text-align: center; | 312 text-align: center; |
302 } | 313 } |
303 a.boxclose:hover { | 314 a.boxclose:hover { |
304 background: rgba(255,255,255,0.5); | 315 background: rgba(255,255,255,0.5); |
305 } | 316 } |
306 </style> | 317 </style> |
307 <template if="{{ event.eventType == 'IsolateInterrupted' || | 318 <template if="{{ event != null }}"> |
308 event.eventType == 'BreakpointReached' || | 319 <template if="{{ notifyOnPause && event.isPauseEvent }}"> |
309 event.eventType == 'ExceptionThrown' }}"> | 320 <div class="item"> |
310 <div class="item"> | 321 Isolate |
311 Isolate | 322 <a class="link" on-click="{{ goto }}" |
312 <a class="link" on-click="{{ goto }}" | 323 _href="{{ gotoLink('/inspect', event.isolate) }}">{{ event.isolate.
name }}</a> |
313 _href="{{ gotoLink('/inspect', event.isolate) }}">{{ event.isolate.na
me }}</a> | 324 is paused |
314 is paused | 325 <template if="{{ event.eventType == 'PauseStart' }}"> |
315 <template if="{{ event.breakpoint != null }}"> | 326 at isolate start |
316 at breakpoint {{ event.breakpoint.number }} | 327 </template> |
317 </template> | 328 <template if="{{ event.eventType == 'PauseExit' }}"> |
318 <template if="{{ event.eventType == 'ExceptionThrown' }}"> | 329 at isolate exit |
319 at exception | 330 </template> |
320 </template> | 331 <template if="{{ event.breakpoint != null }}"> |
| 332 at breakpoint {{ event.breakpoint.number }} |
| 333 </template> |
| 334 <template if="{{ event.eventType == 'PauseException' }}"> |
| 335 due to exception |
| 336 </template> |
321 | 337 |
322 <br><br> | 338 <br><br> |
323 [<a class="link" on-click="{{ goto }}" | 339 [<a class="link" on-click="{{ goto }}" |
324 _href="{{ gotoLink('/debugger', event.isolate) }}">debug</a>] | 340 _href="{{ gotoLink('/debugger', event.isolate) }}">debug</a>] |
325 | 341 |
326 <a class="boxclose" on-click="{{ closeItem }}">×</a> | 342 <a class="boxclose" on-click="{{ closeItem }}">×</a> |
327 </div> | 343 </div> |
328 </template> | 344 </template> |
329 <template if="{{ event.eventType == 'VMDisconnected' }}"> | 345 <template if="{{ event.eventType == 'ConnectionClosed' }}"> |
330 <div class="item"> | 346 <div class="item"> |
331 Disconnected from VM | 347 Disconnected from VM: {{ event.reason }} |
332 <br><br> | 348 <br><br> |
333 <a class="boxclose" on-click="{{ closeItem }}">×</a> | 349 [<a class="link" on-click="{{ goto }}" |
334 </div> | 350 _href="{{ gotoLink('/vm-connect') }}">Connect to a VM</a>] |
335 </template> | 351 <a class="boxclose" on-click="{{ closeItem }}">×</a> |
336 <template if="{{ event.eventType == 'Inspect' }}"> | 352 </div> |
337 <div class="item"> | 353 </template> |
338 Inspect <any-service-ref ref="{{ event.inspectee }}"></any-service-ref> | 354 <template if="{{ event.eventType == 'Inspect' }}"> |
339 <br><br> | 355 <div class="item"> |
340 <a class="boxclose" on-click="{{ closeItem }}">×</a> | 356 Inspect <any-service-ref ref="{{ event.inspectee }}"></any-service-ref
> |
341 </div> | 357 <br><br> |
| 358 <a class="boxclose" on-click="{{ closeItem }}">×</a> |
| 359 </div> |
| 360 </template> |
342 </template> | 361 </template> |
343 </template> | 362 </template> |
344 </polymer-element> | 363 </polymer-element> |
| 364 |
| 365 |
| 366 <polymer-element name="nav-notify-exception" extends="observatory-element"> |
| 367 <template> |
| 368 <style> |
| 369 .item { |
| 370 position: relative; |
| 371 padding: 16px; |
| 372 margin-top: 10px; |
| 373 margin-right: 10px; |
| 374 padding-right: 25px; |
| 375 width: 250px; |
| 376 color: #ddd; |
| 377 background: rgba(0,0,0,.6); |
| 378 border: solid 2px white; |
| 379 box-shadow: 0 0 5px black; |
| 380 border-radius: 5px; |
| 381 animation: fadein 1s; |
| 382 } |
| 383 |
| 384 @keyframes fadein { |
| 385 from { opacity: 0; } |
| 386 to { opacity: 1; } |
| 387 } |
| 388 |
| 389 a.link { |
| 390 color: white; |
| 391 text-decoration: none; |
| 392 } |
| 393 a.link:hover { |
| 394 text-decoration: underline; |
| 395 } |
| 396 .indent { |
| 397 margin-left:20px; |
| 398 } |
| 399 |
| 400 a.boxclose { |
| 401 position: absolute; |
| 402 display: block; |
| 403 top: 4px; |
| 404 right: 4px; |
| 405 height: 18px; |
| 406 width: 18px; |
| 407 line-height: 16px; |
| 408 border-radius: 9px; |
| 409 color: white; |
| 410 font-size: 18px; |
| 411 cursor: pointer; |
| 412 text-align: center; |
| 413 } |
| 414 a.boxclose:hover { |
| 415 background: rgba(255,255,255,0.5); |
| 416 } |
| 417 </style> |
| 418 <template if="{{ isUnexpectedError }}"> |
| 419 <!-- TODO(turnidge): Add a file-a-bug link to this notification --> |
| 420 <div class="item"> |
| 421 Unexpected exception:<br><br> |
| 422 <div class="indent">{{ exception.toString() }}</div><br> |
| 423 <template if="{{ stacktrace != null }}"> |
| 424 Stacktrace:<br><br> |
| 425 <div class="indent">{{ stacktrace.toString() }}</div> |
| 426 <br> |
| 427 </template> |
| 428 [<a class="link" on-click="{{ goto }}" |
| 429 _href="{{ gotoLink('vm-connect') }}">Connect to a different VM</a>] |
| 430 <a class="boxclose" on-click="{{ closeItem }}">×</a> |
| 431 </div> |
| 432 </template> |
| 433 <template if="{{ isNetworkError }}"> |
| 434 <div class="item"> |
| 435 The request cannot be completed because the VM is currently |
| 436 disconnected. |
| 437 <br><br> |
| 438 [<a class="link" on-click="{{ goto }}" |
| 439 _href="{{ gotoLink('vm-connect') }}">Connect to a different VM</a>] |
| 440 <a class="boxclose" on-click="{{ closeItem }}">×</a> |
| 441 </div> |
| 442 </template> |
| 443 </template> |
| 444 </polymer-element> |
345 | 445 |
346 | 446 |
347 <script type="application/dart" src="nav_bar.dart"></script> | 447 <script type="application/dart" src="nav_bar.dart"></script> |
OLD | NEW |