rest_framework 0.8.15 → 0.8.17

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 36036d097655858aedddc79945d798ae9e8c8dec48ee1e8c59e06e98b9bdf694
4
- data.tar.gz: fc9ced23a919bd6c0528f1b91999e89ca959ce433c0ef99938a46abc46574ca9
3
+ metadata.gz: 9b8d9a14de396b6832c13e0f3e1f2627decb432af03c6a2cbb59ce27328cdd7c
4
+ data.tar.gz: 6d1e675245643d96e2b35aaaadd9118eb441025a1bb7acc303db63d6761dc79c
5
5
  SHA512:
6
- metadata.gz: 3dea10ba8f4d5cc9cc4fe186b1101823eb7268fe3543ce4dfd850d33d477cb3fe7ba413138ab0b3ade2490e4a3b5bb1bc8880d8ad41296ada615e0e732618ea5
7
- data.tar.gz: 3071fc01e29b932141f70301dae07de686c691416863906b09815d89f7cc6c50e1c4351582a94a5ec1fd67fecdd028808bf2f4efd3e57113790cc9f9f2baf8fc
6
+ metadata.gz: a0ef4d98bec92656d0541f34aebd652d30b90af0bdde8ea91e0b1809b82ee381bdbfef0ea04235b2c24005ec43646ad59b7fce01d3eda1312e48e1a976bd8092
7
+ data.tar.gz: d64fdd4c884a6173c9df9f87074748290b1093917a053acfa70b5b6579bbe07f7479adf15b226178fb784181edfe28ac3cbce461c13b64372e988d5abbab5966
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.15
1
+ 0.8.17
@@ -1,170 +1,191 @@
1
1
  <!doctype html>
2
- <html>
2
+ <html class="rrf-mode">
3
3
  <head>
4
4
  <title><%= @title %></title>
5
- <%= render partial: 'rest_framework/head' %>
5
+ <%= render partial: "rest_framework/head" %>
6
6
  </head>
7
7
 
8
8
  <body>
9
- <div class="bg-dark">
10
- <div class="w-100 m-0 p-0" style="height: .3em; background-color: #a00;"></div>
11
- <nav class="navbar navbar-dark bg-dark">
9
+ <header>
10
+ <div class="w-100 m-0 p-0" id="rrfAccentBar"></div>
11
+ <nav class="navbar py-0" data-bs-theme="dark">
12
12
  <div class="container">
13
13
  <span class="navbar-brand p-0">
14
14
  <h1 title="RRF v<%= RESTFramework::VERSION %>" class="text-light font-weight-light m-0 p-0" style="font-size: 1em">
15
- <%= @template_logo_text || 'Rails REST Framework' %>
15
+ <%= @template_logo_text || "Rails REST Framework" %>
16
16
  </h1>
17
17
  </span>
18
+ <div class="dropdown ms-auto" id="rrfModeComponent">
19
+ <button class="btn btn-dark dropdown-toggle rounded-0 bg-black" style="border-color: black" data-bs-toggle="dropdown"></button>
20
+ <div class="rrf-mode dropdown-menu dropdown-menu-end py-0 rounded-0" style="font-size: .8em; min-width: 0">
21
+ <button class="dropdown-item text-end" data-rrf-mode-value="system">
22
+ System<i class="bi bi-circle-half ms-2"></i>
23
+ </button>
24
+ <button class="dropdown-item text-end" data-rrf-mode-value="light">
25
+ Light<i class="bi bi-sun-fill ms-2"></i>
26
+ </button>
27
+ <button class="dropdown-item text-end" data-rrf-mode-value="dark">
28
+ Dark<i class="bi bi-moon-stars-fill ms-2"></i>
29
+ </button>
30
+ </div>
31
+ </div>
18
32
  </div>
19
33
  </nav>
20
- </div>
34
+ </header>
21
35
  <div class="container py-3">
