dev_panel 0.2.7 → 0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -23,6 +23,39 @@ module DevPanel
23
23
  success: function(response) {
24
24
  $jq("#DevPanel").html(response);
25
25
  #{hide_container};
26
+ $jq("#consoleButton").click(function(e){
27
+ $("#console").toggle();
28
+ $jq("#console").css('top', e.pageY + 10 + 'px');
29
+ $jq("#console").css('left', e.pageX + 10 + 'px');
30
+ })
31
+
32
+ previous = null;
33
+
34
+ $jq("#consoleInput").keydown(function(e) {
35
+ if(event.keyCode == 38) {
36
+ $jq("#consoleInput").val(previous);
37
+ }
38
+
39
+ if(event.which == 13) {
40
+
41
+ if($jq("#consoleInput").val() == "") {
42
+ $jq("#consoleResults").append("><br>");
43
+ return "";
44
+ $jq("#consoleResults")[0].scrollTop = $jq("#consoleResults")[0].scrollHeight
45
+ }
46
+ $jq.ajax({
47
+ url: "/__DevPanel/console?query=" + $jq("#consoleInput").val(),
48
+ success: function(results) {
49
+ previous = $jq("#consoleInput").val()
50
+ $jq("#consoleResults").append(">" + results + "<br>");
51
+ $jq("#consoleInput").val("");
52
+ $jq("#consoleResults")[0].scrollTop = $jq("#consoleResults")[0].scrollHeight
53
+ }
54
+
55
+ })
56
+ }
57
+ })
58
+
26
59
  $jq("#viewTime").click(function(e) {
27
60
  $jq("#partialList").css('top', e.pageY + 10 + 'px');
28
61
  $jq("#partialList").css('left', e.pageX + 10 + 'px');
@@ -31,6 +64,7 @@ module DevPanel
31
64
  $jq("#devPanelHider").on("click", function(s) {
32
65
  $jq("#devPanelContainer").slideToggle(110);
33
66
  $jq("#partialList").hide();
67
+ $jq("#console").hide();
34
68
  $jq.get("/__DevPanel/set_options?visible=" + $jq("#devPanelContainer").is(":visible"));
35
69
  });
36
70
  $jq("#devPanelWindow").draggable({stop: function() {
@@ -11,6 +11,10 @@ module DevPanel
11
11
  params = Rack::Utils.parse_query(env['QUERY_STRING'], "&")
12
12
  Stats.set_by_params(params)
13
13
  [200, { "Content-Type" => "text/plain; charset=utf-8" }, ["#{Stats.show?} #{Stats.left} #{Stats.top}"]]
14
+ elsif env["REQUEST_URI"] =~ /__DevPanel\/console/
15
+ params = Rack::Utils.parse_query(env['QUERY_STRING'], "&")
16
+ query = params["query"]
17
+ [200, { "Content-Type" => "text/plain; charset=utf-8" }, ["#{CGI::escapeHTML(eval(query).to_s)}"]]
14
18
  else
15
19
  @app.call(env)
16
20
  end
@@ -117,6 +121,37 @@ module DevPanel
117
121
  z-index: 500000001;
118
122
  }
119
123
 
124
+ #console {
125
+ position: absolute;
126
+ top: 0px;
127
+ left: 0px;
128
+ background: #F1F1F1;
129
+ border: 2px solid #000;
130
+ background-color: #fff;
131
+ box-shadow: inset 3px 3px 3px rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.1);
132
+ font-family: arial;
133
+ font-size: 10px;
134
+ overflow: hidden;
135
+ padding: 6px 10px;
136
+ border-top-left-radius: 2px;
137
+ border-top-right-radius: 2px;
138
+ display: none;
139
+ z-index: 500000001;
140
+ width: 600px;
141
+ }
142
+
143
+ #consoleResults {
144
+ width: 97%;
145
+ height: 250px;
146
+ font-size: 13px;
147
+ overflow-x: scroll;
148
+ }
149
+
150
+ #consoleInput {
151
+ width: 97%;
152
+ height: 20px;
153
+ }
154
+
120
155
  .green { background: #21D61A !important}
121
156
  .yellow { background: #BEBE00 !important }
122
157
  .orange { background: #F0A811 !important }
@@ -129,6 +164,11 @@ module DevPanel
129
164
  def html_containers
130
165
  <<-html_code
131
166
  <div id='partialList'>#{partial_list}</div>
167
+ <div id='console'>
168
+ <div id="consoleResults">></div>
169
+ <input id="consoleInput" type="text" placeholder="Type Command">
170
+
171
+ </div>
132
172
  <div id="devPanelWindow" style="top: #{Stats.top.to_s}px; left: #{Stats.left.to_s}px;" >
133
173
  <div id="devPanelHider" class="#{heat_color}"><a class="hider-color" href="#">#{stats(:controller)}##{stats(:action)}</a> / <span class="hider-color" style="font-size: 10px">#{Stats.data[:action_controller].duration.round(0).to_s}ms</span></div>
134
174
  <div id="devPanelContainer">
@@ -145,8 +185,7 @@ module DevPanel
145
185
  "orange"
146
186
  else
147
187
  "red"
148
- end
149
-
188
+ end
150
189
  end
151
190
 
152
191
  def stats(symbol)
@@ -155,16 +194,17 @@ module DevPanel
155
194
 
156
195
  def html_table
157
196
  table_rows = rowify([
158
- first_td("Total:") + td("#{Stats.total_duration.to_s}ms"),
159
- first_td("Controller:") + td("#{Stats.controller_duration.to_s}ms (#{Stats.controller_duration_percent}%)"),
160
- first_td("View:") + td("#{Stats.view_duration.to_s}ms (#{Stats.view_duration_percent}%)"),
161
- first_td("Partials:") + td(partial_count),
162
- first_td("Response:") + td(stats(:status)),
163
- first_td("Controller:") + td(stats(:controller)),
164
- first_td("Action:") + td(stats(:action)),
165
- first_td("Method:") + td(stats(:method)),
166
- first_td("Params:") + td(stats(:params)),
167
- first_td("Log:") + td(Stats.data[:log])
197
+ first_td("Tools:") + td("<a href='#' id='consoleButton'>Console</a>"),
198
+ first_td("Total:") + td("#{Stats.total_duration.to_s}ms"),
199
+ first_td("Controller:") + td("#{Stats.controller_duration.to_s}ms (#{Stats.controller_duration_percent}%)"),
200
+ first_td("View:") + td("#{Stats.view_duration.to_s}ms (#{Stats.view_duration_percent}%)"),
201
+ first_td("Partials:") + td(partial_count),
202
+ first_td("Response:") + td(stats(:status)),
203
+ first_td("Controller:") + td(stats(:controller)),
204
+ first_td("Action:") + td(stats(:action)),
205
+ first_td("Method:") + td(stats(:method)),
206
+ first_td("Params:") + td(stats(:params)),
207
+ first_td("Log:") + td(Stats.data[:log])
168
208
  ])
169
209
 
170
210
  "<table style='margin: auto; table-layout: fixed'>#{table_rows}</table></div></div>"
@@ -7,7 +7,6 @@ module DevPanel
7
7
 
8
8
  ActiveSupport::Notifications.subscribe(//) do |*args|
9
9
  event = ActiveSupport::Notifications::Event.new(*args)
10
- puts event.inspect
11
10
  end
12
11
 
13
12
  ActiveSupport::Notifications.subscribe('start_processing.action_controller') do |*args|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dev_panel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: '0.3'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: