rails_admin 3.0.0.beta2 → 3.0.0.rc

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.
Files changed (250) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -2
  3. data/Rakefile +11 -0
  4. data/app/assets/javascripts/rails_admin.js +4 -4
  5. data/app/assets/stylesheets/rails_admin.scss +31 -0
  6. data/app/controllers/rails_admin/application_controller.rb +1 -1
  7. data/app/controllers/rails_admin/main_controller.rb +10 -18
  8. data/app/helpers/rails_admin/application_helper.rb +12 -13
  9. data/app/helpers/rails_admin/form_builder.rb +3 -3
  10. data/app/helpers/rails_admin/main_helper.rb +1 -1
  11. data/app/views/kaminari/ra-twitter-bootstrap/_gap.html.erb +2 -2
  12. data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.erb +4 -4
  13. data/app/views/kaminari/ra-twitter-bootstrap/_page.html.erb +4 -4
  14. data/app/views/kaminari/ra-twitter-bootstrap/_paginator.html.erb +12 -10
  15. data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.erb +4 -4
  16. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_next_page.html.erb +4 -4
  17. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_paginator.html.erb +6 -4
  18. data/app/views/kaminari/ra-twitter-bootstrap/without_count/_prev_page.html.erb +4 -4
  19. data/app/views/layouts/rails_admin/_navigation.html.erb +12 -16
  20. data/app/views/layouts/rails_admin/_secondary_navigation.html.erb +8 -8
  21. data/app/views/layouts/rails_admin/_sidebar_navigation.html.erb +1 -5
  22. data/app/views/layouts/rails_admin/application.html.erb +4 -7
  23. data/app/views/layouts/rails_admin/{pjax.html.erb → content.html.erb} +7 -5
  24. data/app/views/layouts/rails_admin/modal.js.erb +1 -1
  25. data/app/views/rails_admin/main/_dashboard_history.html.erb +1 -1
  26. data/app/views/rails_admin/main/_delete_notice.html.erb +2 -2
  27. data/app/views/rails_admin/main/_form_boolean.html.erb +6 -8
  28. data/app/views/rails_admin/main/_form_colorpicker.html.erb +5 -1
  29. data/app/views/rails_admin/main/_form_datetime.html.erb +8 -7
  30. data/app/views/rails_admin/main/_form_enumeration.html.erb +5 -1
  31. data/app/views/rails_admin/main/_form_file_upload.html.erb +1 -1
  32. data/app/views/rails_admin/main/_form_filtering_multiselect.html.erb +14 -14
  33. data/app/views/rails_admin/main/_form_filtering_select.html.erb +16 -21
  34. data/app/views/rails_admin/main/_form_multiple_file_upload.html.erb +1 -1
  35. data/app/views/rails_admin/main/_form_nested_many.html.erb +4 -4
  36. data/app/views/rails_admin/main/_form_nested_one.html.erb +4 -4
  37. data/app/views/rails_admin/main/_form_polymorphic_association.html.erb +11 -6
  38. data/app/views/rails_admin/main/_submit_buttons.html.erb +8 -8
  39. data/app/views/rails_admin/main/bulk_delete.html.erb +1 -1
  40. data/app/views/rails_admin/main/dashboard.html.erb +4 -4
  41. data/app/views/rails_admin/main/delete.html.erb +1 -1
  42. data/app/views/rails_admin/main/edit.html.erb +1 -1
  43. data/app/views/rails_admin/main/export.html.erb +35 -32
  44. data/app/views/rails_admin/main/history.html.erb +16 -14
  45. data/app/views/rails_admin/main/index.html.erb +38 -35
  46. data/app/views/rails_admin/main/new.html.erb +1 -1
  47. data/config/locales/rails_admin.en.yml +0 -1
  48. data/lib/generators/rails_admin/install_generator.rb +0 -1
  49. data/lib/generators/rails_admin/templates/webpack.config.js +0 -3
  50. data/lib/rails_admin/adapters/active_record/object_extension.rb +1 -1
  51. data/lib/rails_admin/adapters/active_record/property.rb +1 -1
  52. data/lib/rails_admin/adapters/active_record.rb +7 -3
  53. data/lib/rails_admin/adapters/mongoid/property.rb +3 -3
  54. data/lib/rails_admin/adapters/mongoid.rb +2 -2
  55. data/lib/rails_admin/config/actions/base.rb +1 -6
  56. data/lib/rails_admin/config/actions/dashboard.rb +13 -9
  57. data/lib/rails_admin/config/actions/delete.rb +4 -0
  58. data/lib/rails_admin/config/actions/edit.rb +4 -0
  59. data/lib/rails_admin/config/actions/new.rb +5 -0
  60. data/lib/rails_admin/config/actions/show_in_app.rb +0 -4
  61. data/lib/rails_admin/config/fields/association.rb +6 -1
  62. data/lib/rails_admin/config/fields/base.rb +1 -1
  63. data/lib/rails_admin/config/fields/types/action_text.rb +1 -1
  64. data/lib/rails_admin/config/fields/types/date.rb +7 -0
  65. data/lib/rails_admin/config/fields/types/datetime.rb +9 -4
  66. data/lib/rails_admin/config/fields/types/has_many_association.rb +4 -0
  67. data/lib/rails_admin/config/fields/types/has_one_association.rb +4 -0
  68. data/lib/rails_admin/config/fields/types/time.rb +9 -0
  69. data/lib/rails_admin/config/has_fields.rb +4 -0
  70. data/lib/rails_admin/config/model.rb +8 -0
  71. data/lib/rails_admin/config/sections/list.rb +4 -4
  72. data/lib/rails_admin/config.rb +4 -1
  73. data/lib/rails_admin/engine.rb +2 -5
  74. data/lib/rails_admin/support/datetime.rb +50 -53
  75. data/lib/rails_admin/support/esmodule_preprocessor.rb +2 -1
  76. data/lib/rails_admin/version.rb +1 -1
  77. data/package.json +7 -5
  78. data/src/rails_admin/base.js +3 -6
  79. data/src/rails_admin/filter-box.js +36 -37
  80. data/src/rails_admin/filtering-select.js +3 -6
  81. data/src/rails_admin/i18n.js +0 -3
  82. data/src/rails_admin/nested-form-hooks.js +16 -8
  83. data/src/rails_admin/remote-form.js +18 -15
  84. data/src/rails_admin/styles/base/theming.scss +80 -155
  85. data/src/rails_admin/styles/base/variables.scss +2 -0
  86. data/src/rails_admin/styles/base.scss +8 -45
  87. data/src/rails_admin/styles/filtering-multiselect.scss +2 -2
  88. data/src/rails_admin/styles/filtering-select.scss +1 -1
  89. data/src/rails_admin/styles/widgets.scss +1 -10
  90. data/src/rails_admin/ui.js +4 -54
  91. data/src/rails_admin/widgets.js +38 -48
  92. data/vendor/assets/javascripts/rails_admin/bootstrap.js +5046 -0
  93. data/vendor/assets/javascripts/rails_admin/flatpickr-with-locales.js +10683 -0
  94. data/vendor/assets/javascripts/rails_admin/popper.js +1974 -0
  95. data/vendor/assets/stylesheets/rails_admin/bootstrap/_accordion.scss +118 -0
  96. data/vendor/assets/stylesheets/rails_admin/bootstrap/_alert.scss +57 -0
  97. data/vendor/assets/stylesheets/rails_admin/bootstrap/_badge.scss +29 -0
  98. data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumb.scss +28 -0
  99. data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-group.scss +139 -0
  100. data/vendor/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +64 -110
  101. data/vendor/assets/stylesheets/rails_admin/bootstrap/_card.scss +216 -0
  102. data/vendor/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +162 -176
  103. data/vendor/assets/stylesheets/rails_admin/bootstrap/_close.scss +31 -26
  104. data/vendor/assets/stylesheets/rails_admin/bootstrap/_containers.scss +41 -0
  105. data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdown.scss +240 -0
  106. data/vendor/assets/stylesheets/rails_admin/bootstrap/_forms.scss +9 -538
  107. data/vendor/assets/stylesheets/rails_admin/bootstrap/_functions.scss +302 -0
  108. data/vendor/assets/stylesheets/rails_admin/bootstrap/_grid.scss +18 -69
  109. data/vendor/assets/stylesheets/rails_admin/bootstrap/_helpers.scss +9 -0
  110. data/vendor/assets/stylesheets/rails_admin/bootstrap/_images.scss +42 -0
  111. data/vendor/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +127 -84
  112. data/vendor/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +26 -22
  113. data/vendor/assets/stylesheets/rails_admin/bootstrap/_modal.scss +209 -0
  114. data/vendor/assets/stylesheets/rails_admin/bootstrap/_nav.scss +139 -0
  115. data/vendor/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +218 -542
  116. data/vendor/assets/stylesheets/rails_admin/bootstrap/_offcanvas.scss +83 -0
  117. data/vendor/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +46 -70
  118. data/vendor/assets/stylesheets/rails_admin/bootstrap/_placeholders.scss +51 -0
  119. data/vendor/assets/stylesheets/rails_admin/bootstrap/_popover.scss +158 -0
  120. data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress.scss +48 -0
  121. data/vendor/assets/stylesheets/rails_admin/bootstrap/_reboot.scss +625 -0
  122. data/vendor/assets/stylesheets/rails_admin/bootstrap/_root.scss +54 -0
  123. data/vendor/assets/stylesheets/rails_admin/bootstrap/_spinners.scss +69 -0
  124. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tables.scss +100 -178
  125. data/vendor/assets/stylesheets/rails_admin/bootstrap/_toasts.scss +51 -0
  126. data/vendor/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +97 -77
  127. data/vendor/assets/stylesheets/rails_admin/bootstrap/_transitions.scss +27 -0
  128. data/vendor/assets/stylesheets/rails_admin/bootstrap/_type.scss +54 -254
  129. data/vendor/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +628 -55
  130. data/vendor/assets/stylesheets/rails_admin/bootstrap/_variables.scss +1572 -781
  131. data/vendor/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +38 -35
  132. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_floating-labels.scss +63 -0
  133. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-check.scss +152 -0
  134. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-control.scss +219 -0
  135. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-range.scss +91 -0
  136. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-select.scss +72 -0
  137. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_form-text.scss +11 -0
  138. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_input-group.scss +121 -0
  139. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_labels.scss +36 -0
  140. data/vendor/assets/stylesheets/rails_admin/bootstrap/forms/_validation.scss +12 -0
  141. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_clearfix.scss +3 -0
  142. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_colored-links.scss +12 -0
  143. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_position.scss +30 -0
  144. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_ratio.scss +26 -0
  145. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stacks.scss +15 -0
  146. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_stretched-link.scss +15 -0
  147. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_text-truncation.scss +7 -0
  148. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_visually-hidden.scss +8 -0
  149. data/vendor/assets/stylesheets/rails_admin/bootstrap/helpers/_vr.scss +8 -0
  150. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alert.scss +11 -0
  151. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_backdrop.scss +14 -0
  152. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +72 -12
  153. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_box-shadow.scss +18 -0
  154. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_breakpoints.scss +127 -0
  155. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +113 -30
  156. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_caret.scss +64 -0
  157. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +5 -18
  158. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_color-scheme.scss +7 -0
  159. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_container.scss +9 -0
  160. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_deprecate.scss +10 -0
  161. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +130 -70
  162. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +27 -38
  163. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +127 -98
  164. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +6 -24
  165. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +13 -20
  166. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_lists.scss +7 -0
  167. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +24 -16
  168. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-text.scss +17 -0
  169. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +1 -1
  170. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-variants.scss +21 -0
  171. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/{_text-overflow.scss → _text-truncate.scss} +2 -2
  172. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_transition.scss +26 -0
  173. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_utilities.scss +89 -0
  174. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_visually-hidden.scss +29 -0
  175. data/vendor/assets/stylesheets/rails_admin/bootstrap/utilities/_api.scss +47 -0
  176. data/vendor/assets/stylesheets/rails_admin/bootstrap/vendor/_rfs.scss +354 -0
  177. data/vendor/assets/stylesheets/rails_admin/flatpickr.css +791 -0
  178. metadata +80 -91
  179. data/app/assets/stylesheets/rails_admin.scss.erb +0 -76
  180. data/lib/generators/rails_admin/templates/environment.js +0 -6
  181. data/src/rails_admin/styles/themes/cerulean/mixins.scss +0 -0
  182. data/src/rails_admin/styles/themes/cerulean/theming.scss +0 -135
  183. data/src/rails_admin/styles/themes/cerulean/variables.scss +0 -830
  184. data/src/rails_admin/styles/themes/default/mixins.scss +0 -8
  185. data/src/rails_admin/styles/themes/default/theming.scss +0 -11
  186. data/src/rails_admin/styles/themes/default/variables.scss +0 -12
  187. data/src/rails_admin/vendor/jquery.pjax.js +0 -899
  188. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-affix.js +0 -164
  189. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-alert.js +0 -95
  190. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-button.js +0 -125
  191. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-carousel.js +0 -246
  192. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-collapse.js +0 -212
  193. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-dropdown.js +0 -165
  194. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-modal.js +0 -358
  195. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-popover.js +0 -123
  196. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-scrollspy.js +0 -172
  197. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tab.js +0 -155
  198. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-tooltip.js +0 -677
  199. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-transition.js +0 -59
  200. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap-typeahead.js +0 -1782
  201. data/vendor/assets/javascripts/rails_admin/bootstrap/bootstrap.js +0 -13
  202. data/vendor/assets/javascripts/rails_admin/bootstrap-datetimepicker.js +0 -2611
  203. data/vendor/assets/javascripts/rails_admin/jquery.pjax.js +0 -898
  204. data/vendor/assets/javascripts/rails_admin/moment-with-locales.js +0 -18085
  205. data/vendor/assets/stylesheets/rails_admin/_bootstrap-datetimepicker.scss +0 -343
  206. data/vendor/assets/stylesheets/rails_admin/bootstrap/_alerts.scss +0 -68
  207. data/vendor/assets/stylesheets/rails_admin/bootstrap/_badges.scss +0 -57
  208. data/vendor/assets/stylesheets/rails_admin/bootstrap/_breadcrumbs.scss +0 -26
  209. data/vendor/assets/stylesheets/rails_admin/bootstrap/_button-groups.scss +0 -240
  210. data/vendor/assets/stylesheets/rails_admin/bootstrap/_code.scss +0 -68
  211. data/vendor/assets/stylesheets/rails_admin/bootstrap/_component-animations.scss +0 -35
  212. data/vendor/assets/stylesheets/rails_admin/bootstrap/_dropdowns.scss +0 -215
  213. data/vendor/assets/stylesheets/rails_admin/bootstrap/_glyphicons.scss +0 -237
  214. data/vendor/assets/stylesheets/rails_admin/bootstrap/_input-groups.scss +0 -166
  215. data/vendor/assets/stylesheets/rails_admin/bootstrap/_jumbotron.scss +0 -48
  216. data/vendor/assets/stylesheets/rails_admin/bootstrap/_labels.scss +0 -66
  217. data/vendor/assets/stylesheets/rails_admin/bootstrap/_media.scss +0 -56
  218. data/vendor/assets/stylesheets/rails_admin/bootstrap/_modals.scss +0 -150
  219. data/vendor/assets/stylesheets/rails_admin/bootstrap/_navs.scss +0 -242
  220. data/vendor/assets/stylesheets/rails_admin/bootstrap/_normalize.scss +0 -425
  221. data/vendor/assets/stylesheets/rails_admin/bootstrap/_pager.scss +0 -55
  222. data/vendor/assets/stylesheets/rails_admin/bootstrap/_panels.scss +0 -243
  223. data/vendor/assets/stylesheets/rails_admin/bootstrap/_popovers.scss +0 -133
  224. data/vendor/assets/stylesheets/rails_admin/bootstrap/_print.scss +0 -101
  225. data/vendor/assets/stylesheets/rails_admin/bootstrap/_progress-bars.scss +0 -105
  226. data/vendor/assets/stylesheets/rails_admin/bootstrap/_responsive-embed.scss +0 -34
  227. data/vendor/assets/stylesheets/rails_admin/bootstrap/_responsive-utilities.scss +0 -174
  228. data/vendor/assets/stylesheets/rails_admin/bootstrap/_scaffolding.scss +0 -150
  229. data/vendor/assets/stylesheets/rails_admin/bootstrap/_theme.scss +0 -258
  230. data/vendor/assets/stylesheets/rails_admin/bootstrap/_thumbnails.scss +0 -38
  231. data/vendor/assets/stylesheets/rails_admin/bootstrap/_wells.scss +0 -29
  232. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_alerts.scss +0 -14
  233. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_background-variant.scss +0 -11
  234. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_center-block.scss +0 -7
  235. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_grid-framework.scss +0 -81
  236. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_hide-text.scss +0 -21
  237. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_labels.scss +0 -12
  238. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-divider.scss +0 -10
  239. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-vertical-align.scss +0 -9
  240. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_opacity.scss +0 -8
  241. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_panels.scss +0 -24
  242. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_progress-bar.scss +0 -10
  243. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-filter.scss +0 -8
  244. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_responsive-visibility.scss +0 -21
  245. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_size.scss +0 -10
  246. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_tab-focus.scss +0 -9
  247. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_table-row.scss +0 -28
  248. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_text-emphasis.scss +0 -11
  249. data/vendor/assets/stylesheets/rails_admin/bootstrap/mixins/_vendor-prefixes.scss +0 -219
  250. data/vendor/assets/stylesheets/rails_admin/bootstrap-datetimepicker-build.scss +0 -16
