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.
- data/lib/devpanel/extension.rb +34 -0
- data/lib/devpanel/middleware.rb +52 -12
- data/lib/devpanel/rails.rb +0 -1
- metadata +1 -1
    
        data/lib/devpanel/extension.rb
    CHANGED
    
    | @@ -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() {
         | 
    
        data/lib/devpanel/middleware.rb
    CHANGED
    
    | @@ -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 | 
            -
             | 
| 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(" | 
| 159 | 
            -
                    first_td(" | 
| 160 | 
            -
                    first_td(" | 
| 161 | 
            -
                    first_td(" | 
| 162 | 
            -
                    first_td(" | 
| 163 | 
            -
                    first_td(" | 
| 164 | 
            -
                    first_td(" | 
| 165 | 
            -
                    first_td(" | 
| 166 | 
            -
                    first_td(" | 
| 167 | 
            -
                    first_td(" | 
| 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>"
         | 
    
        data/lib/devpanel/rails.rb
    CHANGED