binda 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -2
  3. data/app/assets/javascripts/binda/components/fileupload.js +11 -2
  4. data/app/assets/javascripts/binda/components/form_item.js +25 -45
  5. data/app/assets/javascripts/binda/components/form_item_choice.js +42 -32
  6. data/app/assets/javascripts/binda/components/form_item_repeater.js +29 -32
  7. data/app/assets/javascripts/binda/components/sortable.js +24 -19
  8. data/app/assets/javascripts/binda/dist/binda.bundle.js +133 -138
  9. data/app/assets/stylesheets/binda/components/b-alert.scss +24 -0
  10. data/app/assets/stylesheets/binda/components/form_item.scss +20 -17
  11. data/app/assets/stylesheets/binda/components/form_item_choice.scss +20 -0
  12. data/app/assets/stylesheets/binda/components/main_header.scss +1 -1
  13. data/app/assets/stylesheets/binda/components/main_sidebar.scss +33 -13
  14. data/app/assets/stylesheets/binda/components/main_table.scss +11 -3
  15. data/app/assets/stylesheets/binda/components/select2.scss +27 -18
  16. data/app/assets/stylesheets/binda/components/sortable.scss +1 -1
  17. data/app/assets/stylesheets/binda/components/standard-form.scss +41 -56
  18. data/app/assets/stylesheets/binda/index.scss +2 -0
  19. data/app/assets/stylesheets/binda/settings/common.scss +4 -3
  20. data/app/assets/stylesheets/binda/settings/tiny_mce_overrides.scss +21 -5
  21. data/app/assets/stylesheets/binda/settings/variables.scss +2 -2
  22. data/app/controllers/binda/components_controller.rb +3 -1
  23. data/app/controllers/binda/field_groups_controller.rb +9 -5
  24. data/app/controllers/binda/structures_controller.rb +1 -3
  25. data/app/models/binda/choice.rb +15 -9
  26. data/app/views/binda/categories/_form.html.erb +4 -6
  27. data/app/views/binda/categories/index.html.erb +3 -3
  28. data/app/views/binda/components/index.html.erb +6 -6
  29. data/app/views/binda/components/sort_index.html.erb +6 -6
  30. data/app/views/binda/field_groups/_form_body.html.erb +9 -9
  31. data/app/views/binda/field_groups/_form_item.html.erb +95 -104
  32. data/app/views/binda/field_groups/_form_item_choice.erb +5 -2
  33. data/app/views/binda/field_groups/_form_section.html.erb +5 -3
  34. data/app/views/binda/field_groups/_form_section_repeater.html.erb +6 -3
  35. data/app/views/binda/fieldable/_form_body.html.erb +5 -7
  36. data/app/views/binda/fieldable/_form_item_new_repeater.html.erb +1 -1
  37. data/app/views/binda/fieldable/_form_item_repeater.html.erb +2 -2
  38. data/app/views/binda/fieldable/_form_item_selections.html.erb +1 -1
  39. data/app/views/binda/fieldable/_form_sidebar.html.erb +4 -6
  40. data/app/views/binda/manage/users/_form_body.html.erb +4 -6
  41. data/app/views/binda/manage/users/index.html.erb +3 -3
  42. data/app/views/binda/structures/_form_body.html.erb +3 -5
  43. data/app/views/binda/structures/_form_section.html.erb +49 -25
  44. data/app/views/binda/structures/_form_sidebar.html.erb +1 -1
  45. data/app/views/binda/structures/index.html.erb +4 -4
  46. data/app/views/binda/structures/sort_index.html.erb +6 -6
  47. data/app/views/binda/users/sessions/new.html.erb +1 -1
  48. data/app/views/layouts/binda/_flash.html.erb +14 -16
  49. data/app/views/layouts/binda/_sidebar.html.erb +3 -0
  50. data/config/initializers/simple_form_custom.rb +1 -1
  51. data/config/locales/en.yml +1 -1
  52. data/config/routes.rb +1 -1
  53. data/db/migrate/1_create_binda_tables.rb +1 -0
  54. data/lib/binda.rb +1 -0
  55. data/lib/binda/version.rb +1 -1
  56. data/lib/generators/binda/setup/setup_generator.rb +3 -1
  57. metadata +26 -5
  58. data/db/migrate/20171214140451_add_preview_mode.rb +0 -5