@@ -1,63 +1,60 @@
1
1
  module RailsAdmin
2
2
  module Support
3
3
  class Datetime
4
- # Ruby format options as a key and momentjs format options as a value
5
- MOMENTJS_TRANSLATIONS = {
6
- '%A' => 'dddd', # The full weekday name ("Sunday")
7
- '%a' => 'ddd', # The abbreviated weekday name ("Sun")
8
- '%B' => 'MMMM', # The full month name ("January")
9
- '%b' => 'MMM', # The abbreviated month name ("Jan")
10
- '%D' => 'MM/DD/YY', # American date format mm/dd/yy
11
- '%d' => 'DD', # Day of the month (01..31)
12
- '%-d' => 'D', # Day of the month (1..31)
13
- '%F' => 'YYYY-MM-DD', # ISO 8601 date format
14
- '%G' => 'GGGG', # ISO Week Year (2020)
15
- '%g' => 'GG', # ISO Week Year (20)
16
- '%H' => 'HH', # Hour of the day, 24-hour clock (00..23)
17
- '%-H' => 'H', # Hour of the day, 24-hour clock (0..23)
18
- '%h' => 'MMM', # Same as %b
19
- '%I' => 'hh', # Hour of the day, 12-hour clock (01..12)
20
- '%-I' => 'h', # Hour of the day, 12-hour clock (1..12)
21
- '%j' => 'DDDD', # Day of Year (001..366)
22
- '%L' => 'SSS', # Millisecond of the second (000..999)
23
- '%M' => 'mm', # Minute of the hour (00..59)
24
- '%-M' => 'm', # Minute of the hour (0..59)
25
- '%m' => 'MM', # Month of the year (01..12)
26
- '%-m' => 'M', # Month of the year (1..12)
27
- '%N' => 'SSSSSSSSS', # Fractional seconds 9 digits
28
- '%9N' => 'SSSSSSSSS', # Fractional seconds 9 digits
29
- '%6N' => 'SSSSSS', # Fractional seconds 6 digits
30
- '%3N' => 'SSS', # Fractional seconds 3 digits
31
- '%P' => 'a', # Meridian indicator ('am' or 'pm')
32
- '%p' => 'A', # Meridian indicator ('AM' or 'PM')
33
- '%Q' => 'x', # Number of milliseconds since 1970-01-01 00:00:00 UTC.
34
- '%R' => 'HH:mm', # 24-hour time (%H:%M)
35
- '%r' => 'hh:mm:ss A', # 12-hour time (%I:%M:%S %p)
36
- '%S' => 'ss', # Second of the minute (00..60)
37
- '%-S' => 's', # Second of the minute (0..60)
38
- '%s' => 'X', # Number of seconds since 1970-01-01 00:00:00 UTC.
39
- '%T' => 'HH:mm:ss', # 24-hour time (%H:%M:%S)
40
- '%U' => 'ww', # Week number of the year. The week starts with Sunday. (00..53)
41
- '%u' => 'E', # Day of the week (Monday is 1, 1..7)
42
- '%W' => 'WW', # Week number of the year. The week starts with Monday. (00..53)
43
- '%w' => 'e', # Day of the week (Sunday is 0, 0..6)
44
- '%X' => 'HH:mm:ss', # Same as %T
45
- '%x' => 'MM/DD/YY', # Same as %D
46
- '%Y' => 'YYYY', # Year with century
47
- '%y' => 'YY', # Year without a century (00..99)
48
- '%Z' => 'Z', # Equivalent to %:z (e.g. +09:00)
49
- '%z' => 'ZZ', # Time zone as hour and minute offset from UTC (e.g. +0900)
50
- '%:z' => 'Z', # Time zone as hour and minute offset from UTC with a colon (e.g. +09:00),
4
+ # Ruby format options as a key and flatpickr format options as a value
5
+ FLATPICKR_TRANSLATIONS = {
6
+ '%A' => 'l', # The full weekday name ("Sunday")
7
+ '%a' => 'D', # The abbreviated weekday name ("Sun")
8
+ '%B' => 'F', # The full month name ("January")
9
+ '%b' => 'M', # The abbreviated month name ("Jan")
10
+ '%D' => 'm/d/y', # American date format mm/dd/yy
11
+ '%d' => 'd', # Day of the month (01..31)
12
+ '%-d' => 'j', # Day of the month (1..31)
13
+ '%e' => 'j', # Day of the month (1..31)
14
+ '%F' => 'Y-m-d', # ISO 8601 date format
15
+ '%H' => 'H', # Hour of the day, 24-hour clock (00..23)
16
+ '%-H' => 'H', # Hour of the day, 24-hour clock (0..23)
17
+ '%h' => 'M', # Same as %b
18
+ '%I' => 'G', # Hour of the day, 12-hour clock (01..12)
19
+ '%-I' => 'h', # Hour of the day, 12-hour clock (1..12)
20
+ '%k' => 'H', # Hour of the day, 24-hour clock (0..23)
21
+ '%l' => 'h', # Hour of the day, 12-hour clock (1..12)
22
+ '%M' => 'i', # Minute of the hour (00..59)
23
+ '%-M' => 'i', # Minute of the hour (00..59)
24
+ '%m' => 'm', # Month of the year (01..12)
25
+ '%-m' => 'n', # Month of the year (1..12)
26
+ '%P' => 'K', # Meridian indicator ('am' or 'pm')
27
+ '%p' => 'K', # Meridian indicator ('AM' or 'PM')
28
+ '%R' => 'H:i', # 24-hour time (%H:%M)
29
+ '%r' => 'G:i:S K', # 12-hour time (%I:%M:%S %p)
30
+ '%S' => 'S', # Second of the minute (00..60)
31
+ '%-S' => 's', # Second of the minute (0..60)
32
+ '%s' => 'U', # Number of seconds since 1970-01-01 00:00:00 UTC.
33
+ '%T' => 'H:i:S', # 24-hour time (%H:%M:%S)
34
+ '%U' => 'W', # Week number of the year. The week starts with Sunday. (00..53)
35
+ '%w' => 'w', # Day of the week (Sunday is 0, 0..6)
36
+ '%X' => 'H:i:S', # Same as %T
37
+ '%x' => 'm/d/y', # Same as %D
38
+ '%Y' => 'Y', # Year with century
39
+ '%y' => 'y', # Year without a century (00..99)
51
40
  '%%' => '%',
52
41
  }.freeze
53
42
 
54
43
  class << self
55
- def to_momentjs(strftime_format)
56
- strftime_format.gsub(/(?<!%)(?<![-0-9:])\w+/, '[\0]').gsub(/%([-0-9:]?\w)/) do |match|
57
- MOMENTJS_TRANSLATIONS[match] or raise <<-MSG.gsub(/^\s{14}/, '')
58
- Unsupported strftime directive '#{match}' was found. Please consider explicitly setting momentjs_format instance option for the field.
59
- field(:name_of_field) { momentjs_format '...' }
60
- MSG
44
+ def to_flatpickr_format(strftime_format)
45
+ strftime_format.gsub(/(?<!%)(?<![-0-9:])\w/, '\\\\\0').gsub(/%([-0-9:]?\w)/) do |match|
46
+ # Timezone can't be handled by frontend, the server's one is always used
47
+ case match
48
+ when '%Z', '%:z' # Time zone as hour and minute offset from UTC with a colon (e.g. +09:00)
49
+ Time.zone.formatted_offset
50
+ when '%z' # Time zone as hour and minute offset from UTC (e.g. +0900)
51
+ Time.zone.formatted_offset(false)
52
+ else
53
+ FLATPICKR_TRANSLATIONS[match] or raise <<-MSG.gsub(/^\s{16}/, '')
54
+ Unsupported strftime directive '#{match}' was found. Please consider explicitly setting flatpickr_format instance option for the field.
55
+ field(:name_of_field) { flatpickr_format '...' }
56
+ MSG
57
+ end
61
58
  end
62
59
  end
63
60
  end
@@ -13,7 +13,6 @@ module RailsAdmin
13
13
  def call(input)
14
14
  data = input[:data]
15
15
 
16
- # only process files under rails_admin/src
17
16
  if input[:filename].start_with? RailsAdmin::Engine.root.join('src').to_s
18
17
  data.gsub!(/^(import .+)$/) { "// #{Regexp.last_match(1)}" }
19
18
  data.gsub!(/^(export +default +{)$/) do
@@ -24,6 +23,8 @@ module RailsAdmin
24
23
  raise "Unable to preprocess file: #{input[:filename]}"
25
24
  end
26
25
  end
26
+ elsif input[:filename] =~ %r{turbo-rails.+/turbo\.js$}
27
+ data.gsub!(/^(export .+)$/) { "// #{Regexp.last_match(1)}" }
27
28
  end
28
29
 
29
30
  {data: data}
@@ -3,7 +3,7 @@ module RailsAdmin
3
3
  MAJOR = 3
4
4
  MINOR = 0
5
5
  PATCH = 0
6
- PRE = 'beta2'.freeze
6
+ PRE = 'rc'.freeze
7
7
 
8
8
  class << self
9
9
  # @return [String]
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rails_admin",
3
- "version": "3.0.0-beta",
3
+ "version": "3.0.0-rc",
4
4
  "description": "RailsAdmin is a Rails engine that provides an easy-to-use interface for managing your data.",
5
5
  "homepage": "https://github.com/railsadminteam/rails_admin",
6
6
  "license": "MIT",
@@ -14,13 +14,15 @@
14
14
  "format": "prettier -w ."
15
15
  },
16
16
  "dependencies": {
17
+ "@babel/runtime": "^7.16.7",
17
18
  "@fortawesome/fontawesome-free": "^5.15.4",
19
+ "@hotwired/turbo-rails": "^7.1.0",
20
+ "@popperjs/core": "^2.11.0",
18
21
  "@rails/ujs": "^6.1.4-1",
19
- "bootstrap-sass": "3.4.1",
20
- "eonasdan-bootstrap-datetimepicker": "^4.17.49",
22
+ "bootstrap": "^5.1.3",
23
+ "flatpickr": "^4.6.9",
21
24
  "jquery": "^3.6.0",
22
- "jquery-ui": "^1.12.1",
23
- "moment": "^2.29.1"
25
+ "jquery-ui": "^1.12.1"
24
26
  },
25
27
  "devDependencies": {
26
28
  "prettier": "^2.4.1"
@@ -1,11 +1,9 @@
1
1
  import Rails from "@rails/ujs";
2
+ import "@hotwired/turbo-rails";
2
3
  import jQuery from "jquery";
3
- import moment from "moment";
4
- import "./vendor/jquery.pjax";
5
4
  import "./vendor/jquery_nested_form";
6
- import "bootstrap-sass";
7
- import "moment/min/locales.js";
8
- import "eonasdan-bootstrap-datetimepicker";
5
+ import "bootstrap";
6
+ import "flatpickr/dist/flatpickr";
9
7
 
10
8
  import "./filter-box";
11
9
  import "./filtering-multiselect";
@@ -18,4 +16,3 @@ import "./widgets";
18
16
 
19
17
  Rails.start();
20
18
  window.$ = window.jQuery = jQuery;
21
- window.moment = moment;
@@ -1,6 +1,6 @@
1
1
  import jQuery from "jquery";
2
- import moment from "moment";
3
2
  import I18n from "./i18n";
3
+ import flatpickr from "flatpickr";
4
4
 
5
5
  (function ($) {
6
6
  var filters;
@@ -23,7 +23,7 @@ import I18n from "./i18n";
23
23
 
24
24
  switch (field_type) {
25
25
  case "boolean":
26
- control = $('<select class="input-sm form-control"></select>')
26
+ control = $('<select class="form-control form-control-sm"></select>')
27
27
  .prop("name", value_name)
28
28
  .append('<option value="_discard">...</option>')
29
29
  .append(
@@ -55,7 +55,7 @@ import I18n from "./i18n";
55
55
  control =
56
56
  control ||
57
57
  $(
58
- '<select class="switch-additional-fieldsets input-sm form-control"></select>'
58
+ '<select class="switch-additional-fieldsets form-control form-control-sm"></select>'
59
59
  )
60
60
  .prop("name", operator_name)
61
61
  .append(
@@ -110,18 +110,17 @@ import I18n from "./i18n";
110
110
  .addClass(index == 0 ? "default" : "between")
111
111
  .css("display", visible ? "inline-block" : "none")
112
112
  .html(
113
- $('<input type="hidden" />')
113
+ $(
114
+ '<input class="input-sm form-control form-control-sm" type="text" />'
115
+ )
116
+ .addClass(field_type == "date" ? "date" : "datetime")
114
117
  .prop("name", value_name + "[]")
115
118
  .prop("value", field_value[index] || "")
116
- .add(
117
- $('<input class="input-sm form-control" type="text" />')
118
- .addClass(field_type == "date" ? "date" : "datetime")
119
- .prop(
120
- "size",
121
- field_type == "date" || field_type == "time" ? 20 : 25
122
- )
123
- .prop("placeholder", placeholder)
119
+ .prop(
120
+ "size",
121
+ field_type == "date" || field_type == "time" ? 20 : 25
124
122
  )
123
+ .prop("placeholder", placeholder)
125
124
  );
126
125
  }
127
126
  );
@@ -129,7 +128,7 @@ import I18n from "./i18n";
129
128
  case "enum":
130
129
  var multiple_values = field_value instanceof Array ? true : false;
131
130
  control = $(
132
- '<select class="select-single input-sm form-control"></select>'
131
+ '<select class="select-single form-control form-control-sm"></select>'
133
132
  )
134
133
  .css("display", multiple_values ? "none" : "inline-block")
135
134
  .prop("name", multiple_values ? undefined : value_name)
@@ -151,7 +150,7 @@ import I18n from "./i18n";
151
150
  .append(select_options)
152
151
  .add(
153
152
  $(
154
- '<select multiple="multiple" class="select-multiple input-sm form-control"></select>'
153
+ '<select multiple="multiple" class="select-multiple form-control form-control-sm"></select>'
155
154
  )
156
155
  .css("display", multiple_values ? "inline-block" : "none")
157
156
  .prop("name", multiple_values ? value_name + "[]" : undefined)
@@ -171,7 +170,7 @@ import I18n from "./i18n";
171
170
  case "text":
172
171
  case "belongs_to_association":
173
172
  control = $(
174
- '<select class="switch-additional-fieldsets input-sm form-control"></select>'
173
+ '<select class="switch-additional-fieldsets form-control form-control-sm"></select>'
175
174
  )
176
175
  .prop("value", field_operator)
177
176
  .prop("name", operator_name)
@@ -223,7 +222,7 @@ import I18n from "./i18n";
223
222
  ]);
224
223
  }
225
224
  additional_control = $(
226
- '<input class="additional-fieldset input-sm form-control" type="text" />'
225
+ '<input class="additional-fieldset form-control form-control-sm" type="text" />'
227
226
  )
228
227
  .css(
229
228
  "display",
@@ -238,7 +237,7 @@ import I18n from "./i18n";
238
237
  case "decimal":
239
238
  case "float":
240
239
  control = $(
241
- '<select class="switch-additional-fieldsets input-sm form-control"></select>'
240
+ '<select class="switch-additional-fieldsets form-control form-control-sm"></select>'
242
241
  )
243
242
  .prop("name", operator_name)
244
243
  .append(
@@ -267,7 +266,7 @@ import I18n from "./i18n";
267
266
  ]);
268
267
  }
269
268
  additional_control = $(
270
- '<input class="additional-fieldset default input-sm form-control" type="text" />'
269
+ '<input class="additional-fieldset default form-control form-control-sm" type="text" />'
271
270
  )
272
271
  .css(
273
272
  "display",
@@ -280,7 +279,7 @@ import I18n from "./i18n";
280
279
  .prop("value", field_value[0] || "")
281
280
  .add(
282
281
  $(
283
- '<input placeholder="-∞" class="additional-fieldset between input-sm form-control" />'
282
+ '<input placeholder="-∞" class="additional-fieldset between form-control form-control-sm" />'
284
283
  )
285
284
  .css(
286
285
  "display",
@@ -292,7 +291,7 @@ import I18n from "./i18n";
292
291
  )
293
292
  .add(
294
293
  $(
295
- '<input placeholder="∞" class="additional-fieldset between input-sm form-control" />'
294
+ '<input placeholder="∞" class="additional-fieldset between form-control form-control-sm" />'
296
295
  )
297
296
  .css(
298
297
  "display",
@@ -304,7 +303,9 @@ import I18n from "./i18n";
304
303
  );
305
304
  break;
306
305
  default:
307
- control = $('<input type="text" class="input-sm form-control" />')
306
+ control = $(
307
+ '<input type="text" class="form-control form-control-sm" />'
308
+ )
308
309
  .prop("name", value_name)
309
310
  .prop("value", field_value);
310
311
  break;
@@ -313,9 +314,9 @@ import I18n from "./i18n";
313
314
  var filterContainerId = field_name + "-" + index + "-filter-container";
314
315
  $("p#" + filterContainerId).remove();
315
316
 
316
- var $content = $("<p>")
317
+ var $content = $("<div>")
317
318
  .attr("id", filterContainerId)
318
- .addClass("filter form-search")
319
+ .addClass("filter d-inline-block my-1")
319
320
  .append(
320
321
  $(
321
322
  '<button type="button" class="btn btn-info btn-sm delete"></button>'
@@ -331,19 +332,17 @@ import I18n from "./i18n";
331
332
  $("#filters_box").append($content);
332
333
 
333
334
  $content.find(".date, .datetime").each(function () {
334
- $(this).datetimepicker({
335
- date: moment($(this).siblings("[type=hidden]").val()),
336
- locale: I18n.locale,
337
- showTodayButton: true,
338
- format: options["datetimepicker_format"],
339
- });
340
- $(this).on("dp.change", function (e) {
341
- if (e.date) {
342
- $(this)
343
- .siblings("[type=hidden]")
344
- .val(e.date.format("YYYY-MM-DD[T]HH:mm:ss"));
345
- }
346
- });
335
+ flatpickr(
336
+ this,
337
+ $.extend(
338
+ {
339
+ dateFormat: "Y-m-dTH:i:S",
340
+ altInput: true,
341
+ locale: I18n.locale,
342
+ },
343
+ options["datetimepicker_options"]
344
+ )
345
+ );
347
346
  });
348
347
 
349
348
  $("hr.filters_box:hidden").show("slow");
@@ -361,7 +360,7 @@ import I18n from "./i18n";
361
360
  select_options: $(this).data("field-options"),
362
361
  required: $(this).data("field-required"),
363
362
  index: $.now().toString().slice(6, 11),
364
- datetimepicker_format: $(this).data("field-datetimepicker-format"),
363
+ datetimepicker_options: $(this).data("field-datetimepicker-options"),
365
364
  });
366
365
  });
367
366
 
@@ -157,9 +157,7 @@ import I18n from "./i18n";
157
157
  _buttonField: function () {
158
158
  return $(
159
159
  '<span class="input-group-btn">' +
160
- '<label class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-expanded="false" title="Show All Items" role="button">' +
161
- '<span class="caret"></span>' +
162
- '<span class="ui-button-text">&nbsp;</span>' +
160
+ '<label class="btn btn-info dropdown-toggle" title="Show All Items" role="button">' +
163
161
  "</label>" +
164
162
  "</span>"
165
163
  );
@@ -206,9 +204,8 @@ import I18n from "./i18n";
206
204
 
207
205
  _inputGroup: function (inputFor) {
208
206
  return $("<div>")
209
- .addClass("input-group filtering-select col-sm-2")
210
- .attr("data-input-for", inputFor)
211
- .css("float", this.element.css("float"));
207
+ .addClass("input-group filtering-select")
208
+ .attr("data-input-for", inputFor);
212
209
  },
213
210
 
214
211
  _initAutocomplete: function () {
@@ -1,12 +1,9 @@
1
- import moment from "moment";
2
-
3
1
  export default {
4
2
  locale: null,
5
3
  translations: null,
6
4
  init(locale, translations) {
7
5
  this.locale = locale;
8
6
  this.translations = translations;
9
- moment.locale(this.locale);
10
7
  if (typeof this.translations === "string") {
11
8
  this.translations = JSON.parse(this.translations);
12
9
  }
@@ -1,4 +1,5 @@
1
1
  import jQuery from "jquery";
2
+ import * as bootstrap from "bootstrap/dist/js/bootstrap.esm";
2
3
 
3
4
  (function ($) {
4
5
  $(document).ready(function () {
@@ -19,12 +20,15 @@ import jQuery from "jquery";
19
20
  field = content.field
20
21
  .addClass("tab-pane")
21
22
  .attr("id", "unique-id-" + new Date().getTime());
22
- new_tab = $("<li></li>").append(
23
- $("<a></a>")
24
- .attr("data-toggle", "tab")
25
- .attr("href", "#" + field.attr("id"))
26
- .text(field.children(".object-infos").data("object-label"))
27
- );
23
+ new_tab = $("<li></li>")
24
+ .append(
25
+ $("<a></a>")
26
+ .addClass("nav-link")
27
+ .attr("data-bs-toggle", "tab")
28
+ .attr("href", "#" + field.attr("id"))
29
+ .text(field.children(".object-infos").data("object-label"))
30
+ )
31
+ .addClass("nav-item");
28
32
  parent_group = field.closest(".control-group");
29
33
  controls = parent_group.children(".controls");
30
34
  one_to_one = controls.data("nestedone") !== void 0;
@@ -36,7 +40,9 @@ import jQuery from "jquery";
36
40
  const event = new CustomEvent("rails_admin.dom_ready", { detail: field });
37
41
  document.dispatchEvent(event);
38
42
 
39
- new_tab.children("a").tab("show");
43
+ new_tab.children("a").each(function (index, element) {
44
+ bootstrap.Tab.getOrCreateInstance(element).show();
45
+ });
40
46
  if (!one_to_one) {
41
47
  nav.filter(":hidden").show("slow");
42
48
  }
@@ -76,7 +82,9 @@ import jQuery from "jquery";
76
82
  toggler = controls.find(".toggler");
77
83
  (current_li.next().length ? current_li.next() : current_li.prev())
78
84
  .children("a:first")
79
- .tab("show");
85
+ .each(function (index, element) {
86
+ bootstrap.Tab.getOrCreateInstance(element).show();
87
+ });
80
88
  current_li.remove();
81
89
  if (nav.children().length === 0) {
82
90
  nav.filter(":visible").hide("slow");
@@ -1,6 +1,7 @@
1
1
  import Rails from "@rails/ujs";
2
2
  import jQuery from "jquery";
3
3
  import "jquery-ui/ui/widget";
4
+ import * as bootstrap from "bootstrap/dist/js/bootstrap.esm";
4
5
 
5
6
  (function ($) {
6
7
  $.widget("ra.remoteForm", {
@@ -84,7 +85,9 @@ import "jquery-ui/ui/widget";
84
85
  .find(".cancel-action")
85
86
  .unbind()
86
87
  .click(function () {
87
- dialog.modal("hide");
88
+ dialog.each(function (index, element) {
89
+ bootstrap.Modal.getInstance(element).hide();
90
+ });
88
91
  return false;
89
92
  })
90
93
  .html(cancelButtonText);
@@ -127,7 +130,6 @@ import "jquery-ui/ui/widget";
127
130
  }
128
131
  } else {
129
132
  // multi-select input
130
- var input = widget.element.find(".ra-filtering-select-input");
131
133
  var multiselect = widget.element.find(".ra-multiselect");
132
134
  if (multiselect.find("option[value=" + json.id + "]").length) {
133
135
  // replace
@@ -144,7 +146,9 @@ import "jquery-ui/ui/widget";
144
146
  }
145
147
  }
146
148
  widget._trigger("success");
147
- dialog.modal("hide");
149
+ dialog.each(function (index, element) {
150
+ bootstrap.Modal.getInstance(element).hide();
151
+ });
148
152
  } else {
149
153
  dialog.find(".modal-body").html(data.responseText);
150
154
  widget._bindFormEvents();
@@ -157,11 +161,11 @@ import "jquery-ui/ui/widget";
157
161
  if (!widget.dialog) {
158
162
  widget.dialog = $(
159
163
  '<div id="modal" class="modal fade">\
160
- <div class="modal-dialog">\
164
+ <div class="modal-dialog modal-lg">\
161
165
  <div class="modal-content">\
162
166
  <div class="modal-header">\
163
- <a href="#" class="close" data-dismiss="modal">&times;</a>\
164
167
  <h3 class="modal-header-title">...</h3>\
168
+ <button type="button" class="btn-close" data-bs-dismiss="modal"></button>\
165
169
  </div>\
166
170
  <div class="modal-body">\
167
171
  ...\
@@ -173,16 +177,15 @@ import "jquery-ui/ui/widget";
173
177
  </div>\
174
178
  </div>\
175
179
  </div>'
176
- )
177
- .modal({
178
- keyboard: true,
179
- backdrop: true,
180
- show: true,
181
- })
182
- .on("hidden.bs.modal", function () {
183
- widget.dialog.remove(); // We don't want to reuse closed modals
184
- widget.dialog = null;
185
- });
180
+ ).on("hidden.bs.modal", function () {
181
+ widget.dialog.remove(); // We don't want to reuse closed modals
182
+ widget.dialog = null;
183
+ });
184
+ new bootstrap.Modal(widget.dialog[0], {
185
+ keyboard: true,
186
+ backdrop: true,
187
+ show: true,
188
+ }).show();
186
189
  }
187
190
  return this.dialog;
188
191
  },