binda 0.1.5 → 0.1.6

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 (100) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +42 -26
  3. data/Rakefile +4 -0
  4. data/app/assets/javascripts/binda/application.js +3 -0
  5. data/app/assets/javascripts/binda/components/field_setting_choices.js +5 -5
  6. data/app/assets/javascripts/binda/components/fileupload.js +1 -1
  7. data/app/assets/javascripts/binda/components/form_item_collapsable.js +245 -0
  8. data/app/assets/javascripts/binda/components/form_item_image.js +1 -1
  9. data/app/assets/javascripts/binda/components/login-shader.js +1 -1
  10. data/app/assets/javascripts/binda/components/login_form.js +1 -1
  11. data/app/assets/javascripts/binda/components/sortable.js +21 -30
  12. data/app/assets/javascripts/binda/dist/binda.bundle.js +299 -377
  13. data/app/assets/javascripts/binda/index.js +9 -17
  14. data/app/assets/stylesheets/binda/components/field_setting_choices.scss +5 -3
  15. data/app/assets/stylesheets/binda/components/form_item.scss +23 -70
  16. data/app/assets/stylesheets/binda/components/standard-form.scss +56 -1
  17. data/app/assets/stylesheets/binda/settings/tiny_mce_overrides.scss +8 -0
  18. data/app/controllers/binda/application_controller.rb +6 -0
  19. data/app/controllers/binda/boards_controller.rb +18 -12
  20. data/app/controllers/binda/components_controller.rb +21 -16
  21. data/app/controllers/binda/field_groups_controller.rb +57 -16
  22. data/app/controllers/binda/field_settings_controller.rb +14 -2
  23. data/app/controllers/binda/repeaters_controller.rb +2 -2
  24. data/app/controllers/binda/structures_controller.rb +32 -16
  25. data/app/controllers/concerns/binda/fieldable_helpers.rb +2 -2
  26. data/app/helpers/binda/components_helper.rb +16 -4
  27. data/app/helpers/binda/field_groups_helper.rb +4 -1
  28. data/app/models/binda/asset.rb +1 -3
  29. data/app/models/binda/component.rb +17 -10
  30. data/app/models/binda/date.rb +2 -6
  31. data/app/models/binda/field_group.rb +7 -5
  32. data/app/models/binda/field_setting.rb +69 -8
  33. data/app/models/binda/gallery.rb +2 -3
  34. data/app/models/binda/image.rb +7 -1
  35. data/app/models/binda/relation.rb +2 -5
  36. data/app/models/binda/repeater.rb +10 -14
  37. data/app/models/binda/selection.rb +3 -3
  38. data/app/models/binda/structure.rb +9 -5
  39. data/app/models/binda/text.rb +2 -6
  40. data/app/models/binda/user.rb +10 -0
  41. data/app/models/concerns/binda/field_uniqueness.rb +31 -0
  42. data/app/models/concerns/binda/fieldable_association_helpers.rb +31 -11
  43. data/app/models/concerns/binda/fieldable_associations.rb +2 -3
  44. data/app/models/concerns/binda/fields.rb +21 -0
  45. data/app/views/binda/boards/edit.html.erb +2 -1
  46. data/app/views/binda/components/edit.html.erb +2 -1
  47. data/app/views/binda/field_groups/_form_body.html.erb +4 -42
  48. data/app/views/binda/field_groups/_form_header.html.erb +11 -0
  49. data/app/views/binda/field_groups/_form_item.html.erb +4 -6
  50. data/app/views/binda/field_groups/_form_new_item.html.erb +8 -0
  51. data/app/views/binda/field_groups/_form_section.html.erb +17 -27
  52. data/app/views/binda/field_groups/_form_section_repeater.html.erb +17 -18
  53. data/app/views/binda/field_groups/_form_sidebar.html.erb +13 -0
  54. data/app/views/binda/field_groups/form_item/_form_item_editor.html.erb +9 -5
  55. data/app/views/binda/field_groups/form_item/{_form_item_persisted_editor.html.erb → _form_item_editor_existing_item.html.erb} +1 -4
  56. data/app/views/binda/field_groups/form_item/_form_item_editor_new_item.html.erb +3 -0
  57. data/app/views/binda/field_groups/form_item/_form_item_header.html.erb +23 -24
  58. data/app/views/binda/field_groups/form_section/_form_section_header.html.erb +45 -0
  59. data/app/views/binda/field_groups/form_section/_form_section_list.html.erb +9 -0
  60. data/app/views/binda/fieldable/_form_body.html.erb +6 -1
  61. data/app/views/binda/fieldable/_form_item_date.html.erb +1 -1
  62. data/app/views/binda/fieldable/_form_item_image.html.erb +1 -1
  63. data/app/views/binda/fieldable/_form_item_new_repeater.html.erb +7 -21
  64. data/app/views/binda/fieldable/_form_item_relation.html.erb +7 -7
  65. data/app/views/binda/fieldable/_form_item_repeater.html.erb +9 -99
  66. data/app/views/binda/fieldable/_form_item_selections.html.erb +1 -1
  67. data/app/views/binda/fieldable/_form_item_string.html.erb +5 -12
  68. data/app/views/binda/fieldable/_form_item_text.html.erb +5 -13
  69. data/app/views/binda/fieldable/_form_item_video.html.erb +1 -1
  70. data/app/views/binda/fieldable/_form_section.html.erb +11 -10
  71. data/app/views/binda/fieldable/_form_section_repeater.html.erb +2 -3
  72. data/app/views/binda/fieldable/form_item_repeater/_form_item_repeater_header.html.erb +32 -0
  73. data/app/views/binda/fieldable/form_item_repeater/_form_item_repeater_list.html.erb +19 -0
  74. data/app/views/binda/fieldable/form_item_repeater/_form_item_repeater_list_item.html.erb +42 -0
  75. data/app/views/binda/structures/_form_field_group_item.html.erb +5 -0
  76. data/app/views/binda/structures/_form_new_field_group_item.html.erb +8 -0
  77. data/app/views/binda/structures/_form_section.html.erb +16 -78
  78. data/app/views/binda/structures/_form_sidebar.html.erb +9 -8
  79. data/app/views/binda/structures/form_field_group_item/_form_field_group_item_editor.html.erb +18 -0
  80. data/app/views/binda/structures/form_field_group_item/_form_field_group_item_field_setting_form.html.erb +12 -0
  81. data/app/views/binda/structures/form_field_group_item/_form_field_group_item_field_settings.html.erb +18 -0
  82. data/app/views/binda/structures/form_field_group_item/_form_field_group_item_header.html.erb +29 -0
  83. data/app/views/binda/structures/form_section/_form_section_header.html.erb +26 -0
  84. data/app/views/binda/structures/form_section/_form_section_list.html.erb +8 -0
  85. data/config/initializers/simple_form__fileupload.rb +3 -4
  86. data/config/locales/en.yml +9 -4
  87. data/config/routes.rb +4 -0
  88. data/lib/binda/version.rb +1 -1
  89. data/lib/generators/binda/install/install_generator.rb +17 -6
  90. data/lib/generators/binda/maintenance/maintenance_generator.rb +12 -8
  91. data/lib/generators/binda/setup/setup_generator.rb +23 -27
  92. data/lib/tasks/create_missing_field_instances_task.rake +10 -0
  93. data/lib/tasks/remove_orphan_fields_task.rake +1 -7
  94. data/lib/tasks/user_tasks.rake +1 -7
  95. data/vendor/assets/javascripts/lodash.js +17097 -0
  96. metadata +39 -7
  97. data/app/assets/javascripts/binda/components/form_item.js +0 -113
  98. data/app/assets/javascripts/binda/components/form_item_editor.js +0 -39
  99. data/app/assets/javascripts/binda/components/form_item_repeater.js +0 -127
  100. data/app/views/binda/field_groups/form_item/_form_item_new_editor.html.erb +0 -8
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: binda
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alessandro Barbieri
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-06 00:00:00.000000000 Z
11
+ date: 2018-02-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -592,6 +592,20 @@ dependencies:
592
592
  - - "~>"
