rest_framework 0.8.15 → 0.8.17

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.
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>