22
- <div class="container">
23
- <div class="row">
24
- <nav>
25
- <ol class="breadcrumb">
26
- <%
27
- breadcrumbs = request.path.split("/").inject([]) { |breadcrumbs, part|
28
- # Ignore blank parts of the path (leading slash or double-slashes).
29
- next breadcrumbs if part.blank?
36
+ <div class="row">
37
+ <nav>
38
+ <ol class="breadcrumb">
39
+ <%
40
+ breadcrumbs = request.path.split("/").inject([]) { |breadcrumbs, part|
41
+ # Ignore blank parts of the path (leading slash or double-slashes).
42
+ next breadcrumbs if part.blank?
30
43
 
31
- last_path = breadcrumbs.last&.first || "/"
32
- breadcrumbs << [
33
- [last_path, part].join(last_path[-1] == "/" ? "" : "/"),
34
- part,
35
- ]
44
+ last_path = breadcrumbs.last&.first || "/"
45
+ breadcrumbs << [
46
+ [last_path, part].join(last_path[-1] == "/" ? "" : "/"),
47
+ part,
48
+ ]
36
49
 
37
- next breadcrumbs
38
- }
39
- %>
40
- <% breadcrumbs.each_with_index do |(path, label), i| %>
41
- <% if i != breadcrumbs.size - 1 %>
42
- <li class="breadcrumb-item"><a href="<%= path %>"><%= label %></a></li>
43
- <% else %>
44
- <li class="breadcrumb-item active"><%= label %></li>
45
- <% end %>
50
+ next breadcrumbs
51
+ }
52
+ %>
53
+ <% breadcrumbs.each_with_index do |(path, label), i| %>
54
+ <% if i != breadcrumbs.size - 1 %>
55
+ <li class="breadcrumb-item"><a href="<%= path %>"><%= label %></a></li>
56
+ <% else %>
57
+ <li class="breadcrumb-item active"><%= label %></li>
46
58
  <% end %>
47
- </ol>
48
- </nav>
59
+ <% end %>
60
+ </ol>
61
+ </nav>
62
+ </div>
63
+ <div class="row">
64
+ <div>
65
+ <h1 class="m-0"><%= (@header_text if defined? @header_text) || @title %></h1>
66
+ <div style="float: right">
67
+ <% if @route_groups.values[0].any? { |r| r[:matches_path] && r[:verb] == "DELETE" } %>
68
+ <button type="button" class="btn btn-danger" onclick="rrfDelete(this)">DELETE</button>
69
+ <% end %>
70
+ <% if @route_groups.values[0].any? { |r| r[:matches_path] && r[:verb] == "OPTIONS" } %>
71
+ <button type="button" class="btn btn-primary" onclick="rrfOptions(this)">OPTIONS</button>
72
+ <% end %>
73
+ <button type="button" class="btn btn-primary" onclick="rrfGet(this)">GET</button>
74
+ </div>
75
+ <% if @description.present? %>
76
+ <br><br><p style="display: inline-block; margin-bottom: 0"><%= @description %></p>
77
+ <% end %>
78
+ </div>
79
+ </div>
80
+ <hr/>
81
+ <div class="row">
82
+ <div>
83
+ <pre style="white-space: normal">
84
+ <code>
85
+ <strong>
86
+ <%= request.request_method %>
87
+ <% if request.method != request.request_method %>
88
+ (via <%= request.method %>)
89
+ <% end %>
90
+ </strong> <%= request.path %><br>
91
+ </code>
92
+ </pre>
93
+ <pre style="white-space: normal">
94
+ <code>
95
+ <strong>HTTP <%= response.status %> <%= response.message %></strong><br>
96
+ <strong>Content-Type:</strong> <%= response.content_type %>
97
+ </code>
98
+ </pre>
49
99
  </div>
100
+ </div>
101
+ <% if @json_payload.present? || @xml_payload.present? %>
50
102
  <div class="row">
51
103
  <div>