593
593
  - !ruby/object:Gem::Version
594
594
  version: '0.52'
595
+ - !ruby/object:Gem::Dependency
596
+ name: generator_spec
597
+ requirement: !ruby/object:Gem::Requirement
598
+ requirements:
599
+ - - "~>"
600
+ - !ruby/object:Gem::Version
601
+ version: 0.9.4
602
+ type: :development
603
+ prerelease: false
604
+ version_requirements: !ruby/object:Gem::Requirement
605
+ requirements:
606
+ - - "~>"
607
+ - !ruby/object:Gem::Version
608
+ version: 0.9.4
595
609
  description: A modular CMS for Ruby on Rails 5 with an intuitive out-of-the-box interface
596
610
  to manage and customize components. Use Binda if you want to speed up your setup
597
611
  process and concentrate directly on what your application is about. Please read
@@ -611,10 +625,8 @@ files:
611
625
  - app/assets/javascripts/binda/components/field_group_editor.js
612
626
  - app/assets/javascripts/binda/components/field_setting_choices.js
613
627
  - app/assets/javascripts/binda/components/fileupload.js
614
- - app/assets/javascripts/binda/components/form_item.js
615
- - app/assets/javascripts/binda/components/form_item_editor.js
628
+ - app/assets/javascripts/binda/components/form_item_collapsable.js
616
629
  - app/assets/javascripts/binda/components/form_item_image.js
