comfortable_mexican_sofa 2.0.9 → 2.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (192) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/comfy/vendor/bootstrap.min.js +3 -3
  3. data/app/assets/stylesheets/comfy/admin/cms/application.sass +1 -2
  4. data/app/assets/stylesheets/comfy/admin/cms/base.sass +12 -13
  5. data/app/assets/stylesheets/comfy/vendor/bootstrap/_alert.scss +3 -1
  6. data/app/assets/stylesheets/comfy/vendor/bootstrap/_button-group.scss +31 -72
  7. data/app/assets/stylesheets/comfy/vendor/bootstrap/_buttons.scss +26 -19
  8. data/app/assets/stylesheets/comfy/vendor/bootstrap/_card.scss +23 -12
  9. data/app/assets/stylesheets/comfy/vendor/bootstrap/_carousel.scss +2 -2
  10. data/app/assets/stylesheets/comfy/vendor/bootstrap/_close.scss +6 -1
  11. data/app/assets/stylesheets/comfy/vendor/bootstrap/_code.scss +4 -12
  12. data/app/assets/stylesheets/comfy/vendor/bootstrap/_custom-forms.scss +124 -84
  13. data/app/assets/stylesheets/comfy/vendor/bootstrap/_dropdown.scss +30 -2
  14. data/app/assets/stylesheets/comfy/vendor/bootstrap/_forms.scss +46 -71
  15. data/app/assets/stylesheets/comfy/vendor/bootstrap/_functions.scss +4 -4
  16. data/app/assets/stylesheets/comfy/vendor/bootstrap/_images.scss +0 -1
  17. data/app/assets/stylesheets/comfy/vendor/bootstrap/_input-group.scss +99 -126
  18. data/app/assets/stylesheets/comfy/vendor/bootstrap/_list-group.scss +2 -1
  19. data/app/assets/stylesheets/comfy/vendor/bootstrap/_modal.scss +24 -9
  20. data/app/assets/stylesheets/comfy/vendor/bootstrap/_nav.scss +2 -2
  21. data/app/assets/stylesheets/comfy/vendor/bootstrap/_navbar.scss +8 -3
  22. data/app/assets/stylesheets/comfy/vendor/bootstrap/_pagination.scss +32 -19
  23. data/app/assets/stylesheets/comfy/vendor/bootstrap/_popover.scss +106 -117
  24. data/app/assets/stylesheets/comfy/vendor/bootstrap/_print.scss +17 -3
  25. data/app/assets/stylesheets/comfy/vendor/bootstrap/_progress.scss +4 -1
  26. data/app/assets/stylesheets/comfy/vendor/bootstrap/_reboot.scss +3 -25
  27. data/app/assets/stylesheets/comfy/vendor/bootstrap/_tables.scss +1 -1
  28. data/app/assets/stylesheets/comfy/vendor/bootstrap/_tooltip.scss +65 -57
  29. data/app/assets/stylesheets/comfy/vendor/bootstrap/_type.scss +2 -2
  30. data/app/assets/stylesheets/comfy/vendor/bootstrap/_variables.scss +174 -108
  31. data/app/assets/stylesheets/comfy/vendor/bootstrap/bootstrap-grid.scss +32 -0
  32. data/app/assets/stylesheets/comfy/vendor/bootstrap/bootstrap-reboot.scss +12 -0
  33. data/app/assets/stylesheets/comfy/vendor/bootstrap/bootstrap.scss +42 -0
  34. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_background-variant.scss +2 -1
  35. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_breakpoints.scss +11 -7
  36. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_buttons.scss +37 -22
  37. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_caret.scss +30 -0
  38. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_forms.scss +48 -19
  39. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_grid-framework.scss +5 -7
  40. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_hover.scss +24 -46
  41. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_list-group.scss +10 -13
  42. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_screen-reader.scss +1 -1
  43. data/app/assets/stylesheets/comfy/vendor/bootstrap/mixins/_text-hide.scss +1 -0
  44. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_borders.scss +6 -1
  45. data/app/assets/stylesheets/comfy/vendor/bootstrap/utilities/_display.scss +10 -28
  46. data/app/controllers/comfy/admin/cms/files_controller.rb +6 -7
  47. data/app/helpers/comfy/admin/cms_helper.rb +5 -4
  48. data/app/models/concerns/comfy/cms/with_categories.rb +20 -9
  49. data/app/views/comfy/admin/cms/categories/_edit.html.haml +3 -3
  50. data/app/views/comfy/admin/cms/categories/_form.html.haml +3 -9
  51. data/app/views/comfy/admin/cms/categories/_index.html.haml +2 -2
  52. data/app/views/comfy/admin/cms/categories/_show.html.haml +4 -3
  53. data/app/views/comfy/admin/cms/categories/create.js.erb +1 -1
  54. data/app/views/comfy/admin/cms/files/_form.html.haml +11 -12
  55. data/app/views/comfy/admin/cms/files/edit.html.haml +2 -2
  56. data/app/views/comfy/admin/cms/files/new.html.haml +2 -2
  57. data/app/views/comfy/admin/cms/fragments/_form_fragment_attachments.html.haml +7 -5
  58. data/app/views/comfy/admin/cms/fragments/_form_fragments.html.haml +1 -1
  59. data/app/views/comfy/admin/cms/layouts/_form.html.haml +3 -2
  60. data/app/views/comfy/admin/cms/layouts/edit.html.haml +1 -1
  61. data/app/views/comfy/admin/cms/layouts/new.html.haml +2 -2
  62. data/app/views/comfy/admin/cms/pages/_form.html.haml +3 -5
  63. data/app/views/comfy/admin/cms/pages/edit.html.haml +1 -1
  64. data/app/views/comfy/admin/cms/pages/new.html.haml +1 -1
  65. data/app/views/comfy/admin/cms/revisions/show.html.haml +2 -2
  66. data/app/views/comfy/admin/cms/sites/_form.html.haml +4 -4
  67. data/app/views/comfy/admin/cms/sites/edit.html.haml +1 -1
  68. data/app/views/comfy/admin/cms/sites/new.html.haml +2 -2
  69. data/app/views/comfy/admin/cms/snippets/_form.html.haml +2 -2
  70. data/app/views/comfy/admin/cms/snippets/edit.html.haml +1 -1
  71. data/app/views/comfy/admin/cms/snippets/new.html.haml +2 -2
  72. data/app/views/comfy/admin/cms/translations/_form.html.haml +5 -7
  73. data/app/views/comfy/admin/cms/translations/edit.html.haml +1 -1
  74. data/app/views/comfy/admin/cms/translations/new.html.haml +2 -2
  75. data/comfortable_mexican_sofa.gemspec +6 -3
  76. data/config/locales/fr.yml +33 -33
  77. data/lib/comfortable_mexican_sofa/content/tags/file.rb +1 -1
  78. data/lib/comfortable_mexican_sofa/content/tags/files.rb +1 -1
  79. data/lib/comfortable_mexican_sofa/form_builder.rb +10 -15
  80. data/lib/comfortable_mexican_sofa/seeds.rb +2 -5
  81. data/lib/comfortable_mexican_sofa/version.rb +1 -1
  82. metadata +9 -116
  83. data/app/assets/stylesheets/comfy/vendor/_bootstrap.scss +0 -42
  84. data/doc/preview.jpg +0 -0
  85. data/test/controllers/comfy/admin/cms/base_controller_test.rb +0 -18
  86. data/test/controllers/comfy/admin/cms/categories_controller_test.rb +0 -74
  87. data/test/controllers/comfy/admin/cms/files_controller_test.rb +0 -242
  88. data/test/controllers/comfy/admin/cms/layouts_controller_test.rb +0 -137
  89. data/test/controllers/comfy/admin/cms/pages_controller_test.rb +0 -580
  90. data/test/controllers/comfy/admin/cms/revisions/layout_controller_test.rb +0 -62
  91. data/test/controllers/comfy/admin/cms/revisions/page_controller_test.rb +0 -87
  92. data/test/controllers/comfy/admin/cms/revisions/snippet_controller_test.rb +0 -60
  93. data/test/controllers/comfy/admin/cms/revisions/translation_controller_test.rb +0 -68
  94. data/test/controllers/comfy/admin/cms/sites_controller_test.rb +0 -106
  95. data/test/controllers/comfy/admin/cms/snippets_controller_test.rb +0 -156
  96. data/test/controllers/comfy/admin/cms/translations_controller_test.rb +0 -182
  97. data/test/controllers/comfy/cms/assets_controller_test.rb +0 -61
  98. data/test/controllers/comfy/cms/content_controller_test.rb +0 -249
  99. data/test/fixtures/active_storage/attachments.yml +0 -9
  100. data/test/fixtures/active_storage/blobs.yml +0 -13
  101. data/test/fixtures/comfy/cms/categories.yml +0 -4
  102. data/test/fixtures/comfy/cms/categorizations.yml +0 -3
  103. data/test/fixtures/comfy/cms/files.yml +0 -5
  104. data/test/fixtures/comfy/cms/fragments.yml +0 -25
  105. data/test/fixtures/comfy/cms/layouts.yml +0 -34
  106. data/test/fixtures/comfy/cms/pages.yml +0 -24
  107. data/test/fixtures/comfy/cms/revisions.yml +0 -29
  108. data/test/fixtures/comfy/cms/sites.yml +0 -5
  109. data/test/fixtures/comfy/cms/snippets.yml +0 -6
  110. data/test/fixtures/comfy/cms/translations.yml +0 -7
  111. data/test/fixtures/files/data.zip +0 -0
  112. data/test/fixtures/files/document.pdf +0 -0
  113. data/test/fixtures/files/image.gif +0 -0
  114. data/test/fixtures/files/image.jpg +0 -0
  115. data/test/fixtures/generators/cms/application.rb +0 -7
  116. data/test/fixtures/generators/cms/routes.rb +0 -5
  117. data/test/fixtures/generators/scaffold/controller.rb +0 -62
  118. data/test/fixtures/generators/scaffold/migration.rb +0 -9
  119. data/test/fixtures/generators/scaffold/model.rb +0 -21
  120. data/test/fixtures/generators/scaffold/routes.rb +0 -6
  121. data/test/fixtures/generators/scaffold/tests/controller.rb +0 -111
  122. data/test/fixtures/generators/scaffold/tests/fixture +0 -2
  123. data/test/fixtures/generators/scaffold/tests/model.rb +0 -24
  124. data/test/fixtures/generators/scaffold/views/_form.haml +0 -5
  125. data/test/fixtures/generators/scaffold/views/edit.haml +0 -5
  126. data/test/fixtures/generators/scaffold/views/index.haml +0 -21
  127. data/test/fixtures/generators/scaffold/views/new.haml +0 -5
  128. data/test/fixtures/generators/scaffold/views/show.haml +0 -4
  129. data/test/fixtures/views/_nav_hook.html.erb +0 -1
  130. data/test/fixtures/views/_nav_hook_2.html.erb +0 -1
  131. data/test/fixtures/views/render_test/_test.html.erb +0 -1
  132. data/test/fixtures/views/render_test/new.html.erb +0 -1
  133. data/test/fixtures/views/render_test/render_layout.html.erb +0 -1
  134. data/test/gemfiles/5.2.gemfile +0 -19
  135. data/test/generators/cms_assets_generator_test.rb +0 -14
  136. data/test/generators/cms_controllers_generator_test.rb +0 -14
  137. data/test/generators/cms_generator_test.rb +0 -26
  138. data/test/generators/cms_models_generator_test.rb +0 -14
  139. data/test/generators/cms_views_generator_test.rb +0 -14
  140. data/test/generators/scaffold_generator_test.rb +0 -32
  141. data/test/helpers/cms_helper_test.rb +0 -106
  142. data/test/integration/access_control_test.rb +0 -179
  143. data/test/integration/i18n_test.rb +0 -38
  144. data/test/integration/meta_variables_test.rb +0 -27
  145. data/test/integration/render_cms_test.rb +0 -255
  146. data/test/integration/routing_test.rb +0 -19
  147. data/test/integration/seeds_test.rb +0 -75
  148. data/test/integration/sites_test.rb +0 -107
  149. data/test/integration/view_hooks_test.rb +0 -47
  150. data/test/lib/configuration_test.rb +0 -38
  151. data/test/lib/content/block_test.rb +0 -26
  152. data/test/lib/content/params_parser_test.rb +0 -126
  153. data/test/lib/content/renderer_test.rb +0 -276
  154. data/test/lib/content/tag_test.rb +0 -58
  155. data/test/lib/content/tags/asset_test.rb +0 -104
  156. data/test/lib/content/tags/checkbox_test.rb +0 -21
  157. data/test/lib/content/tags/date_test.rb +0 -21
  158. data/test/lib/content/tags/datetime_test.rb +0 -21
  159. data/test/lib/content/tags/file_link_test.rb +0 -91
  160. data/test/lib/content/tags/file_test.rb +0 -69
  161. data/test/lib/content/tags/files_test.rb +0 -52
  162. data/test/lib/content/tags/fragment_test.rb +0 -68
  163. data/test/lib/content/tags/helper_test.rb +0 -62
  164. data/test/lib/content/tags/markdown_test.rb +0 -37
  165. data/test/lib/content/tags/number_test.rb +0 -14
  166. data/test/lib/content/tags/partial_test.rb +0 -65
  167. data/test/lib/content/tags/snippet_test.rb +0 -37
  168. data/test/lib/content/tags/template_test.rb +0 -51
  169. data/test/lib/content/tags/text_test.rb +0 -14
  170. data/test/lib/content/tags/textarea_test.rb +0 -14
  171. data/test/lib/content/tags/wysiwyg_test.rb +0 -14
  172. data/test/lib/revisions_test.rb +0 -222
  173. data/test/lib/seeds/files_test.rb +0 -97
  174. data/test/lib/seeds/layouts_test.rb +0 -156
  175. data/test/lib/seeds/pages_test.rb +0 -230
  176. data/test/lib/seeds/snippets_test.rb +0 -99
  177. data/test/lib/seeds_test.rb +0 -51
  178. data/test/models/categorization_test.rb +0 -76
  179. data/test/models/category_test.rb +0 -39
  180. data/test/models/file_test.rb +0 -43
  181. data/test/models/fragment_test.rb +0 -132
  182. data/test/models/layout_test.rb +0 -194
  183. data/test/models/page_test.rb +0 -575
  184. data/test/models/site_test.rb +0 -190
  185. data/test/models/snippet_test.rb +0 -56
  186. data/test/models/translation_test.rb +0 -67
  187. data/test/system/layouts_frontend_test.rb +0 -15
  188. data/test/system/pages_frontend_test.rb +0 -15
  189. data/test/system/sites_frontend_test.rb +0 -11
  190. data/test/system/snippets_frontend_test.rb +0 -15
  191. data/test/tasks/cms_seeds_test.rb +0 -34
  192. data/test/test_helper.rb +0 -201
