wallaby-core 0.2.0 → 0.2.1
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 +4 -4
- data/app/controllers/wallaby/resources_controller.rb +6 -375
- data/app/security/ability.rb +1 -1
- data/config/locales/wallaby.en.yml +92 -128
- data/config/locales/wallaby_class.en.yml +0 -21
- data/lib/adaptors/wallaby/custom/model_service_provider.rb +8 -8
- data/lib/authorizers/wallaby/cancancan_authorization_provider.rb +2 -1
- data/lib/authorizers/wallaby/pundit_authorization_provider.rb +2 -2
- data/lib/concerns/wallaby/application_concern.rb +111 -0
- data/lib/concerns/wallaby/authentication_concern.rb +93 -0
- data/lib/concerns/wallaby/authorizable.rb +1 -1
- data/lib/concerns/wallaby/decoratable.rb +1 -1
- data/lib/concerns/wallaby/paginatable.rb +1 -1
- data/lib/concerns/wallaby/resourcable.rb +4 -0
- data/lib/concerns/wallaby/resources_concern.rb +433 -0
- data/lib/concerns/wallaby/servicable.rb +1 -1
- data/lib/errors/wallaby/model_not_found.rb +1 -1
- data/lib/errors/wallaby/resource_not_found.rb +1 -1
- data/lib/helpers/wallaby/application_helper.rb +6 -0
- data/lib/helpers/wallaby/form_helper.rb +2 -3
- data/lib/helpers/wallaby/index_helper.rb +2 -2
- data/lib/helpers/wallaby/links_helper.rb +5 -5
- data/lib/helpers/wallaby/styling_helper.rb +17 -3
- data/lib/interfaces/wallaby/mode.rb +2 -2
- data/lib/interfaces/wallaby/model_decorator.rb +1 -1
- data/lib/paginators/wallaby/model_paginator.rb +1 -1
- data/lib/routes/wallaby/resources_router.rb +1 -1
- data/lib/servicers/wallaby/model_servicer.rb +2 -1
- data/lib/services/wallaby/map/model_class_collector.rb +1 -1
- data/lib/services/wallaby/type_renderer.rb +2 -2
- data/lib/utils/wallaby/locale.rb +53 -0
- data/lib/utils/wallaby/logger.rb +21 -0
- data/lib/utils/wallaby/model_utils.rb +1 -1
- data/lib/utils/wallaby/module_utils.rb +1 -1
- data/lib/utils/wallaby/utils.rb +1 -1
- data/lib/wallaby/core.rb +6 -0
- data/lib/wallaby/core/version.rb +1 -1
- data/lib/wallaby/engine.rb +3 -3
- data/lib/wallaby/map.rb +1 -1
- metadata +7 -4
- data/app/controllers/wallaby/application_controller.rb +0 -84
- data/app/controllers/wallaby/secure_controller.rb +0 -81
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b808379fa5d1d1105d40bd2c9f6f960c0c2ebbfab0fffead3c483b1cd07fab4d
|
4
|
+
data.tar.gz: 1cdfde9da6cf530b366fb31a5ed659d9d4175181cb8ec28b6588f686a50a7ece
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81f0c8d139ec9975ce47ffb157fb12c273f44c7496c8b071d40e0fed1498226e19ca7ab3254fe2d825b0ed8936a74db1341f2c40d0e3dfa46091880603dbeba2
|
7
|
+
data.tar.gz: fb8f6be411fb84876a7ed7a1f9aa0f5f51341e97a3bdd6d2803c6357c1e8f32bed20d9b11e14bad886f926123d33a65bd49879a572f318b56ddc3a8bb4c897c4
|
@@ -1,382 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Wallaby
|
4
|
+
ResourcesController = Class.new configuration.base_controller
|
5
|
+
|
4
6
|
# Resources controller, superclass for all customization controllers.
|
5
|
-
# It contains CRUD template action methods
|
7
|
+
# It contains CRUD template action methods
|
8
|
+
# (`index`/`new`/`create`/`edit`/`update`/`destroy`)
|
6
9
|
# that allow subclasses to override.
|
7
|
-
class ResourcesController
|
8
|
-
|
9
|
-
extend Baseable::ClassMethods
|
10
|
-
extend Decoratable::ClassMethods
|
11
|
-
extend Paginatable::ClassMethods
|
12
|
-
extend Resourcable::ClassMethods
|
13
|
-
extend Servicable::ClassMethods
|
14
|
-
|
15
|
-
include View
|
16
|
-
prepend Prefixable
|
17
|
-
|
18
|
-
include Authorizable
|
19
|
-
include Decoratable
|
20
|
-
include Defaultable
|
21
|
-
include Paginatable
|
22
|
-
include Resourcable
|
23
|
-
include Servicable
|
24
|
-
|
25
|
-
self.responder = ResourcesResponder
|
26
|
-
respond_to :html
|
27
|
-
respond_to :json
|
28
|
-
respond_to :csv, only: :index
|
29
|
-
helper ResourcesHelper
|
30
|
-
before_action :authenticate_user!
|
31
|
-
|
32
|
-
# @note This is a template method that can be overridden by subclasses.
|
33
|
-
# This is an action for landing page display. It does nothing more than rendering `home` template.
|
34
|
-
#
|
35
|
-
# It can be replaced completely in subclasses as below:
|
36
|
-
#
|
37
|
-
# ```
|
38
|
-
# def home
|
39
|
-
# generate_dashboard_report
|
40
|
-
# end
|
41
|
-
# ```
|
42
|
-
def home
|
43
|
-
# do nothing
|
44
|
-
end
|
45
|
-
|
46
|
-
# @note This is a template method that can be overridden by subclasses.
|
47
|
-
# This is a resourceful action to list records that user can access.
|
48
|
-
#
|
49
|
-
# It can be customized as below in subclasses:
|
50
|
-
#
|
51
|
-
# `WARN: Please keep in mind that Wallaby User Interface requires **index**
|
52
|
-
# action to respond to **csv** and **json** format as well.`
|
53
|
-
#
|
54
|
-
# ```
|
55
|
-
# def index
|
56
|
-
# # do something before the origin action
|
57
|
-
# options = {} # NOTE: see `options` parameter for more details
|
58
|
-
# index!(options) do |format| # NOTE: this is better than using `super`
|
59
|
-
# # NOTE: this block is for `respond_with` which works similar to `respond_to`
|
60
|
-
# # customize response behaviour, or do something before the request is rendered
|
61
|
-
# end
|
62
|
-
# end
|
63
|
-
# ```
|
64
|
-
#
|
65
|
-
# Otherwise, it can be replaced completely in subclasses:
|
66
|
-
#
|
67
|
-
# `WARN: Please keep in mind that Wallaby User Interface requires **index**
|
68
|
-
# action to respond to **csv** and **json** format as well.`
|
69
|
-
#
|
70
|
-
# ```
|
71
|
-
# def index
|
72
|
-
# # NOTE: `@collection` will be used by the view, please ensure it is assigned, for example:
|
73
|
-
# @collection = Product.all
|
74
|
-
# respond_with @collection
|
75
|
-
# end
|
76
|
-
# ```
|
77
|
-
# @param options [Hash] (since 5.2.0) options for
|
78
|
-
# {https://www.rubydoc.info/gems/responders/ActionController/RespondWith#respond_with-instance_method
|
79
|
-
# respond_with}
|
80
|
-
# @yield [format] block for
|
81
|
-
# {https://www.rubydoc.info/gems/responders/ActionController/RespondWith#respond_with-instance_method
|
82
|
-
# respond_with}
|
83
|
-
# to customize response behaviour.
|
84
|
-
# @raise [Wallaby::Forbidden] if user has no access
|
85
|
-
def index(options = {}, &block)
|
86
|
-
current_authorizer.authorize :index, current_model_class
|
87
|
-
respond_with collection, options, &block
|
88
|
-
end
|
89
|
-
|
90
|
-
alias index! index
|
91
|
-
|
92
|
-
# @note This is a template method that can be overridden by subclasses.
|
93
|
-
# This is a resourceful action to show the form to create record that user is allowed to.
|
94
|
-
#
|
95
|
-
# It can be customized as below in subclasses:
|
96
|
-
#
|
97
|
-
# ```
|
98
|
-
# def new
|
99
|
-
# # do something before the origin action
|
100
|
-
# options = {} # NOTE: see `options` parameter for more details
|
101
|
-
# new!(options) do |format| # NOTE: this is better than using `super`
|
102
|
-
# # NOTE: this block is for `respond_with` which works similar to `respond_to`
|
103
|
-
# # customize response behaviour, or do something before the request is rendered
|
104
|
-
# end
|
105
|
-
# end
|
106
|
-
# ```
|
107
|
-
#
|
108
|
-
# Otherwise, it can be replaced completely in subclasses:
|
109
|
-
#
|
110
|
-
# ```
|
111
|
-
# def new
|
112
|
-
# # NOTE: `@resource` will be used by the view, please ensure it is assigned, for example:
|
113
|
-
# @resource = Product.new new_arrival: true
|
114
|
-
# end
|
115
|
-
# ```
|
116
|
-
# @param options [Hash] (since 5.2.0) options for
|
117
|
-
# {https://www.rubydoc.info/gems/responders/ActionController/RespondWith#respond_with-instance_method
|
118
|
-
# respond_with}
|
119
|
-
# @yield [format] block for
|
120
|
-
# {https://www.rubydoc.info/gems/responders/ActionController/RespondWith#respond_with-instance_method
|
121
|
-
# respond_with}
|
122
|
-
# to customize response behaviour.
|
123
|
-
# @raise [Wallaby::Forbidden] if user has no access
|
124
|
-
def new(options = {}, &block)
|
125
|
-
current_authorizer.authorize :new, resource
|
126
|
-
respond_with resource, options, &block
|
127
|
-
end
|
128
|
-
|
129
|
-
alias new! new
|
130
|
-
|
131
|
-
# @note This is a template method that can be overridden by subclasses.
|
132
|
-
# This is a resourceful action to create a record that user is allowed to.
|
133
|
-
#
|
134
|
-
# If record is created successfully, user will be navigated to the record show page.
|
135
|
-
# Otherwise, the form will be shown again with error messages.
|
136
|
-
#
|
137
|
-
# It can be customized as below in subclasses:
|
138
|
-
#
|
139
|
-
# ```
|
140
|
-
# def create
|
141
|
-
# # do something before the origin action
|
142
|
-
# options = {} # NOTE: see `options` parameter for more details
|
143
|
-
# create!(options) do |format| # NOTE: this is better than using `super`
|
144
|
-
# # NOTE: this block is for `respond_with` which works similar to `respond_to`
|
145
|
-
# # customize response behaviour, or do something before the request is rendered
|
146
|
-
# end
|
147
|
-
# end
|
148
|
-
# ```
|
149
|
-
#
|
150
|
-
# Otherwise, it can be replaced completely in subclasses:
|
151
|
-
#
|
152
|
-
# ```
|
153
|
-
# def create
|
154
|
-
# # NOTE: `@resource` will be used by the view, please ensure it is assigned, for example:
|
155
|
-
# @resource = Product.new resource_params.merge(new_arrival: true)
|
156
|
-
# if @resource.save
|
157
|
-
# redirect_to helper.index_path(current_model_class)
|
158
|
-
# else
|
159
|
-
# render :new
|
160
|
-
# end
|
161
|
-
# end
|
162
|
-
# ```
|
163
|
-
# @param options [Hash] (since 5.2.0) options for
|
164
|
-
# {https://www.rubydoc.info/gems/responders/ActionController/RespondWith#respond_with-instance_method
|
165
|
-
# respond_with}. In addition, options `:params` is supported, see below
|
166
|
-
# @option options [ActionController::Parameters, Hash] :params
|
167
|
-
# permitted parameters for servicer to create the record. _(defaults to: {#resource_params})_
|
168
|
-
# @yield [format] block for
|
169
|
-
# {https://www.rubydoc.info/gems/responders/ActionController/RespondWith#respond_with-instance_method
|
170
|
-
# respond_with}
|
171
|
-
# to customize response behaviour.
|
172
|
-
# @raise [Wallaby::Forbidden] if user has no access
|
173
|
-
def create(options = {}, &block)
|
174
|
-
set_defaults_for :create, options
|
175
|
-
current_authorizer.authorize :create, resource
|
176
|
-
current_servicer.create resource, options.delete(:params)
|
177
|
-
respond_with resource, options, &block
|
178
|
-
end
|
179
|
-
|
180
|
-
alias create! create
|
181
|
-
|
182
|
-
# @note This is a template method that can be overridden by subclasses.
|
183
|
-
# This is a resourceful action to display the record details that user is allowed to.
|
184
|
-
#
|
185
|
-
# It can be customized as below in subclasses:
|
186
|
-
#
|
187
|
-
# ```
|
188
|
-
# def show
|
189
|
-
# # do something before the origin action
|
190
|
-
# options = {} # NOTE: see `options` parameter for more details
|
191
|
-
# show!(options) do |format| # NOTE: this is better than using `super`
|
192
|
-
# # NOTE: this block is for `respond_with` which works similar to `respond_to`
|
193
|
-
# # customize response behaviour, or do something before the request is rendered
|
194
|
-
# end
|
195
|
-
# end
|
196
|
-
# ```
|
197
|
-
#
|
198
|
-
# Otherwise, it can be replaced completely in subclasses:
|
199
|
-
#
|
200
|
-
# ```
|
201
|
-
# def show
|
202
|
-
# # NOTE: `@resource` will be used by the view, please ensure it is assigned, for example:
|
203
|
-
# @resource = Product.find_by_slug params[:id]
|
204
|
-
# end
|
205
|
-
# ```
|
206
|
-
# @param options [Hash] (since 5.2.0) options for
|
207
|
-
# {https://www.rubydoc.info/gems/responders/ActionController/RespondWith#respond_with-instance_method
|
208
|
-
# respond_with}
|
209
|
-
# @yield [format] block for
|
210
|
-
# {https://www.rubydoc.info/gems/responders/ActionController/RespondWith#respond_with-instance_method
|
211
|
-
# respond_with}
|
212
|
-
# to customize response behaviour.
|
213
|
-
# @raise [Wallaby::Forbidden] if user has no access
|
214
|
-
def show(options = {}, &block)
|
215
|
-
current_authorizer.authorize :show, resource
|
216
|
-
respond_with resource, options, &block
|
217
|
-
end
|
218
|
-
|
219
|
-
alias show! show
|
220
|
-
|
221
|
-
# @note This is a template method that can be overridden by subclasses.
|
222
|
-
# This is a resourceful action to show the form to edit record that user is allowed to.
|
223
|
-
#
|
224
|
-
# It can be customized as below in subclasses:
|
225
|
-
#
|
226
|
-
# ```
|
227
|
-
# def edit
|
228
|
-
# # do something before the origin action
|
229
|
-
# options = {} # NOTE: see `options` parameter for more details
|
230
|
-
# edit!(options) do |format| # NOTE: this is better than using `super`
|
231
|
-
# # NOTE: this block is for `respond_with` which works similar to `respond_to`
|
232
|
-
# # customize response behaviour, or do something before the request is rendered
|
233
|
-
# end
|
234
|
-
# end
|
235
|
-
# ```
|
236
|
-
#
|
237
|
-
# Otherwise, it can be replaced completely in subclasses:
|
238
|
-
#
|
239
|
-
# ```
|
240
|
-
# def edit
|
241
|
-
# # NOTE: `@resource` will be used by the view, please ensure it is assigned, for example:
|
242
|
-
# @resource = Product.find_by_slug params[:id]
|
243
|
-
# end
|
244
|
-
# ```
|
245
|
-
# @param options [Hash] (since 5.2.0) options for
|
246
|
-
# {https://www.rubydoc.info/gems/responders/ActionController/RespondWith#respond_with-instance_method
|
247
|
-
# respond_with}
|
248
|
-
# @yield [format] block for
|
249
|
-
# {https://www.rubydoc.info/gems/responders/ActionController/RespondWith#respond_with-instance_method
|
250
|
-
# respond_with}
|
251
|
-
# to customize response behaviour.
|
252
|
-
# @raise [Wallaby::Forbidden] if user has no access
|
253
|
-
def edit(options = {}, &block)
|
254
|
-
current_authorizer.authorize :edit, resource
|
255
|
-
respond_with resource, options, &block
|
256
|
-
end
|
257
|
-
|
258
|
-
alias edit! edit
|
259
|
-
|
260
|
-
# @note This is a template method that can be overridden by subclasses.
|
261
|
-
# This is a resourceful action to update the record that user is allowed to.
|
262
|
-
#
|
263
|
-
# If record is updated successfully, user will be navigated to the record show page.
|
264
|
-
# Otherwise, the form will be shown again with error messages.
|
265
|
-
#
|
266
|
-
# It can be customized as below in subclasses:
|
267
|
-
#
|
268
|
-
# ```
|
269
|
-
# def update
|
270
|
-
# # do something before the origin action
|
271
|
-
# options = {} # NOTE: see `options` parameter for more details
|
272
|
-
# update!(options) do |format| # NOTE: this is better than using `super`
|
273
|
-
# # NOTE: this block is for `respond_with` which works similar to `respond_to`
|
274
|
-
# # customize response behaviour, or do something before the request is rendered
|
275
|
-
# end
|
276
|
-
# end
|
277
|
-
# ```
|
278
|
-
#
|
279
|
-
# Otherwise, it can be replaced completely in subclasses:
|
280
|
-
#
|
281
|
-
# ```
|
282
|
-
# def update
|
283
|
-
# # NOTE: `@resource` will be used by the view, please ensure it is assigned, for example:
|
284
|
-
# @resource = Product.find_by_slug params[:id]
|
285
|
-
# @resource.assign_attributes resource_params.merge(new_arrival: true)
|
286
|
-
# if @resource.save
|
287
|
-
# redirect_to helper.index_path(current_model_class)
|
288
|
-
# else
|
289
|
-
# render :new
|
290
|
-
# end
|
291
|
-
# end
|
292
|
-
# ```
|
293
|
-
# @param options [Hash] (since 5.2.0) options for
|
294
|
-
# {https://www.rubydoc.info/gems/responders/ActionController/RespondWith#respond_with-instance_method
|
295
|
-
# respond_with}. In addition, options `:params` is supported, see below
|
296
|
-
# @option options [ActionController::Parameters, Hash] :params
|
297
|
-
# permitted parameters for servicer to update the record. _(defaults to: {#resource_params})_
|
298
|
-
# @yield [format] block for
|
299
|
-
# {https://www.rubydoc.info/gems/responders/ActionController/RespondWith#respond_with-instance_method
|
300
|
-
# respond_with}
|
301
|
-
# to customize response behaviour.
|
302
|
-
# @raise [Wallaby::Forbidden] if user has no access
|
303
|
-
def update(options = {}, &block)
|
304
|
-
set_defaults_for :update, options
|
305
|
-
current_authorizer.authorize :update, resource
|
306
|
-
current_servicer.update resource, options.delete(:params)
|
307
|
-
respond_with resource, options, &block
|
308
|
-
end
|
309
|
-
|
310
|
-
alias update! update
|
311
|
-
|
312
|
-
# @note This is a template method that can be overridden by subclasses.
|
313
|
-
# This is a resourceful action to delete the record that user is allowed to.
|
314
|
-
#
|
315
|
-
# It can be customized as below in subclasses:
|
316
|
-
#
|
317
|
-
# ```
|
318
|
-
# def destroy
|
319
|
-
# # do something before the origin action
|
320
|
-
# options = {} # NOTE: see `options` parameter for more details
|
321
|
-
# destroy!(options) do |format| # NOTE: this is better than using `super`
|
322
|
-
# # NOTE: this block is for `respond_with` which works similar to `respond_to`
|
323
|
-
# # customize response behaviour, or do something before the request is rendered
|
324
|
-
# end
|
325
|
-
# end
|
326
|
-
# ```
|
327
|
-
#
|
328
|
-
# Otherwise, it can be replaced completely in subclasses:
|
329
|
-
#
|
330
|
-
# ```
|
331
|
-
# def destroy
|
332
|
-
# # NOTE: `@resource` will be used by the view, please ensure it is assigned, for example:
|
333
|
-
# @resource = Product.find_by_slug params[:id]
|
334
|
-
# @resource.destroy
|
335
|
-
# redirect_to helper.index_path(current_model_class)
|
336
|
-
# end
|
337
|
-
# ```
|
338
|
-
# @param options [Hash] (since 5.2.0) options for
|
339
|
-
# {https://www.rubydoc.info/gems/responders/ActionController/RespondWith#respond_with-instance_method
|
340
|
-
# respond_with}. In addition, options `:params` is supported, see below
|
341
|
-
# @option options [ActionController::Parameters, Hash] :params
|
342
|
-
# permitted parameters for servicer to destroy the record. _(defaults to: {#resource_params})_
|
343
|
-
# @yield [format] block for
|
344
|
-
# {https://www.rubydoc.info/gems/responders/ActionController/RespondWith#respond_with-instance_method
|
345
|
-
# respond_with}
|
346
|
-
# to customize response behaviour.
|
347
|
-
# @raise [Wallaby::Forbidden] if user has no access
|
348
|
-
def destroy(options = {}, &block)
|
349
|
-
set_defaults_for :destroy, options
|
350
|
-
current_authorizer.authorize :destroy, resource
|
351
|
-
current_servicer.destroy resource, options.delete(:params)
|
352
|
-
respond_with resource, options, &block
|
353
|
-
end
|
354
|
-
|
355
|
-
alias destroy! destroy
|
356
|
-
|
357
|
-
# @note This is a template method that can be overridden by subclasses.
|
358
|
-
# To whitelist the params for {#create} and {#update} actions.
|
359
|
-
#
|
360
|
-
# If Wallaby cannot generate the correct strong parameters, it can be replaced, for example:
|
361
|
-
#
|
362
|
-
# ```
|
363
|
-
# def resource_params
|
364
|
-
# params.fetch(:product, {}).permit(:name, :sku)
|
365
|
-
# end
|
366
|
-
# ```
|
367
|
-
# @return [ActionController::Parameters] whitelisted params
|
368
|
-
def resource_params
|
369
|
-
@resource_params ||= current_servicer.permit params, action_name
|
370
|
-
end
|
371
|
-
|
372
|
-
# @!method collection(options = {}, &block)
|
373
|
-
# (see Wallaby::Resourcable#collection)
|
374
|
-
# @see Wallaby::Resourcable#collection
|
375
|
-
alias collection! collection
|
376
|
-
|
377
|
-
# @!method resource(options = {}, &block)
|
378
|
-
# (see Wallaby::Resourcable#resource)
|
379
|
-
# @see Wallaby::Resourcable#resource
|
380
|
-
alias resource! resource
|
10
|
+
class ResourcesController
|
11
|
+
include ResourcesConcern
|
381
12
|
end
|
382
13
|
end
|
data/app/security/ability.rb
CHANGED
@@ -1,140 +1,104 @@
|
|
1
|
-
# Files in the config/locales directory are used for internationalization
|
2
|
-
# and are automatically loaded by Rails. If you want to use locales other
|
3
|
-
# than English, add the necessary files in this directory.
|
4
|
-
#
|
5
|
-
# To use the locales, use `I18n.t`:
|
6
|
-
#
|
7
|
-
# I18n.t 'hello'
|
8
|
-
#
|
9
|
-
# In views, this is aliased to just `t`:
|
10
|
-
#
|
11
|
-
# <%= t('hello') %>
|
12
|
-
#
|
13
|
-
# To use a different locale, set it with `I18n.locale`:
|
14
|
-
#
|
15
|
-
# I18n.locale = :es
|
16
|
-
#
|
17
|
-
# This would use the information in config/locales/es.yml.
|
18
|
-
#
|
19
|
-
# To learn more, please read the Rails Internationalization guide
|
20
|
-
# available at http://guides.rubyonrails.org/i18n.html.
|
21
|
-
|
22
1
|
en:
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
2
|
+
wallaby:
|
3
|
+
labels:
|
4
|
+
count: 'Count: '
|
5
|
+
auto_select_hint: 'Type to select...'
|
6
|
+
upload: 'Upload'
|
7
|
+
empty: 'null'
|
8
|
+
na: 'n/a'
|
9
|
+
edit: 'Edit # %{id}'
|
10
|
+
create: 'Create a %{model}'
|
31
11
|
|
32
|
-
|
33
|
-
|
12
|
+
buttons:
|
13
|
+
save: 'Save'
|
34
14
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
15
|
+
links:
|
16
|
+
new: 'Create %{model}'
|
17
|
+
show: 'Show'
|
18
|
+
edit: 'Edit'
|
19
|
+
delete: 'Delete'
|
20
|
+
cancel: 'Cancel'
|
21
|
+
confirm:
|
22
|
+
delete: 'Please confirm to delete'
|
23
|
+
export: 'Export as %{ext}'
|
44
24
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
25
|
+
http_errors:
|
26
|
+
report_error_html: 'And report the error <a href="https://github.com/reinteractive/wallaby/issues/new" target="_blank">here</a>.'
|
27
|
+
not_implemented: 'Not implemented.'
|
28
|
+
internal_server_error: 'Hope you feel better.'
|
29
|
+
bad_request: 'Your request is not supported.'
|
30
|
+
not_found: 'Not found.'
|
31
|
+
unprocessable_entity: 'Your request cannot be processed.'
|
32
|
+
unauthorized: 'You need to sign in to access this page.'
|
33
|
+
forbidden: 'You need permission to access this page.'
|
54
34
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
35
|
+
json_errors:
|
36
|
+
not_implemented: 'Not implemented.'
|
37
|
+
internal_server_error: 'Internal server error.'
|
38
|
+
bad_request: 'Your request is not supported.'
|
39
|
+
not_found: 'Not found.'
|
40
|
+
unprocessable_entity: 'Your request cannot be processed.'
|
41
|
+
unauthorized: 'You need to sign in to access this page.'
|
42
|
+
forbidden: 'You need permission to access this page.'
|
63
43
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
not_found:
|
70
|
-
collection: 'Records cannot be found. Click + button to add one.'
|
71
|
-
model: 'Model %{model} cannot be found.'
|
72
|
-
resource: 'Record %{resource} cannot be found.'
|
73
|
-
unprocessable_entity:
|
74
|
-
keyword_search: 'Unable to perform keyword search when no text fields can be used.'
|
75
|
-
field_colon_search: 'Unable to perform field colon search for %{invalid_fields}.'
|
76
|
-
model: 'Unable to handle model %{model}.'
|
77
|
-
unauthorized: 'User %{user} is trying to perform %{action} on %{subject}'
|
78
|
-
pundit:
|
44
|
+
errors:
|
45
|
+
invalid:
|
46
|
+
models: '%{models} are invalid models.'
|
47
|
+
inheritance: '%{klass} does not inherit from %{parent}.'
|
48
|
+
type_required: 'Type is required for %{field_name}.'
|
79
49
|
not_found:
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
pages: 'Page Number'
|
50
|
+
collection: 'Records cannot be found. Click + button to add one.'
|
51
|
+
model: 'Model %{model} cannot be found.'
|
52
|
+
resource: 'Record %{resource} cannot be found.'
|
53
|
+
unprocessable_entity:
|
54
|
+
keyword_search: 'Unable to perform keyword search when no text fields can be used.'
|
55
|
+
field_colon_search: 'Unable to perform field colon search for %{invalid_fields}.'
|
56
|
+
model: 'Unable to handle model %{model}.'
|
57
|
+
unauthorized: 'User %{user} is trying to perform %{action} on %{subject}'
|
58
|
+
pundit:
|
59
|
+
not_found:
|
60
|
+
scope_policy: 'Cannot find scope policy for %{scope}.'
|
61
|
+
attributes_for: 'Cannot find attributes for %{subject}.'
|
62
|
+
required: '%{subject} is required.'
|
63
|
+
not_implemented:
|
64
|
+
model_servicer: 'Custom model servicer method `%{method_name}` is not implemented'
|
96
65
|
|
97
|
-
|
98
|
-
|
99
|
-
|
66
|
+
pagination:
|
67
|
+
prev: 'Prev'
|
68
|
+
next: 'Next'
|
69
|
+
from_to: '%{from} to %{to}'
|
70
|
+
of: ' of '
|
71
|
+
total_count: '%{total}'
|
72
|
+
pers: 'Page Size'
|
73
|
+
pages: 'Page Number'
|
100
74
|
|
101
|
-
|
102
|
-
|
75
|
+
filters:
|
76
|
+
title: 'Filters'
|
77
|
+
all: 'All'
|
103
78
|
|
104
|
-
|
105
|
-
|
106
|
-
cidr_html: 'Example: <code>192.168.1.1/24</code> which holds an IPv4 or IPv6 network specification.'
|
107
|
-
circle_html: 'Format: <code><(x, y), r></code> where <i>(x,y)</i> is the center point and <i>r</i> is the radius of the circle.'
|
108
|
-
hstore_html: 'Format: <code>"Key1" => "Value1", "Key2" => "Value2"</code> is used for input and output, includes zero or more <i>key => value</i> pairs separated by commas.'
|
109
|
-
inet_html: 'Example: <code>192.168.1.1/24</code> which holds an IPv4 or IPv6 network specification.'
|
110
|
-
line_html: 'Format: <code>{ A, B, C }</code> which are represented by the linear equation <i>Ax + By + C = 0</i>.'
|
111
|
-
lseg_html: 'Format: <code>[(x1, y1), (x2, y2)]</code> where <i>(x1,y1)</i> and <i>(x2,y2)</i> are the end points of the line segment.'
|
112
|
-
ltree_html: 'Example: <code>Top.Countries.Europe.Russia</code> which is a sequence of zero or more labels separated by dots.'
|
113
|
-
macaddr_html: 'Example: <code>08:00:2b:01:02:03</code> which stores MAC addresses.'
|
114
|
-
path_html: 'Format: <code>((x1, y1) , ... , (xn, yn))</code> where the points are the end points of the line segments comprising the path.'
|
115
|
-
polygon_html: 'Format: <code>((x1, y1) , ... , (xn, yn))</code> where the points are the end points of the line segments comprising the boundary of the polygon.'
|
79
|
+
search:
|
80
|
+
hint: 'Press enter to search.'
|
116
81
|
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
82
|
+
hints:
|
83
|
+
box_html: 'Format: <code>(x1, y1), (x2, y2)</code> where <i>(x1,y1)</i> and <i>(x2,y2)</i> are any two opposite corners of the box.'
|
84
|
+
cidr_html: 'Example: <code>192.168.1.1/24</code> which holds an IPv4 or IPv6 network specification.'
|
85
|
+
circle_html: 'Format: <code><(x, y), r></code> where <i>(x,y)</i> is the center point and <i>r</i> is the radius of the circle.'
|
86
|
+
hstore_html: 'Format: <code>"Key1" => "Value1", "Key2" => "Value2"</code> is used for input and output, includes zero or more <i>key => value</i> pairs separated by commas.'
|
87
|
+
inet_html: 'Example: <code>192.168.1.1/24</code> which holds an IPv4 or IPv6 network specification.'
|
88
|
+
line_html: 'Format: <code>{ A, B, C }</code> which are represented by the linear equation <i>Ax + By + C = 0</i>.'
|
89
|
+
lseg_html: 'Format: <code>[(x1, y1), (x2, y2)]</code> where <i>(x1,y1)</i> and <i>(x2,y2)</i> are the end points of the line segment.'
|
90
|
+
ltree_html: 'Example: <code>Top.Countries.Europe.Russia</code> which is a sequence of zero or more labels separated by dots.'
|
91
|
+
macaddr_html: 'Example: <code>08:00:2b:01:02:03</code> which stores MAC addresses.'
|
92
|
+
path_html: 'Format: <code>((x1, y1) , ... , (xn, yn))</code> where the points are the end points of the line segments comprising the path.'
|
93
|
+
polygon_html: 'Format: <code>((x1, y1) , ... , (xn, yn))</code> where the points are the end points of the line segments comprising the boundary of the polygon.'
|
127
94
|
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
user: 'user-o'
|
139
|
-
v5:
|
140
|
-
no-need: 'no-need'
|
95
|
+
deprecation:
|
96
|
+
authorizer: "[DEPRECATION] `authorizer` will be removed from 5.3.*. Please use `current_authorizer` instead.\n(called from %{from})"
|
97
|
+
current_model_service: "[DEPRECATION] `current_model_service` will be removed from 5.3.*. Please use `current_servicer` instead.\n(called from %{from})"
|
98
|
+
find_filter_name: "[DEPRECATION] `Wallaby::Utils.find_filter_name` will be removed from 5.3.*. Please use `Wallaby::FilterUtils.filter_name_by` instead.\n(called from %{from})"
|
99
|
+
form_type_partial_render: "[DEPRECATION] `form_type_partial_render` will be removed from 5.3.*. Please use `type_render` instead.\n(called from %{from})"
|
100
|
+
index_params: "[DEPRECATION] `index_params` will be removed from 5.3.*.\n(called from %{from})"
|
101
|
+
paginator_of: "[DEPRECATION] `paginator_of` will be removed from 5.3.*. Please use `current_paginator` instead.\n(called from %{from})"
|
102
|
+
resource_paginator_inheirtance: "[DEPRECATION] `Wallaby::ResourcePaginator` will be removed from 5.3.*. Please inherit from `Wallaby::ModelPaginator` instead.\n(called from %{from})"
|
103
|
+
resource_paginator=: "[DEPRECATION] `resource_paginator=` will be removed from 5.3.*. Please use `model_paginator=` instead.\n(called from %{from})"
|
104
|
+
type_partial_render: "[DEPRECATION] `type_partial_render` will be removed from 5.3.*. Please use `type_render` instead.\n(called from %{from})"
|