bootybox 0.0.91

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 (98) hide show
  1. checksums.yaml +7 -0
  2. data/app/assets/images/alchemy/element_thumbnails/bootybox/defaults/default_image.png +0 -0
  3. data/app/assets/images/alchemy/element_thumbnails/bootybox/defaults/default_textbox.png +0 -0
  4. data/app/assets/images/alchemy/element_thumbnails/bootybox/grid/four_columns_25_25_25_25.png +0 -0
  5. data/app/assets/images/alchemy/element_thumbnails/bootybox/grid/one_column_100.png +0 -0
  6. data/app/assets/images/alchemy/element_thumbnails/bootybox/grid/three_columns_33_33_33.png +0 -0
  7. data/app/assets/images/alchemy/element_thumbnails/bootybox/grid/two_columns_25_75.png +0 -0
  8. data/app/assets/images/alchemy/element_thumbnails/bootybox/grid/two_columns_50_50.png +0 -0
  9. data/app/assets/images/alchemy/element_thumbnails/bootybox/grid/two_columns_75_25.png +0 -0
  10. data/app/assets/images/alchemy/element_thumbnails/bootybox/layout/element_container.png +0 -0
  11. data/app/assets/images/alchemy/element_thumbnails/bootybox/layout/seperator.png +0 -0
  12. data/app/assets/javascripts/bootybox/defaults.js +6 -0
  13. data/app/assets/javascripts/bootybox/modal.js.coffee +14 -0
  14. data/app/assets/javascripts/bootybox/portfolio.js.coffee +96 -0
  15. data/app/assets/javascripts/bootybox/slideshow.js.coffee +12 -0
  16. data/app/assets/javascripts/bootybox/templates/modal/buttons/cancel.hbs +1 -0
  17. data/app/assets/javascripts/bootybox/templates/modal/default.hbs +18 -0
  18. data/app/assets/javascripts/bootybox/templates/modal/modal_target.hbs +1 -0
  19. data/app/assets/javascripts/bootybox/templates/portfolio/portfolio_item.hbs +4 -0
  20. data/app/assets/javascripts/bootybox/vendor/flip.js +298 -0
  21. data/app/assets/stylesheets/bootybox/_elements.scss +54 -0
  22. data/app/assets/stylesheets/bootybox/_fixes.scss +22 -0
  23. data/app/assets/stylesheets/bootybox/_navi.scss +4 -0
  24. data/app/assets/stylesheets/bootybox/_portfolio.scss +37 -0
  25. data/app/assets/stylesheets/bootybox/_slides.scss +41 -0
  26. data/app/assets/stylesheets/bootybox/defaults.scss +7 -0
  27. data/app/assets/templates/framework.scss +50 -0
  28. data/app/helpers/bootybox_content_helper.rb +44 -0
  29. data/app/helpers/bootybox_form_helper.rb +39 -0
  30. data/app/helpers/bootybox_grid_helper.rb +112 -0
  31. data/app/services/bootybox/elements_config_service.rb +21 -0
  32. data/app/services/bootybox/navigational_context_pages_service.rb +15 -0
  33. data/app/services/bootybox/page_layout_config_service.rb +4 -0
  34. data/app/views/alchemy/elements/_contactform_editor.html.erb +6 -0
  35. data/app/views/alchemy/elements/_contactform_view.html.erb +48 -0
  36. data/app/views/alchemy/elements/bootybox/defaults/_button_editor.html.erb +8 -0
  37. data/app/views/alchemy/elements/bootybox/defaults/_button_view.html.erb +5 -0
  38. data/app/views/alchemy/elements/bootybox/defaults/_default_image_editor.html.erb +5 -0
  39. data/app/views/alchemy/elements/bootybox/defaults/_default_image_view.html.erb +8 -0
  40. data/app/views/alchemy/elements/bootybox/defaults/_default_textbox_editor.html.erb +5 -0
  41. data/app/views/alchemy/elements/bootybox/defaults/_default_textbox_view.html.erb +7 -0
  42. data/app/views/alchemy/elements/bootybox/defaults/_subheader_editor.html.erb +8 -0
  43. data/app/views/alchemy/elements/bootybox/defaults/_subheader_view.html.erb +10 -0
  44. data/app/views/alchemy/elements/bootybox/fancy/_flip_content_box_editor.html.erb +17 -0
  45. data/app/views/alchemy/elements/bootybox/fancy/_flip_content_box_view.html.erb +19 -0
  46. data/app/views/alchemy/elements/bootybox/grid/_four_columns_25_25_25_25_editor.html.haml +2 -0
  47. data/app/views/alchemy/elements/bootybox/grid/_four_columns_25_25_25_25_view.html.haml +10 -0
  48. data/app/views/alchemy/elements/bootybox/grid/_one_column_100_editor.html.haml +2 -0
  49. data/app/views/alchemy/elements/bootybox/grid/_one_column_100_view.html.haml +5 -0
  50. data/app/views/alchemy/elements/bootybox/grid/_three_columns_33_33_33_editor.html.haml +2 -0
  51. data/app/views/alchemy/elements/bootybox/grid/_three_columns_33_33_33_view.html.haml +8 -0
  52. data/app/views/alchemy/elements/bootybox/grid/_two_columns_25_75_editor.html.haml +2 -0
  53. data/app/views/alchemy/elements/bootybox/grid/_two_columns_25_75_view.html.haml +6 -0
  54. data/app/views/alchemy/elements/bootybox/grid/_two_columns_50_50_editor.html.haml +2 -0
  55. data/app/views/alchemy/elements/bootybox/grid/_two_columns_50_50_view.html.haml +6 -0
  56. data/app/views/alchemy/elements/bootybox/grid/_two_columns_66_33_editor.html.haml +3 -0
  57. data/app/views/alchemy/elements/bootybox/grid/_two_columns_66_33_view.html.haml +6 -0
  58. data/app/views/alchemy/elements/bootybox/grid/_two_columns_75_25_editor.html.haml +3 -0
  59. data/app/views/alchemy/elements/bootybox/grid/_two_columns_75_25_view.html.haml +6 -0
  60. data/app/views/alchemy/elements/bootybox/layout/_element_container_editor.html.erb +4 -0
  61. data/app/views/alchemy/elements/bootybox/layout/_element_container_view.html.erb +8 -0
  62. data/app/views/alchemy/elements/bootybox/layout/_page_header_editor.html.erb +3 -0
  63. data/app/views/alchemy/elements/bootybox/layout/_page_header_view.html.erb +6 -0
  64. data/app/views/alchemy/elements/bootybox/layout/_seperator_editor.html.erb +4 -0
  65. data/app/views/alchemy/elements/bootybox/layout/_seperator_view.html.erb +4 -0
  66. data/app/views/alchemy/elements/bootybox/navi/_sub_navi_container_editor.html.erb +3 -0
  67. data/app/views/alchemy/elements/bootybox/navi/_sub_navi_container_view.html.erb +5 -0
  68. data/app/views/alchemy/elements/bootybox/navi/_sub_navi_item_editor.html.erb +4 -0
  69. data/app/views/alchemy/elements/bootybox/navi/_sub_navi_item_view.html.erb +3 -0
  70. data/app/views/alchemy/elements/bootybox/portfolio/_portfolio_container_editor.html.erb +8 -0
  71. data/app/views/alchemy/elements/bootybox/portfolio/_portfolio_container_view.html.erb +12 -0
  72. data/app/views/alchemy/elements/bootybox/portfolio/_portfolio_item_editor.html.erb +7 -0
  73. data/app/views/alchemy/elements/bootybox/portfolio/_portfolio_item_view.html.erb +13 -0
  74. data/app/views/alchemy/elements/bootybox/slideshow/_image_slideshow_editor.html.erb +3 -0
  75. data/app/views/alchemy/elements/bootybox/slideshow/_image_slideshow_slide_editor.html.erb +4 -0
  76. data/app/views/alchemy/elements/bootybox/slideshow/_image_slideshow_slide_view.html.erb +4 -0
  77. data/app/views/alchemy/elements/bootybox/slideshow/_image_slideshow_view.html.erb +37 -0
  78. data/app/views/alchemy/elements/bootybox/slideshow_top/_slideshow_slide_container_editor.html.erb +4 -0
  79. data/app/views/alchemy/elements/bootybox/slideshow_top/_slideshow_slide_container_view.html.erb +10 -0
  80. data/app/views/alchemy/elements/bootybox/slideshow_top/_slideshow_slide_top_editor.html.erb +10 -0
  81. data/app/views/alchemy/elements/bootybox/slideshow_top/_slideshow_slide_top_view.html.erb +26 -0
  82. data/app/views/alchemy/elements/bootybox/slideshow_top/_slideshow_teaser_top_editor.html.erb +4 -0
  83. data/app/views/alchemy/elements/bootybox/slideshow_top/_slideshow_teaser_top_view.html.erb +28 -0
  84. data/app/views/alchemy/page_layouts/_default.html.erb +4 -0
  85. data/app/views/bootybox/forms/_form_group_container.html.erb +12 -0
  86. data/app/views/bootybox/forms/_form_group_input.html.erb +14 -0
  87. data/app/views/bootybox/forms/_form_group_select.html.erb +2 -0
  88. data/app/views/layouts/_footer.html.erb +5 -0
  89. data/app/views/layouts/_navigation.html.erb +32 -0
  90. data/app/views/layouts/_navigational_footer.html.erb +19 -0
  91. data/app/views/layouts/application.html.erb +42 -0
  92. data/config/elements.yml +274 -0
  93. data/config/locales/bootybox.de.yml +54 -0
  94. data/lib/bootybox.rb +19 -0
  95. data/lib/bootybox/engine.rb +41 -0
  96. data/lib/generators/bootybox/views/application_layout_generator.rb +20 -0
  97. data/lib/tasks/bootybox.rake +88 -0
  98. metadata +224 -0
