Commit 7944485d347487b34223c1afdc65794137672a2e

Authored by Jared Pace
1 parent b9d5ea84
Exists in master and in 1 other branch production

Add a tabbed for the Errs#show page

app/views/errs/show.html.haml
1   -- content_for :title, @err.message
  1 +- content_for :page_title, @err.message
  2 +- content_for :title, @err.klass
2 3 - content_for :meta do
3 4 %strong Where:
4 5 = @err.where
5 6 %strong Environment:
6   - = @err.environment.titleize
7   - %strong Type:
8   - = @err.klass
  7 + = @err.environment
9 8 %strong Last Notice:
10 9 = @err.last_notice_at.to_s(:micro)
11 10 - content_for :action_bar do
12   - = will_paginate @notices, :param_name => :notice, :page_links => false
13   - .float-left viewing occurrence #{@notices.current_page} of #{@notices.total_pages}
14   - = link_to "back to '#{@app.name}'", app_path(@app)
15   - |
16   - = link_to 'resolve', resolve_app_err_path(@app, @err), :method => :put, :confirm => 'Seriously?' if @err.unresolved?
  11 + %span= link_to 'resolve', resolve_app_err_path(@app, @err), :method => :put, :confirm => 'Seriously?', :class => 'resolve' if @err.unresolved?
17 12  
18   -%h3#summary Summary
19   -= render 'notices/summary', :notice => @notice
  13 +%h4= @notice.message
  14 +
  15 += will_paginate @notices, :param_name => :notice, :page_links => false
  16 +viewing occurrence #{@notices.current_page} of #{@notices.total_pages}
20 17  
21   -%h3#backtrace Backtrace
22   -= render 'notices/backtrace', :lines => @notice.backtrace
  18 +.tab-bar
  19 + %ul
  20 + %li= link_to 'Summary', '#summary', :rel => 'summary', :class => 'button'
  21 + %li= link_to 'Backtrace', '#backtrace', :rel => 'backtrace', :class => 'button'
  22 + %li= link_to 'Environment', '#environment', :rel => 'environment', :class => 'button'
  23 + %li= link_to 'Parameters', '#params', :rel => 'params', :class => 'button'
  24 + %li= link_to 'Session', '#session', :rel => 'session', :class => 'button'
23 25  
24   -%h3#environment Environment
25   -= render 'notices/environment', :notice => @notice
  26 +#summary
  27 + %h3 Summary
  28 + = render 'notices/summary', :notice => @notice
26 29  
27   -%h3#params Parameters
28   -= render 'notices/params', :notice => @notice
  30 +#backtrace
  31 + %h3 Backtrace
  32 + = render 'notices/backtrace', :lines => @notice.backtrace
  33 +
  34 +#environment
  35 + %h3 Environment
  36 + = render 'notices/environment', :notice => @notice
29 37  
30   -%h3#session Session
31   -= render 'notices/session', :notice => @notice
32 38 \ No newline at end of file
  39 +#params
  40 + %h3 Parameters
  41 + = render 'notices/params', :notice => @notice
  42 +
  43 +#session
  44 + %h3 Session
  45 + = render 'notices/session', :notice => @notice
33 46 \ No newline at end of file
... ...
app/views/notices/_summary.html.haml
1 1 .window
2 2 %table.summary
  3 + %tr
  4 + %th Message
  5 + %td.main.nowrap= notice.message
3 6 - if notice.request['url'].present?
4 7 %tr
5 8 %th URL
6   - %td.main.nowrap= link_to notice.request['url'], notice.request['url']
  9 + %td.nowrap= link_to notice.request['url'], notice.request['url']
7 10 %tr
8 11 %th Where
9 12 %td= notice.err.where
... ...
public/javascripts/application.js
1   -// App JS
2 1 \ No newline at end of file
  2 +// App JS
  3 +
  4 +$(function(){
  5 + activateTabbedPanels();
  6 +});
  7 +
  8 +function activateTabbedPanels() {
  9 + $('.tab-bar a').each(function(){
  10 + var tab = $(this);
  11 + var panel = $('#'+tab.attr('rel'));
  12 + panel.addClass('panel');
  13 + panel.find('h3').hide();
  14 + })
  15 +
  16 + $('.tab-bar a').click(function(){
  17 + activateTab($(this));
  18 + return(false);
  19 + });
  20 + activateTab($('.tab-bar a').first());
  21 +}
  22 +
  23 +function activateTab(tab) {
  24 + tab = $(tab);
  25 + var panel = $('#'+tab.attr('rel'));
  26 +
  27 + tab.closest('.tab-bar').find('a.active').removeClass('active');
  28 + tab.addClass('active');
  29 +
  30 + $('.panel').hide();
  31 + panel.show();
  32 +}
3 33 \ No newline at end of file
... ...
public/stylesheets/application.css
... ... @@ -115,9 +115,12 @@ section#content-wrapper {
115 115 background-color: #e2e2e2;
116 116 }
117 117 #content-title h1 {
118   - padding: 0; margin: 0; border: none;
  118 + padding: 0; margin: 0;
  119 + width: 85%;
  120 + border: none;
119 121 color: #666;
120 122 font-size: 2em; line-height: 1em; font-weight: bold; font-family: arial, sans-serif;
  123 + word-wrap: break-word;
121 124 }
122 125 #content-title .meta { font-size: 0.9em; color: #787878; }
123 126  
... ... @@ -301,6 +304,7 @@ pre {
301 304 opacity: 0.5;
302 305 -moz-opacity: 0.5;
303 306 -webkit-opacity: 0.5;
  307 + cursor: no-drop;
304 308 }
305 309 .pagination em {
306 310 padding: 0em 0.6em;
... ... @@ -337,7 +341,32 @@ a.button {
337 341 a:hover.button {
338 342 box-shadow: 0px 0px 4px #69C;
339 343 -moz-box-shadow: 0px 0px 4px #69C;
340   - -webkit-box-shadow: 0px 0px 4px #69C
  344 + -webkit-box-shadow: 0px 0px 4px #69C;
  345 + text-decoration: none;
  346 +}
  347 +a.button.active {
  348 + border-color: #fff;
  349 + background-color: #CCC;
  350 + background-image: none;
  351 + box-shadow: inset 0 0 5px #999;
  352 + -moz-box-shadow: inset 0 0 5px #999;
  353 + -webkit-box-shadow: inset 0 0 5px #999;
  354 +}
  355 +
  356 +/* Tab Bar */
  357 +.tab-bar {
  358 + margin-bottom: 24px;
  359 + background-color: #E2E2E2;
  360 + border: 1px solid #BBB;
  361 +}
  362 +.tab-bar ul {
  363 + padding: 9px 12px;
  364 + border-top: 1px solid #FFF;
  365 + border-bottom: 1px solid #FFF;
  366 +}
  367 +.tab-bar li {
  368 + display: inline-block;
  369 + margin-right: 14px;
341 370 }
342 371  
343 372 /* Apps Table */
... ...