@@ -7,6 +7,7 @@
7
7
 
8
8
  // Standard UI
9
9
  @import "components/b-btn";
10
+ @import "components/b-alert";
10
11
 
11
12
  // Components
12
13
  @import "components/main_sidebar";
@@ -18,6 +19,7 @@
18
19
  @import "components/login";
19
20
  @import "components/standard-form";
20
21
  @import "components/form_item";
22
+ @import "components/form_item_choice";
21
23
  @import "components/form_item_image";
22
24
  @import "components/form_item_video";
23
25
  @import "components/sortable";
@@ -1,7 +1,8 @@
1
1
  body
2
2
  {
3
+ min-height: 100vh;
3
4
  padding: 0;
4
- background-color: $body-bg;
5
+ background-image: linear-gradient( to bottom, $color-gray-lightest, darken($color-gray-lightest, 6%));
5
6
  }
6
7
 
7
8
  // this could be avoided using more recent version of bootstrap or with bourbon
@@ -49,6 +50,6 @@ body
49
50
  .pagination
50
51
  {
51
52
  float: left;
52
- margin-top: 0px;
53
53
  width: 100%;
54
- }
54
+ margin-top: 0;
55
+ }
@@ -3,7 +3,7 @@
3
3
  body#tinymce
4
4
  {
5
5
  padding: 12px;
6
- background-color: $color-gray-lightest;
6
+ background-color: $color-white;
7
7
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) !important;
8
8
  }
9
9
 
@@ -12,7 +12,7 @@ body#tinymce
12
12
  {
13
13
  margin-bottom: $font-size-base * .5 !important;
14
14
  border: none !important;
15
- background-color: $color-gray-lightest !important;
15
+ background-color: $color-white !important;
16
16
  }
17
17
 
18
18
  .mce-toolbar
@@ -21,7 +21,7 @@ body#tinymce
21
21
  }
22
22
 
23
23
  .mce-btn-group .mce-btn,
