binda 0.1.3 → 0.1.4

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 (132) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +83 -25
  3. data/app/assets/javascripts/binda/application.js +3 -3
  4. data/app/assets/javascripts/binda/components/bootstrap.js +3 -4
  5. data/app/assets/javascripts/binda/components/field_group_editor.js +10 -10
  6. data/app/assets/javascripts/binda/components/field_setting_choices.js +61 -49
  7. data/app/assets/javascripts/binda/components/fileupload.js +135 -118
  8. data/app/assets/javascripts/binda/components/form_item.js +65 -65
  9. data/app/assets/javascripts/binda/components/form_item_editor.js +19 -19
  10. data/app/assets/javascripts/binda/components/form_item_image.js +11 -13
  11. data/app/assets/javascripts/binda/components/form_item_repeater.js +77 -71
  12. data/app/assets/javascripts/binda/components/login-shader.js +171 -164
  13. data/app/assets/javascripts/binda/components/login_form.js +65 -73
  14. data/app/assets/javascripts/binda/components/radio-toggle.js +8 -12
  15. data/app/assets/javascripts/binda/components/select2.js +19 -14
  16. data/app/assets/javascripts/binda/components/sortable.js +76 -71
  17. data/app/assets/javascripts/binda/dist/binda.bundle.js +735 -727
  18. data/app/assets/javascripts/binda/index.js +49 -35
  19. data/app/assets/stylesheets/binda/components/assets_manager.scss +13 -22
  20. data/app/assets/stylesheets/binda/components/b-alert.scss +18 -14
  21. data/app/assets/stylesheets/binda/components/b-btn.scss +24 -43
  22. data/app/assets/stylesheets/binda/components/field_setting_choices.scss +16 -31
  23. data/app/assets/stylesheets/binda/components/fileupload.scss +25 -42
  24. data/app/assets/stylesheets/binda/components/form_item.scss +51 -93
  25. data/app/assets/stylesheets/binda/components/form_item_choices.scss +7 -10
  26. data/app/assets/stylesheets/binda/components/login.scss +2 -2
  27. data/app/assets/stylesheets/binda/components/main_header.scss +5 -10
  28. data/app/assets/stylesheets/binda/components/main_sidebar.scss +42 -46
  29. data/app/assets/stylesheets/binda/components/main_sortable_table.scss +12 -21
  30. data/app/assets/stylesheets/binda/components/main_table.scss +18 -35
  31. data/app/assets/stylesheets/binda/components/popup_warning.scss +14 -27
  32. data/app/assets/stylesheets/binda/components/select2.scss +46 -48
  33. data/app/assets/stylesheets/binda/components/sortable.scss +25 -45
  34. data/app/assets/stylesheets/binda/components/standard-form.scss +43 -73
  35. data/app/assets/stylesheets/binda/controllers/users_sessions_new.scss +52 -89
  36. data/app/assets/stylesheets/binda/index.scss +0 -1
  37. data/app/assets/stylesheets/binda/settings/buttons.scss +9 -10
  38. data/app/assets/stylesheets/binda/settings/common.scss +17 -22
  39. data/app/assets/stylesheets/binda/settings/fonts.scss +112 -67
  40. data/app/assets/stylesheets/binda/settings/tiny_mce_overrides.scss +20 -36
  41. data/app/assets/stylesheets/binda/settings/variables.scss +38 -43
  42. data/app/controllers/binda/choices_controller.rb +14 -11
  43. data/app/controllers/binda/components_controller.rb +6 -4
  44. data/app/controllers/binda/structures_controller.rb +7 -3
  45. data/app/helpers/binda/components_helper.rb +69 -3
  46. data/app/helpers/binda/field_groups_helper.rb +16 -6
  47. data/app/helpers/binda/structures_helper.rb +1 -4
  48. data/app/models/binda/application_record.rb +4 -1
  49. data/app/models/binda/asset.rb +3 -1
  50. data/app/models/binda/b.rb +1 -0
  51. data/app/models/binda/category.rb +1 -0
  52. data/app/models/binda/checkbox.rb +2 -0
  53. data/app/models/binda/choice.rb +74 -41
  54. data/app/models/binda/component.rb +1 -1
  55. data/app/models/binda/date.rb +4 -0
  56. data/app/models/binda/deprecation.rb +7 -0
  57. data/app/models/binda/field_group.rb +16 -3
  58. data/app/models/binda/field_setting.rb +168 -41
  59. data/app/models/binda/image.rb +1 -0
  60. data/app/models/binda/radio.rb +2 -0
  61. data/app/models/binda/relation.rb +3 -0
  62. data/app/models/binda/repeater.rb +3 -0
  63. data/app/models/binda/selection.rb +237 -0
  64. data/app/models/binda/string.rb +4 -0
  65. data/app/models/binda/structure.rb +25 -14
  66. data/app/models/binda/text.rb +9 -0
  67. data/app/models/binda/video.rb +1 -0
  68. data/app/models/concerns/binda/default_helpers.rb +40 -31
  69. data/app/models/concerns/binda/deprecations.rb +6 -0
  70. data/app/models/concerns/binda/fieldable_association_helpers.rb +366 -0
  71. data/app/models/concerns/binda/fieldable_associations.rb +32 -369
  72. data/app/views/binda/boards/edit.html.erb +15 -2
  73. data/app/views/binda/categories/_form.html.erb +24 -51
  74. data/app/views/binda/categories/edit.html.erb +23 -3
  75. data/app/views/binda/categories/index.html.erb +49 -25
  76. data/app/views/binda/categories/new.html.erb +21 -2
  77. data/app/views/binda/components/edit.html.erb +27 -4
  78. data/app/views/binda/components/index.html.erb +47 -50
  79. data/app/views/binda/components/new.html.erb +12 -2
  80. data/app/views/binda/components/sort_index.html.erb +28 -13
  81. data/app/views/binda/field_groups/_form_body.html.erb +43 -82
  82. data/app/views/binda/field_groups/_form_item.html.erb +3 -120
  83. data/app/views/binda/field_groups/_form_section.html.erb +11 -16
  84. data/app/views/binda/field_groups/_form_section_repeater.html.erb +7 -15
  85. data/app/views/binda/field_groups/edit.html.erb +14 -2
  86. data/app/views/binda/field_groups/form_item/_form_item_choice_editor.html.erb +11 -0
  87. data/app/views/binda/field_groups/form_item/_form_item_editor.html.erb +14 -0
  88. data/app/views/binda/field_groups/form_item/_form_item_header.html.erb +25 -0
  89. data/app/views/binda/field_groups/form_item/_form_item_new_editor.html.erb +8 -0
  90. data/app/views/binda/field_groups/form_item/_form_item_persisted_editor.html.erb +27 -0
  91. data/app/views/binda/field_groups/form_item/form_item_choice/_form_item_allow_null_choice.html.erb +11 -0
  92. data/app/views/binda/field_groups/form_item/form_item_choice/_form_item_choice_header.html.erb +11 -0
  93. data/app/views/binda/field_groups/form_item/form_item_choice/_form_item_default_choice.html.erb +11 -0
  94. data/app/views/binda/field_groups/form_item/form_item_choice/_form_item_new_choice.html.erb +16 -0
  95. data/app/views/binda/field_groups/form_item/form_item_choice/_form_item_persisted_choices.html.erb +16 -0
  96. data/app/views/binda/field_groups/new.html.erb +14 -2
  97. data/app/views/binda/field_settings/_form_body.html.erb +1 -3
  98. data/app/views/binda/field_settings/edit.html.erb +1 -1
  99. data/app/views/binda/field_settings/new.html.erb +1 -1
  100. data/app/views/binda/fieldable/_form_body.html.erb +24 -72
  101. data/app/views/binda/fieldable/_form_item_date.html.erb +1 -4
  102. data/app/views/binda/fieldable/_form_item_image.html.erb +3 -7
  103. data/app/views/binda/fieldable/_form_item_new_repeater.html.erb +0 -13
  104. data/app/views/binda/fieldable/_form_item_selections.html.erb +20 -112
  105. data/app/views/binda/fieldable/form_item_selections/_form_item_checkbox.html.erb +34 -0
  106. data/app/views/binda/fieldable/form_item_selections/_form_item_radio.html.erb +28 -0
  107. data/app/views/binda/fieldable/form_item_selections/_form_item_selection.html.erb +30 -0
  108. data/app/views/binda/manage/users/_form_body.html.erb +1 -31
  109. data/app/views/binda/manage/users/edit.html.erb +12 -2
  110. data/app/views/binda/manage/users/index.html.erb +36 -19
  111. data/app/views/binda/manage/users/new.html.erb +14 -3
  112. data/app/views/binda/structures/_form_body.html.erb +2 -25
  113. data/app/views/binda/structures/_form_section.html.erb +43 -65
  114. data/app/views/binda/structures/_form_sidebar.html.erb +19 -12
  115. data/app/views/binda/structures/edit.html.erb +20 -3
  116. data/app/views/binda/structures/index.html.erb +46 -26
  117. data/app/views/binda/structures/new.html.erb +13 -2
  118. data/app/views/binda/structures/sort_index.html.erb +37 -17
  119. data/app/views/binda/users/sessions/new.html.erb +25 -20
  120. data/app/views/layouts/binda/_form_errors.html.erb +10 -0
  121. data/app/views/layouts/binda/_sidebar.html.erb +6 -6
  122. data/app/views/layouts/binda/application.html.erb +1 -1
  123. data/config/initializers/carrierwave.rb +3 -2
  124. data/config/locales/en.yml +56 -12
  125. data/config/tinymce.yml +2 -2
  126. data/db/migrate/1_create_binda_tables.rb +1 -1
  127. data/lib/binda/version.rb +1 -1
  128. data/lib/generators/binda/setup/setup_generator.rb +2 -2
  129. data/lib/tasks/add_default_choice_to_all_selections_with_no_choices_task.rake +6 -0
  130. metadata +58 -8
  131. data/app/assets/stylesheets/binda/components/form_item_image.scss +0 -0
  132. data/app/views/binda/field_groups/_form_item_choice.erb +0 -104
