diff --git a/app/views/errs/show.html.haml b/app/views/errs/show.html.haml
index a8e9d1a..6aa8430 100644
--- a/app/views/errs/show.html.haml
+++ b/app/views/errs/show.html.haml
@@ -1,31 +1,44 @@
-- content_for :title, @err.message
+- content_for :page_title, @err.message
+- content_for :title, @err.klass
- content_for :meta do
%strong Where:
= @err.where
%strong Environment:
- = @err.environment.titleize
- %strong Type:
- = @err.klass
+ = @err.environment
%strong Last Notice:
= @err.last_notice_at.to_s(:micro)
- content_for :action_bar do
- = will_paginate @notices, :param_name => :notice, :page_links => false
- .float-left viewing occurrence #{@notices.current_page} of #{@notices.total_pages}
- = link_to "back to '#{@app.name}'", app_path(@app)
- |
- = link_to 'resolve', resolve_app_err_path(@app, @err), :method => :put, :confirm => 'Seriously?' if @err.unresolved?
+ %span= link_to 'resolve', resolve_app_err_path(@app, @err), :method => :put, :confirm => 'Seriously?', :class => 'resolve' if @err.unresolved?
-%h3#summary Summary
-= render 'notices/summary', :notice => @notice
+%h4= @notice.message
+
+= will_paginate @notices, :param_name => :notice, :page_links => false
+viewing occurrence #{@notices.current_page} of #{@notices.total_pages}
-%h3#backtrace Backtrace
-= render 'notices/backtrace', :lines => @notice.backtrace
+.tab-bar
+ %ul
+ %li= link_to 'Summary', '#summary', :rel => 'summary', :class => 'button'
+ %li= link_to 'Backtrace', '#backtrace', :rel => 'backtrace', :class => 'button'
+ %li= link_to 'Environment', '#environment', :rel => 'environment', :class => 'button'
+ %li= link_to 'Parameters', '#params', :rel => 'params', :class => 'button'
+ %li= link_to 'Session', '#session', :rel => 'session', :class => 'button'
-%h3#environment Environment
-= render 'notices/environment', :notice => @notice
+#summary
+ %h3 Summary
+ = render 'notices/summary', :notice => @notice
-%h3#params Parameters
-= render 'notices/params', :notice => @notice
+#backtrace
+ %h3 Backtrace
+ = render 'notices/backtrace', :lines => @notice.backtrace
+
+#environment
+ %h3 Environment
+ = render 'notices/environment', :notice => @notice
-%h3#session Session
-= render 'notices/session', :notice => @notice
\ No newline at end of file
+#params
+ %h3 Parameters
+ = render 'notices/params', :notice => @notice
+
+#session
+ %h3 Session
+ = render 'notices/session', :notice => @notice
\ No newline at end of file
diff --git a/app/views/notices/_summary.html.haml b/app/views/notices/_summary.html.haml
index 1dc802f..06889e6 100644
--- a/app/views/notices/_summary.html.haml
+++ b/app/views/notices/_summary.html.haml
@@ -1,9 +1,12 @@
.window
%table.summary
+ %tr
+ %th Message
+ %td.main.nowrap= notice.message
- if notice.request['url'].present?
%tr
%th URL
- %td.main.nowrap= link_to notice.request['url'], notice.request['url']
+ %td.nowrap= link_to notice.request['url'], notice.request['url']
%tr
%th Where
%td= notice.err.where
diff --git a/public/javascripts/application.js b/public/javascripts/application.js
index 860e5c4..2026986 100644
--- a/public/javascripts/application.js
+++ b/public/javascripts/application.js
@@ -1 +1,31 @@
-// App JS
\ No newline at end of file
+// App JS
+
+$(function(){
+ activateTabbedPanels();
+});
+
+function activateTabbedPanels() {
+ $('.tab-bar a').each(function(){
+ var tab = $(this);
+ var panel = $('#'+tab.attr('rel'));
+ panel.addClass('panel');
+ panel.find('h3').hide();
+ })
+
+ $('.tab-bar a').click(function(){
+ activateTab($(this));
+ return(false);
+ });
+ activateTab($('.tab-bar a').first());
+}
+
+function activateTab(tab) {
+ tab = $(tab);
+ var panel = $('#'+tab.attr('rel'));
+
+ tab.closest('.tab-bar').find('a.active').removeClass('active');
+ tab.addClass('active');
+
+ $('.panel').hide();
+ panel.show();
+}
\ No newline at end of file
diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css
index 34bf2c9..b357753 100644
--- a/public/stylesheets/application.css
+++ b/public/stylesheets/application.css
@@ -115,9 +115,12 @@ section#content-wrapper {
background-color: #e2e2e2;
}
#content-title h1 {
- padding: 0; margin: 0; border: none;
+ padding: 0; margin: 0;
+ width: 85%;
+ border: none;
color: #666;
font-size: 2em; line-height: 1em; font-weight: bold; font-family: arial, sans-serif;
+ word-wrap: break-word;
}
#content-title .meta { font-size: 0.9em; color: #787878; }
@@ -301,6 +304,7 @@ pre {
opacity: 0.5;
-moz-opacity: 0.5;
-webkit-opacity: 0.5;
+ cursor: no-drop;
}
.pagination em {
padding: 0em 0.6em;
@@ -337,7 +341,32 @@ a.button {
a:hover.button {
box-shadow: 0px 0px 4px #69C;
-moz-box-shadow: 0px 0px 4px #69C;
- -webkit-box-shadow: 0px 0px 4px #69C
+ -webkit-box-shadow: 0px 0px 4px #69C;
+ text-decoration: none;
+}
+a.button.active {
+ border-color: #fff;
+ background-color: #CCC;
+ background-image: none;
+ box-shadow: inset 0 0 5px #999;
+ -moz-box-shadow: inset 0 0 5px #999;
+ -webkit-box-shadow: inset 0 0 5px #999;
+}
+
+/* Tab Bar */
+.tab-bar {
+ margin-bottom: 24px;
+ background-color: #E2E2E2;
+ border: 1px solid #BBB;
+}
+.tab-bar ul {
+ padding: 9px 12px;
+ border-top: 1px solid #FFF;
+ border-bottom: 1px solid #FFF;
+}
+.tab-bar li {
+ display: inline-block;
+ margin-right: 14px;
}
/* Apps Table */
--
libgit2 0.21.2