Skip to content

Commit

Permalink
Improving the layout of the header so the path name will have a maxim…
Browse files Browse the repository at this point in the history
…um width

Be able to toggle params
  • Loading branch information
tye committed Nov 30, 2012
1 parent f532034 commit 4c4bffe
Show file tree
Hide file tree
Showing 7 changed files with 137 additions and 28 deletions.
Binary file added app/assets/images/rubyception/entry_collapse.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/assets/images/rubyception/entry_expand.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 0 additions & 3 deletions app/assets/javascripts/rubyception/syntax_highlighting.js
Expand Up @@ -515,12 +515,9 @@ function sh_highlightDocument(prefix, suffix) {
for (var i = 0; i < nodeList.length; i++) {
var element = nodeList.item(i);
var htmlClasses = sh_getClasses(element);
console.log(htmlClasses)
if (_.include(htmlClasses, 'sh_sourceCode')) {
console.log('Skipping')
continue;
}
console.log('Parsing')
for (var j = 0; j < htmlClasses.length; j++) {
var htmlClass = htmlClasses[j].toLowerCase();
if (htmlClass === 'sh_sourcecode') {
Expand Down
43 changes: 32 additions & 11 deletions app/assets/javascripts/rubyception/views/entries/entry.coffee
@@ -1,11 +1,17 @@
class App.Views.Entries.Entry extends Backbone.View
className: 'entry'
events:
'click .toggle_params': 'toggle_params'
'click': 'select_and_toggle'
initialize: ->
@model.bind 'notice', @notice
@model.bind 'ignore', @ignore
@render()
toggle_params: (e) =>
params = @$ '.params'
params.toggleClass 'nested'
e.preventDefault()
e.stopPropagation()
select_and_toggle: (event) =>
target = $ event.target
# Return unless we clicked directory on .details, or .heading, or a child of .heading
Expand All @@ -20,21 +26,36 @@ class App.Views.Entries.Entry extends Backbone.View
@color_marker()
@params()
@backtrace()
@nested_params @model.get 'parsed_nested_params'
@lines()
_.defer window.sh_highlightDocument
params:->
params = @model.get 'params'
html = _.map params, (v,k)->
boolean = v is true or v is false
number = !isNaN(parseFloat(v)) && isFinite(v)
kind = if boolean then 'boolean'
else if number then 'number'
escape_html: (text) =>
text = text.replace /&/g, '&amp;'
text = text.replace /</g, '&lt;'
text = text.replace />/g, '&gt;'
text
nested_params: (params)=>
console.log 'Nested', params
inner_html = _.map params, (v,k) =>
name = k
if typeof v != 'string'
console.log "Recursing into", v
definition = @nested_params(v).html()
console.log "Rescuring definition is", definition
else
v = "'#{v}'"
'string'
console.log "Its a string", v
definition = "<span class='value string'>#{@escape_html v}</span>"
"<dt class='key'>#{@escape_html k}<span class='colon'>:</span></dt><dd>#{definition}</dt>"
console.log(inner_html)
html = "<dl>#{inner_html.join('')}</dl>"
$(@el).find('.params .nested').html html

"<span class='param'><span class='key'>#{k}</span><span class='colon'>:</span> <span class='value #{kind}'>#{v}</span></span>"
$(@el).find('.params').html html.join('')
params:->
params = @model.get 'parsed_params'
html = _.map params, (v,k)=>
v = JSON.stringify JSON.parse v
"<span class='param'><span class='key'>#{@escape_html k}</span><span class='colon'>:</span> <span class='value string'>#{@escape_html v}</span></span>"
$(@el).find('.params .basic').append html.join('')
backtrace:->
backtrace = @model.get 'backtrace'
if backtrace
Expand Down
59 changes: 54 additions & 5 deletions app/assets/stylesheets/rubyception/entries.sass
@@ -1,3 +1,5 @@
body
:width 100%
.entry
:position relative
:-webkit-box-shadow rgba(255, 255, 255, 0.07) 0px 1px 0
Expand Down Expand Up @@ -27,14 +29,33 @@
:background rgb(250,50,0)
.details
:padding 0 10px
.method
:width 70px
.controller
:width 200px
.format
:width 50px
.datetime
:width 70px
.ms
:width 80px
.method, .format
:text-transform uppercase
.heading
.heading_wrapper
:padding 10px 0 10px 0
div
:display inline-block
.heading
:overflow auto
:table-layout fixed
:border-collapse collapse
:width 100%
td
:padding-right 5px
:white-space nowrap
:overflow hidden
:text-overflow ellipsis
td:last-child
:padding-right 0
.ms, .datetime
:float right
:margin
:left 10px
.ms.slow
Expand All @@ -60,7 +81,7 @@
:height 2px
:margin 2px 0

.params
.params, .nested_params
:padding 5px
:top 0px
:font-size 12px
Expand Down Expand Up @@ -92,3 +113,31 @@ body.pretty_params
//:display table-cell
//.key, .colon
//:width 1%
.params
.nested
:display none
a.toggle_params
:display block
:float left
:width 15px
:height 15px
:background image-url('rubyception/entry_collapse.png') no-repeat center center

.params.nested
a.toggle_params
:background image-url('rubyception/entry_expand.png') no-repeat center center
.basic
:display none
.nested
:display block
.nested
:clear both
dt
:clear both
:margin-right 10px
:text-align right
:width 120px
:word-wrap break-word
dt, dd
:float left

39 changes: 37 additions & 2 deletions app/models/rubyception/entry.rb
Expand Up @@ -32,8 +32,41 @@ def set_values event
params.delete 'controller'
params.delete 'action'
self.params = params
self.start_time = event.time.to_s :entry
self.end_time = event.end.to_s :entry
self.start_time = event.time.strftime('%H:%M:%S')
self.end_time = event.end.strftime('%H:%M:%S')
end


def parsed_params
result = {}
jsonified = params.collect do |key,val|
[key, val.to_json]
end
Hash[jsonified]
end

def deep_clone_hash hash
result = {}
hash.each do |k,v|
if v.is_a? Hash
result[k] = deep_clone_hash v
else
result[k] = v
end
end
result
end

def parsed_nested_params params=nil
params ||= deep_clone_hash(self.params)
if params.kind_of? Hash
params.each do |key,val|
params[key] = parsed_nested_params(params[key])
end
else
return params.inspect
end
params
end

def error?; error; end
Expand Down Expand Up @@ -97,6 +130,8 @@ def to_json
backtrace
finished
start_time
parsed_params
parsed_nested_params
end_time}
result = {}
methods.each do |method|
Expand Down
21 changes: 14 additions & 7 deletions app/views/rubyception/entries/_entry.haml
@@ -1,13 +1,20 @@
.marker
.details
.heading
.method {{method}}
.format {{format}}
= '{{controller}}#{{action}}'
.path {{path}}
.datetime {{start_time}}
.ms {{duration}}ms
.heading_wrapper
%table.heading
%tr
%td.method {{method}}
%td.controller{title: '{{controller}}#{{action}}'}
= '{{controller}}#{{action}}'
%td.format {{format}}
%td.path{title: '{{path}}'} {{path}}
%td.datetime {{start_time}}
%td.ms {{duration}}ms
.params
%a.toggle_params{href: '#'}
.basic
%dl.nested
.clear
.lines
.backtrace_lines
.clear

0 comments on commit 4c4bffe

Please sign in to comment.