@@ -1,61 +1,39 @@
1
1
  // stylelint-disable indentation
2
+
3
+ // Hover mixin and `$enable-hover-media-query` are deprecated.
4
+ //
5
+ // Origally added during our alphas and maintained during betas, this mixin was
6
+ // designed to prevent `:hover` stickiness on iOS—an issue where hover styles
7
+ // would persist after initial touch.
8
+ //
9
+ // For backward compatibility, we've kept these mixins and updated them to
10
+ // always return their regular psuedo-classes instead of a shimmed media query.
11
+ //
12
+ // Issue: https://github.com/twbs/bootstrap/issues/25195
13
+
2
14
  @mixin hover {
3
- // TODO: re-enable along with mq4-hover-shim
4
- // @if $enable-hover-media-query {
5
- // // See Media Queries Level 4: https://drafts.csswg.org/mediaqueries/#hover
6
- // // Currently shimmed by https://github.com/twbs/mq4-hover-shim
7
- // @media (hover: hover) {
8
- // &:hover { @content }
9
- // }
10
- // }
11
- // @else {
12
- &:hover { @content; }
13
- // }
15
+ &:hover { @content; }
14
16
  }
15
17
 
16
-
17
18
  @mixin hover-focus {
18
- @if $enable-hover-media-query {
19
- &:focus {
20
- @content;
21
- }
22
- @include hover { @content; }
23
- } @else {
24
- &:focus,
25
- &:hover {
26
- @content;
27
- }
19
+ &:hover,
20
+ &:focus {
21
+ @content;
28
22
  }
29
23
  }
30
24
 
31
25
  @mixin plain-hover-focus {
32
- @if $enable-hover-media-query {
33
- &,
34
- &:focus {
35
- @content;
36
- }
37
- @include hover { @content; }
38
- } @else {
39
- &,
40
- &:focus,
41
- &:hover {
42
- @content;
43
- }
26
+ &,
27
+ &:hover,
28
+ &:focus {
29
+ @content;
44
30
  }
45
31
  }
46
32
 
47
33
  @mixin hover-focus-active {
48
- @if $enable-hover-media-query {
49
- &:focus,
50
- &:active {
51
- @content;
52
- }
53
- @include hover { @content; }
54
- } @else {
55
- &:focus,
56
- &:active,
57
- &:hover {
58
- @content;
59
- }
34
+ &:hover,
35
+ &:focus,
36
+ &:active {
37
+ @content;
60
38
  }
61
39
  }
@@ -4,21 +4,18 @@
4
4
  .list-group-item-#{$state} {
5
5
  color: $color;
6
6
  background-color: $background;
7
- }
8
-
9
- a.list-group-item-#{$state},
10
- button.list-group-item-#{$state} {
11
- color: $color;
12
7
 
13
- @include hover-focus {
14
- color: $color;
15
- background-color: darken($background, 5%);
16
- }
8
+ &.list-group-item-action {
9
+ @include hover-focus {
10
+ color: $color;
11
+ background-color: darken($background, 5%);
12
+ }
17
13
 
18
- &.active {
19
- color: #fff;
20
- background-color: $color;
21
- border-color: $color;
14
+ &.active {
15
+ color: #fff;
16
+ background-color: $color;
17
+ border-color: $color;
18
+ }
22
19
  }
23
20
  }
24
21
  }
@@ -9,7 +9,7 @@
9
9
  height: 1px;
10
10
  padding: 0;
11
11
  overflow: hidden;
12
- clip: rect(0,0,0,0);
12
+ clip: rect(0, 0, 0, 0);
13
13
  white-space: nowrap;
14
14
  clip-path: inset(50%);
15
15
  border: 0;
@@ -1,5 +1,6 @@
1
1
  // CSS image replacement
2
2
  @mixin text-hide() {
3
+ // stylelint-disable-next-line font-family-no-missing-generic-family-keyword
3
4
  font: 0/0 a;
4
5
  color: transparent;
5
6
  text-shadow: none;
@@ -4,7 +4,12 @@
4
4
  // Border
5
5
  //
6
6
 
7
- .border { border: $border-width solid $border-color !important; }
7
+ .border { border: $border-width solid $border-color !important; }
8
+ .border-top { border-top: $border-width solid $border-color !important; }
9
+ .border-right { border-right: $border-width solid $border-color !important; }
10
+ .border-bottom { border-bottom: $border-width solid $border-color !important; }
11
+ .border-left { border-left: $border-width solid $border-color !important; }
12
+
8
13
  .border-0 { border: 0 !important; }
9
14
  .border-top-0 { border-top: 0 !important; }
10
15
  .border-right-0 { border-right: 0 !important; }
@@ -25,32 +25,14 @@
25
25
  // Utilities for toggling `display` in print
26
26
  //
27
27
 
28
- .d-print-block {
29
- display: none !important;
30
-
31
- @media print {
32
- display: block !important;
33
- }
34
- }
35
-
36
- .d-print-inline {
37
- display: none !important;
38
-
39
- @media print {
40
- display: inline !important;
41
- }
42
- }
43
-
44
- .d-print-inline-block {
45
- display: none !important;
46
-
47
- @media print {
48
- display: inline-block !important;
49
- }
50
- }
51
-
52
- .d-print-none {
53
- @media print {
54
- display: none !important;
55
- }
28
+ @media print {
29
+ .d-print-none { display: none !important; }
30
+ .d-print-inline { display: inline !important; }
31
+ .d-print-inline-block { display: inline-block !important; }
32
+ .d-print-block { display: block !important; }
33
+ .d-print-table { display: table !important; }
34
+ .d-print-table-row { display: table-row !important; }
35
+ .d-print-table-cell { display: table-cell !important; }
36
+ .d-print-flex { display: flex !important; }
37
+ .d-print-inline-flex { display: inline-flex !important; }
56
38
  }
@@ -50,18 +50,17 @@ class Comfy::Admin::Cms::FilesController < Comfy::Admin::Cms::BaseController
50
50
  end
51
51
 
52
52
  def create
53
- if params[:category]
54
- ids = @site.categories.of_type("Comfy::Cms::File")
55
- .where(label: params[:category])
56
- .each_with_object({}) { |c, h| h[c.id] = 1 }
53
+ categories_scope = @site.categories.of_type("Comfy::Cms::File")
54
+
55
+ if params[:categories]
56
+ ids = categories_scope.where(label: params[:categories]).pluck(:id)
57
57
  @file.category_ids = ids
58
58
  end
59
59
 
60
60
  # Automatically tagging upload if it's done through redactor
61
61
  if params[:source] == "redactor"
62
- category = @site.categories.of_type("Comfy::Cms::File").find_or_create_by(label: "wysiwyg")
63
- @file.category_ids ||= {}
64
- @file.category_ids[category.id] = 1
62
+ category = categories_scope.find_or_create_by(label: "wysiwyg")
63
+ @file.category_ids = [category.id]
65
64
  end
66
65
 
67
66
  @file.save!
@@ -3,10 +3,11 @@ module Comfy
3
3
  module CmsHelper
4
4
 
5
5
  # Wrapper around ComfortableMexicanSofa::FormBuilder
6
- def comfy_form_for(record, options = {}, &block)
7
- options[:builder] = ComfortableMexicanSofa::FormBuilder
8
- options[:layout] ||= :horizontal
9
- bootstrap_form_for(record, options, &block)
6
+ def comfy_form_with(**options, &block)
7
+ form_options = options.merge(builder: ComfortableMexicanSofa::FormBuilder)
8
+ form_options[:bootstrap] = { layout: :horizontal }
9
+ form_options[:local] = true
10
+ bootstrap_form_with(**form_options, &block)
10
11
  end
11
12
 
12
13
  def comfy_admin_partial(path, params = {})
@@ -11,7 +11,7 @@ module Comfy::Cms::WithCategories
11
11
  through: :categorizations,
12
12
  class_name: "Comfy::Cms::Category"
13
13
 
14
- attr_accessor :category_ids
14
+ attr_writer :category_ids
15
15
 
16
16
  after_save :sync_categories
17
17
 
@@ -24,17 +24,28 @@ module Comfy::Cms::WithCategories
24
24
  }
25
25
  end
26
26
 
27
+ def category_ids
28
+ @category_ids ||= categories.pluck(:id)
29
+ end
30
+
27
31
  def sync_categories
28
- (category_ids || {}).each do |category_id, flag|
29
- case flag.to_i
30
- when 1
31
- if (category = Comfy::Cms::Category.find_by_id(category_id))
32
- category.categorizations.create(categorized: self)
33
- end
34
- when 0
35
- categorizations.where(category_id: category_id).destroy_all
32
+ return unless category_ids.is_a?(Array)
33
+
34
+ scope = Comfy::Cms::Category.of_type(self.class.to_s)
35
+ existing_ids = scope.pluck(:id)
36
+
37
+ ids_to_add = category_ids.map(&:to_i)
38
+
39
+ # adding categorizations
40
+ ids_to_add.each do |id|
41
+ if (category = scope.find_by_id(id))
42
+ category.categorizations.create(categorized: self)
36
43
  end
37
44
  end
45
+
46
+ # removing categorizations
47
+ ids_to_remove = existing_ids - ids_to_add
48
+ categorizations.where(category_id: ids_to_remove).destroy_all
38
49
  end
39
50
 
40
51
  end
@@ -1,7 +1,7 @@
1
1
  - url = comfy_admin_cms_site_category_path(@site, category)
2
- = form_for @category, as: :category, url: url, remote: true, html: {id: dom_id(category)} do |form|
2
+ = form_with model: @category, scope: :category, url: url, html: {class: "edit-category", id: dom_id(category)} do |form|
3
3
  .input-group
4
- = form.text_field :label, class: "form-control form-control-sm"
4
+ = form.text_field :label, class: "form-control form-control-sm", id: nil
5
5
  .input-group-btn
6
- %button.btn.btn-primary.btn-sm
6
+ %button.btn.btn-primary.btn-sm{aria: {label: "Update Category"}}
7
7
  %i.fas.fa-fw.fa-check
@@ -1,11 +1,5 @@
1
1
  - object = form.object
2
2
  - if (categories = @site.categories.of_type(object.class.to_s)).present?
3
- = form.form_group label: {text: t('.label')}, class: "categories" do
4
- - categories.each do |category|
5
- - name = "#{object.class.to_s.demodulize.underscore.downcase}[category_ids][#{category.id}]"
6
- = hidden_field_tag name, 0, id: nil
7
- .form-check.form-check-inline
8
- %label.form-check-label
9
- - name = "#{object.class.to_s.demodulize.underscore.downcase}[category_ids][#{category.id}]"
10
- = check_box_tag name, 1, object.categories.member?(category), id: nil, class: 'form-check-input'
11
- = category.label
3
+ - options = {bootstrap: {check_inline: true, label: {text: t(".label"), class: "pt-0"}}}
4
+ = form.collection_check_boxes :category_ids, categories, :id, :label, options
5
+
@@ -19,9 +19,9 @@
19
19
  = form_for :category, url: url, remote: true, html: {id: "new-category"} do |form|
20
20
  = form.hidden_field :categorized_type, value: type
21
21
  .input-group
22
- = form.text_field :label, placeholder: t('.add_placeholder'), class: 'form-control form-control-sm'
22
+ = form.text_field :label, placeholder: t('.add_placeholder'), class: 'form-control form-control-sm', id: nil
23
23
  .input-group-btn
24
- %button#cat-add-button.btn.btn-primary.btn-sm
24
+ %button.btn.btn-primary.btn-sm{aria: {label: "Create Category"}}
25
25
  %i.fas.fa-fw.fa-plus
26
26
 
27
27
  %button.toggle-cat-edit.btn.btn-light.btn-sm.btn-block
@@ -6,9 +6,10 @@
6
6
  - if read
7
7
  - active_class = active ? "active" : nil
8
8
  - categories = active ? categories.reject{|c| c == category.label} : categories << category.label
9
- = link_to category.label, {categories: categories}, class: "btn btn-sm btn-light btn-block text-left text-truncate #{active_class}"
9
+ - url = "?#{{categories: categories}.to_query}"
10
+ = link_to category.label, url, class: "btn btn-sm btn-light btn-block text-left text-truncate #{active_class}"
10
11
  - else
11
12
  .btn-group.d-flex
12
13
  = link_to category.label, edit_comfy_admin_cms_site_category_path(@site, category), remote: true, class: "btn btn-sm btn-light w-100 text-left text-truncate"
13
- = link_to comfy_admin_cms_site_category_path(@site, category), method: :delete, remote: true, data: {confirm: t('.are_you_sure')}, class: 'btn btn-sm btn-danger' do
14
- %i.fas.fa-fw.fa-times
14
+ = link_to comfy_admin_cms_site_category_path(@site, category), method: :delete, remote: true, data: {confirm: t('.are_you_sure')}, class: 'btn btn-sm btn-danger', aria: {label: "Delete Category"} do
15
+ %i.fas.fa-fw.fa-times
@@ -4,4 +4,4 @@ $('.categories-widget .editable .categories').append(
4
4
  $('.categories-widget .read .categories').append(
5
5
  '<%= escape_javascript(render "show", category: @category, read: true) %>'
6
6
  );
7
- $('.categories-widget .editable form#new-category input#category_label').val('');
7
+ $('.categories-widget .editable form#new-category input').val('');
@@ -3,16 +3,13 @@
3
3
  = form.text_field :label
4
4
  = form.file_field :file
5
5
 
6
- // TODO replace with form_group when it's fixed: https://github.com/bootstrap-ruby/rails-bootstrap-forms/issues/353
7
6
  - unless @file.new_record?
8
- .form-group.row
9
- .col-sm-2.text-lg-right
10
- = t('.current_file')
11
- .col-sm-10
12
- - if @file.attachment.image?
13
- .file-image
14
- = image_tag @file.attachment
15
- = link_to @file.attachment.filename, @file.attachment, target: '_blank'
7
+
8
+ = form.form_group bootstrap: {label: {text: t('.current_file')}}do
9
+ - if @file.attachment.image?
10
+ .file-image
11
+ = image_tag @file.attachment
12
+ = link_to @file.attachment.filename, @file.attachment, target: '_blank'
16
13
 
17
14
  = form.text_area :description
18
15
 
@@ -21,7 +18,9 @@
21
18
  = comfy_admin_partial 'comfy/admin/cms/partials/file_form_after', form: form
22
19
 
23
20
  = form.form_actions do
24
- = form.submit t(@file.new_record?? '.create' : '.update'), class: 'btn btn-primary'
21
+ = submit_tag t(@file.new_record? ? ".create" : ".update"), class: "btn btn-primary"
22
+
25
23
  - unless @file.new_record?
26
- = link_to t('.delete'), comfy_admin_cms_site_file_path(@site, @file), method: :delete, data: {confirm: t('.are_you_sure')}, class: 'btn btn-danger'
27
- = link_to t('.cancel'), comfy_admin_cms_site_files_path, class: 'btn btn-link'
24
+ = link_to t(".delete"), comfy_admin_cms_site_file_path(@site, @file), method: :delete, data: {confirm: t(".are_you_sure")}, class: "btn btn-danger"
25
+
26
+ = link_to t(".cancel"), comfy_admin_cms_site_files_path, class: "btn btn-link"
@@ -1,5 +1,5 @@
1
1
  .page-header
2
- %h2= t('.title')
2
+ %h2= t(".title")
3
3
 
4
- = comfy_form_for @file, as: :file, url: {action: :update} do |form|
4
+ = comfy_form_with model: @file, scope: :file, url: {action: :update} do |form|
5
5
  = render form
@@ -1,5 +1,5 @@
1
1
  .page-header
2
- %h2= t('.title')
2
+ %h2= t(".title")
3
3
 
4
- = comfy_form_for @file, as: :file, url: {action: :create}, html: {multipart: true} do |form|
4
+ = comfy_form_with model: @file, scope: :file, url: {action: :create}, html: {multipart: true} do |form|
5
5
  = render form
@@ -3,8 +3,10 @@
3
3
  - if attachment.image?
4
4
  - variant = attachment.variant(Comfy::Cms::File::VARIANT_SIZE[:thumb])
5
5
  - thumb = image_tag(url_for(variant), size: "200x150")
6
- .btn.btn-outline-light
7
- = link_to attachment.filename, attachment, {data: {toggle: "page-file-popover", content: thumb}}
8
- %label.custom-control.custom-checkbox
9
- = check_box_tag "#{object_name}[fragments_attributes][#{index}][file_ids_destroy][]", attachment.id, false, id: nil, class: "custom-control-input"
10
- %span.custom-control-indicator
6
+ .fragment-attachment.btn-group.btn-group-sm.mb-1
7
+ - filename = attachment.filename.to_s
8
+ - truncated_filename = truncate(filename, length: 40, omission: "...#{filename.last(10)}")
9
+ = link_to truncated_filename, attachment, data: {toggle: "page-file-popover", content: thumb}, class: "btn btn-light text-truncate", target: "_blank"
10
+ = check_box_tag "#{object_name}[fragments_attributes][#{index}][file_ids_destroy][]", attachment.id, false, id: dom_id(attachment)
11
+ %label.btn.btn-light{for: dom_id(attachment)}
12
+ %i.fas.fa-fw.fa-times
@@ -14,7 +14,7 @@
14
14
  = t(".no_tags").html_safe
15
15
 
16
16
  - else
17
- = fields_for :fragments, nil, builder: ComfortableMexicanSofa::FormBuilder, layout: :horizontal do |fragments|
17
+ = fields scope: :fragments, builder: ComfortableMexicanSofa::FormBuilder, bootstrap: { layout: :horizontal } do |fragments|
18
18
 
19
19
  .tabbable
20
20
  - if namespace.size > 1
@@ -2,6 +2,7 @@
2
2
 
3
3
  = form.text_field :label, data: {slugify: @layout.new_record?}
4
4
  = form.text_field :identifier, data: {slug: true}
5
+
5
6
  - if (options = Comfy::Cms::Layout.options_for_select(@site, @layout)).present?
6
7
  = form.select :parent_id, [["---- #{t('.select_parent_layout')} ----", nil]] + options
7
8
 
@@ -12,8 +13,8 @@
12
13
  = form.text_area :css, data: {'cms-cm-mode' => 'css'}
13
14
  = form.text_area :js, data: {'cms-cm-mode' => 'javascript'}
14
15
 
15
- = comfy_admin_partial 'comfy/admin/cms/partials/layout_form_after', form: form
16
+ = comfy_admin_partial "comfy/admin/cms/partials/layout_form_after", form: form
16
17
 
17
18
  = form.form_actions do
18
- = form.submit t(@layout.new_record?? '.create' : '.update'), class: "btn btn-primary"
19
+ = submit_tag t(@layout.new_record? ? ".create" : ".update"), class: "btn btn-primary"
19
20
  = link_to t('.cancel'), comfy_admin_cms_site_layouts_path, class: "btn btn-link"
@@ -5,5 +5,5 @@
5
5
  .page-header
6
6
  %h2= t('.title')
7
7
 
8
- = comfy_form_for @layout, as: :layout, url: {action: :update} do |form|
8
+ = comfy_form_with model: @layout, scope: :layout, url: {action: :update} do |form|
9
9
  = render form