24
- .mce-flow-layout-item
24
+ .mce-flow-layout-item
25
25
  {
26
26
  margin-right: 2px !important;
27
27
  margin-left: 0 !important;
@@ -39,7 +39,7 @@ body#tinymce
39
39
 
40
40
  .mce-edit-area
41
41
  {
42
- border: 1px solid $color-white !important;
42
+ border: 1px solid $color-gray-lightest !important;
43
43
  border-radius: 1px !important;
44
44
  }
45
45
 
@@ -53,7 +53,7 @@ body#tinymce
53
53
  {
54
54
  border: none !important;
55
55
  border-top: none !important;
56
- background-color: $color-gray-lightest !important;
56
+ background-color: $color-white !important;
57
57
  }
58
58
 
59
59
  .mce-menubar
@@ -80,3 +80,19 @@ body#tinymce
80
80
  {
81
81
  box-shadow: none !important;
82
82
  }
83
+
84
+ .mce-btn
85
+ {
86
+ background-color: $color-gray-lightest !important;
87
+ }
88
+
89
+ .mce-btn:hover,
90
+ .mce-btn:active
91
+ {
92
+ border-color: $color-gray-lighter !important;
93
+ }
94
+
95
+ div.mce-edit-area
96
+ {
97
+ border-color: $color-gray-lightest !important;
98
+ }
@@ -25,10 +25,10 @@ $color-gray-dark: rgb( 102, 102, 102 );
25
25
  $color-gray: rgb( 128, 128, 128 );
26
26
  $color-gray-light: rgb( 153, 153, 153 );
27
27
  $color-gray-lighter: rgb( 193, 193, 193 );
28
- $color-gray-lightest: rgb( 229, 229, 229 );
28
+ $color-gray-lightest: rgb( 238, 238, 238 );
29
29
 
30
30
  $color-primary: #337ab7;
31
- $color-success: #5cb85c;
31
+ $color-success: #67CD9B;
32
32
  $color-info: #5bc0de;
33
33
  $color-warning: #f0ad4e;
34
34
  $color-danger: #fc4242;
@@ -35,7 +35,8 @@ module Binda
35
35
  if @component.save
36
36
  redirect_to structure_component_path( @structure.slug, @component.slug ), notice: "#{ @structure.name } was successfully created."
37
37
  else
38
- redirect_to new_structure_component_path( @structure.slug ), flash: { alert: @component.errors }
38
+ @instance = @component
39
+ render :edit, flash: { alert: @component.errors }
39
40
  end
40
41
  end
41
42
 
@@ -63,6 +64,7 @@ module Binda
63
64
  params[:repeater].each_with_index do |id, i|
64
65
  Repeater.find( id ).update({ position: i + 1 })
65
66
  end
67
+ render js: "$('.popup-warning').addClass('popup-warning--hidden');"
66
68
  head :ok
67
69
  end
68
70
 
@@ -35,7 +35,6 @@ module Binda
35
35
  # Add nested classes
36
36
  add_new_field_settings
37
37
  add_new_choices
38
-
39
38
  update_choices
40
39
 
41
40
  # Update the other ones
@@ -145,15 +144,20 @@ module Binda
145
144
  unless new_params[:new_choices].nil?
146
145
  new_params[:new_choices].each do |choice|
147
146
  unless choice[:label].blank? || choice[:value].blank?
148
- new_choice = Choice.create( choice )
149
- unless new_choice
150
- return redirect_to edit_structure_field_group_path( @structure.slug, @field_group.slug ), flash: { error: new_choice.errors }
151
- end
147
+ create_new_choice choice
152
148
  end
153
149
  end
154
150
  end
155
151
  end
156
152
 
153
+ # Create new choice (depends directly from add_new_choice method)
154
+ def create_new_choice choice
155
+ new_choice = Choice.create( choice )
156
+ unless new_choice
157
+ return redirect_to edit_structure_field_group_path( @structure.slug, @field_group.slug ), flash: { error: new_choice.errors }
158
+ end
159
+ end
160
+
157
161
  def update_choices
158
162
  return if field_group_params[:field_settings_attributes].nil?
159
163
  field_group_params[:field_settings_attributes].each do |_, field_setting_params|
@@ -61,14 +61,12 @@ module Binda
61
61
  params[:structure].each_with_index do |id, i|
62
62
  Structure.find( id ).update({ position: i + 1 })
63
63
  end
64
+ render js: "$('.popup-warning').addClass('popup-warning--hidden');"
64
65
  head :ok
65
66
  end
66
67
 
67
68
  def sort_index
68
69
  @structures = Structure.order('position').all.page params[:page]
69
- =begin
70
- return redirect_to structure_components_path, alert: "There are too many #{@structure.name.pluralize}. It's not possible to sort more than #{Component.sort_limit} #{@structure.name.pluralize}." if @structure.components.length > Component.sort_limit
71
- =end
72
70
  end
73
71
 
74
72
  private
@@ -54,22 +54,28 @@ module Binda
54
54
  field_setting.default_choice_id = nil
55
55
  end
56
56
 
57
+ # Update field setting with the new default choice
58
+ update_default_choice_of field_setting
59
+ end
60
+
61
+ # Update field setting with a default choice
62
+ #
63
+ # This method is used by reset_default_choice method.
64
+ #
65
+ # @param field_setting [ActiveRecord Object]
66
+ def update_default_choice_of field_setting
67
+
57
68
  # Save and check if it's alright
58
- unless field_setting.save
59
- raise "It hasn't been possible to set the default choice for the current setting (#{field_setting.slug})."
60
- end
69
+ raise "It hasn't been possible to set the default choice for the current setting (#{field_setting.slug})." unless field_setting.save
61
70
 
62
71
  # Create an empty array in order to avoid generating an error on the following each loop
63
72
  selections = Selection.joins(:field_setting).where(binda_field_settings: {id: field_setting.id })
64
73
 
65
74
  # Make sure none of the Binda::Selection instances (radios/checkboxes/selects) are left without a choice
66
75
  selections.each do |selection|
67
- unless selection.choices.any?
68
- selection.choices << Choice.find(self.field_setting.default_choice_id)
69
- unless selection.save
70
- raise "It hasn't been possible to set the default choice for Binda::Selection with id=#{selection.id}"
71
- end
72
- end
76
+ next if selection.choices.any?
77
+ selection.choices << Choice.find(self.field_setting.default_choice_id)
78
+ raise "It hasn't been possible to set the default choice for Binda::Selection with id=#{selection.id}" unless selection.save
73
79
  end
74
80
  end
75
81
 
@@ -5,10 +5,8 @@
5
5
  <%= f.error_notification %>
6
6
 
7
7
  <% if f.object.errors.any? %>
8
- <div class="standard-form--error-explanation">
9
- <div class="alert alert-error">
10
- <%= t('binda.standard_form_error_heading') %> <%= pluralize(f.object.errors.count, t("binda.standard_form_error")) %>.
11
- </div>
8
+ <div class="standard-form--error-explanation b-alert b-alert--error">
9
+ <%= t('binda.standard_form_error_heading') %> <%= pluralize(f.object.errors.count, t("binda.standard_form_error")) %>:
12
10
  <ul>
13
11
  <% f.object.errors.full_messages.each do |msg| %>
14
12
  <li><%= msg %></li>
@@ -22,7 +20,7 @@
22
20
  <div class="standard-form--container">
23
21
 
24
22
  <div class="standard-form--header">
25
- <p><%= "#{ t :details }".capitalize %></p>
23
+ <small><%= "#{ t :details }".capitalize %></small>
26
24
  </div>
27
25
 
28
26
  <div class="standard-form--fields">
@@ -46,7 +44,7 @@
46
44
  <div class="standard-form--container standard-form--sidebar">
47
45
 
48
46
  <div class="standard-form--header">
49
- <p><%= t(:setting).capitalize.pluralize %></p>
47
+ <small><%= t(:setting).capitalize.pluralize %></small>
50
48
  </div>
51
49
  <div class="standard-form--main-actions">
52
50
  <%= button_tag "<i class=\"fas fa-check\"></i>Save changes".html_safe, { class: 'b-btn b-btn-primary b-btn-settings', id: 'save' }%>
@@ -9,10 +9,10 @@
9
9
  <div class="main-table--container">
10
10
 
11
11
  <table class="standard-form--container">
12
- <thead>
12
+ <thead class="standard-form--header">
13
13
  <tr>
14
- <th style="width: 70%;" class="standard-form--header"><%= t(:category).capitalize.pluralize %></th>
15
- <th style="width: 30%;" class="standard-form--header"></th>
14
+ <th style="width: 70%;"><%= t(:category).capitalize.pluralize %></th>
15
+ <th style="width: 30%;"></th>
16
16
  </tr>
17
17
  </thead>
18
18
 
@@ -16,9 +16,9 @@
16
16
 
17
17
  <table class="standard-form--container" cellspacing="0">
18
18
 
19
- <thead>
20
-
21
- <th style="width: 50%", class="standard-form--header">
19
+ <thead class="standard-form--header">
20
+ <tr>
21
+ <th style="width: 50%">
22
22
  <a href="<%=
23
23
  if params[:order] == 'LOWER(name) ASC'
24
24
  structure_components_path([@structure], order:'LOWER(name) DESC')
@@ -34,7 +34,7 @@
34
34
  <% end %>
35
35
  </a>
36
36
  </th>
37
- <th style="width: 20%", class="standard-form--header">
37
+ <th style="width: 20%">
38
38
  <a href="<%=
39
39
  if params[:order] == 'publish_state ASC, LOWER(name) ASC'
40
40
  structure_components_path([@structure], order:'publish_state DESC, LOWER(name) ASC')
@@ -50,8 +50,8 @@
50
50
  <% end %>
51
51
  </a>
52
52
  </th>
53
- <th style="width: 30%", class="standard-form--header"><p style="float: right;">Actions</p></th>
54
-
53
+ <th style="width: 30%">Actions</th>
54
+ </tr>
55
55
  </thead>
56
56
  <tbody>
57
57
  <% @components.each do |component| %>
@@ -8,8 +8,8 @@
8
8
  <% end %>
9
9
 
10
10
  <% content_for :content do %>
11
- <div class="sortable-warning sortable-warning--hidden">
12
- <div class="sortable-warning--loader">
11
+ <div class="popup-warning popup-warning--hidden">
12
+ <div class="popup-warning--loader">
13
13
  <span></span>
14
14
  <span></span>
15
15
  <span></span>
@@ -22,11 +22,11 @@
22
22
  <h5 class="text-muted"><%= t('binda.sort_index_hint', { arg1: @structure.name.humanize.split.join(' ').pluralize }).html_safe %></h5>
23
23
 
24
24
  <table class="standard-form--container table-sort">
25
- <thead>
25
+ <thead class="standard-form--header">
26
26
  <tr>
27
- <th style="width: 50%;", class="standard-form--header">Title</th>
28
- <th style="width: 50%;", class="standard-form--header">Publish state</th>
29
- <th class="standard-form--header"></th>
27
+ <th style="width: 50%;">Title</th>
28
+ <th style="width: 50%;">Publish state</th>
29
+ <th></th>
30
30
  </tr>
31
31
  </thead>
32
32
  <tbody id="<%= @structure.slug %>-components--sort-index" class="sortable" data-update-url="<%= structure_components_sort_path( @structure.slug ) %>">
@@ -5,10 +5,8 @@
5
5
  <%= f.error_notification %>
6
6
 
7
7
  <% if f.object.errors.any? %>
8
- <div class="standard-form--error-explanation">
9
- <div class="alert alert-error">
10
- <%= t('binda.standard_form_error_heading') %> <%= pluralize(f.object.errors.count, t("binda.standard_form_error")) %>.
11
- </div>
8
+ <div class="standard-form--error-explanation b-alert b-alert--error">
9
+ <%= t('binda.standard_form_error_heading') %> <%= pluralize(f.object.errors.count, t("binda.standard_form_error")) %>:
12
10
  <ul>
13
11
  <% f.object.errors.full_messages.each do |msg| %>
14
12
  <li><%= msg %></li>
@@ -22,7 +20,7 @@
22
20
  <div class="standard-form--container">
23
21
 
24
22
  <div class="standard-form--header">
25
- <p><%= "#{ t :details }" %></p>
23
+ <small><%= "#{ t :details }" %></small>
26
24
  </div>
27
25
 
28
26
  <%= f.input :name, label: "#{ t :title }" %>
@@ -40,11 +38,12 @@
40
38
  <div id="form-section--field-group-<%= @field_group.id %>" class="form-section--wide-container">
41
39
 
42
40
  <div class="standard-form--header">
43
- <p><%= "#{ t 'binda.field_settings' }".pluralize %></p>
41
+ <small><%= "#{ t 'binda.field_settings' }" %></small>
44
42
  </div>
45
43
 
46
44
  <%= render "form_section", f: f %>
47
-
45
+
46
+ <div class="clearfix"></div>
48
47
  </div>
49
48
 
50
49
  <% @field_group.field_settings.where( field_type: 'repeater' ).order( :position, :id ).each do |repeater| %>
@@ -52,11 +51,12 @@
52
51
  <div class="form-section">
53
52
 
54
53
  <div class="standard-form--header field-settings-header">
55
- <p><%= "#{ t('binda.repeater_field_settings', arg1: repeater.name ) }" %></p>
54
+ <small><%= "#{ t('binda.repeater_field_settings', arg1: repeater.name ) }" %></small>
56
55
  </div>
57
56
 
58
57
  <%= render "form_section_repeater", f: f, repeater: repeater %>
59
58
 
59
+ <div class="clearfix"></div>
60
60
  </div>
61
61
  </div>
62
62
  <% end %>
@@ -70,7 +70,7 @@
70
70
  <div class="standard-form--container">
71
71
 
72
72
  <div class="standard-form--header">
73
- <p><%= "#{ t :setting }".pluralize %></p>
73
+ <small><%= "#{ t :setting }".pluralize %></small>
74
74
  </div>
75
75
 
76
76
  <div class="standard-form--main-actions">
@@ -1,133 +1,124 @@
1
- <%= ff.input :field_group_id, as: :hidden %>
2
- <%= ff.input :id, as: :hidden %>
3
- <%= ff.input :ancestry, as: :hidden unless ff.object.is_root? %>
1
+ <div class="standard-form--container field-settings-container form-item--collapsable form-item--collapsed">
4
2
 
5
- <%# - - - - - - - - - - - - %>
6
- <%# REMOVE BUTTON %>
7
- <%# - - - - - - - - - - - - %>
8
- <% if ff.object.slug.nil? %>
9
- <a class="form-item--remove-item-with-js"
10
- data-confirm="This operation will delete this setting and all related component content. Are you ok with that?">
3
+ <%= ff.input :field_group_id, as: :hidden %>
4
+ <%= ff.input :id, as: :hidden %>
5
+ <%= ff.input :ancestry, as: :hidden unless ff.object.is_root? %>
11
6
 
12
- <span class="glyphicon glyphicon-trash" aria-hidden="true"></span></a>
13
- <% else %>
14
-
15
- <div class="standard-form--container field-settings-container">
16
-
17
- <div class="standard-form--secondary-header field-settings-header">
18
- <p><%= ff.object.name %> (<%= ff.object.field_type.humanize.capitalize %>)</p>
19
-
20
- <a class="form-item--toggle-button form-item--toggle-button-closed">
21
-
22
- <span class="glyphicon glyphicon-chevron-up" aria-hidden="true"></span></a>
23
-
24
-
25
- <%= link_to "<i class=\"far fa-trash-alt\"></i>".html_safe,
7
+ <div class="standard-form--secondary-header form-item--header form-item--repeater-header">
8
+ <%# - - - - - - - - - - - - %>
9
+ <%# BUTTONS %>
10
+ <%# - - - - - - - - - - - - %>
11
+ <% if ff.object.slug.nil? %>
12
+ <a class="form-item--delete-repeater-item form-item--remove-item-with-js"
13
+ data-confirm="This operation will delete this setting and all related component content. Are you ok with that?">
14
+ <i class="far fa-trash-alt"></i> <%= t('binda.delete').capitalize %>
15
+ </a>
16
+ <p><%= t('binda.new_item_in_repeater', { arg1: '' })%></p>
17
+ <% else %>
18
+ <a class="form-item--collapse-btn" href="#">
19
+ <span><i class="fas fa-angle-up"></i> <%= t('binda.collapse') %></span>
20
+ <span><i class="fas fa-angle-down"></i> <%= t('binda.expand') %></span>
21
+ </a>
22
+ <%= link_to "<i class=\"far fa-trash-alt\"></i> #{t('binda.delete').capitalize}".html_safe,
26
23
  structure_field_group_field_setting_path( @structure, @field_group, ff.object ),
27
24
  method: :delete,
28
- data: { confirm: 'Are you sure?' },
29
- class: 'text-destroy' %>
30
- </div>
31
-
25
+ data: { confirm: t('binda.confirm_delete') },
26
+ class: 'form-item--delete-repeater-item' %>
27
+ <p><%= ff.object.name %> (<%= ff.object.field_type.humanize.capitalize %>)</p>
28
+ <% end %>
32
29
  </div>
33
30
 
34
- <% end %>
35
-
36
- <div class="form-item--editor">
37
-
38
- <%# - - - - - - - - - - - - %>
39
- <%# NAME %>
40
- <%# - - - - - - - - - - - - %>
41
- <div class="form-item--half-size">
42
-
43
- <%= ff.input :name, as: :string, input_html: { class: "form-item--input" } %>
44
- </div>
45
-
46
-
47
- <% if ff.object.new_record? %>
31
+ <div class="form-item--editor">
48
32
 
49
33
  <%# - - - - - - - - - - - - %>
50
- <%# SLUG %>
34
+ <%# NAME %>
51
35
  <%# - - - - - - - - - - - - %>
52
36
  <div class="form-item--half-size">
53
- <%= ff.input :slug, as: :hidden, input_html: { class: "form-item--input" } %>
37
+ <%= ff.input :name, as: :string, input_html: { class: "form-item--input" } %>
54
38
  </div>
55
39
 
56
- <%# - - - - - - - - - - - - %>
57
- <%# FIELD TYPE %>
58
- <%# - - - - - - - - - - - - %>
59
- <div class="form-item--full-size">
60
40
 
61
- <% if ff.object.field_type.nil? %>
62
- <%= 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' } %>
63
- <% else %>
64
- <%= ff.input :field_type, as: :string, disabled: true, input_html: { class: "form-item--input" } %>
65
- <% end %>
66
- </div>
41
+ <% if ff.object.new_record? %>
67
42
 
68
- <% else %>
69
-
70
- <%# - - - - - - - - - - - - %>
71
- <%# SLUG %>
72
- <%# - - - - - - - - - - - - %>
73
- <div class="form-item--half-size">
74
- <%= ff.input :slug, as: :string, input_html: { class: "form-item--input" } %>
75
- </div>
43
+ <%# - - - - - - - - - - - - %>
44
+ <%# SLUG %>
45
+ <%# - - - - - - - - - - - - %>
46
+ <%= ff.input :slug, as: :hidden, input_html: { class: "form-item--input" } %>
76
47
 
77
- <%# - - - - - - - - - - - - %>
78
- <%# FIELD TYPE %>
79
- <%# - - - - - - - - - - - - %>
80
- <div class="form-item--full-size">
48
+ <%# - - - - - - - - - - - - %>
49
+ <%# FIELD TYPE %>
50
+ <%# - - - - - - - - - - - - %>
51
+ <div class="form-item--half-size">
81
52
 
82
- <% if ff.object.field_type.nil? %>
83
- <%= 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' } %>
84
- <% else %>
85
- <%= ff.input :field_type, as: :string, disabled: true, input_html: { class: "form-item--input" } %>
86
- <% end %>
87
- </div>
53
+ <% if ff.object.field_type.nil? %>
54
+ <%= 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' } %>
55
+ <% else %>
56
+ <%= ff.input :field_type, as: :string, disabled: true, input_html: { class: "form-item--input" } %>
57
+ <% end %>
58
+ </div>
88
59
 
89
- <%# - - - - - - - - - - - - %>
90
- <%# DESCRIPTION %>
91
- <%# - - - - - - - - - - - - %>
92
- <div class="form-item--full-size">
93
- <%= ff.input :description, input_html: { class: "form-item--input" } %>
94
- </div>
60
+ <% else %>
95
61
 
96
- <%# - - - - - - - - - - - - %>
97
- <%# POSITION %>
98
- <%# - - - - - - - - - - - - %>
99
- <div class="form-item--full-size">
100
- <%= ff.input :position, as: :integer, input_html: { class: "form-item--input" } %>
101
- </div>
62
+ <%# - - - - - - - - - - - - %>
63
+ <%# SLUG %>
64
+ <%# - - - - - - - - - - - - %>
65
+ <div class="form-item--half-size">
66
+ <%= ff.input :slug, as: :string, input_html: { class: "form-item--input" } %>
67
+ </div>
102
68
 
103
- <%# - - - - - - - - - - - - %>
104
- <%# ACCEPTED STRUCTURES %>
105
- <%# - - - - - - - - - - - - %>
106
- <% if ff.object.field_type == 'relation' %>
69
+ <%# - - - - - - - - - - - - %>
70
+ <%# FIELD TYPE %>
71
+ <%# - - - - - - - - - - - - %>
107
72
  <div class="form-item--full-size">
108
- <%= ff.input :accepted_structure_ids,
109
- collection: Binda::Structure.all,
110
- as: :select,
111
- input_html: { multiple: true, class: 'select2-item' },
112
- checked: ff.object.accepted_structures,
113
- include_blank: false,
114
- include_hidden: false %>
73
+ <% if ff.object.field_type.nil? %>
74
+ <%= 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' } %>
75
+ <% else %>
76
+ <%= ff.input :field_type, as: :string, disabled: true, input_html: { class: "form-item--input" } %>
77
+ <% end %>
115
78
  </div>
116
- <% end %>
117
-
118
79
 
119
- <% choiceables = ['radio', 'selection', 'checkbox'] %>
120
- <% if choiceables.include? ff.object.field_type %>
80
+ <%# - - - - - - - - - - - - %>
81
+ <%# DESCRIPTION %>
82
+ <%# - - - - - - - - - - - - %>
83
+ <div class="form-item--full-size">
84
+ <%= ff.input :description, input_html: { class: "form-item--input" } %>
85
+ </div>
121
86
 
122
87
  <%# - - - - - - - - - - - - %>
123
- <%# CHOICES %>
88
+ <%# POSITION %>
124
89
  <%# - - - - - - - - - - - - %>
125
- <%= render 'form_item_choice', f: f, ff: ff %>
90
+ <div class="form-item--full-size">
91
+ <%= ff.input :position, as: :integer, input_html: { class: "form-item--input" } %>
92
+ </div>
93
+
94
+ <%# - - - - - - - - - - - - %>
95
+ <%# ACCEPTED STRUCTURES %>
96
+ <%# - - - - - - - - - - - - %>
97
+ <% if ff.object.field_type == 'relation' %>
98
+ <div class="form-item--full-size">
99
+ <%= ff.input :accepted_structure_ids,
100
+ collection: Binda::Structure.all,
101
+ as: :select,
102
+ input_html: { multiple: true, class: 'select2-item' },
103
+ checked: ff.object.accepted_structures,
104
+ include_blank: false,
105
+ include_hidden: false %>
106
+ </div>
107
+ <% end %>
108
+
109
+
110
+ <% choiceables = ['radio', 'selection', 'checkbox'] %>
111
+ <% if choiceables.include? ff.object.field_type %>
112
+
113
+ <%# - - - - - - - - - - - - %>
114
+ <%# CHOICES %>
115
+ <%# - - - - - - - - - - - - %>
116
+ <%= render 'form_item_choice', f: f, ff: ff %>
117
+
118
+ <% end %>
126
119
 
127
120
  <% end %>
128
-
129
- <% end %>
130
- <div class="clearfix"></div>
131
-
121
+ <div class="clearfix"></div>
122
+ </div>
132
123
  </div>
133
124