yummy-guide-generic-administrate 0.4.0 → 0.5.0
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/README.md +40 -1
- data/app/assets/javascripts/yummy_guide_administrate/datetime_input.js +644 -0
- data/app/assets/stylesheets/yummy_guide_administrate/_datetime_input.scss +73 -0
- data/app/assets/stylesheets/yummy_guide_administrate/components.scss +12 -0
- data/app/helpers/yummy_guide/administrate/datetime_input_helper.rb +476 -0
- data/lib/yummy_guide/administrate/engine.rb +1 -0
- data/lib/yummy_guide/administrate/version.rb +1 -1
- data/spec/yummy_guide/administrate/datetime_input_helper_spec.rb +137 -0
- metadata +6 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 82f8a49b6cf64da8e522b0290770f402b7f387ba989d5e38ff0d17232b8a7ff2
|
|
4
|
+
data.tar.gz: '0648859c41c97f9bf5d6a5bef998fca7e8685a2a5b5d617bfbd1830d75d08fa9'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8e7752a04124f92bd2abdbb7d6f5e16284c593ff33166cd9429a202146ea0de5ca35e812c80bf69bb96eb1b1179daec5584ba66fa0c55fd9bc8921c78a072aef
|
|
7
|
+
data.tar.gz: 6d109d78f58cc76f4d125a6027aa28f4d048c0c3233b97b0b5c244edab96757f5c20c078461ca5975b6cf3cc3af5a32030bdd87563de9d38aa11167d31d57060
|
data/README.md
CHANGED
|
@@ -41,11 +41,14 @@ bundle install
|
|
|
41
41
|
- 一覧テーブルの固定列数、リンク生成、action partial 解決を補助する helper
|
|
42
42
|
- `YummyGuide::Administrate::FilterFormHelper`
|
|
43
43
|
- datetime フィルターや checkbox group の組み立てを補助する helper
|
|
44
|
+
- `YummyGuide::Administrate::DatetimeInputHelper`
|
|
45
|
+
- 管理画面フォーム用の date + time 入力 helper
|
|
44
46
|
- 共通 partial / assets
|
|
45
47
|
- collection partial
|
|
46
48
|
- fixed table header partial
|
|
47
49
|
- filter form partial
|
|
48
50
|
- `clipboards.js`
|
|
51
|
+
- `datetime_input.js`
|
|
49
52
|
- `fixed_submit_actions.js`
|
|
50
53
|
- `filter_form.js`
|
|
51
54
|
- `sticky_left_columns.js`
|
|
@@ -97,6 +100,7 @@ class Admin::ApplicationController < Administrate::ApplicationController
|
|
|
97
100
|
include YummyGuide::Administrate::DatetimeFilterParameters
|
|
98
101
|
|
|
99
102
|
helper YummyGuide::Administrate::CollectionHelper
|
|
103
|
+
helper YummyGuide::Administrate::DatetimeInputHelper
|
|
100
104
|
helper YummyGuide::Administrate::FilterFormHelper
|
|
101
105
|
end
|
|
102
106
|
```
|
|
@@ -171,7 +175,8 @@ gem には専用 partial があります。
|
|
|
171
175
|
|
|
172
176
|
この slot を置かない場合でも、JS が table の直前に自動生成します。配置を制御
|
|
173
177
|
したいときだけ明示してください。desktop では LMJ と同じく、`main-content__body--flush`
|
|
174
|
-
と組み合わせることで fixed header のクリップ幅が一覧 body
|
|
178
|
+
と組み合わせることで fixed header のクリップ幅が一覧 body と揃い、一覧 wrapper
|
|
179
|
+
自体には縦スクロールを持たせません。
|
|
175
180
|
|
|
176
181
|
#### 3. 自前の table partial を使う場合
|
|
177
182
|
|
|
@@ -239,6 +244,39 @@ filter form の枠と datetime 入力 partial を組み合わせて利用でき
|
|
|
239
244
|
<% end %>
|
|
240
245
|
```
|
|
241
246
|
|
|
247
|
+
### Datetime input helper
|
|
248
|
+
|
|
249
|
+
通常フォームで日付と時刻を分けた入力 UI を使う場合は、`DatetimeInputHelper`
|
|
250
|
+
を読み込んで `admin_datetime_*` helper を使います。既存の LMJ 互換として、
|
|
251
|
+
helper 名は `admin_` prefix のまま提供しています。
|
|
252
|
+
|
|
253
|
+
```erb
|
|
254
|
+
<%= admin_datetime_field_tag(
|
|
255
|
+
"coupon[expiration_date]",
|
|
256
|
+
@coupon.expiration_date,
|
|
257
|
+
required: true,
|
|
258
|
+
default_current_time: @coupon.new_record?
|
|
259
|
+
) %>
|
|
260
|
+
|
|
261
|
+
<%= admin_split_datetime_field_tag(
|
|
262
|
+
date_name: "coupon[expiration_date_date]",
|
|
263
|
+
hour_name: "coupon[expiration_date_hour]",
|
|
264
|
+
minute_name: "coupon[expiration_date_minute]",
|
|
265
|
+
value: @coupon.expiration_date
|
|
266
|
+
) %>
|
|
267
|
+
|
|
268
|
+
<%= admin_date_and_time_field_tag(
|
|
269
|
+
date_name: "reservation_task[due_date_on]",
|
|
270
|
+
time_name: "reservation_task[due_time]",
|
|
271
|
+
value: @reservation_task.due_at
|
|
272
|
+
) %>
|
|
273
|
+
|
|
274
|
+
<%= admin_time_field_tag("option[valid_from_time]", @option.valid_from_time) %>
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
`datetime_input.js` は visible な date / time 入力と hidden の送信値を同期し、
|
|
278
|
+
不正な日付や時刻の submit を抑止します。
|
|
279
|
+
|
|
242
280
|
controller 側では、必要な filter key を指定して datetime パラメータを正規化します。
|
|
243
281
|
|
|
244
282
|
```ruby
|
|
@@ -261,6 +299,7 @@ end
|
|
|
261
299
|
|
|
262
300
|
```js
|
|
263
301
|
//= require yummy_guide_administrate/clipboards
|
|
302
|
+
//= require yummy_guide_administrate/datetime_input
|
|
264
303
|
//= require yummy_guide_administrate/fixed_submit_actions
|
|
265
304
|
//= require yummy_guide_administrate/filter_form
|
|
266
305
|
//= require yummy_guide_administrate/sticky_left_columns
|