617
- - app/assets/javascripts/binda/components/form_item_repeater.js
618
630
  - app/assets/javascripts/binda/components/login-shader.js
619
631
  - app/assets/javascripts/binda/components/login_form.js
620
632
  - app/assets/javascripts/binda/components/radio-toggle.js
@@ -716,8 +728,10 @@ files:
716
728
  - app/models/binda/video.rb
717
729
  - app/models/concerns/binda/default_helpers.rb
718
730
  - app/models/concerns/binda/deprecations.rb
731
+ - app/models/concerns/binda/field_uniqueness.rb
719
732
  - app/models/concerns/binda/fieldable_association_helpers.rb
720
733
  - app/models/concerns/binda/fieldable_associations.rb
734
+ - app/models/concerns/binda/fields.rb
721
735
  - app/uploaders/binda/image/image_uploader.rb
722
736
  - app/uploaders/binda/video/video_uploader.rb
723
737
  - app/views/binda/assets/_form.html.erb
@@ -735,20 +749,25 @@ files:
735
749
  - app/views/binda/components/new.html.erb
736
750
  - app/views/binda/components/sort_index.html.erb
737
751
  - app/views/binda/field_groups/_form_body.html.erb
752
+ - app/views/binda/field_groups/_form_header.html.erb
738
753
  - app/views/binda/field_groups/_form_item.html.erb
754
+ - app/views/binda/field_groups/_form_new_item.html.erb
739
755
  - app/views/binda/field_groups/_form_section.html.erb
740
756
  - app/views/binda/field_groups/_form_section_repeater.html.erb
757
+ - app/views/binda/field_groups/_form_sidebar.html.erb
741
758
  - app/views/binda/field_groups/edit.html.erb
742
759
  - app/views/binda/field_groups/form_item/_form_item_choice_editor.html.erb
743
760
  - app/views/binda/field_groups/form_item/_form_item_editor.html.erb
761
+ - app/views/binda/field_groups/form_item/_form_item_editor_existing_item.html.erb
762
+ - app/views/binda/field_groups/form_item/_form_item_editor_new_item.html.erb
744
763
  - app/views/binda/field_groups/form_item/_form_item_header.html.erb
745
- - app/views/binda/field_groups/form_item/_form_item_new_editor.html.erb
746
- - app/views/binda/field_groups/form_item/_form_item_persisted_editor.html.erb
747
764
  - app/views/binda/field_groups/form_item/form_item_choice/_form_item_allow_null_choice.html.erb
748
765
  - app/views/binda/field_groups/form_item/form_item_choice/_form_item_choice_header.html.erb
749
766
  - app/views/binda/field_groups/form_item/form_item_choice/_form_item_default_choice.html.erb
750
767
  - app/views/binda/field_groups/form_item/form_item_choice/_form_item_new_choice.html.erb
751
768
  - app/views/binda/field_groups/form_item/form_item_choice/_form_item_persisted_choices.html.erb
769
+ - app/views/binda/field_groups/form_section/_form_section_header.html.erb
770
+ - app/views/binda/field_groups/form_section/_form_section_list.html.erb
752
771
  - app/views/binda/field_groups/new.html.erb
753
772
  - app/views/binda/field_settings/_form_body.html.erb
754
773
  - app/views/binda/field_settings/edit.html.erb
@@ -768,6 +787,9 @@ files:
768
787
  - app/views/binda/fieldable/_form_section.html.erb
769
788
  - app/views/binda/fieldable/_form_section_repeater.html.erb
770
789
  - app/views/binda/fieldable/_form_sidebar.html.erb