@@ -2,112 +2,112 @@
2
2
  * FORM ITEM
3
3
  */
4
4
 
5
- import { _FormItemEditor } from './form_item_editor'
6
- import { setupSelect2 } from './select2'
5
+ import { _FormItemEditor } from "./form_item_editor";
6
+ import { setupSelect2 } from "./select2";
7
7
 
8
8
  // Component Global Variables
9
- let newFormItemId = 1
9
+ let newFormItemId = 1;
10
10
 
11
11
  class FormItem {
12
-
13
- constructor(){}
14
-
15
- isSet()
16
- {
17
- if ( $('.form-item').length > 0 ) { return true }
18
- else { return false }
12
+ constructor() {}
13
+
14
+ isSet() {
15
+ if ($(".form-item").length > 0) {
16
+ return true;
17
+ } else {
18
+ return false;
19
+ }
19
20
  }
20
21
 
21
- setEvents()
22
- {
23
- $(document).on('click', '.form-item--add-new', addNewItem )
22
+ setEvents() {
23
+ $(document).on("click", ".form-item--add-new", addNewItem);
24
24
 
25
- $(document).on('click', '.form-item--remove-item-with-js', function( event )
26
- {
25
+ $(document).on("click", ".form-item--remove-item-with-js", function(event) {
27
26
  // Stop default behaviour
28
- event.preventDefault()
29
- $( this ).closest('.form-item').remove()
30
- })
27
+ event.preventDefault();
28
+ $(this)
29
+ .closest(".form-item")
30
+ .remove();
31
+ });
31
32
 
32
- $(document).on('click', '.form-item--collapse-btn', collapseToggle )
33
+ $(document).on("click", ".form-item--collapse-btn", collapseToggle);
33
34
  }
34
35
  }
35
36
 
36
- export let _FormItem = new FormItem()
37
-
37
+ export let _FormItem = new FormItem();
38
38
 
39
39
  ///- - - - - - - - - - - - - - - - - - - -
40
40
  /// COMPONENT HELPER FUNCTIONS
41
41
  ///- - - - - - - - - - - - - - - - - - - -
42
42
 
43
- // This function could be improved as it generates an issue with
43
+ // This function could be improved as it generates an issue with
44
44
  // input ids which are duplicated after the entire target has been cloned
45
- function addNewItem(event)
46
- {
45
+ function addNewItem(event) {
47
46
  // Stop default behaviour
48
- event.preventDefault()
49
- // Get the child to clone
47
+ event.preventDefault();
48
+ // Get the child to clone
50
49
  // (`this` always refers to the second argument of the $(document).on() method, in this case '.form-item--add-new')
51
- let id = $( this ).data( 'new-form-item-id' )
52
- let $newChild = $( '#' + id )
50
+ let id = $(this).data("new-form-item-id");
51
+ let $newChild = $("#" + id);
53
52
  // Clone child and remove id and styles from cloned child
54
- $newChild.clone().insertAfter( $newChild )
53
+ $newChild.clone().insertAfter($newChild);
55
54
  // Remove class in order to remove styles, and change id so it's reachable when testing
56
- $newChild.removeClass( 'form-item--new' ).attr( 'id', 'new-form-item-'+newFormItemId )
55
+ $newChild
56
+ .removeClass("form-item--new")
57
+ .attr("id", "new-form-item-" + newFormItemId);
57
58
 
58
59
  // // Update all ids to avoid duplication
59
- $newChild.find('[id]').each(function(){
60
- let oldId = $(this).attr('id')
61
- let newId = oldId + '-' + newFormItemId
62
- $(this).attr('id', newId )
63
- let $forId = $newChild.find('[for='+ oldId +']')
64
- if ( $forId.length > 0 ) { $forId.attr('for', newId) }
65
- })
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
+ });
66
69
 
67
70
  // Update height (max-height) of the new element
68
- let $formItemEditor = $('#new-form-item-'+newFormItemId).find('.form-item--editor')
71
+ let $formItemEditor = $("#new-form-item-" + newFormItemId).find(
72
+ ".form-item--editor"
73
+ );
69
74
 
70
75
  // override current max-height which is set to 0
71
- $formItemEditor.get(0).style.maxHeight = $formItemEditor.get(0).scrollHeight + "px";
76
+ $formItemEditor.get(0).style.maxHeight =
77
+ $formItemEditor.get(0).scrollHeight + "px";
72
78
 
73
- _FormItemEditor.resize()
79
+ _FormItemEditor.resize();
74
80
 
75
81
  // Increment global id variable `newFormItemId` in case needs to be used again
76
- newFormItemId++
82
+ newFormItemId++;
77
83
 
78
- setupSelect2( $formItemEditor.find('select') )
84
+ setupSelect2($formItemEditor.find("select"));
79
85
  }
80
86
 
81
- function close()
82
- {
83
- this.style.maxHeight = '0px'
87
+ function close() {
88
+ this.style.maxHeight = "0px";
84
89
  }
85
90
 
86
- function open()
87
- {
91
+ function open() {
88
92
  this.style.maxHeight = this.scrollHeight + "px";
89
93
  }
90
94
 
91
- function collapseToggle( event )
92
- {
95
+ function collapseToggle(event) {
93
96
  // This function is temporarely just set for repeaters.
94
97
  // TODO: Need refactoring in order to be available also for generic form items
95
98
 
96
99
  // Stop default behaviour
97
- event.preventDefault()
98
-
99
- let $collapsable = $(this).closest('.form-item--collapsable')
100
-
101
- if ( $collapsable.hasClass('form-item--collapsed') )
102
- {
103
- $collapsable.find('.form-item--repeater-fields').each(open)
104
- $collapsable.find('.form-item--editor').each(open)
105
- $collapsable.removeClass('form-item--collapsed')
106
- }
107
- else
108
- {
109
- $collapsable.find('.form-item--repeater-fields').each(close)
110
- $collapsable.find('.form-item--editor').each(close)
111
- $collapsable.addClass('form-item--collapsed')
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
112
  }
113
- }
113
+ }
@@ -3,37 +3,37 @@
3
3
  */
4
4
 
5
5
  class FormItemEditor {
6
-
7
- constructor()
8
- {
9
- this.target = '.form-item--editor'
6
+ constructor() {
7
+ this.target = ".form-item--editor";
10
8
  }
11
9
 
12
- isSet()
13
- {
14
- if ( $( this.target ).length > 0 ) { return true }
15
- else { return false }
10
+ isSet() {
11
+ if ($(this.target).length > 0) {
12
+ return true;
13
+ } else {
14
+ return false;
15
+ }
16
16
  }
17
17
 
18
- setEvents()
19
- {
18
+ setEvents() {
20
19
  // run resize to set initial size
21
- this.resize()
20
+ this.resize();
22
21
  // run resize on each of these events
23
- $(window).resize( ()=>{ this.resize() } )
22
+ $(window).resize(() => {
23
+ this.resize();
24
+ });
24
25
  }
25
26
 
26
- resize()
27
- {
28
- $( this.target ).each( function(){
27
+ resize() {
28
+ $(this.target).each(function() {
29
29
  // If the form item editor is closed don't go any further
30
- if ( $(this).height() === 0 ) return
30
+ if ($(this).height() === 0) return;
31
31
  // otherwise update the max-height which is needed for the CSS transition
32
32
  // NOTE you need to remove the max-height (inside 'style' attribute) to get the real height
33
- $(this).get(0).style.height = 'auto'
33
+ $(this).get(0).style.height = "auto";
34
34
  $(this).get(0).style.maxHeight = $(this).get(0).scrollHeight + "px";
35
- })
35
+ });
36
36
  }
37
37
  }
38
38
 
39
- export let _FormItemEditor = new FormItemEditor()
39
+ export let _FormItemEditor = new FormItemEditor();
@@ -2,22 +2,20 @@
2
2
  * FORM ITEM IMAGE
3
3
  */
4
4
 
5
- class FormItemImage
6
- {
7
- constructor()
8
- {
9
- this.target = '.form-item--image--uploader'
5
+ class FormItemImage {
6
+ constructor() {
7
+ this.target = ".form-item--image--uploader";
10
8
  }
11
9
 
12
- isSet()
13
- {
14
- if ( $( this.target ).length > 0 ) { return true }
15
- else { return false }
10
+ isSet() {
11
+ if ($(this.target).length > 0) {
12
+ return true;
13
+ } else {
14
+ return false;
15
+ }
16
16
  }
17
17
 
18
- setEvents()
19
- {
20
- }
18
+ setEvents() {}
21
19
  }
22
20
 
23
- export var _FormItemImage = new FormItemImage()
21
+ export var _FormItemImage = new FormItemImage();
@@ -2,120 +2,126 @@
2
2
  * FORM ITEM REPEATER
3
3
  */
4
4
 
5
- import { _FormItemEditor } from './form_item_editor'
6
- import { setupSelect2 } from './select2'
5
+ import { _FormItemEditor } from "./form_item_editor";
6
+ import { setupSelect2 } from "./select2";
7
7
 
8
8
  class FormItemRepeater {
9
-
10
- constructor(){}
11
-
12
- isSet()
13
- {
14
- if ( $('.form-item--repeater-section').length > 0 ) { return true }
15
- else { return false }
9
+ constructor() {}
10
+
11
+ isSet() {
12
+ if ($(".form-item--repeater-section").length > 0) {
13
+ return true;
14
+ } else {
15
+ return false;
16
+ }
16
17
  }
17
18
 
18
- setEvents()
19
- {
20
- $(document).on('click', '.form-item--repeater-section--add-new', addNewItem )
21
-
22
- $(document).on('click', '.form-item--remove-item-with-js', function( event )
23
- {
24
- // Stop default behaviour
25
- event.preventDefault()
26
- $( this ).parent('.form-item--repeater-section').remove()
27
- _FormItemEditor.resize()
28
- })
19
+ setEvents() {
20
+ $(document).on(
21
+ "click",
22
+ ".form-item--repeater-section--add-new",
23
+ addNewItem
24
+ );
29
25
 
30
- $(document).on('click', '.form-item--delete-repeater-item', deleteRepeter )
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);
31
36
  }
32
37
  }
33
38
 
34
- export let _FormItemRepeater = new FormItemRepeater()
35
-
39
+ export let _FormItemRepeater = new FormItemRepeater();
36
40
 
37
41
  /**
38
42
  * COMPONENT HELPER FUNCTIONS
39
43
  */
40
44
 
41
- function addNewItem( event )
42
- {
45
+ function addNewItem(event) {
43
46
  // Stop default behaviour
44
- event.preventDefault()
47
+ event.preventDefault();
45
48
  // Get the child to clone
46
- let id = $( this ).data( 'id' )
47
- let $list = $('#form-item--repeater-setting-' + id )
48
- let url = $( this ).data( 'url' )
49
- $.post( url, { repeater_setting_id: id }, function( data )
50
- {
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) {
51
53
  // Get repaeter code from Rails
52
- // Due to the Rails way of creating nested forms it's necessary to
54
+ // Due to the Rails way of creating nested forms it's necessary to
53
55
  // create the nested item inside a different new form, then get just
54
56
  // the code contained between the two SPLIT comments
55
- let parts = data.split('<!-- SPLIT -->')
56
- let newRepeater = parts[1]
57
- setupAndAppend( newRepeater, $list )
58
- })
57
+ let parts = data.split("<!-- SPLIT -->");
58
+ let newRepeater = parts[1];
59
+ setupAndAppend(newRepeater, $list);
60
+ });
59
61
  }
60
62
 
61
- function setupAndAppend( newRepeater, $list )
62
- {
63
+ function setupAndAppend(newRepeater, $list) {
63
64
  // Append the item
64
- $list.prepend( newRepeater )
65
- let new_repeater_item = $list.find('.form-item--repeater').get(0)
65
+ $list.prepend(newRepeater);
66
+ let new_repeater_item = $list.find(".form-item--repeater").get(0);
66
67
 
67
68
  // Prepare animation
68
- new_repeater_item.style.maxHeight = 0
69
+ new_repeater_item.style.maxHeight = 0;
69
70
 
70
71
  // Group fields if sotrable is enabled
71
- if ( $list.hasClass('sortable--enabled') )
72
- {
73
- $(new_repeater_item).find('.form-item--repeater-fields').each(function()
74
- {
75
- this.style.maxHeight = 0 + 'px'
76
- })
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
+ });
77
78
  }
78
79
 
79
80
  // Setup TinyMCE for the newly created item
80
- var textarea_editor_id = $list.find('textarea').last('textarea').attr('id')
81
- tinyMCE.EditorManager.execCommand('mceAddEditor',true, textarea_editor_id);
82
-
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
+
83
87
  // Resize the editor (is it needed with the new configuration?)
84
88
  // _FormItemEditor.resize()
85
-
89
+
86
90
  // Update select input for Select2 plugin
87
- setupSelect2( $list.find('select') )
91
+ setupSelect2($list.find("select"));
88
92
 
89
93
  // Refresh Sortable to update the added item with Sortable features
90
- $list.sortable('refresh')
94
+ $list.sortable("refresh");
91
95
 
92
96
  // Run animation 50ms after previous style declaration (see above) otherwise animation doesn't get triggered
93
- setTimeout( function()
94
- {
95
- new_repeater_item.style.maxHeight = new_repeater_item.scrollHeight + 'px'
96
- }, 50)
97
+ setTimeout(function() {
98
+ new_repeater_item.style.maxHeight = new_repeater_item.scrollHeight + "px";
99
+ }, 50);
97
100
  }
98
101
 
99
- function deleteRepeter( event )
100
- {
102
+ function deleteRepeter(event) {
101
103
  // Stop default behaviour
102
- event.preventDefault()
103
-
104
- let record_id = $( this ).data('id')
105
- let target = $('#repeater_' + record_id).get(0)
106
- // As max-height isn't set you need to set it manually before changing it,
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,
107
109
  // otherwise the animation doesn't get triggered
108
- target.style.maxHeight = target.scrollHeight + 'px'
110
+ target.style.maxHeight = target.scrollHeight + "px";
109
111
  // Change max-height after 50ms to trigger css animation
110
- setTimeout( function(){ target.style.maxHeight = 0 + 'px' }, 50)
112
+ setTimeout(function() {
113
+ target.style.maxHeight = 0 + "px";
114
+ }, 50);
111
115
 
112
116
  $.ajax({
113
- url: $( this ).attr('href'),
117
+ url: $(this).attr("href"),
114
118
  data: { id: record_id, isAjax: true },
115
119
  method: "DELETE"
116
- }).done( ()=>{
120
+ }).done(() => {
117
121
  // Make sure the animation completes before removing the item (it should last 600ms + 50ms)
118
- setTimeout( function(){ $(target).remove() }, 700)
122
+ setTimeout(function() {
123
+ $(target).remove();
124
+ }, 700);
119
125
  // _FormItemEditor.resize()
120
- })
121
- }
126
+ });
127
+ }