IcaliaLabs/sabisu-rails

View on GitHub
app/views/sabisu_rails/explorer/index.html.erb

Summary

Maintainability
Test Coverage
<div class="row">
  <div class="col-2 nopadding">
    <ul class="navigation side">
      <li class="header"><%= SabisuRails.app_name %> - <br /> Api Explorer</li>
      <% @resources.each do |resource| %>
        <li class="<%= active_resource_state(resource) %>"><%= link_to resource.classify, explorer_path(explorer: { resource: resource }) %></li>
    <% end %>
    </ul>
  </div>
  <div class="col-10 nopadding">
    <div class="main-content">
      <div class="row">
          <%= simple_form_for :explorer, url: explorer_path, html: {id: 'explorer_form'}, method: :get, remote: true do |f| %>
            <%= f.hidden_field :resource, value: @explorer.resource %>
          <div class="row">
            <div class="col-6">
              <div class="input-addon">
                <a class="addon"><%= "/#{@explorer.resource}/" %></a>
                <%= f.text_field :uri_pattern, value: @explorer.uri_pattern, placeholder: "URI pattern. 1 or bids or orders/1", class: "addon-field" %>
              </div>
            </div>
            <div class="col-2">
              <%= f.select :http_method, options_for_select(SabisuRails.http_methods, @explorer.http_method.upcase) %>
            </div>
            <div class="col-2">
              <a href="#" class="button radius block nomargin three-d explorer-fields-link-js" data-target="#url_params_inputs" data-type="url_params"><i class="fa fa-link"></i>Url params</a>
            </div>
            <div class="col-2">
              <a href="#" class="button radius block nomargin three-d explorer-fields-link-js" data-target="#header_inputs" data-type="headers"><i class="fa fa-indent"></i> Headers</a>
            </div>
          </div>
          <br />

          <div class="appeareable">
            <% @explorer.resource_columns.each do |column| %>
              <%= f.input column, input_html: {name: "#{@explorer.resource_name}[#{column}]" }, as: @explorer.column_type(column), required: @explorer.required_attribute?(column) %>
          <% end %>
          </div>

          <div class="row">
             <div class="col-5">
              <fieldset>
                <legend>Url params (<span class="label round" id="url_params_counter_js">0</span>)</legend>
                <div class="row" id="url_params_inputs">

                </div>
              </fieldset>
             </div>
             <div class="col-1">
               
             </div>
             <div class="col-5">
              <fieldset>
                <legend>Headers (<span class="label round" id="headers_counter_js">0</span>)</legend>
                <div class="row" id="header_inputs">

                </div>
              </fieldset>
             </div>
          </div>
          <%= f.submit "Send", class: 'button radius three-d success', data: { :disable_with => "Processing..." } %>
        <% end %>
      </div>

      <div class="response-wrapper">

      <div class="row">
        <div class="response-details">
           <ul class="navigation inline">
             <li><small><strong>STATUS:</strong></small> <span class="label primary radius" id="response_status"><%= @response.code %></span></li>
             <li><small><strong>TIME:</strong></small> <span class="label primary radius" id="response_time"><%= @response.headers['x-runtime'] %> ms</span></li>
           </ul>
        </div>
        <ul class="navigation inline" data-tabu>
          <li><a href="#result">Body</a></li>
          <li><a href="#headers_result">(<span id="headers_count"><%= @response.headers.count %></span>) Headers</a></li>
        </ul>
        <div class="tabu-content">
          <div class="content row" id="result">
          </div>
          <div class="content row headers" id="headers_result">
            <%= prettify_headers @response.headers %>
          </div>
        </div>
      </div>
      </div>
    </div>
  </div>
</div>

<%= content_for :javascripts do %>
  <script type="text/javascript" charset="utf-8">
$(document).ready(function(){
    $.JSONView(<%= @response.body.html_safe %>, $('#result'));
    });
</script>
<% end %>