790
+ - app/views/binda/fieldable/form_item_repeater/_form_item_repeater_header.html.erb
791
+ - app/views/binda/fieldable/form_item_repeater/_form_item_repeater_list.html.erb
792
+ - app/views/binda/fieldable/form_item_repeater/_form_item_repeater_list_item.html.erb
771
793
  - app/views/binda/fieldable/form_item_selections/_form_item_checkbox.html.erb
772
794
  - app/views/binda/fieldable/form_item_selections/_form_item_radio.html.erb
773
795
  - app/views/binda/fieldable/form_item_selections/_form_item_selection.html.erb
@@ -784,9 +806,17 @@ files:
784
806
  - app/views/binda/manage/users/new.html.erb
785
807
  - app/views/binda/manage/users/show.json.jbuilder
786
808
  - app/views/binda/structures/_form_body.html.erb
809
+ - app/views/binda/structures/_form_field_group_item.html.erb
810
+ - app/views/binda/structures/_form_new_field_group_item.html.erb
787
811
  - app/views/binda/structures/_form_section.html.erb
788
812
  - app/views/binda/structures/_form_sidebar.html.erb
789
813
  - app/views/binda/structures/edit.html.erb
814
+ - app/views/binda/structures/form_field_group_item/_form_field_group_item_editor.html.erb
815
+ - app/views/binda/structures/form_field_group_item/_form_field_group_item_field_setting_form.html.erb
816
+ - app/views/binda/structures/form_field_group_item/_form_field_group_item_field_settings.html.erb
817
+ - app/views/binda/structures/form_field_group_item/_form_field_group_item_header.html.erb
818
+ - app/views/binda/structures/form_section/_form_section_header.html.erb
819
+ - app/views/binda/structures/form_section/_form_section_list.html.erb
790
820
  - app/views/binda/structures/index.html.erb
791
821
  - app/views/binda/structures/new.html.erb
792
822
  - app/views/binda/structures/sort_index.html.erb
@@ -852,6 +882,7 @@ files:
852
882
  - lib/tasks/add_default_choice_to_all_selections_with_no_choices_task.rake
853
883
  - lib/tasks/add_default_helpers_class_task.rake
854
884
  - lib/tasks/add_video_feature_task.rake
885
+ - lib/tasks/create_missing_field_instances_task.rake
855
886
  - lib/tasks/remove_orphan_fields_task.rake
856
887
  - lib/tasks/set_repeater_position_task.rake
857
888
  - lib/tasks/update_image_details_task.rake
@@ -898,6 +929,7 @@ files:
898
929
  - vendor/assets/javascripts/bootstrap/bootstrap/tab.js
899
930
  - vendor/assets/javascripts/bootstrap/bootstrap/tooltip.js
900
931
  - vendor/assets/javascripts/bootstrap/bootstrap/transition.js
932
+ - vendor/assets/javascripts/lodash.js
901
933
  - vendor/assets/javascripts/select2/i18n/af.js
902
934
  - vendor/assets/javascripts/select2/i18n/ar.js
903
935
  - vendor/assets/javascripts/select2/i18n/az.js
