alchemy_cms 2.0.rc3 → 2.0.rc4

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 (219) hide show
  1. data/.gitignore +3 -1
  2. data/.rspec +1 -2
  3. data/.travis.yml +11 -0
  4. data/.yardopts +0 -1
  5. data/Gemfile +1 -2
  6. data/README.md +14 -0
  7. data/alchemy_cms.gemspec +4 -2
  8. data/app/controllers/admin/clipboard_controller.rb +8 -9
  9. data/app/controllers/admin/contents_controller.rb +4 -2
  10. data/app/controllers/admin/essence_pictures_controller.rb +2 -2
  11. data/app/controllers/admin/layoutpages_controller.rb +2 -0
  12. data/app/controllers/admin/pages_controller.rb +5 -5
  13. data/app/controllers/admin/pictures_controller.rb +2 -1
  14. data/app/controllers/admin/trash_controller.rb +2 -0
  15. data/app/controllers/alchemy_controller.rb +10 -4
  16. data/app/controllers/elements_controller.rb +1 -1
  17. data/app/helpers/admin/elements_helper.rb +32 -1
  18. data/app/helpers/alchemy_helper.rb +15 -818
  19. data/app/helpers/contents_helper.rb +69 -0
  20. data/app/helpers/elements_helper.rb +161 -0
  21. data/app/helpers/essences_helper.rb +167 -0
  22. data/app/helpers/pages_helper.rb +401 -19
  23. data/app/models/attachment.rb +4 -0
  24. data/app/models/element.rb +27 -14
  25. data/app/models/page.rb +75 -38
  26. data/app/views/admin/essence_pictures/destroy.js.erb +1 -1
  27. data/app/views/admin/pages/_create_language_form.html.erb +2 -1
  28. data/app/views/admin/pages/new.html.erb +1 -1
  29. data/app/views/admin/pages/update.js.erb +1 -1
  30. data/app/views/admin/partials/_upload_form.html.erb +2 -2
  31. data/app/views/admin/pictures/index.html.erb +7 -4
  32. data/app/views/essences/_essence_picture_editor.html.erb +1 -3
  33. data/app/views/layouts/alchemy.html.erb +59 -59
  34. data/app/views/layouts/pages.html.erb +2 -4
  35. data/app/views/{partials/_navigation_image_link.html.erb → navigation/_image_link.html.erb} +0 -0
  36. data/app/views/{partials/_navigation_link.html.erb → navigation/_link.html.erb} +1 -1
  37. data/app/views/{partials/_navigation_renderer.html.erb → navigation/_renderer.html.erb} +0 -0
  38. data/app/views/page_layouts/_contact.html.erb +1 -1
  39. data/app/views/page_layouts/_external.html.erb +0 -1
  40. data/app/views/page_layouts/_intro.html.erb +1 -1
  41. data/app/views/page_layouts/_news.html.erb +1 -1
  42. data/app/views/page_layouts/_search.html.erb +1 -1
  43. data/app/views/page_layouts/_standard.html.erb +1 -1
  44. data/assets/images/icons.png +0 -0
  45. data/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css +49 -31
  46. data/assets/stylesheets/alchemy.css +111 -91
  47. data/assets/stylesheets/elements.css +12 -16
  48. data/bin/alchemy +1 -1
  49. data/config/alchemy/config.yml +4 -0
  50. data/config/initializers/tinymce_hammer.rb +1 -0
  51. data/config/locales/de.yml +3 -1
  52. data/config/locales/en.yml +2 -0
  53. data/config/routes.rb +6 -4
  54. data/lib/alchemy/capistrano.rb +4 -7
  55. data/lib/alchemy/page_layout.rb +12 -8
  56. data/lib/alchemy/version.rb +1 -1
  57. data/spec/controllers/admin/clipboard_controller_spec.rb +23 -0
  58. data/spec/dummy/db/schema.rb +9 -9
  59. data/spec/factories.rb +24 -6
  60. data/spec/helpers/admin/elements_helper_spec.rb +20 -0
  61. data/spec/helpers/alchemy_helper_spec.rb +41 -0
  62. data/spec/helpers/contents_helper_spec.rb +27 -0
  63. data/spec/helpers/elements_helper_spec.rb +39 -0
  64. data/spec/helpers/essences_helper_spec.rb +49 -0
  65. data/spec/helpers/pages_helper_spec.rb +140 -0
  66. data/spec/integration/security_spec.rb +1 -1
  67. data/spec/integration/standardset_spec.rb +29 -0
  68. data/spec/models/element_spec.rb +49 -0
  69. data/spec/{language_spec.rb → models/language_spec.rb} +0 -0
  70. data/spec/models/page_spec.rb +139 -0
  71. data/spec/{user_spec.rb → models/user_spec.rb} +0 -0
  72. data/spec/page_layout_spec.rb +21 -0
  73. data/spec/routing_spec.rb +53 -0
  74. data/spec/spec_helper.rb +12 -11
  75. metadata +54 -303
  76. data/spec/dummy/config/alchemy/config.yml +0 -199
  77. data/spec/dummy/config/alchemy/elements.yml +0 -91
  78. data/spec/dummy/config/alchemy/page_layouts.yml +0 -29
  79. data/spec/dummy/public/images/alchemy/ajax_loader.gif +0 -0
  80. data/spec/dummy/public/images/alchemy/alchemy-logo.png +0 -0
  81. data/spec/dummy/public/images/alchemy/flags.png +0 -0
  82. data/spec/dummy/public/images/alchemy/gui/navi-tab.png +0 -0
  83. data/spec/dummy/public/images/alchemy/gui/shading.png +0 -0
  84. data/spec/dummy/public/images/alchemy/gui/shading_90.png +0 -0
  85. data/spec/dummy/public/images/alchemy/gui/toggle.png +0 -0
  86. data/spec/dummy/public/images/alchemy/icons.png +0 -0
  87. data/spec/dummy/public/images/alchemy/jquery-sb/select_arrow.gif +0 -0
  88. data/spec/dummy/public/images/alchemy/jquery-sb/select_arrow_bg.gif +0 -0
  89. data/spec/dummy/public/images/alchemy/jquery-sb/select_arrow_bg_hover.gif +0 -0
  90. data/spec/dummy/public/images/alchemy/jquery-ui/ui-icons_666666_256x240.png +0 -0
  91. data/spec/dummy/public/images/alchemy/placeholder.png +0 -0
  92. data/spec/dummy/public/images/alchemy/swfupload/browse_button.png +0 -0
  93. data/spec/dummy/public/javascripts/alchemy/alchemy.element_editor_selector.js +0 -88
  94. data/spec/dummy/public/javascripts/alchemy/alchemy.growler.js +0 -44
  95. data/spec/dummy/public/javascripts/alchemy/alchemy.image_cropper.js +0 -56
  96. data/spec/dummy/public/javascripts/alchemy/alchemy.js +0 -892
  97. data/spec/dummy/public/javascripts/alchemy/alchemy.link_overlay.js +0 -221
  98. data/spec/dummy/public/javascripts/alchemy/alchemy.page_sorter.js +0 -42
  99. data/spec/dummy/public/javascripts/alchemy/alchemy.preview.js +0 -145
  100. data/spec/dummy/public/javascripts/alchemy/jquery-ui.js +0 -428
  101. data/spec/dummy/public/javascripts/alchemy/jquery.Jcrop.min.js +0 -246
  102. data/spec/dummy/public/javascripts/alchemy/jquery.dialogextend.min.js +0 -8
  103. data/spec/dummy/public/javascripts/alchemy/jquery.in-place-edit.js +0 -171
  104. data/spec/dummy/public/javascripts/alchemy/jquery.js +0 -18
  105. data/spec/dummy/public/javascripts/alchemy/jquery.rails.js +0 -315
  106. data/spec/dummy/public/javascripts/alchemy/jquery.sb.min.js +0 -14
  107. data/spec/dummy/public/javascripts/alchemy/jquery.scrollTo-1.4.2-min.js +0 -11
  108. data/spec/dummy/public/javascripts/alchemy/jquery.ui.nestedSortable.js +0 -291
  109. data/spec/dummy/public/javascripts/alchemy/jquery.ui.tabspaging.js +0 -281
  110. data/spec/dummy/public/javascripts/alchemy/swfupload/fileprogress.js +0 -203
  111. data/spec/dummy/public/javascripts/alchemy/swfupload/handlers.js +0 -171
  112. data/spec/dummy/public/javascripts/alchemy/swfupload/queue.js +0 -98
  113. data/spec/dummy/public/javascripts/alchemy/swfupload/swfupload.js +0 -980
  114. data/spec/dummy/public/javascripts/alchemy/swfupload/swfupload.swf +0 -0
  115. data/spec/dummy/public/javascripts/alchemy/tiny_mce/jquery.tinymce.js +0 -1
  116. data/spec/dummy/public/javascripts/alchemy/tiny_mce/langs/de.js +0 -1
  117. data/spec/dummy/public/javascripts/alchemy/tiny_mce/langs/en.js +0 -223
  118. data/spec/dummy/public/javascripts/alchemy/tiny_mce/license.txt +0 -504
  119. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/alchemy_link/editor_plugin.js +0 -43
  120. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/alchemy_link/langs/de.js +0 -4
  121. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/alchemy_link/langs/en.js +0 -4
  122. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/fullscreen/editor_plugin.js +0 -1
  123. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/fullscreen/fullscreen.htm +0 -109
  124. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/inlinepopups/editor_plugin.js +0 -1
  125. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css +0 -402
  126. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/inlinepopups/template.htm +0 -387
  127. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/lists/editor_plugin.js +0 -1
  128. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/editor_plugin.js +0 -1
  129. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/js/pastetext.js +0 -36
  130. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/js/pasteword.js +0 -51
  131. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/langs/de_dlg.js +0 -1
  132. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/langs/en_dlg.js +0 -5
  133. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/pastetext.htm +0 -27
  134. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/pasteword.htm +0 -21
  135. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/cell.htm +0 -180
  136. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/css/cell.css +0 -17
  137. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/css/row.css +0 -25
  138. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/css/table.css +0 -13
  139. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/editor_plugin.js +0 -1
  140. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/js/cell.js +0 -319
  141. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/js/merge_cells.js +0 -27
  142. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/js/row.js +0 -237
  143. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/js/table.js +0 -450
  144. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/langs/de_dlg.js +0 -1
  145. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/langs/en_dlg.js +0 -75
  146. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/merge_cells.htm +0 -32
  147. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/row.htm +0 -158
  148. data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/table.htm +0 -188
  149. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/about.htm +0 -52
  150. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/anchor.htm +0 -26
  151. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/charmap.htm +0 -51
  152. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/color_picker.htm +0 -74
  153. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/editor_template.js +0 -1
  154. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/image.htm +0 -80
  155. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
  156. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/flash.gif +0 -0
  157. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/icons.gif +0 -0
  158. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/iframe.gif +0 -0
  159. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/pagebreak.gif +0 -0
  160. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/quicktime.gif +0 -0
  161. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/realmedia.gif +0 -0
  162. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/shockwave.gif +0 -0
  163. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/trans.gif +0 -0
  164. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/video.gif +0 -0
  165. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/windowsmedia.gif +0 -0
  166. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/about.js +0 -73
  167. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/anchor.js +0 -42
  168. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/charmap.js +0 -355
  169. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/color_picker.js +0 -329
  170. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/image.js +0 -247
  171. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/link.js +0 -153
  172. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/source_editor.js +0 -56
  173. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/langs/de.js +0 -1
  174. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/langs/de_dlg.js +0 -1
  175. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/langs/en.js +0 -68
  176. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/langs/en_dlg.js +0 -54
  177. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/link.htm +0 -57
  178. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/shortcuts.htm +0 -47
  179. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/content.css +0 -47
  180. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/dialog.css +0 -117
  181. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
  182. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
  183. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
  184. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
  185. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
  186. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
  187. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/ui.css +0 -214
  188. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/highcontrast/content.css +0 -23
  189. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/highcontrast/dialog.css +0 -105
  190. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/highcontrast/ui.css +0 -102
  191. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/content.css +0 -46
  192. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/dialog.css +0 -117
  193. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
  194. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  195. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  196. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/ui.css +0 -217
  197. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +0 -8
  198. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +0 -5
  199. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/source_editor.htm +0 -25
  200. data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/simple/langs/de.js +0 -1
  201. data/spec/dummy/public/javascripts/alchemy/tiny_mce/tiny_mce.js +0 -1
  202. data/spec/dummy/public/javascripts/alchemy/tiny_mce/tiny_mce_popup.js +0 -5
  203. data/spec/dummy/public/javascripts/alchemy/tiny_mce/utils/editable_selects.js +0 -70
  204. data/spec/dummy/public/javascripts/alchemy/tiny_mce/utils/form_utils.js +0 -210
  205. data/spec/dummy/public/javascripts/alchemy/tiny_mce/utils/mctabs.js +0 -162
  206. data/spec/dummy/public/javascripts/alchemy/tiny_mce/utils/validate.js +0 -252
  207. data/spec/dummy/public/stylesheets/alchemy/Jcrop.gif +0 -0
  208. data/spec/dummy/public/stylesheets/alchemy/alchemy.css +0 -3653
  209. data/spec/dummy/public/stylesheets/alchemy/alchemy_tinymce_content.css +0 -94
  210. data/spec/dummy/public/stylesheets/alchemy/alchemy_tinymce_dialog.css +0 -415
  211. data/spec/dummy/public/stylesheets/alchemy/default/img/tabs.gif +0 -0
  212. data/spec/dummy/public/stylesheets/alchemy/elements.css +0 -900
  213. data/spec/dummy/public/stylesheets/alchemy/flags.css +0 -1
  214. data/spec/dummy/public/stylesheets/alchemy/ie6.css +0 -18
  215. data/spec/dummy/public/stylesheets/alchemy/jquery-ui-1.8.7.alchemy.css +0 -2023
  216. data/spec/dummy/public/stylesheets/alchemy/jquery.Jcrop.css +0 -35
  217. data/spec/dummy/public/stylesheets/alchemy/jquery.sb.css +0 -244
  218. data/spec/dummy/public/stylesheets/alchemy/standard_set.css +0 -374
  219. data/spec/page_spec.rb +0 -50