@@ -0,0 +1,10 @@
1
+ <%= element_editor_for(element) do |el| -%>
2
+ <%= el.edit :header %>
3
+ <%= el.edit :sub_text %>
4
+ <%= el.edit :image %>
5
+ <%= el.edit :image_format %>
6
+ <%= el.edit :content %>
7
+ <%= el.edit :link %>
8
+
9
+
10
+ <%- end -%>
@@ -0,0 +1,26 @@
1
+ <%= element_view_for(element, tag: nil) do |el| -%>
2
+ <%= slideshow_top_slide_wrapper(element) do %>
3
+ <%= link_to "&nbsp;".html_safe, element.content_by_name(:link, :preview => session[:page_preview_mode]).ingredient, :class => "slideshow-link"%>
4
+
5
+ <% unless el.render(:content).blank? %>
6
+ <div class="container">
7
+ <div class="row">
8
+ <div class="col-md-12">
9
+ <div class="slide-textbox panel default-panel">
10
+ <div class="panel-heading">
11
+ <h2><%= el.render :header %></h2>
12
+ </div>
13
+ <div class="panel-body">
14
+ <%= el.render :content, {}, {:class =>"slide-text-content"} %>
15
+ <%= el.render :link %>
16
+ </div>
17
+ <div class="panel-footer">
18
+ <p class="text-right pricing"><%= el.render :price_text %></p>
19
+ </div>
20
+ </div>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ <% end %>
25
+ <% end %>
26
+ <%- end -%>
@@ -0,0 +1,4 @@
1
+ <%= element_editor_for(element) do |el| -%>
2
+
3
+
4
+ <%- end -%>
@@ -0,0 +1,28 @@
1
+ <%- cache_if(session[:page_preview_mode] != true, [element]) do -%>
2
+ <%= element_view_for(element) do |el| %>
3
+
4
+ <% slides = element.all_children %>
5
+
6
+ <div class="carousel slide" data-ride="xxx-carousel" id="start-slideshow-<%= element.id %>" >
7
+ <% if slides.size > 1 %>
8
+ <ol class="carousel-indicators">
9
+ <% slides.each_with_index do |sub_el, index| %>
10
+ <%= element_view_for(sub_el, tag: nil) do |el| -%>
11
+ <% (index == 0) ? item_active_class = "active" : item_active_class = "" %>
12
+ <li data-target="#start-slideshow-<%= element.id %>" data-slide-to="<%= index %>" class="<%= item_active_class %>"></li>
13
+ <%- end -%>
14
+ <% end %>
15
+ </ol>
16
+ <% end %>
17
+ <ul class="carousel-inner">
18
+ <% slides.each_with_index do |sub_el, index| %>
19
+ <%= render_element(sub_el) %>
20
+ <% end %>
21
+ </ul>
22
+ </div>
23
+ <%- end -%>
24
+ <% end %>
25
+
26
+
27
+
28
+
@@ -0,0 +1,4 @@
1
+ <div id="top-slideshow" class="<%= 'empty' if collect_elements_from_pages([@page], :from_cell => 'top_slideshow').empty? %>"><%= render_elements(:from_cell => 'top_slideshow') %></div>
2
+ <div id="page-wrapper" class="content-wrapper-row"><%= render_elements(:from_cell => 'main') %></div>
3
+
4
+
@@ -0,0 +1,12 @@
1
+ <div class="form-group <%= css_class rescue nil %> row" id="<%= id %>">
2
+ <% if method.nil? %>
3
+ <%= col({lg: 3, xs: 12}) do %>
4
+ &nbsp;
5
+ <% end %>
6
+ <% else %>
7
+ <%= form.label method, label_text, :class=>"control-label #{column_classes({lg: 3, xs: 12})}", :placeholder => (placeholder rescue nil) %>
8
+ <% end %>
9
+ <%= col({lg: 9, xs: 12}) do %>
10
+ <%= content %>
11
+ <% end %>
12
+ </div>
@@ -0,0 +1,14 @@
1
+ <% if validation.last.is_a?(Hash) %>
2
+ <% validator_options = validation.last[:validator_options] %>
3
+ <% field_id = validation.last[:id] %>
4
+ <% placeholder = validation.last[:placeholder] %>
5
+ <% validation.pop %>
6
+ <% else %>
7
+ <% validator_options = {} %>
8
+ <% field_id = nil %>
9
+ <% placeholder = nil %>
10
+ <% end %>
11
+
12
+ <%= render "/bootybox/forms/form_group_container", :form => form, :method => method, :id => "form-group-#{form.object_name}-#{method}", :label_text => label_text,
13
+ :content => form.send(type, method, jqac2_validation_for(*validation, :validator_options => validator_options, :id => field_id, :placeholder => placeholder,
14
+ :class=>"form-control", :data=>{ :toggle => "tooltip"}, :value => value, :title => (tooltip || I18n.t(method.to_s, :scope => :form_tooltips, :default => "")))) %>
@@ -0,0 +1,2 @@
1
+ <%= render "/bootybox/forms/form_group_container", :form => form, :method => method, :id => "form-group-#{form.object_name}-#{method}", :label_text => label_text,
2
+ :content => form.select(method, collection, {:selected => value}, {:data=>{ :toggle => "tooltip", :placement=>"left"}, :class => "searchable"}) %>
@@ -0,0 +1,5 @@
1
+ <div id="footer">
2
+ <% Alchemy::Page.link_container(:footer).children.visible.each do |link| %>
3
+ <%= link_to link.name, alchemy_url_for(link) %>
4
+ <% end %>
5
+ </div>
@@ -0,0 +1,32 @@
1
+ <nav class="navbar">
2
+ <div class="container-fluid navbar-container">
3
+ <div class="navbar-header">
4
+ <a class="navbar-brand" href="/"><%= image_tag "logo.png" %></a>
5
+ </div>
6
+ <div class="nav-container">
7
+ <ul class="nav navbar-nav">
8
+ <% @top_menu.each do |top_page| %>
9
+ <% if top_page.children.visible.any? %>
10
+ <li class="dropdown">
11
+ <%= link_to "#", :class => "dropdown-toggle", :id => "menu-#{top_page.id}", :data => {:toggle=>"dropdown"} do %>
12
+ <%= top_page.name %>&nbsp;<%= icon("navi-page-#{top_page.id}") %>
13
+ <% end %>
14
+ <ul class="dropdown-menu">
15
+ <% top_page.children.visible.each do |page| %>
16
+ <li><%= link_to page.name, alchemy_url_for(page) %></li>
17
+ <% end %>
18
+ </ul>
19
+ </li>
20
+ <% else %>
21
+ <li>
22
+ <%= link_to alchemy_url_for(top_page), :id => "menu-#{top_page.id}" do %>
23
+ <%= top_page.name %>&nbsp;<%= icon("navi-page-#{top_page.id}") %>
24
+ <% end %>
25
+
26
+ </li>
27
+ <% end %>
28
+ <% end %>
29
+ </ul>
30
+ </div>
31
+ </div>
32
+ </nav>
@@ -0,0 +1,19 @@
1
+ <% if !@page.nil? %>
2
+ <div id="navigational-footer">
3
+ <% if @page_previous %>
4
+ <%= link_to alchemy_url_for(@page_previous), :class => "btn btn-default pull-left navigational-footer-link navigational-footer-previous" do %>
5
+ <%= icon("fs-arrow-circle-1-left") %>&nbsp;<%= @page_previous.name %>
6
+ <% end %>
7
+ <% end %>
8
+ <% if @page_next %>
9
+ <%= link_to alchemy_url_for(@page_next), :class => "btn btn-default pull-right navigational-footer-link navigational-footer-next" do %>
10
+ <%= @page_next.name %>&nbsp;<%= icon("fs-arrow-circle-1-right") %>
11
+ <% end %>
12
+ <% end %>
13
+ <% if @page_parent %>
14
+ <div class="text-center">
15
+ <%= link_to @page_parent.name, alchemy_url_for(@page_parent), :class => "btn btn-default navigational-footer-link navigational-footer-parent" %>
16
+ </div>
17
+ <% end %>
18
+ </div>
19
+ <% end %>
@@ -0,0 +1,42 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title><%= content_for?(:page_title) ? yield(:page_title) : (@page ? @page.name : '') %> | <%= COMPANY_NAME %></title>
5
+
6
+ <%= stylesheet_link_tag "application" %>
7
+ <%= javascript_include_tag "application" %>
8
+ <%= csrf_meta_tags %>
9
+
10
+ <% if @page && yield(:page_head).blank? && @page.meta_description.present? %>
11
+ <meta name="description" content="<%= @page.meta_description %>" />
12
+ <meta name="keywords" content="<%= @page.meta_keywords %>" />
13
+ <% elsif !yield(:page_head).blank? %>
14
+ <%= yield(:page_head) %>
15
+ <% elsif @product_base && @product_base.product.try?(:meta_description) %>
16
+ <meta name="description" content="<%= @product_base.product.meta_description %>" />
17
+ <% else %>
18
+ <meta name="description" content="Entdecken Sie <%= yield(:page_title) %> auf <%= COMPANY_NAME %>" />
19
+ <% end %>
20
+
21
+ <% if @page %>
22
+ <style type="text/css">
23
+ <%= @page.custom_css %>
24
+ </style>
25
+ <% end %>
26
+
27
+ </head>
28
+ <body class="<%= @page ? @page.color_theme : "theme-default" %>">
29
+
30
+ <%= render "layouts/navigation" %>
31
+
32
+ <div id="main">
33
+ <%= yield %>
34
+
35
+ <%= render "layouts/navigational_footer" %>
36
+
37
+ <%= render "layouts/footer" %>
38
+
39
+ </div>
40
+ <%= alchemy_preview_mode_code %>
41
+ </body>
42
+ </html>
@@ -0,0 +1,274 @@
1
+ # Template file for the elements
2
+ - name: page_header
3
+ contents:
4
+ - name: title
5
+ type: EssenceText
6
+ path: bootybox/layout
7
+ unique: true
8
+
9
+ - name: seperator
10
+ path: bootybox/layout
11
+ contents:
12
+ - name: style
13
+ type: EssenceSelect
14
+ - name: invisible
15
+ type: EssenceBoolean
16
+
17
+
18
+ - name: slideshow_teaser_top
19
+ path: bootybox/slideshow_top
20
+ elements: [slideshow_slide_top, slideshow_slide_container]
21
+ unique: true
22
+
23
+ - name: slideshow_slide_top
24
+ path: bootybox/slideshow_top
25
+ contents:
26
+ - name: sub_text
27
+ type: EssenceText
28
+ - name: header
29
+ type: EssenceText
30
+ - name: image
31
+ type: EssencePicture
32
+ image_size: 1600x400
33
+ - name: image_format
34
+ type: EssenceText
35
+ default: '1600x400'
36
+ - name: content
37
+ type: EssenceRichtext
38
+ - name: link
39
+ type: EssenceLink
40
+
41
+ - name: slideshow_slide_container
42
+ path: bootybox/slideshow_top
43
+ contents:
44
+ - name: image
45
+ type: EssencePicture
46
+ image_size: 1600x400
47
+ - name: image_format
48
+ type: EssenceText
49
+ default: '1600x400'
50
+ elements:
51
+ [one_column_100, four_columns_25_25_25_25, two_columns_50_50, two_columns_25_75, two_columns_75_25, three_columns_33_33_33]
52
+
53
+
54
+
55
+ #== Default elements like simple text boxes, Banners etc...
56
+ - name: default_textbox
57
+ path: bootybox/defaults
58
+ contents:
59
+ - name: text
60
+ type: EssenceRichtext
61
+ - name: style
62
+ type: EssenceSelect
63
+ - name: css_class
64
+ type: EssenceText
65
+ hint: Custom CSS class
66
+
67
+ - name: default_image
68
+ path: bootybox/defaults
69
+ contents:
70
+ - name: image
71
+ type: EssencePicture
72
+ - name: css_class
73
+ type: EssenceText
74
+
75
+
76
+ - name: button
77
+ path: bootybox/defaults
78
+ contents:
79
+ - name: link
80
+ type: EssenceLink
81
+ - name: position
82
+ type: EssenceSelect
83
+ - name: style
84
+ type: EssenceSelect
85
+ - name: css_class
86
+ type: EssenceText
87
+
88
+
89
+ - name: subheader
90
+ path: bootybox/defaults
91
+ contents:
92
+ - name: header_type
93
+ type: EssenceSelect
94
+ - name: title
95
+ type: EssenceText
96
+ - name: anchor
97
+ type: EssenceText
98
+ hint: ID zur verwendung in links
99
+ - name: subtitle
100
+ type: EssenceText
101
+ - name: icon
102
+ type: EssencePicture
103
+ image_format: '128x128'
104
+ - name: link
105
+ type: EssenceLink
106
+ hint: 'Wird um das gesamte Element gerendert'
107
+
108
+
109
+ #== Layout containers
110
+ #=== defining vars for allowed sub elements
111
+ - name: one_column_100
112
+ path: bootybox/grid
113
+ elements: [ portfolio_container, subheader, default_image, default_textbox, sub_navi_container ]
114
+ contents:
115
+ - name: name
116
+ type: EssenceText
117
+
118
+ - name: four_columns_25_25_25_25
119
+ max_children: 4
120
+ path: bootybox/grid
121
+ elements: &default_elements_for_grid
122
+ - default_textbox
123
+ - subheader
124
+ - default_image
125
+ - seperator
126
+ - element_container
127
+ - button
128
+ - two_columns_50_50
129
+ - two_columns_25_75
130
+ - two_columns_75_25
131
+ - portfolio_container
132
+ - flip_content_box
133
+ - image_slideshow
134
+
135
+ - name: two_columns_50_50
136
+ elements: *default_elements_for_grid
137
+ max_children: 2
138
+ contents:
139
+ - name: css_class
140
+ type: EssenceText
141
+ path: bootybox/grid
142
+
143
+ - name: two_columns_25_75
144
+ elements: *default_elements_for_grid
145
+ max_children: 2
146
+ path: bootybox/grid
147
+
148
+ - name: two_columns_75_25
149
+ elements: *default_elements_for_grid
150
+ path: bootybox/grid
151
+ max_children: 2
152
+
153
+ - name: two_columns_66_33
154
+ elements: *default_elements_for_grid
155
+ path: bootybox/grid
156
+ max_children: 2
157
+
158
+ - name: three_columns_33_33_33
159
+ elements: *default_elements_for_grid
160
+ path: bootybox/grid
161
+ max_children: 3
162
+
163
+
164
+
165
+ - name: element_container
166
+ elements: *default_elements_for_grid
167
+ path: bootybox/layout
168
+ contents:
169
+ - name: Name
170
+ type: EssenceText
171
+ - name: css_class
172
+ type: EssenceText
173
+
174
+ # portfolio container view
175
+ - name: portfolio_container
176
+ path: bootybox/portfolio
177
+ contents:
178
+ - name: name
179
+ type: EssenceText
180
+
181
+ - name: orientation
182
+ type: EssenceSelect
183
+
184
+ - name: fixed_image_size
185
+ type: EssenceText
186
+ validate: [format, presence]
187
+ validate_format_with: '[0-9]{1,}'
188
+
189
+ - name: padding
190
+ type: EssenceText
191
+ default: 5
192
+ validate: [format, presence]
193
+ validate_format_with: '[0-9]{1,}'
194
+
195
+ - name: portfolio_item
196
+ path: bootybox/portfolio
197
+ contents:
198
+ - name: name
199
+ type: EssenceText
200
+ - name: text
201
+ type: EssenceRichtext
202
+ - name: image
203
+ type: EssencePicture
204
+
205
+ # Fancy items
206
+ - name: flip_content_box
207
+ path: bootybox/fancy
208
+ contents:
209
+ - name: image
210
+ type: EssencePicture
211
+ - name: header_front
212
+ type: EssenceText
213
+ - name: subheader_front
214
+ type: EssenceText
215
+ - name: header_back
216
+ type: EssenceText
217
+ - name: subheader_back
218
+ type: EssenceText
219
+ - name: text_back
220
+ type: EssenceRichtext
221
+ - name: details_link
222
+ type: EssenceLink
223
+
224
+ - name: image_slideshow
225
+ path: bootybox/slideshow
226
+ elements: [image_slideshow_slide]
227
+
228
+ - name: image_slideshow_slide
229
+ path: bootybox/slideshow
230
+ contents:
231
+ - name: image
232
+ type: EssencePicture
233
+ - name: header
234
+ type: EssenceText
235
+
236
+
237
+ - name: contactform
238
+ contents:
239
+ - name: mail_from
240
+ type: EssenceText
241
+ validate:
242
+ - presence
243
+ - format
244
+ validate_format_as: email
245
+ - name: mail_to
246
+ type: EssenceText
247
+ validate:
248
+ - presence
249
+ - format
250
+ validate_format_as: email
251
+ - name: subject
252
+ type: EssenceText
253
+ validate:
254
+ - presence
255
+ - name: success_page
256
+ type: EssenceSelect
257
+ validate:
258
+ - presence
259
+
260
+
261
+ - name: sub_navi_container
262
+ path: bootybox/navi
263
+ elements: [sub_navi_item]
264
+ contents:
265
+ - name: name
266
+ type: EssenceText
267
+
268
+ - name: sub_navi_item
269
+ path: bootybox/navi
270
+ contents:
271
+ - name: name
272
+ type: EssenceText
273
+ - name: anchor
274
+ type: EssenceText