@@ -1,113 +0,0 @@
1
- /**
2
- * FORM ITEM
3
- */
4
-
5
- import { _FormItemEditor } from "./form_item_editor";
6
- import { setupSelect2 } from "./select2";
7
-
8
- // Component Global Variables
9
- let newFormItemId = 1;
10
-
11
- class FormItem {
12
- constructor() {}
13
-
14
- isSet() {
15
- if ($(".form-item").length > 0) {
16
- return true;
17
- } else {
18
- return false;
19
- }
20
- }
21
-
22
- setEvents() {
23
- $(document).on("click", ".form-item--add-new", addNewItem);
24
-
25
- $(document).on("click", ".form-item--remove-item-with-js", function(event) {
26
- // Stop default behaviour
27
- event.preventDefault();
28
- $(this)
29
- .closest(".form-item")
30
- .remove();
31
- });
32
-
33
- $(document).on("click", ".form-item--collapse-btn", collapseToggle);
34
- }
35
- }
36
-
37
- export let _FormItem = new FormItem();
38
-
39
- ///- - - - - - - - - - - - - - - - - - - -
40
- /// COMPONENT HELPER FUNCTIONS
41
- ///- - - - - - - - - - - - - - - - - - - -
42
-
43
- // This function could be improved as it generates an issue with
44
- // input ids which are duplicated after the entire target has been cloned
45
- function addNewItem(event) {
46
- // Stop default behaviour
47
- event.preventDefault();
48
- // Get the child to clone
49
- // (`this` always refers to the second argument of the $(document).on() method, in this case '.form-item--add-new')
50
- let id = $(this).data("new-form-item-id");
51
- let $newChild = $("#" + id);
52
- // Clone child and remove id and styles from cloned child
53
- $newChild.clone().insertAfter($newChild);
54
- // Remove class in order to remove styles, and change id so it's reachable when testing
55
- $newChild
56
- .removeClass("form-item--new")
57
- .attr("id", "new-form-item-" + newFormItemId);
58
-
59
- // // Update all ids to avoid duplication
60
- $newChild.find("[id]").each(function() {
61
- let oldId = $(this).attr("id");
62
- let newId = oldId + "-" + newFormItemId;
63
- $(this).attr("id", newId);
64
- let $forId = $newChild.find("[for=" + oldId + "]");
65
- if ($forId.length > 0) {
66
- $forId.attr("for", newId);
67
- }
68
- });
69
-
70
- // Update height (max-height) of the new element
71
- let $formItemEditor = $("#new-form-item-" + newFormItemId).find(
72
- ".form-item--editor"
73
- );
74
-
75
- // override current max-height which is set to 0
76
- $formItemEditor.get(0).style.maxHeight =
77
- $formItemEditor.get(0).scrollHeight + "px";
78
-
79
- _FormItemEditor.resize();
80
-
81
- // Increment global id variable `newFormItemId` in case needs to be used again
82
- newFormItemId++;
83
-
84
- setupSelect2($formItemEditor.find("select"));
85
- }
86
-
87
- function close() {
88
- this.style.maxHeight = "0px";
89
- }
90
-
91
- function open() {
92
- this.style.maxHeight = this.scrollHeight + "px";
93
- }
94
-
95
- function collapseToggle(event) {
96
- // This function is temporarely just set for repeaters.
97
- // TODO: Need refactoring in order to be available also for generic form items
98
-
99
- // Stop default behaviour
100
- event.preventDefault();
101
-
102
- let $collapsable = $(this).closest(".form-item--collapsable");
103
-
104
- if ($collapsable.hasClass("form-item--collapsed")) {
105
- $collapsable.find(".form-item--repeater-fields").each(open);
106
- $collapsable.find(".form-item--editor").each(open);
107
- $collapsable.removeClass("form-item--collapsed");
108
- } else {
109
- $collapsable.find(".form-item--repeater-fields").each(close);
110
- $collapsable.find(".form-item--editor").each(close);
111
- $collapsable.addClass("form-item--collapsed");
112
- }
113
- }
@@ -1,39 +0,0 @@
1
- /**
2
- * FORM ITEM EDITOR
3
- */
4
-
5
- class FormItemEditor {
6
- constructor() {
7
- this.target = ".form-item--editor";
8
- }
9
-
10
- isSet() {
11
- if ($(this.target).length > 0) {
12
- return true;
13
- } else {
14
- return false;
15
- }
16
- }
17
-
18
- setEvents() {
19
- // run resize to set initial size
20
- this.resize();
21
- // run resize on each of these events
22
- $(window).resize(() => {
23
- this.resize();
24
- });
25
- }
26
-
27
- resize() {
28
- $(this.target).each(function() {
29
- // If the form item editor is closed don't go any further
30
- if ($(this).height() === 0) return;
31
- // otherwise update the max-height which is needed for the CSS transition
32
- // NOTE you need to remove the max-height (inside 'style' attribute) to get the real height
33
- $(this).get(0).style.height = "auto";
34
- $(this).get(0).style.maxHeight = $(this).get(0).scrollHeight + "px";
35
- });
36
- }
37
- }
38
-
39
- export let _FormItemEditor = new FormItemEditor();
@@ -1,127 +0,0 @@
1
- /**
2
- * FORM ITEM REPEATER
3
- */
4
-
5
- import { _FormItemEditor } from "./form_item_editor";
6
- import { setupSelect2 } from "./select2";
7
-
8
- class FormItemRepeater {
9
- constructor() {}
10
-
11
- isSet() {
12
- if ($(".form-item--repeater-section").length > 0) {
13
- return true;
14
- } else {
15
- return false;
16
- }
17
- }
18
-
19
- setEvents() {
20
- $(document).on(
21
- "click",
22
- ".form-item--repeater-section--add-new",
23
- addNewItem
24
- );
25
-
26
- $(document).on("click", ".form-item--remove-item-with-js", function(event) {
27
- // Stop default behaviour
28
- event.preventDefault();
29
- $(this)
30
- .parent(".form-item--repeater-section")
31
- .remove();
32
- _FormItemEditor.resize();
33
- });
34
-
35
- $(document).on("click", ".form-item--delete-repeater-item", deleteRepeter);
36
- }
37
- }
38
-
39
- export let _FormItemRepeater = new FormItemRepeater();
40
-
41
- /**
42
- * COMPONENT HELPER FUNCTIONS
43
- */
44
-
45
- function addNewItem(event) {
46
- // Stop default behaviour
47
- event.preventDefault();
48
- // Get the child to clone
49
- let id = $(this).data("id");
50
- let $list = $("#form-item--repeater-setting-" + id);
51
- let url = $(this).data("url");
52
- $.post(url, { repeater_setting_id: id }, function(data) {
53
- // Get repaeter code from Rails
54
- // Due to the Rails way of creating nested forms it's necessary to
55
- // create the nested item inside a different new form, then get just
56
- // the code contained between the two SPLIT comments
57
- let parts = data.split("<!-- SPLIT -->");
58
- let newRepeater = parts[1];
59
- setupAndAppend(newRepeater, $list);
60
- });
61
- }
62
-
63
- function setupAndAppend(newRepeater, $list) {
64
- // Append the item
65
- $list.prepend(newRepeater);
66
- let new_repeater_item = $list.find(".form-item--repeater").get(0);
67
-
68
- // Prepare animation
69
- new_repeater_item.style.maxHeight = 0;
70
-
71
- // Group fields if sotrable is enabled
72
- if ($list.hasClass("sortable--enabled")) {
73
- $(new_repeater_item)
74
- .find(".form-item--repeater-fields")
75
- .each(function() {
76
- this.style.maxHeight = 0 + "px";
77
- });
78
- }
79
-
80
- // Setup TinyMCE for the newly created item
81
- var textarea_editor_id = $list
82
- .find("textarea")
83
- .last("textarea")
84
- .attr("id");
85
- tinyMCE.EditorManager.execCommand("mceAddEditor", true, textarea_editor_id);
86
-
87
- // Resize the editor (is it needed with the new configuration?)
88
- // _FormItemEditor.resize()
89
-
90
- // Update select input for Select2 plugin
91
- setupSelect2($list.find("select"));
92
-
93
- // Refresh Sortable to update the added item with Sortable features
94
- $list.sortable("refresh");
95
-
96
- // Run animation 50ms after previous style declaration (see above) otherwise animation doesn't get triggered
97
- setTimeout(function() {
98
- new_repeater_item.style.maxHeight = new_repeater_item.scrollHeight + "px";
99
- }, 50);
100
- }
101
-
102
- function deleteRepeter(event) {
103
- // Stop default behaviour
104
- event.preventDefault();
105
-
106
- let record_id = $(this).data("id");
107
- let target = $("#repeater_" + record_id).get(0);
108
- // As max-height isn't set you need to set it manually before changing it,
109
- // otherwise the animation doesn't get triggered
110
- target.style.maxHeight = target.scrollHeight + "px";
111
- // Change max-height after 50ms to trigger css animation
112
- setTimeout(function() {
113
- target.style.maxHeight = 0 + "px";
114
- }, 50);
115
-
116
- $.ajax({
117
- url: $(this).attr("href"),
118
- data: { id: record_id, isAjax: true },
119
- method: "DELETE"
120
- }).done(() => {
121
- // Make sure the animation completes before removing the item (it should last 600ms + 50ms)
122
- setTimeout(function() {
123
- $(target).remove();
124
- }, 700);
125
- // _FormItemEditor.resize()
126
- });
127
- }
@@ -1,8 +0,0 @@
1
- <%= ff.input :slug, as: :hidden, input_html: { class: "form-item--input" } %>
2
- <div class="form-item--half-size">
3
- <% if ff.object.field_type.nil? %>
4
- <%= ff.input :field_type, as: :select, collection: get_field_types, include_blank: false, prompt: t(:select_field_type), input_html: { class: 'form-item--select-input' } %>
5
- <% else %>
6
- <%= ff.input :field_type, as: :string, disabled: true, input_html: { class: "form-item--input" } %>
7
- <% end %>
8
- </div>