@@ -1,199 +0,0 @@
1
- # = Configuration
2
- #
3
- # == This is the global Alchemy configuration file
4
- # Please override your apps settings in your config/alchemy/config.yml file.
5
- # You can use a handy rake task to generate it.
6
- #
7
- # rake alchemy:app_structure:create:config
8
-
9
- # The amount of time of inactivity in minutes after which the user is kicked out of his current session.
10
- # Only active in production environment!!!
11
- :auto_logout_time: 30
12
-
13
- # === Redirect options
14
- # redirect_index: You can set to redirect (an 301 permanent, for all you SEO geeks ^_^) to first child page (typically the homepage) the index/intro page if it's not visible.
15
- # So you don't get an 404 error if the language root page is not visible.
16
- # redirect_to_public_child: Alchemy redirects to the first public child page found, if a page is not visible.
17
- :redirect_index: true
18
- :redirect_to_public_child: true
19
-
20
- # Enabling the Ferret fulltext search engine.
21
- # Tip! For best performance and stability install a crontab that reindexes ferrets search index periodly.
22
- # Example: cd ~/html/alchemy/current && RAILS_ENV=production rake ferret:rebuild_index
23
- :ferret: false
24
-
25
- # === Pagecaching
26
- # Enable/Disable pagecaching globally.
27
- # Hint: You can enable/disable page caching for single Alchemy::PageLayouts in the page_layout.yml file.
28
- :cache_pages: true
29
-
30
- # === Sitemap
31
- # Alchemy renders a nice HTML (<ul><li> style) and XML (Google conform!) Sitemap for you.
32
- # Just place a sitemap element for a page layout in your page_layouts.yml file. Alchemy does the rest.
33
- # ==== Options:
34
- # show_root: Show language root page in sitemap?
35
- # show_flag: enables the Checkbox in Page#update overlay. So your customer can set the visibilit of pages in the sitemap.
36
- :sitemap:
37
- :show_root: true
38
- :show_flag: false
39
-
40
- # === Picture rendering settings
41
- # Alchemy uses Fleximage and RMagick to render images. Use {:image_size => "XXXxYYY", :crop => BOOLEAN [true]} to resize images.
42
- # See https://github.com/Squeegy/fleximage for further infos.
43
- # ==== Options:
44
- # output_image_jpg_quality: If rendered as JPG this is the quality setting for it.
45
- # preprocess_image_resize: Large images are downsized after upload to save diskspace.
46
- # image_store_format: Masterimage storage format. Images are rendered from this master image, so a lossless format (png) is strongly recommended.
47
- # image_output_format: Globally image output format setting.
48
- # TIP: You can always override the output format in the options of your Essence. I.e. {:format => :gif}
49
- :output_image_jpg_quality: 85
50
- :preprocess_image_resize: 1000x1000
51
- :image_store_format: png
52
- :image_output_format: jpg
53
-
54
- # Set available translations for your customers.
55
- # Currently available translations are German and English.
56
- :translations:
57
- - :language_code: de
58
- :language: Deutsch
59
- - :language_code: en
60
- :language: English
61
-
62
- default_translation: en
63
-
64
- # Default language for your homepgae.
65
- default_language:
66
- code: en
67
- name: English
68
- page_layout: intro
69
- frontpage_name: Intro
70
-
71
- # === Mailer Settings:
72
- #
73
- # To send Mails via contact forms you can create your form fields here and set which fields are to be validated.
74
- #
75
- # ==== Options:
76
- #
77
- # fields: An Array from Hashes with fieldname as keys and type as values. Types are ActiveRecord column types (i.e. string, text, boolean, etc.).
78
- # validate_fields: A Hash with fieldname as key and a Hash (with :message as key and a message_id as value) as value
79
- #
80
- # ==== Translating validation messages:
81
- #
82
- # The message_id is passed through I18n.t so you can translate it in your language yml file.
83
- #
84
- # Example:
85
- #
86
- # de:
87
- # alchemy:
88
- # contactform:
89
- # validations:
90
- # enter_name: 'Bitte geben Sie einen Namen an'
91
- #
92
- :mailer:
93
- :page_layout_name: contact
94
- :forward_to_page: false
95
- :mail_success_page: thanks
96
- :fields: [salutation, firstname, lastname, address, zip, city, phone, email, message]
97
- :validate_fields:
98
- :lastname:
99
- :message: enter_name
100
- :email:
101
- :message: enter_mail
102
-
103
- # === User roles
104
- # You can add own user roles. To set permissions for this roles please add an authorization_rules.rb file in your config folder.
105
- # Further documentation for the auth system used please visit:
106
- # https://github.com/stffn/declarative_authorization/blob/master/README.rdoc
107
- #
108
- # ==== Translating Userroles
109
- # Userroles can be translated inside your the language yml file under:
110
- # alchemy:
111
- # user_roles:
112
- # rolename: Name of the role
113
- :user_roles: [registered, author, editor, admin]
114
-
115
- # === Uploader Settings
116
- # Allow filetypes to upload.
117
- # Pass * to allow all kind of files.
118
- :uploader:
119
- :allowed_filetypes:
120
- :pictures: [jpg, jpeg, gif, png, psd, pdf]
121
- :attachments: [*]
122
-
123
- # === Link Target Options
124
- # Values for the link target selectbox inside the page link overlay.
125
- # The value gets attached as a data-link-target attribute to the link.
126
- #
127
- # == Example:
128
- # Open all links set to overlay inside an jQuery UI Dialog Window.
129
- #
130
- # jQuery(a[data-link-target="overlay"]).dialog();
131
- :link_target_options: [blank]
132
-
133
- # == Alchemy core plugins configuration
134
-
135
- alchemy_plugins:
136
-
137
- - name: dashboard
138
- navigation:
139
- name: 'home'
140
- controller: 'admin'
141
- action: index
142
- icon: home
143
- sub_navigation:
144
- - name: 'home'
145
- controller: 'admin'
146
- action: index
147
-
148
- - name: pages
149
- navigation:
150
- name: 'module: pages'
151
- controller: 'admin/pages'
152
- action: index
153
- icon: pages
154
- sub_navigation:
155
- - name: 'module: pages'
156
- controller: 'admin/pages'
157
- action: index
158
- - name: 'module: layoutpages'
159
- controller: 'admin/layoutpages'
160
- action: index
161
- nested:
162
- - controller: 'admin/pages'
163
- action: edit
164
-
165
- - name: languages
166
- navigation:
167
- name: 'module: languages'
168
- controller: 'admin/languages'
169
- action: index
170
- icon: languages
171
- sub_navigation:
172
- - name: 'module: languages'
173
- controller: 'admin/languages'
174
- action: index
175
-
176
- - name: users
177
- navigation:
178
- name: 'module: users'
179
- controller: 'admin/users'
180
- action: index
181
- icon: users
182
- sub_navigation:
183
- - name: 'module: users'
184
- controller: 'admin/users'
185
- action: index
186
-
187
- - name: archive
188
- navigation:
189
- controller: 'admin/pictures'
190
- action: index
191
- name: 'module: library'
192
- icon: library
193
- sub_navigation:
194
- - name: 'module: pictures'
195
- controller: 'admin/pictures'
196
- action: index
197
- - name: 'module: attachments'
198
- controller: 'admin/attachments'
199
- action: index
@@ -1,91 +0,0 @@
1
- # == In this configuration you setup Alchemy´s element layouts.
2
- #
3
- # Use rails generate alchemy:scaffold to generate this file for your app.
4
- #
5
- # Elements containing all necessary basic tools for displaying and editing content inside Alchemy.
6
- # They consists of composed contents (different essence-types) as shown in the illustration of an elements-sheme below.
7
- #
8
- # == Schema of an element
9
- #
10
- # =================================
11
- # # Content 1 (EssenceText) #
12
- # # #
13
- # # Content 2 (EssencePicture) #
14
- # # #
15
- # # Content 3 (EssenceRichtext) #
16
- # =================================
17
- #
18
- # == Example of a basic element layout
19
- #
20
- # - name: a_unique_name (Used for the partial name in +app/views/elements+ and translated as Element.display_name)
21
- # unique: Bool //pass true if this element only can be displayed once on page
22
- # contents:
23
- # - name: head
24
- # type: EssenceText
25
- # - name: text
26
- # type: EssenceRichtext
27
- #
28
- # As already mentioned above, there are different content-types wich can be defined for each content in an element.
29
- # Defining these types is used to render predefined views in the element.
30
- #
31
- # == Content-Types:
32
- #
33
- # * EssenceText (Used to store a String (max. 255 Chars.) i.e. a headline, or productname. The editor is renderd as a single-lined input field. The view output will be sanitized and escaped. So it's XSS save.)
34
- # * EssenceRichtext (Used to store editable richtext. Editor is rendered as a textarea with TinyMCE Editor.)
35
- # * EssencePicture (Used to store picture ids from pictures assigned through the library. The editor is rendered as a picture-editor collection with a lot of options (i.e. image cropper). The view renders the assigned picture, resizes it, crops it and caches the result.)
36
- # * EssenceFlash (Used to store attachment ids from attachments assigned through the library. The view renders an embeded object.)
37
- # * EssenceDate (Used to store a DateTime object. The view output is passed through Rails I18n Library, so it will be fully localized.)
38
- # * EssenceHtml (Used to store a String (max. 255 Chars.). The view output renders the raw, not sanitized or unescaped String. So be carefull!)
39
- #
40
- # After finishing the setup of your element layouts, you need to generate the files for the elements before using them in Alchemy.
41
- # For creating these files, use the following command in your terminal:
42
- #
43
- # rails generate elements
44
- #
45
- # All new elements will be created as two different partials in Rails.root/app/views/elements.
46
- # For each element there is an editor-view wich will be rendered when editing them in Alchemy and another view for the website´s frontend.
47
- #
48
- # app/views/elements/_elements_name_editor.html.erb
49
- # app/views/elements/_elements_name_view.html.erb
50
- #
51
- # For most contents in an element you can specify additional options, so they get rendered in a specific way.
52
- # These options can be defined as symbols, but its too much to list them up here.
53
- # You can find these options described in the application_helper.rb, most of them at the render_essence method.
54
- #
55
- # == Setting a content as preview-text for the element
56
- #
57
- # You can set a content-essence as preview-text for its element like this
58
- # take_me_for_preview: true
59
- #
60
- #
61
- # == Adding contents dynamically in the frontend
62
- #
63
- # You are able to add content-essences dynamically to the element from the Alchemy frontend.
64
- # You just have to make contents available for adding them.
65
- # This example enables this feature
66
- #
67
- # - name: headline
68
- # unique: false
69
- # contents:
70
- # - name: headline
71
- # type: EssenceText
72
- # - name: big_text
73
- # type: EssenceRichtext
74
- # available_contents:
75
- # - name: big_text
76
- # type: EssenceRichtext
77
- #
78
- # Now an Alchemy user can add the content 'big_text' from the element as much as desired.
79
- #
80
- # === Translate element names
81
- #
82
- # Element names are passed through the I18n library. So you can translate them in your config/locales language yml file.
83
- #
84
- # Example:
85
- #
86
- # de:
87
- # alchemy:
88
- # element_names:
89
- # contact: Kontakt
90
- # search: Suche
91
-
@@ -1,29 +0,0 @@
1
- # == This file defines the page_layouts for new pages.
2
- #
3
- # Please make your own page_layouts for your app in your own Rails.root/config/alchemy/page_layouts.yml file.
4
- #
5
- # === DSL:
6
- # - name: String # The name of the layout used for views and inside the database. You can render a layout with the render_page_layout(name) helper.
7
- # unique: Bool # Pass true and the user can only choose this layout once inside a language tree.
8
- # hide: Bool # Pass true to hide this layout from the user.
9
- # elements: Array # A list of element names that can be placed on this layout i.e. [text, picture]. Elements are defined inside the elements.yml file.
10
- # autogenerate: Array # A list of element names that are autogenerated after creating the Page.
11
- # layoutpage: Bool # Layoutpages are outside the normal pagetree and can be used to place "global" language independent Elements.
12
- # cache: Bool # Pass false to disable the caching for this pages.
13
- # feed: Bool # Pass true to enable a RSS feed of news elements from this page.
14
- # redirects_to_external: Bool # Pass true to disable normal page rendering and redirect to a external page instead.
15
- # controller: controller_name # Controller to use instead of the default PagesController
16
- # action: action_name # Controllers action to use instead of the default PagesController#show
17
- #
18
- # === Translate page layout names
19
- #
20
- # Page layout names are passed through the I18n library. So you can translate them in your config/locales language yml file.
21
- #
22
- # Example:
23
- #
24
- # de:
25
- # alchemy:
26
- # page_layout_names:
27
- # contact: Kontakt
28
- # search: Suche
29
- #
@@ -1,88 +0,0 @@
1
- if (typeof(Alchemy) === 'undefined') {
2
- var Alchemy = {};
3
- }
4
-
5
- (function($) {
6
-
7
- var ElementEditorSelector = {};
8
- $.extend(Alchemy, ElementEditorSelector);
9
-
10
- Alchemy.ElementEditorSelector = {
11
-
12
- init : function() {
13
- var $elements = $('#element_area .element_editor');
14
- var self = Alchemy.ElementEditorSelector;
15
- self.reinit($elements);
16
- },
17
-
18
- reinit : function(elements) {
19
- var self = Alchemy.ElementEditorSelector;
20
- var $elements = $(elements);
21
- $elements.each(function () {
22
- self.bindEvent(this, $elements);
23
- });
24
- $elements.find('.element_head').click(self.onClickElement);
25
- $elements.find('.element_head').dblclick(function() {
26
- var id = $(this).parent().attr('id').replace(/\D/g,'');
27
- self.foldElement(id);
28
- });
29
- },
30
-
31
- onClickElement : function(e) {
32
- var self = Alchemy.ElementEditorSelector;
33
- var $element = $(this).parent('.element_editor');
34
- var id = $element.attr('id').replace(/\D/g,'');
35
- var $frame_elements, $selected_element;
36
- e.preventDefault();
37
- $('#element_area .element_editor').removeClass('selected');
38
- $element.addClass('selected');
39
- self.scrollToElement(this);
40
- $frame_elements = document.getElementById('alchemyPreviewWindow').contentWindow.jQuery('[data-alchemy-element]');
41
- $selected_element = $frame_elements.closest('[data-alchemy-element="'+id+'"]');
42
- $selected_element.trigger('Alchemy.SelectElement');
43
- },
44
-
45
- bindEvent : function (element) {
46
- var self = Alchemy.ElementEditorSelector;
47
- $(element).bind('Alchemy.SelectElementEditor', self.selectElement);
48
- },
49
-
50
- selectElement : function (e) {
51
- var self = Alchemy.ElementEditorSelector;
52
- var id = this.id.replace(/\D/g,'');
53
- var $element = $(this);
54
- var $elements = $('#element_area .element_editor');
55
- var $cells = $('#cells .sortable_cell');
56
- var $cell;
57
- e.preventDefault();
58
- $elements.removeClass('selected');
59
- $element.addClass('selected');
60
- if ($cells.size() > 0) {
61
- $cell = $element.parent('.sortable_cell');
62
- $('#cells').tabs('select', $cell.attr('id'));
63
- }
64
- if ($element.hasClass('folded')) {
65
- self.foldElement(id);
66
- } else {
67
- self.scrollToElement(this);
68
- }
69
- },
70
-
71
- scrollToElement : function(el) {
72
- $('#alchemyElementWindow').scrollTo(el, {duration: 400, offset: -10});
73
- },
74
-
75
- foldElement : function(id) {
76
- var self = Alchemy.ElementEditorSelector;
77
- $('#element_'+id+'_folder').hide();
78
- $('#element_'+id+'_folder_spinner').show();
79
- $.post('/admin/elements/'+id+'/fold', function() {
80
- $('#element_'+id+'_folder').show();
81
- $('#element_'+id+'_folder_spinner').hide();
82
- self.scrollToElement('#element_'+id);
83
- });
84
- }
85
-
86
- }
87
-
88
- })(jQuery);
@@ -1,44 +0,0 @@
1
- if (typeof(Alchemy) === 'undefined') {
2
- var Alchemy = {};
3
- }
4
-
5
- (function($) {
6
-
7
- var Growler = {};
8
- $.extend(Alchemy, Growler);
9
-
10
- Alchemy.Growler = {
11
-
12
- build : function(message, flash_type) {
13
- var $flash_container = $('<div class="flash '+flash_type+'" />');
14
- var icon_class = flash_type === 'notice' ? 'tick' : 'error';
15
- $flash_container.append('<span class="icon '+icon_class+'" />');
16
- $flash_container.append(message);
17
- $('#flash_notices').append($flash_container);
18
- $('#flash_notices').show();
19
- Alchemy.Growler.fade();
20
- },
21
-
22
- fade : function() {
23
- $('#flash_notices div[class!="flash error"]').delay(5000).hide('drop', { direction: "up" }, 400, function() {
24
- $(this).remove();
25
- });
26
- $('#flash_notices div[class="flash error"]')
27
- .css({cursor: 'pointer'})
28
- .click(function() {
29
- $(this).hide('drop', { direction: "up" }, 400, function() {
30
- $(this).remove();
31
- });
32
- });
33
- }
34
-
35
- },
36
-
37
- Alchemy.growl = function(message, style) {
38
- if (typeof(style) === 'undefined') {
39
- style = 'notice';
40
- }
41
- Alchemy.Growler.build(message, style);
42
- }
43
-
44
- })(jQuery);