alchemy_cms 2.0.rc3 → 2.0.rc4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -1
- data/.rspec +1 -2
- data/.travis.yml +11 -0
- data/.yardopts +0 -1
- data/Gemfile +1 -2
- data/README.md +14 -0
- data/alchemy_cms.gemspec +4 -2
- data/app/controllers/admin/clipboard_controller.rb +8 -9
- data/app/controllers/admin/contents_controller.rb +4 -2
- data/app/controllers/admin/essence_pictures_controller.rb +2 -2
- data/app/controllers/admin/layoutpages_controller.rb +2 -0
- data/app/controllers/admin/pages_controller.rb +5 -5
- data/app/controllers/admin/pictures_controller.rb +2 -1
- data/app/controllers/admin/trash_controller.rb +2 -0
- data/app/controllers/alchemy_controller.rb +10 -4
- data/app/controllers/elements_controller.rb +1 -1
- data/app/helpers/admin/elements_helper.rb +32 -1
- data/app/helpers/alchemy_helper.rb +15 -818
- data/app/helpers/contents_helper.rb +69 -0
- data/app/helpers/elements_helper.rb +161 -0
- data/app/helpers/essences_helper.rb +167 -0
- data/app/helpers/pages_helper.rb +401 -19
- data/app/models/attachment.rb +4 -0
- data/app/models/element.rb +27 -14
- data/app/models/page.rb +75 -38
- data/app/views/admin/essence_pictures/destroy.js.erb +1 -1
- data/app/views/admin/pages/_create_language_form.html.erb +2 -1
- data/app/views/admin/pages/new.html.erb +1 -1
- data/app/views/admin/pages/update.js.erb +1 -1
- data/app/views/admin/partials/_upload_form.html.erb +2 -2
- data/app/views/admin/pictures/index.html.erb +7 -4
- data/app/views/essences/_essence_picture_editor.html.erb +1 -3
- data/app/views/layouts/alchemy.html.erb +59 -59
- data/app/views/layouts/pages.html.erb +2 -4
- data/app/views/{partials/_navigation_image_link.html.erb → navigation/_image_link.html.erb} +0 -0
- data/app/views/{partials/_navigation_link.html.erb → navigation/_link.html.erb} +1 -1
- data/app/views/{partials/_navigation_renderer.html.erb → navigation/_renderer.html.erb} +0 -0
- data/app/views/page_layouts/_contact.html.erb +1 -1
- data/app/views/page_layouts/_external.html.erb +0 -1
- data/app/views/page_layouts/_intro.html.erb +1 -1
- data/app/views/page_layouts/_news.html.erb +1 -1
- data/app/views/page_layouts/_search.html.erb +1 -1
- data/app/views/page_layouts/_standard.html.erb +1 -1
- data/assets/images/icons.png +0 -0
- data/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css +49 -31
- data/assets/stylesheets/alchemy.css +111 -91
- data/assets/stylesheets/elements.css +12 -16
- data/bin/alchemy +1 -1
- data/config/alchemy/config.yml +4 -0
- data/config/initializers/tinymce_hammer.rb +1 -0
- data/config/locales/de.yml +3 -1
- data/config/locales/en.yml +2 -0
- data/config/routes.rb +6 -4
- data/lib/alchemy/capistrano.rb +4 -7
- data/lib/alchemy/page_layout.rb +12 -8
- data/lib/alchemy/version.rb +1 -1
- data/spec/controllers/admin/clipboard_controller_spec.rb +23 -0
- data/spec/dummy/db/schema.rb +9 -9
- data/spec/factories.rb +24 -6
- data/spec/helpers/admin/elements_helper_spec.rb +20 -0
- data/spec/helpers/alchemy_helper_spec.rb +41 -0
- data/spec/helpers/contents_helper_spec.rb +27 -0
- data/spec/helpers/elements_helper_spec.rb +39 -0
- data/spec/helpers/essences_helper_spec.rb +49 -0
- data/spec/helpers/pages_helper_spec.rb +140 -0
- data/spec/integration/security_spec.rb +1 -1
- data/spec/integration/standardset_spec.rb +29 -0
- data/spec/models/element_spec.rb +49 -0
- data/spec/{language_spec.rb → models/language_spec.rb} +0 -0
- data/spec/models/page_spec.rb +139 -0
- data/spec/{user_spec.rb → models/user_spec.rb} +0 -0
- data/spec/page_layout_spec.rb +21 -0
- data/spec/routing_spec.rb +53 -0
- data/spec/spec_helper.rb +12 -11
- metadata +54 -303
- data/spec/dummy/config/alchemy/config.yml +0 -199
- data/spec/dummy/config/alchemy/elements.yml +0 -91
- data/spec/dummy/config/alchemy/page_layouts.yml +0 -29
- data/spec/dummy/public/images/alchemy/ajax_loader.gif +0 -0
- data/spec/dummy/public/images/alchemy/alchemy-logo.png +0 -0
- data/spec/dummy/public/images/alchemy/flags.png +0 -0
- data/spec/dummy/public/images/alchemy/gui/navi-tab.png +0 -0
- data/spec/dummy/public/images/alchemy/gui/shading.png +0 -0
- data/spec/dummy/public/images/alchemy/gui/shading_90.png +0 -0
- data/spec/dummy/public/images/alchemy/gui/toggle.png +0 -0
- data/spec/dummy/public/images/alchemy/icons.png +0 -0
- data/spec/dummy/public/images/alchemy/jquery-sb/select_arrow.gif +0 -0
- data/spec/dummy/public/images/alchemy/jquery-sb/select_arrow_bg.gif +0 -0
- data/spec/dummy/public/images/alchemy/jquery-sb/select_arrow_bg_hover.gif +0 -0
- data/spec/dummy/public/images/alchemy/jquery-ui/ui-icons_666666_256x240.png +0 -0
- data/spec/dummy/public/images/alchemy/placeholder.png +0 -0
- data/spec/dummy/public/images/alchemy/swfupload/browse_button.png +0 -0
- data/spec/dummy/public/javascripts/alchemy/alchemy.element_editor_selector.js +0 -88
- data/spec/dummy/public/javascripts/alchemy/alchemy.growler.js +0 -44
- data/spec/dummy/public/javascripts/alchemy/alchemy.image_cropper.js +0 -56
- data/spec/dummy/public/javascripts/alchemy/alchemy.js +0 -892
- data/spec/dummy/public/javascripts/alchemy/alchemy.link_overlay.js +0 -221
- data/spec/dummy/public/javascripts/alchemy/alchemy.page_sorter.js +0 -42
- data/spec/dummy/public/javascripts/alchemy/alchemy.preview.js +0 -145
- data/spec/dummy/public/javascripts/alchemy/jquery-ui.js +0 -428
- data/spec/dummy/public/javascripts/alchemy/jquery.Jcrop.min.js +0 -246
- data/spec/dummy/public/javascripts/alchemy/jquery.dialogextend.min.js +0 -8
- data/spec/dummy/public/javascripts/alchemy/jquery.in-place-edit.js +0 -171
- data/spec/dummy/public/javascripts/alchemy/jquery.js +0 -18
- data/spec/dummy/public/javascripts/alchemy/jquery.rails.js +0 -315
- data/spec/dummy/public/javascripts/alchemy/jquery.sb.min.js +0 -14
- data/spec/dummy/public/javascripts/alchemy/jquery.scrollTo-1.4.2-min.js +0 -11
- data/spec/dummy/public/javascripts/alchemy/jquery.ui.nestedSortable.js +0 -291
- data/spec/dummy/public/javascripts/alchemy/jquery.ui.tabspaging.js +0 -281
- data/spec/dummy/public/javascripts/alchemy/swfupload/fileprogress.js +0 -203
- data/spec/dummy/public/javascripts/alchemy/swfupload/handlers.js +0 -171
- data/spec/dummy/public/javascripts/alchemy/swfupload/queue.js +0 -98
- data/spec/dummy/public/javascripts/alchemy/swfupload/swfupload.js +0 -980
- data/spec/dummy/public/javascripts/alchemy/swfupload/swfupload.swf +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/jquery.tinymce.js +0 -1
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/langs/de.js +0 -1
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/langs/en.js +0 -223
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/license.txt +0 -504
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/alchemy_link/editor_plugin.js +0 -43
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/alchemy_link/langs/de.js +0 -4
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/alchemy_link/langs/en.js +0 -4
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/fullscreen/editor_plugin.js +0 -1
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/fullscreen/fullscreen.htm +0 -109
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/inlinepopups/editor_plugin.js +0 -1
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css +0 -402
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/inlinepopups/template.htm +0 -387
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/lists/editor_plugin.js +0 -1
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/editor_plugin.js +0 -1
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/js/pastetext.js +0 -36
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/js/pasteword.js +0 -51
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/langs/de_dlg.js +0 -1
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/langs/en_dlg.js +0 -5
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/pastetext.htm +0 -27
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/paste/pasteword.htm +0 -21
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/cell.htm +0 -180
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/css/cell.css +0 -17
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/css/row.css +0 -25
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/css/table.css +0 -13
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/editor_plugin.js +0 -1
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/js/cell.js +0 -319
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/js/merge_cells.js +0 -27
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/js/row.js +0 -237
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/js/table.js +0 -450
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/langs/de_dlg.js +0 -1
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/langs/en_dlg.js +0 -75
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/merge_cells.htm +0 -32
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/row.htm +0 -158
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/plugins/table/table.htm +0 -188
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/about.htm +0 -52
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/anchor.htm +0 -26
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/charmap.htm +0 -51
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/color_picker.htm +0 -74
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/editor_template.js +0 -1
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/image.htm +0 -80
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/flash.gif +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/icons.gif +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/iframe.gif +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/pagebreak.gif +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/quicktime.gif +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/realmedia.gif +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/shockwave.gif +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/trans.gif +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/video.gif +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/img/windowsmedia.gif +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/about.js +0 -73
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/anchor.js +0 -42
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/charmap.js +0 -355
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/color_picker.js +0 -329
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/image.js +0 -247
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/link.js +0 -153
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/js/source_editor.js +0 -56
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/langs/de.js +0 -1
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/langs/de_dlg.js +0 -1
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/langs/en.js +0 -68
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/langs/en_dlg.js +0 -54
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/link.htm +0 -57
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/shortcuts.htm +0 -47
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/content.css +0 -47
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/dialog.css +0 -117
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/default/ui.css +0 -214
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/highcontrast/content.css +0 -23
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/highcontrast/dialog.css +0 -105
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/highcontrast/ui.css +0 -102
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/content.css +0 -46
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/dialog.css +0 -117
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/ui.css +0 -217
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +0 -8
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +0 -5
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/advanced/source_editor.htm +0 -25
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/themes/simple/langs/de.js +0 -1
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/tiny_mce.js +0 -1
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/tiny_mce_popup.js +0 -5
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/utils/editable_selects.js +0 -70
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/utils/form_utils.js +0 -210
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/utils/mctabs.js +0 -162
- data/spec/dummy/public/javascripts/alchemy/tiny_mce/utils/validate.js +0 -252
- data/spec/dummy/public/stylesheets/alchemy/Jcrop.gif +0 -0
- data/spec/dummy/public/stylesheets/alchemy/alchemy.css +0 -3653
- data/spec/dummy/public/stylesheets/alchemy/alchemy_tinymce_content.css +0 -94
- data/spec/dummy/public/stylesheets/alchemy/alchemy_tinymce_dialog.css +0 -415
- data/spec/dummy/public/stylesheets/alchemy/default/img/tabs.gif +0 -0
- data/spec/dummy/public/stylesheets/alchemy/elements.css +0 -900
- data/spec/dummy/public/stylesheets/alchemy/flags.css +0 -1
- data/spec/dummy/public/stylesheets/alchemy/ie6.css +0 -18
- data/spec/dummy/public/stylesheets/alchemy/jquery-ui-1.8.7.alchemy.css +0 -2023
- data/spec/dummy/public/stylesheets/alchemy/jquery.Jcrop.css +0 -35
- data/spec/dummy/public/stylesheets/alchemy/jquery.sb.css +0 -244
- data/spec/dummy/public/stylesheets/alchemy/standard_set.css +0 -374
- 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
|
-
#
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -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);
|