52
- <h1><%= (@header_text if defined? @header_text) || @title %></h1>
53
- <div style="float: right">
54
- <% if @route_groups.values[0].any? { |r| r[:matches_path] && r[:verb] == "DELETE" } %>
55
- <button type="button" class="btn btn-danger" onclick="rrfDelete(this)">DELETE</button>
104
+ <ul class="nav nav-tabs">
105
+ <% if @json_payload.present? %>
106
+ <li class="nav-item">
107
+ <a class="nav-link active" href="#tab-json" data-bs-toggle="tab" role="tab">
108
+ .json
109
+ </a>
110
+ </li>
56
111
  <% end %>
57
- <% if @route_groups.values[0].any? { |r| r[:matches_path] && r[:verb] == "OPTIONS" } %>
58
- <button type="button" class="btn btn-primary" onclick="rrfOptions(this)">OPTIONS</button>
112
+ <% if @xml_payload.present? %>
113
+ <li class="nav-item">
114
+ <a class="nav-link" href="#tab-xml" data-bs-toggle="tab" role="tab">
115
+ .xml
116
+ </a>
117
+ </li>
118
+ <% end %>
119
+ </ul>
120
+ </div>
121
+ <div class="tab-content pt-2">
122
+ <div class="tab-pane fade show active" id="tab-json" role="tabpanel">
123
+ <% if @json_payload.present? %>
124
+ <div><pre class="rrf-copy"><code class="auto-hljs language-json"><%=
125
+ JSON.pretty_generate(
126
+ JSON.parse(@json_payload)
127
+ ) unless @json_payload == ''
128
+ %></code></pre></div>
129
+ <% end %>
130
+ </div>
131
+ <div class="tab-pane fade" id="tab-xml" role="tabpanel">
132
+ <% if @xml_payload.present? %>
133
+ <div><pre class="rrf-copy"><code class="auto-hljs language-xml"><%=
134
+ CGI.unescapeHTML(@xml_payload)
135
+ %></code></pre></div>
59
136
  <% end %>
60
- <button type="button" class="btn btn-primary" onclick="rrfRefresh(this)">GET</button>
61
137
  </div>
62
- <% if @description.present? %>
63
- <br><br><p style="display: inline-block; margin-bottom: 0"><%= @description %></p>
64
- <% end %>
65
138
  </div>
66
139
  </div>
67
- <hr/>
140
+ <% end %>
141
+ <% if @route_groups.present? %>
142
+ <%
143
+ @is_model_controller = controller.class.included_modules.include?(RESTFramework::ModelControllerMixin)
144
+ %>
68
145
  <div class="row">
69
146
  <div>
70
- <pre style="white-space: normal">
71
- <code class="language-plaintext">
72
- <strong><%= request.method %></strong> <%= request.path %><br>
73
- </code>
74
- </pre>
75
- <pre style="white-space: normal">
76
- <code class="language-plaintext">
77
- <strong>HTTP <%= response.status %> <%= response.message %></strong><br>
78
- <strong>Content-Type:</strong> <%= response.content_type %>
79
- </code>
80
- </pre>
81
- </div>
82
- </div>
83
- <% if @json_payload.present? || @xml_payload.present? %>
84
- <div class="row">
85
- <div>
86
- <ul class="nav nav-tabs">
87
- <% if @json_payload.present? %>
88
- <li class="nav-item">
89
- <a class="nav-link active" href="#tab-json" data-bs-toggle="tab" role="tab">
90
- .json
91
- </a>
92
- </li>
93
- <% end %>
94
- <% if @xml_payload.present? %>
95
- <li class="nav-item">
96
- <a class="nav-link" href="#tab-xml" data-bs-toggle="tab" role="tab">
97
- .xml
98
- </a>
99
- </li>
100
- <% end %>
101
- </ul>
102
- </div>
103
- <div class="tab-content pt-2">
104
- <div class="tab-pane fade show active" id="tab-json" role="tab">
105
- <% if @json_payload.present? %>
106
- <div>
107
- <pre class="rrf-copy"><code class="language-json"><%=
108
- JSON.pretty_generate(
109
- JSON.parse(@json_payload)
110
- ) unless @json_payload == '' %></code></pre>
111
- </div>
112
- <% end %>
113
- </div>
114
- <div class="tab-pane fade" id="tab-xml" role="tab">
115
- <% if @xml_payload.present? %>
116
- <div><pre class="rrf-copy"><code class="language-xml"><%= @xml_payload %></code></pre></div>
117
- <% end %>
118
- </div>
119
- </div>
120
- </div>
121
- <% end %>
122
- <% if @route_groups.present? %>
123
- <div class="row">
124
- <div>
125
- <ul class="nav nav-tabs">
147
+ <ul class="nav nav-tabs">
148
+ <li class="nav-item">
149
+ <a class="nav-link active" href="#tab-routes" data-bs-toggle="tab" role="tab">
150
+ Routes
151
+ </a>
152
+ </li>
153
+ <% @_rrf_form_routes = @route_groups.values[0].select { |r|
154
+ r[:matches_params] && r[:verb].in?(["POST", "PUT", "PATCH"])
155
+ } %>
156
+ <% unless @_rrf_form_routes.empty? %>
126
157
  <li class="nav-item">
127
- <a class="nav-link active" href="#tab-routes" data-bs-toggle="tab" role="tab">
128
- Routes
158
+ <a class="nav-link" href="#tab-raw-form" data-bs-toggle="tab" role="tab">
159
+ Raw Form
129
160
  </a>
130
161
  </li>
131
- <% @_rrf_form_routes = @route_groups.values[0].select { |r|
132
- r[:matches_params] && r[:verb].in?(["POST", "PUT", "PATCH"])
133
- } %>
134
- <% unless @_rrf_form_routes.empty? %>
162
+ <% if @is_model_controller %>
135
163
  <li class="nav-item">
136
- <a class="nav-link" href="#tab-raw-form" data-bs-toggle="tab" role="tab">
137
- Raw Form
164
+ <a class="nav-link" href="#tab-html-form" data-bs-toggle="tab" role="tab">
165
+ HTML Form
138
166
  </a>
139
167
  </li>
140
- <% if RESTFramework.features[:html_forms] %>
141
- <li class="nav-item">
142
- <a class="nav-link" href="#tab-raw-form" data-bs-toggle="tab" role="tab">
143
- HTML Form
144
- </a>
145
- </li>
146
- <% end %>
147
168
  <% end %>
148
- </ul>
169
+ <% end %>
170
+ </ul>
171
+ </div>
172
+ <div class="tab-content pt-2">
173
+ <div class="tab-pane fade show active" id="tab-routes" role="tabpanel">
174
+ <%= render partial: "rest_framework/routes" %>
149
175
  </div>
150
- <div class="tab-content pt-2">
151
- <div class="tab-pane fade show active" id="tab-routes" role="tab">
152
- <%= render partial: 'rest_framework/routes' %>
176
+ <% unless @_rrf_form_routes.empty? %>
177
+ <div class="tab-pane fade" id="tab-raw-form" role="tabpanel">
178
+ <%= render partial: "rest_framework/raw_form" %>
153
179
  </div>
154
- <% unless @_rrf_form_routes.empty? %>
155
- <div class="tab-pane fade" id="tab-raw-form" role="tab">
156
- <%= render partial: 'rest_framework/raw_form' %>
180
+ <% if @is_model_controller %>
181
+ <div class="tab-pane fade" id="tab-html-form" role="tabpanel">
182
+ <%= render partial: "rest_framework/html_form" %>
157
183
  </div>
158
- <% if RESTFramework.features[:html_forms] %>
159
- <div class="tab-pane fade" id="tab-raw-form" role="tab">
160
- <%= render partial: 'rest_framework/html_form' %>
161
- </div>
162
- <% end %>
163
184
  <% end %>
164
- </div>
185
+ <% end %>
165
186
  </div>
166
- <% end %>
167
- </div>
187
+ </div>
188
+ <% end %>
168
189
  </div>
169
190
  </body>
170
191
  </html>