alchemy_cms 2.0.pre2
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.
- data/.gitignore +7 -0
- data/.yardopts +6 -0
- data/Gemfile +8 -0
- data/LICENSE +619 -0
- data/README.md +113 -0
- data/Rakefile +30 -0
- data/TODO.txt +1 -0
- data/alchemy.gemspec +36 -0
- data/app/controllers/admin/attachments_controller.rb +119 -0
- data/app/controllers/admin/clipboard_controller.rb +43 -0
- data/app/controllers/admin/contents_controller.rb +69 -0
- data/app/controllers/admin/elements_controller.rb +137 -0
- data/app/controllers/admin/essence_audios_controller.rb +14 -0
- data/app/controllers/admin/essence_files_controller.rb +35 -0
- data/app/controllers/admin/essence_flashes_controller.rb +14 -0
- data/app/controllers/admin/essence_pictures_controller.rb +89 -0
- data/app/controllers/admin/essence_videos_controller.rb +14 -0
- data/app/controllers/admin/languages_controller.rb +70 -0
- data/app/controllers/admin/layoutpages_controller.rb +11 -0
- data/app/controllers/admin/pages_controller.rb +244 -0
- data/app/controllers/admin/pictures_controller.rb +132 -0
- data/app/controllers/admin/trash_controller.rb +25 -0
- data/app/controllers/admin/users_controller.rb +75 -0
- data/app/controllers/admin_controller.rb +78 -0
- data/app/controllers/alchemy_controller.rb +239 -0
- data/app/controllers/attachments_controller.rb +30 -0
- data/app/controllers/elements_controller.rb +18 -0
- data/app/controllers/messages_controller.rb +98 -0
- data/app/controllers/pages_controller.rb +137 -0
- data/app/controllers/pictures_controller.rb +68 -0
- data/app/helpers/admin/attachments_helper.rb +7 -0
- data/app/helpers/admin/elements_helper.rb +28 -0
- data/app/helpers/admin/pages_helper.rb +3 -0
- data/app/helpers/admin/pictures_helper.rb +26 -0
- data/app/helpers/alchemy_helper.rb +1168 -0
- data/app/helpers/elements_helper.rb +2 -0
- data/app/helpers/errors_helper.rb +37 -0
- data/app/helpers/layout_helper.rb +37 -0
- data/app/helpers/pages_helper.rb +141 -0
- data/app/mailers/messages.rb +15 -0
- data/app/mailers/notifications.rb +23 -0
- data/app/models/attachment.rb +73 -0
- data/app/models/cell.rb +63 -0
- data/app/models/content.rb +145 -0
- data/app/models/element.rb +423 -0
- data/app/models/essence_audio.rb +17 -0
- data/app/models/essence_date.rb +20 -0
- data/app/models/essence_file.rb +17 -0
- data/app/models/essence_flash.rb +15 -0
- data/app/models/essence_html.rb +19 -0
- data/app/models/essence_picture.rb +27 -0
- data/app/models/essence_richtext.rb +50 -0
- data/app/models/essence_text.rb +28 -0
- data/app/models/essence_video.rb +17 -0
- data/app/models/folded_page.rb +3 -0
- data/app/models/language.rb +75 -0
- data/app/models/message.rb +57 -0
- data/app/models/page.rb +501 -0
- data/app/models/picture.rb +100 -0
- data/app/models/user.rb +72 -0
- data/app/models/user_session.rb +10 -0
- data/app/sweepers/content_sweeper.rb +20 -0
- data/app/sweepers/pages_sweeper.rb +46 -0
- data/app/sweepers/pictures_sweeper.rb +20 -0
- data/app/views/_contact.html.erb +3 -0
- data/app/views/_intro.html.erb +3 -0
- data/app/views/_news.html.erb +3 -0
- data/app/views/_newsletter_layout.html.erb +1 -0
- data/app/views/_search.html.erb +3 -0
- data/app/views/_standard.html.erb +1 -0
- data/app/views/admin/attachments/_attachment.html.erb +58 -0
- data/app/views/admin/attachments/_file_to_assign.html.erb +20 -0
- data/app/views/admin/attachments/_files_list.html.erb +24 -0
- data/app/views/admin/attachments/archive_overlay.html.erb +8 -0
- data/app/views/admin/attachments/create.js.erb +6 -0
- data/app/views/admin/attachments/edit.html.erb +12 -0
- data/app/views/admin/attachments/index.html.erb +30 -0
- data/app/views/admin/attachments/new.html.erb +11 -0
- data/app/views/admin/clipboard/clear.js.erb +6 -0
- data/app/views/admin/clipboard/index.html.erb +19 -0
- data/app/views/admin/clipboard/insert.js.erb +14 -0
- data/app/views/admin/clipboard/remove.js.erb +10 -0
- data/app/views/admin/contents/_missing.html.erb +20 -0
- data/app/views/admin/contents/create.js.erb +93 -0
- data/app/views/admin/contents/new.html.erb +15 -0
- data/app/views/admin/elements/_add_content.html.erb +16 -0
- data/app/views/admin/elements/_element.html.erb +22 -0
- data/app/views/admin/elements/_element_foot.html.erb +35 -0
- data/app/views/admin/elements/_element_head.html.erb +29 -0
- data/app/views/admin/elements/_elements_select.html.erb +8 -0
- data/app/views/admin/elements/_new_element_form.html.erb +25 -0
- data/app/views/admin/elements/_picture_editor.html.erb +25 -0
- data/app/views/admin/elements/create.js.erb +20 -0
- data/app/views/admin/elements/destroy.js.erb +6 -0
- data/app/views/admin/elements/fold.js.erb +37 -0
- data/app/views/admin/elements/index.html.erb +33 -0
- data/app/views/admin/elements/list.js.erb +20 -0
- data/app/views/admin/elements/new.html.erb +33 -0
- data/app/views/admin/elements/order.js.erb +7 -0
- data/app/views/admin/elements/trash.js.erb +13 -0
- data/app/views/admin/elements/update.js.erb +10 -0
- data/app/views/admin/essence_files/edit.html.erb +91 -0
- data/app/views/admin/essence_pictures/assign.js.erb +15 -0
- data/app/views/admin/essence_pictures/crop.html.erb +36 -0
- data/app/views/admin/essence_pictures/destroy.js.erb +17 -0
- data/app/views/admin/essence_pictures/edit.html.erb +75 -0
- data/app/views/admin/essence_pictures/update.js.erb +16 -0
- data/app/views/admin/index.html.erb +92 -0
- data/app/views/admin/infos.html.erb +5 -0
- data/app/views/admin/languages/_form.html.erb +34 -0
- data/app/views/admin/languages/_language.html.erb +35 -0
- data/app/views/admin/languages/edit.html.erb +1 -0
- data/app/views/admin/languages/index.html.erb +41 -0
- data/app/views/admin/languages/new.html.erb +1 -0
- data/app/views/admin/layoutpages/_layoutpage.html.erb +80 -0
- data/app/views/admin/layoutpages/index.html.erb +75 -0
- data/app/views/admin/leave.html.erb +11 -0
- data/app/views/admin/login.html.erb +46 -0
- data/app/views/admin/logout.html.erb +5 -0
- data/app/views/admin/pages/_contactform_links.html.erb +66 -0
- data/app/views/admin/pages/_create_language_form.html.erb +42 -0
- data/app/views/admin/pages/_external_link.html.erb +54 -0
- data/app/views/admin/pages/_file_link.html.erb +52 -0
- data/app/views/admin/pages/_internal_link.html.erb +47 -0
- data/app/views/admin/pages/_new_page_form.html.erb +29 -0
- data/app/views/admin/pages/_page.html.erb +114 -0
- data/app/views/admin/pages/_page_for_links.html.erb +43 -0
- data/app/views/admin/pages/_page_infos.html.erb +3 -0
- data/app/views/admin/pages/_page_status.html.erb +9 -0
- data/app/views/admin/pages/_sitemap.html.erb +99 -0
- data/app/views/admin/pages/configure.html.erb +71 -0
- data/app/views/admin/pages/configure_external.html.erb +40 -0
- data/app/views/admin/pages/destroy.js.erb +12 -0
- data/app/views/admin/pages/edit.html.erb +185 -0
- data/app/views/admin/pages/flush.js.erb +2 -0
- data/app/views/admin/pages/fold.js.erb +4 -0
- data/app/views/admin/pages/index.html.erb +108 -0
- data/app/views/admin/pages/link.html.erb +30 -0
- data/app/views/admin/pages/locked.html.erb +3 -0
- data/app/views/admin/pages/new.html.erb +50 -0
- data/app/views/admin/pages/show.html.erb +1 -0
- data/app/views/admin/pages/sort.js.erb +6 -0
- data/app/views/admin/pages/unlock.js.erb +8 -0
- data/app/views/admin/pages/update.js.erb +19 -0
- data/app/views/admin/partials/_flash.html.erb +4 -0
- data/app/views/admin/partials/_flash_notices.html.erb +5 -0
- data/app/views/admin/partials/_mainnavigation_entry.html.erb +27 -0
- data/app/views/admin/partials/_pagination_links.html.erb +7 -0
- data/app/views/admin/partials/_per_page_links.html.erb +17 -0
- data/app/views/admin/partials/_remote_pagination_links.html.erb +11 -0
- data/app/views/admin/partials/_remote_search_form.html.erb +36 -0
- data/app/views/admin/partials/_search_form.html.erb +17 -0
- data/app/views/admin/partials/_sub_navigation.html.erb +14 -0
- data/app/views/admin/partials/_upload_form.html.erb +116 -0
- data/app/views/admin/pictures/_archive_overlay_images.html.erb +17 -0
- data/app/views/admin/pictures/_filter_and_size_bar.html.erb +88 -0
- data/app/views/admin/pictures/_picture.html.erb +36 -0
- data/app/views/admin/pictures/_picture_to_assign.html.erb +32 -0
- data/app/views/admin/pictures/_pictures_list.html.erb +12 -0
- data/app/views/admin/pictures/archive_overlay.html.erb +3 -0
- data/app/views/admin/pictures/create.js.erb +12 -0
- data/app/views/admin/pictures/index.html.erb +56 -0
- data/app/views/admin/pictures/new.html.erb +11 -0
- data/app/views/admin/pictures/show_in_window.html.erb +1 -0
- data/app/views/admin/pictures/update.js.erb +11 -0
- data/app/views/admin/signup.html.erb +16 -0
- data/app/views/admin/trash/index.html.erb +25 -0
- data/app/views/admin/users/_table.html.erb +54 -0
- data/app/views/admin/users/_user.html.erb +36 -0
- data/app/views/admin/users/edit.html.erb +6 -0
- data/app/views/admin/users/index.html.erb +41 -0
- data/app/views/admin/users/new.html.erb +6 -0
- data/app/views/attachments/show.html.erb +1 -0
- data/app/views/elements/_article_editor.html.erb +4 -0
- data/app/views/elements/_article_view.html.erb +25 -0
- data/app/views/elements/_bild_editor.html.erb +1 -0
- data/app/views/elements/_bild_text_editor.html.erb +2 -0
- data/app/views/elements/_bild_text_view.html.erb +9 -0
- data/app/views/elements/_bild_view.html.erb +9 -0
- data/app/views/elements/_claim_editor.html.erb +1 -0
- data/app/views/elements/_claim_view.html.erb +1 -0
- data/app/views/elements/_contactform_editor.html.erb +7 -0
- data/app/views/elements/_contactform_view.html.erb +92 -0
- data/app/views/elements/_editor_not_found.html.erb +5 -0
- data/app/views/elements/_footnote_editor.html.erb +1 -0
- data/app/views/elements/_footnote_view.html.erb +5 -0
- data/app/views/elements/_header_editor.html.erb +1 -0
- data/app/views/elements/_header_view.html.erb +1 -0
- data/app/views/elements/_headline_editor.html.erb +1 -0
- data/app/views/elements/_headline_view.html.erb +1 -0
- data/app/views/elements/_image_mosaic_editor.html.erb +2 -0
- data/app/views/elements/_image_mosaic_view.html.erb +12 -0
- data/app/views/elements/_intro_editor.html.erb +1 -0
- data/app/views/elements/_intro_image_text_editor.html.erb +3 -0
- data/app/views/elements/_intro_image_text_view.html.erb +16 -0
- data/app/views/elements/_intro_view.html.erb +3 -0
- data/app/views/elements/_news_editor.html.erb +3 -0
- data/app/views/elements/_news_view.html.erb +11 -0
- data/app/views/elements/_searchresult_editor.html.erb +1 -0
- data/app/views/elements/_searchresult_view.html.erb +42 -0
- data/app/views/elements/_sitemap_editor.html.erb +3 -0
- data/app/views/elements/_sitemap_view.html.erb +38 -0
- data/app/views/elements/_sitename_editor.html.erb +1 -0
- data/app/views/elements/_sitename_view.html.erb +1 -0
- data/app/views/elements/_subheadline_editor.html.erb +1 -0
- data/app/views/elements/_subheadline_view.html.erb +5 -0
- data/app/views/elements/_text_editor.html.erb +1 -0
- data/app/views/elements/_text_view.html.erb +3 -0
- data/app/views/elements/_view_not_found.html.erb +1 -0
- data/app/views/elements/show.html.erb +6 -0
- data/app/views/elements/show.js.erb +11 -0
- data/app/views/essences/_essence_audio_editor.html.erb +1 -0
- data/app/views/essences/_essence_audio_view.html.erb +33 -0
- data/app/views/essences/_essence_date_editor.html.erb +12 -0
- data/app/views/essences/_essence_date_view.html.erb +7 -0
- data/app/views/essences/_essence_file_editor.html.erb +63 -0
- data/app/views/essences/_essence_file_view.html.erb +6 -0
- data/app/views/essences/_essence_flash_editor.html.erb +1 -0
- data/app/views/essences/_essence_flash_view.html.erb +26 -0
- data/app/views/essences/_essence_html_editor.html.erb +8 -0
- data/app/views/essences/_essence_html_view.html.erb +1 -0
- data/app/views/essences/_essence_picture_editor.html.erb +70 -0
- data/app/views/essences/_essence_picture_tools.html.erb +60 -0
- data/app/views/essences/_essence_picture_view.html.erb +42 -0
- data/app/views/essences/_essence_richtext_editor.html.erb +9 -0
- data/app/views/essences/_essence_richtext_view.html.erb +5 -0
- data/app/views/essences/_essence_text_editor.html.erb +82 -0
- data/app/views/essences/_essence_text_view.html.erb +11 -0
- data/app/views/essences/_essence_video_editor.html.erb +1 -0
- data/app/views/essences/_essence_video_view.html.erb +35 -0
- data/app/views/layouts/alchemy.html.erb +60 -0
- data/app/views/layouts/login.html.erb +60 -0
- data/app/views/layouts/pages.html.erb +31 -0
- data/app/views/layouts/sitemap.xml.erb +4 -0
- data/app/views/messages/mail.text.erb +10 -0
- data/app/views/messages/new.html.erb +1 -0
- data/app/views/notifications/admin_user_created.text.erb +13 -0
- data/app/views/notifications/registered_user_created.text.erb +10 -0
- data/app/views/page_layouts/_contact.html.erb +14 -0
- data/app/views/page_layouts/_external.html.erb +1 -0
- data/app/views/page_layouts/_intro.html.erb +14 -0
- data/app/views/page_layouts/_layout_footer.html.erb +14 -0
- data/app/views/page_layouts/_layout_header.html.erb +14 -0
- data/app/views/page_layouts/_news.html.erb +14 -0
- data/app/views/page_layouts/_newsletter_layout.html.erb +1 -0
- data/app/views/page_layouts/_search.html.erb +14 -0
- data/app/views/page_layouts/_standard.html.erb +14 -0
- data/app/views/pages/show.html.erb +1 -0
- data/app/views/pages/show.rss.builder +27 -0
- data/app/views/pages/sitemap.xml.erb +8 -0
- data/app/views/partials/_navigation_image_link.html.erb +14 -0
- data/app/views/partials/_navigation_link.html.erb +20 -0
- data/app/views/partials/_navigation_renderer.html.erb +23 -0
- data/app/views/pictures/show.gif.flexi +19 -0
- data/app/views/pictures/show.jpg.flexi +19 -0
- data/app/views/pictures/show.png.flexi +19 -0
- data/app/views/pictures/thumbnail.png.flexi +13 -0
- data/app/views/pictures/zoom.png.flexi +3 -0
- data/assets/images/ajax_loader.gif +0 -0
- data/assets/images/alchemy-logo.png +0 -0
- data/assets/images/flags.png +0 -0
- data/assets/images/gui/navi-tab.png +0 -0
- data/assets/images/gui/shading.png +0 -0
- data/assets/images/gui/shading_90.png +0 -0
- data/assets/images/gui/toggle.png +0 -0
- data/assets/images/icons.png +0 -0
- data/assets/images/jquery-sb/select_arrow.gif +0 -0
- data/assets/images/jquery-sb/select_arrow_bg.gif +0 -0
- data/assets/images/jquery-sb/select_arrow_bg_hover.gif +0 -0
- data/assets/images/jquery-ui/ui-icons_666666_256x240.png +0 -0
- data/assets/images/placeholder.png +0 -0
- data/assets/images/swfupload/browse_button.png +0 -0
- data/assets/javascripts/alchemy.element_editor_selector.js +88 -0
- data/assets/javascripts/alchemy.growler.js +44 -0
- data/assets/javascripts/alchemy.image_cropper.js +56 -0
- data/assets/javascripts/alchemy.js +892 -0
- data/assets/javascripts/alchemy.link_overlay.js +221 -0
- data/assets/javascripts/alchemy.page_sorter.js +42 -0
- data/assets/javascripts/alchemy.preview.js +145 -0
- data/assets/javascripts/jquery-ui.js +428 -0
- data/assets/javascripts/jquery.Jcrop.min.js +246 -0
- data/assets/javascripts/jquery.dialogextend.min.js +8 -0
- data/assets/javascripts/jquery.in-place-edit.js +171 -0
- data/assets/javascripts/jquery.js +18 -0
- data/assets/javascripts/jquery.rails.js +315 -0
- data/assets/javascripts/jquery.sb.min.js +14 -0
- data/assets/javascripts/jquery.scrollTo-1.4.2-min.js +11 -0
- data/assets/javascripts/jquery.ui.nestedSortable.js +291 -0
- data/assets/javascripts/jquery.ui.tabspaging.js +281 -0
- data/assets/javascripts/swfupload/fileprogress.js +203 -0
- data/assets/javascripts/swfupload/handlers.js +171 -0
- data/assets/javascripts/swfupload/queue.js +98 -0
- data/assets/javascripts/swfupload/swfupload.js +980 -0
- data/assets/javascripts/swfupload/swfupload.swf +0 -0
- data/assets/javascripts/tiny_mce/jquery.tinymce.js +1 -0
- data/assets/javascripts/tiny_mce/langs/de.js +1 -0
- data/assets/javascripts/tiny_mce/langs/en.js +223 -0
- data/assets/javascripts/tiny_mce/license.txt +504 -0
- data/assets/javascripts/tiny_mce/plugins/alchemy_link/editor_plugin.js +43 -0
- data/assets/javascripts/tiny_mce/plugins/alchemy_link/langs/de.js +4 -0
- data/assets/javascripts/tiny_mce/plugins/alchemy_link/langs/en.js +4 -0
- data/assets/javascripts/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -0
- data/assets/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm +109 -0
- data/assets/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -0
- data/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/alchemy/window.css +402 -0
- data/assets/javascripts/tiny_mce/plugins/inlinepopups/template.htm +387 -0
- data/assets/javascripts/tiny_mce/plugins/lists/editor_plugin.js +1 -0
- data/assets/javascripts/tiny_mce/plugins/paste/editor_plugin.js +1 -0
- data/assets/javascripts/tiny_mce/plugins/paste/js/pastetext.js +36 -0
- data/assets/javascripts/tiny_mce/plugins/paste/js/pasteword.js +51 -0
- data/assets/javascripts/tiny_mce/plugins/paste/langs/de_dlg.js +1 -0
- data/assets/javascripts/tiny_mce/plugins/paste/langs/en_dlg.js +5 -0
- data/assets/javascripts/tiny_mce/plugins/paste/pastetext.htm +27 -0
- data/assets/javascripts/tiny_mce/plugins/paste/pasteword.htm +21 -0
- data/assets/javascripts/tiny_mce/plugins/table/cell.htm +180 -0
- data/assets/javascripts/tiny_mce/plugins/table/css/cell.css +17 -0
- data/assets/javascripts/tiny_mce/plugins/table/css/row.css +25 -0
- data/assets/javascripts/tiny_mce/plugins/table/css/table.css +13 -0
- data/assets/javascripts/tiny_mce/plugins/table/editor_plugin.js +1 -0
- data/assets/javascripts/tiny_mce/plugins/table/js/cell.js +319 -0
- data/assets/javascripts/tiny_mce/plugins/table/js/merge_cells.js +27 -0
- data/assets/javascripts/tiny_mce/plugins/table/js/row.js +237 -0
- data/assets/javascripts/tiny_mce/plugins/table/js/table.js +450 -0
- data/assets/javascripts/tiny_mce/plugins/table/langs/de_dlg.js +1 -0
- data/assets/javascripts/tiny_mce/plugins/table/langs/en_dlg.js +75 -0
- data/assets/javascripts/tiny_mce/plugins/table/merge_cells.htm +32 -0
- data/assets/javascripts/tiny_mce/plugins/table/row.htm +158 -0
- data/assets/javascripts/tiny_mce/plugins/table/table.htm +188 -0
- data/assets/javascripts/tiny_mce/themes/advanced/about.htm +52 -0
- data/assets/javascripts/tiny_mce/themes/advanced/anchor.htm +26 -0
- data/assets/javascripts/tiny_mce/themes/advanced/charmap.htm +51 -0
- data/assets/javascripts/tiny_mce/themes/advanced/color_picker.htm +74 -0
- data/assets/javascripts/tiny_mce/themes/advanced/editor_template.js +1 -0
- data/assets/javascripts/tiny_mce/themes/advanced/image.htm +80 -0
- data/assets/javascripts/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/img/flash.gif +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/img/iframe.gif +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/img/pagebreak.gif +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/img/quicktime.gif +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/img/realmedia.gif +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/img/shockwave.gif +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/img/trans.gif +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/img/video.gif +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/img/windowsmedia.gif +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/js/about.js +73 -0
- data/assets/javascripts/tiny_mce/themes/advanced/js/anchor.js +42 -0
- data/assets/javascripts/tiny_mce/themes/advanced/js/charmap.js +355 -0
- data/assets/javascripts/tiny_mce/themes/advanced/js/color_picker.js +329 -0
- data/assets/javascripts/tiny_mce/themes/advanced/js/image.js +247 -0
- data/assets/javascripts/tiny_mce/themes/advanced/js/link.js +153 -0
- data/assets/javascripts/tiny_mce/themes/advanced/js/source_editor.js +56 -0
- data/assets/javascripts/tiny_mce/themes/advanced/langs/de.js +1 -0
- data/assets/javascripts/tiny_mce/themes/advanced/langs/de_dlg.js +1 -0
- data/assets/javascripts/tiny_mce/themes/advanced/langs/en.js +68 -0
- data/assets/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js +54 -0
- data/assets/javascripts/tiny_mce/themes/advanced/link.htm +57 -0
- data/assets/javascripts/tiny_mce/themes/advanced/shortcuts.htm +47 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/default/content.css +47 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css +117 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/default/ui.css +214 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/content.css +23 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css +105 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css +102 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css +46 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +117 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +217 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +8 -0
- data/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -0
- data/assets/javascripts/tiny_mce/themes/advanced/source_editor.htm +25 -0
- data/assets/javascripts/tiny_mce/themes/simple/langs/de.js +1 -0
- data/assets/javascripts/tiny_mce/tiny_mce.js +1 -0
- data/assets/javascripts/tiny_mce/tiny_mce_popup.js +5 -0
- data/assets/javascripts/tiny_mce/utils/editable_selects.js +70 -0
- data/assets/javascripts/tiny_mce/utils/form_utils.js +210 -0
- data/assets/javascripts/tiny_mce/utils/mctabs.js +162 -0
- data/assets/javascripts/tiny_mce/utils/validate.js +252 -0
- data/assets/stylesheets/Jcrop.gif +0 -0
- data/assets/stylesheets/alchemy.css +3629 -0
- data/assets/stylesheets/alchemy_tinymce_content.css +94 -0
- data/assets/stylesheets/alchemy_tinymce_dialog.css +415 -0
- data/assets/stylesheets/default/img/tabs.gif +0 -0
- data/assets/stylesheets/elements.css +900 -0
- data/assets/stylesheets/flags.css +1 -0
- data/assets/stylesheets/ie6.css +18 -0
- data/assets/stylesheets/jquery-ui-1.8.7.alchemy.css +2023 -0
- data/assets/stylesheets/jquery.Jcrop.css +35 -0
- data/assets/stylesheets/jquery.sb.css +244 -0
- data/assets/stylesheets/standard_set.css +374 -0
- data/bin/alchemy +347 -0
- data/config/alchemy/config.yml +199 -0
- data/config/alchemy/elements.yml +219 -0
- data/config/alchemy/page_layouts.yml +65 -0
- data/config/asset_packages.yml +32 -0
- data/config/authorization_rules.rb +96 -0
- data/config/initializers/authorization.rb +4 -0
- data/config/initializers/cache_storage.rb +1 -0
- data/config/initializers/fast_gettext.rb +2 -0
- data/config/initializers/tiny_mce_hammer.rb +32 -0
- data/config/locales/de.yml +370 -0
- data/config/locales/en.yml +364 -0
- data/config/routes.rb +141 -0
- data/db/migrate/20100607143125_create_pages.rb +34 -0
- data/db/migrate/20100607144254_create_elements.rb +20 -0
- data/db/migrate/20100607145256_create_contents.rb +18 -0
- data/db/migrate/20100607145719_create_users.rb +32 -0
- data/db/migrate/20100607150611_create_pictures.rb +16 -0
- data/db/migrate/20100607150812_create_attachments.rb +16 -0
- data/db/migrate/20100607153647_create_folded_pages.rb +13 -0
- data/db/migrate/20100607161345_create_essence_texts.rb +19 -0
- data/db/migrate/20100607162339_create_elements_pages.rb +12 -0
- data/db/migrate/20100607193638_create_essence_pictures.rb +23 -0
- data/db/migrate/20100607193646_create_essence_richtexts.rb +16 -0
- data/db/migrate/20100607193653_create_essence_htmls.rb +13 -0
- data/db/migrate/20100609111653_create_essence_dates.rb +13 -0
- data/db/migrate/20100609111809_create_essence_files.rb +15 -0
- data/db/migrate/20100609111821_create_essence_flashes.rb +16 -0
- data/db/migrate/20100609111837_create_essence_videos.rb +18 -0
- data/db/migrate/20100616150753_create_essence_audios.rb +17 -0
- data/db/migrate/20100812085225_add_crop_from_and_crop_size_to_essence_pictures.rb +11 -0
- data/db/migrate/20100909140701_change_essence_htmls_source_column_type.rb +9 -0
- data/db/migrate/20101109150312_alter_pages_visible_column_default.rb +9 -0
- data/db/migrate/20101109151812_create_languages.rb +19 -0
- data/db/migrate/20101216151419_add_language_id_to_pages.rb +19 -0
- data/db/migrate/20101216155216_add_index_to_languages.rb +9 -0
- data/db/migrate/20101216173323_add_default_to_languages.rb +9 -0
- data/db/migrate/20101218130049_add_urlname_index_to_pages.rb +9 -0
- data/db/migrate/20110115123343_remove_css_class_default_from_essence_pictures.rb +11 -0
- data/db/migrate/20110224105120_change_pages_visible_default.rb +11 -0
- data/db/migrate/20110228182659_remove_default_page_layout_from_pages.rb +11 -0
- data/db/migrate/20110414163140_remove_display_name_from_elements.rb +11 -0
- data/db/migrate/20110511100516_rename_essence_texts_title_to_link_title.rb +9 -0
- data/db/migrate/20110529130429_create_cells.rb +14 -0
- data/db/migrate/20110529130500_add_cell_id_to_elements.rb +11 -0
- data/db/migrate/20110530102804_change_pages_page_layout_column.rb +11 -0
- data/db/migrate/20110707190728_add_render_size_to_essence_pictures.rb +9 -0
- data/db/migrate/20110711142057_change_open_link_in_new_window_to_link_target.rb +19 -0
- data/lib/alchemy.rb +24 -0
- data/lib/alchemy/config.rb +51 -0
- data/lib/alchemy/controller.rb +79 -0
- data/lib/alchemy/engine.rb +29 -0
- data/lib/alchemy/essence.rb +178 -0
- data/lib/alchemy/file_utilz.rb +73 -0
- data/lib/alchemy/page_layout.rb +66 -0
- data/lib/alchemy/remote_pagination_link_renderer.rb +17 -0
- data/lib/alchemy/seeder.rb +112 -0
- data/lib/alchemy/version.rb +5 -0
- data/lib/extensions/action_view.rb +17 -0
- data/lib/extensions/array.rb +25 -0
- data/lib/extensions/hash.rb +34 -0
- data/lib/middleware/flash_session_cookie.rb +22 -0
- data/lib/rails/generators/alchemy/elements/elements_generator.rb +35 -0
- data/lib/rails/generators/alchemy/elements/templates/editor.html.erb +9 -0
- data/lib/rails/generators/alchemy/elements/templates/view.html.erb +21 -0
- data/lib/rails/generators/alchemy/page_layouts/page_layouts_generator.rb +32 -0
- data/lib/rails/generators/alchemy/page_layouts/templates/layout.html.erb +1 -0
- data/lib/rails/generators/alchemy/plugin/plugin_generator.rb +29 -0
- data/lib/rails/generators/alchemy/plugin/templates/authorization_rules.rb +5 -0
- data/lib/rails/generators/alchemy/plugin/templates/config.yml +30 -0
- data/lib/rails/generators/alchemy/plugin/templates/init.rb +4 -0
- data/lib/rails/generators/alchemy/plugin/templates/routes.rb +4 -0
- data/lib/rails/generators/alchemy/scaffold/scaffold_generator.rb +35 -0
- data/lib/rails/generators/alchemy/scaffold/templates/elements.yml +91 -0
- data/lib/rails/generators/alchemy/scaffold/templates/page_layouts.yml +29 -0
- data/lib/rails/templates/alchemy.rb +14 -0
- data/lib/tasks/fleximage.rake +154 -0
- data/lib/tasks/gettext.rake +75 -0
- data/lib/tasks/install.rake +123 -0
- data/lib/tasks/upgrade.rake +211 -0
- data/lib/translation_extras/alchemy_core_modules.rb +11 -0
- data/lib/vendor/i18n_label.rb +23 -0
- data/locale/alchemy.pot +1728 -0
- data/locale/de/LC_MESSAGES/alchemy.mo +0 -0
- data/locale/de/alchemy.po +1774 -0
- data/locale/en/LC_MESSAGES/alchemy.mo +0 -0
- data/locale/en/alchemy.po +1742 -0
- data/locale/missing_translations.rb +4 -0
- data/locale/model_attributes.rb +56 -0
- data/recipes/alchemy_capistrano_tasks.rb +83 -0
- metadata +769 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module ActionView
|
|
2
|
+
module Helpers
|
|
3
|
+
module FormHelper
|
|
4
|
+
def button(label, options = {})
|
|
5
|
+
content_tag(:button, {:type => :submit}.update(options)) do
|
|
6
|
+
label.to_s
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
class FormBuilder
|
|
12
|
+
def button(label, options = {})
|
|
13
|
+
@template.button(label, options)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Array.class_eval do
|
|
2
|
+
|
|
3
|
+
def stringify
|
|
4
|
+
map do |value|
|
|
5
|
+
if value.is_a?(Hash) || value.is_a?(Array)
|
|
6
|
+
value.stringify
|
|
7
|
+
else
|
|
8
|
+
value.to_s
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def stringify!
|
|
14
|
+
a = []
|
|
15
|
+
each do |value|
|
|
16
|
+
if value.is_a?(Hash) || value.is_a?(Array)
|
|
17
|
+
a << value.stringify!
|
|
18
|
+
else
|
|
19
|
+
a << value.to_s
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
replace(a)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
class Hash
|
|
2
|
+
|
|
3
|
+
#this method adds an key/value pair in the pattern of :<name> => [] to the hash
|
|
4
|
+
#only if the key <name> doesn't already exists. this function is provided
|
|
5
|
+
#due to http post's lack of providing the checkboxes field when no cb is
|
|
6
|
+
#selected. I'm pretty sure that this could be moved direcly into the model
|
|
7
|
+
#or even ActiveRecord.
|
|
8
|
+
def add_key_for_checkboxes name
|
|
9
|
+
self[name.to_s] = [] if self.stringify_keys[name.to_s].nil?
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def stringify
|
|
13
|
+
inject({}) do |options, (key, value)|
|
|
14
|
+
if value.is_a?(Hash) || value.is_a?(Array)
|
|
15
|
+
options[key.to_s] = value.stringify
|
|
16
|
+
else
|
|
17
|
+
options[key.to_s] = value.to_s
|
|
18
|
+
end
|
|
19
|
+
options
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def stringify!
|
|
24
|
+
each do |key, value|
|
|
25
|
+
delete(key)
|
|
26
|
+
if value.is_a?(Hash) || value.is_a?(Array)
|
|
27
|
+
store(key.to_s, value.stringify!)
|
|
28
|
+
else
|
|
29
|
+
store(key.to_s, value.to_s)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'rack/utils'
|
|
2
|
+
|
|
3
|
+
module Alchemy
|
|
4
|
+
module Middleware
|
|
5
|
+
|
|
6
|
+
class FlashSessionCookie
|
|
7
|
+
def initialize(app, session_key = '_session_id')
|
|
8
|
+
@app = app
|
|
9
|
+
@session_key = session_key
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def call(env)
|
|
13
|
+
if env['HTTP_USER_AGENT'] =~ /^(Adobe|Shockwave) Flash/
|
|
14
|
+
params = ::Rack::Utils.parse_query(env['QUERY_STRING'])
|
|
15
|
+
env['HTTP_COOKIE'] = [ @session_key, params[@session_key] ].join('=').freeze unless params[@session_key].nil?
|
|
16
|
+
end
|
|
17
|
+
@app.call(env)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require 'rails'
|
|
2
|
+
|
|
3
|
+
module Alchemy
|
|
4
|
+
module Generators
|
|
5
|
+
class ElementsGenerator < ::Rails::Generators::Base
|
|
6
|
+
desc "This generator generates your elements view partials."
|
|
7
|
+
source_root File.expand_path('templates', File.dirname(__FILE__))
|
|
8
|
+
|
|
9
|
+
def create_directory
|
|
10
|
+
@elements_dir = "#{Rails.root}/app/views/elements"
|
|
11
|
+
empty_directory @elements_dir
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def create_partials
|
|
15
|
+
@elements = get_elements_from_yaml
|
|
16
|
+
@elements.each do |element|
|
|
17
|
+
@element = element
|
|
18
|
+
@contents = element["contents"]
|
|
19
|
+
@element_name = element["name"].underscore
|
|
20
|
+
template "editor.html.erb", "#{@elements_dir}/_#{@element_name}_editor.html.erb"
|
|
21
|
+
template "view.html.erb", "#{@elements_dir}/_#{@element_name}_view.html.erb"
|
|
22
|
+
end if @elements
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
private
|
|
26
|
+
|
|
27
|
+
def get_elements_from_yaml
|
|
28
|
+
YAML.load_file "#{Rails.root}/config/alchemy/elements.yml"
|
|
29
|
+
rescue Errno::ENOENT
|
|
30
|
+
puts "\nERROR: Could not read config/alchemy/elements.yml file. Please run: rails generate alchemy:scaffold"
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<%- unless @contents.blank? -%>
|
|
2
|
+
<%- @contents.each do |content| -%>
|
|
3
|
+
<%- unless content["type"] == "EssencePicture" -%>
|
|
4
|
+
<%%= render_essence_editor_by_name(element, '<%= content["name"] %>') %>
|
|
5
|
+
<%- else -%>
|
|
6
|
+
<%%= render_picture_editor(element) %>
|
|
7
|
+
<%- end -%>
|
|
8
|
+
<%- end -%>
|
|
9
|
+
<%- end -%>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<div class="<%= @element_name %>" id="<%%= element_dom_id(element) %>"<%%= element_preview_code(element) -%>>
|
|
2
|
+
<%- unless @contents.blank? -%>
|
|
3
|
+
<%- @contents.each do |content| -%>
|
|
4
|
+
<%- if content["type"] == "EssencePicture" -%>
|
|
5
|
+
<div class="<%= @element_name %>_images">
|
|
6
|
+
<%%- element.all_contents_by_type("EssencePicture").each do |content| -%>
|
|
7
|
+
<div class="<%= @element_name %>_image <%%= content.essence.css_class %>">
|
|
8
|
+
<%%= render_essence_view(content, :image_size => "160x120") %>
|
|
9
|
+
</div>
|
|
10
|
+
<%%- end -%>
|
|
11
|
+
</div>
|
|
12
|
+
<%- elsif @contents.size > 1 -%>
|
|
13
|
+
<div class="<%= content["name"] %>">
|
|
14
|
+
<%%= render_essence_view_by_name(element, '<%= content["name"] %>') %>
|
|
15
|
+
</div>
|
|
16
|
+
<%- else -%>
|
|
17
|
+
<%%= render_essence_view_by_name(element, '<%= content["name"] %>') %>
|
|
18
|
+
<%- end -%>
|
|
19
|
+
<%- end -%>
|
|
20
|
+
<%- end -%>
|
|
21
|
+
</div>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
require 'rails'
|
|
2
|
+
|
|
3
|
+
module Alchemy
|
|
4
|
+
module Generators
|
|
5
|
+
class PageLayoutsGenerator < ::Rails::Generators::Base
|
|
6
|
+
desc "This generator generates your page_layouts view partials."
|
|
7
|
+
source_root File.expand_path('templates', File.dirname(__FILE__))
|
|
8
|
+
|
|
9
|
+
def create_directory
|
|
10
|
+
@page_layouts_dir = "#{Rails.root}/app/views/page_layouts"
|
|
11
|
+
empty_directory @page_layouts_dir
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def create_partials
|
|
15
|
+
@page_layouts = get_page_layouts_from_yaml
|
|
16
|
+
@page_layouts.each do |page_layout|
|
|
17
|
+
@page_layout_name = page_layout["name"].underscore
|
|
18
|
+
template "layout.html.erb", "#{@page_layouts_dir}/_#{@page_layout_name}.html.erb"
|
|
19
|
+
end if @page_layouts
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
|
|
24
|
+
def get_page_layouts_from_yaml
|
|
25
|
+
YAML.load_file "#{Rails.root}/config/alchemy/page_layouts.yml"
|
|
26
|
+
rescue Errno::ENOENT
|
|
27
|
+
puts "\nERROR: Could not read config/alchemy/page_layouts.yml file. Please run: rails generate alchemy:scaffold"
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%%= render_elements %>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require 'rails'
|
|
2
|
+
|
|
3
|
+
module Alchemy
|
|
4
|
+
module Generators
|
|
5
|
+
class PluginGenerator < ::Rails::Generators::Base
|
|
6
|
+
desc "This generator generates a Alchemy plugin skeleton for you."
|
|
7
|
+
argument :plugin_name, :banner => "your_plugin_name"
|
|
8
|
+
source_root File.expand_path('templates', File.dirname(__FILE__))
|
|
9
|
+
|
|
10
|
+
def create_directories
|
|
11
|
+
@plugin_path = File.join(Rails.root, 'vendor', 'plugins', plugin_name.underscore)
|
|
12
|
+
empty_directory "#{@plugin_path}/app/controllers/admin"
|
|
13
|
+
empty_directory "#{@plugin_path}/app/models"
|
|
14
|
+
empty_directory "#{@plugin_path}/app/views/admin"
|
|
15
|
+
empty_directory "#{@plugin_path}/config/alchemy"
|
|
16
|
+
empty_directory "#{@plugin_path}/locale"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def create_defaults
|
|
20
|
+
@plugin_name = plugin_name
|
|
21
|
+
template("init.rb", "#{@plugin_path}/init.rb")
|
|
22
|
+
template("config.yml", "#{@plugin_path}/config/alchemy/config.yml")
|
|
23
|
+
template("authorization_rules.rb", "#{@plugin_path}/config/authorization_rules.rb")
|
|
24
|
+
template("routes.rb", "#{@plugin_path}/config/routes.rb")
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# These is your plugin configuration file.
|
|
2
|
+
# ========================================
|
|
3
|
+
#
|
|
4
|
+
# Options:
|
|
5
|
+
# --------
|
|
6
|
+
#
|
|
7
|
+
# name: # Name of your plugin [String]
|
|
8
|
+
# order: # [Optional] Use this to set the order of plugins in the alchemy navigation, if more then one plugin is loaded. [Integer]
|
|
9
|
+
# settings: # [Optional] Put your own settings in YAML format into here. You can access them with plugin_conf('<%= @plugin_name.underscore %>')['settings'] [YAML]
|
|
10
|
+
# navigation:
|
|
11
|
+
# name: # The name is used in the Alchemy mainnavi. [String]
|
|
12
|
+
# controller: # The name of the controller to be called when clicking the mainnavi button [String]
|
|
13
|
+
# action: # The name of the action from the controller to be called when clicking the mainnavi button [String]
|
|
14
|
+
# image: # Path to an image inside your public folder used for the icon in the alchemy mainnavi. [String]
|
|
15
|
+
# sub_navigation: # Your plugins sub navigation. Put as much as sub navi entries as you want into here
|
|
16
|
+
# - name: # [String]
|
|
17
|
+
# controller: # Typically your controller and action you set for mainnavi entry.
|
|
18
|
+
# action: # [String]
|
|
19
|
+
|
|
20
|
+
name: <%= @plugin_name.underscore %>
|
|
21
|
+
|
|
22
|
+
navigation:
|
|
23
|
+
name: <%= @plugin_name.camelcase %>
|
|
24
|
+
controller:
|
|
25
|
+
action:
|
|
26
|
+
image:
|
|
27
|
+
sub_navigation:
|
|
28
|
+
- name:
|
|
29
|
+
controller:
|
|
30
|
+
action:
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require 'rails'
|
|
2
|
+
|
|
3
|
+
module Alchemy
|
|
4
|
+
module Generators
|
|
5
|
+
class ScaffoldGenerator < ::Rails::Generators::Base
|
|
6
|
+
desc "This generator generates the Alchemy scaffold. Pass --with-standard-set to copy Alchemys standard set into your app."
|
|
7
|
+
class_option :with_standard_set, :type => :boolean, :desc => "Copy standard set files."
|
|
8
|
+
source_root File.expand_path('templates', File.dirname(__FILE__))
|
|
9
|
+
|
|
10
|
+
def create_config_dir
|
|
11
|
+
empty_directory "#{Rails.root}/config/alchemy"
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def copy_config
|
|
15
|
+
@config_path = File.expand_path('../../../../../config/alchemy', File.dirname(__FILE__))
|
|
16
|
+
copy_file "#{@config_path}/config.yml", "#{Rails.root}/config/alchemy/config.yml"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def copy_yamls
|
|
20
|
+
if options['--with-standard-set']
|
|
21
|
+
layouts_path = File.expand_path('../../../../../app/views/layouts', File.dirname(__FILE__))
|
|
22
|
+
copy_file "#{@config_path}/elements.yml", "#{Rails.root}/config/alchemy/elements.yml"
|
|
23
|
+
copy_file "#{@config_path}/page_layouts.yml", "#{Rails.root}/config/alchemy/page_layouts.yml"
|
|
24
|
+
copy_file "#{layouts_path}/pages.html.erb", "#{Rails.root}/app/views/layouts/pages.html.erb"
|
|
25
|
+
Rails::Generators.invoke("alchemy:elements")
|
|
26
|
+
Rails::Generators.invoke("alchemy:page_layouts")
|
|
27
|
+
else
|
|
28
|
+
template "elements.yml", "#{Rails.root}/config/alchemy/elements.yml"
|
|
29
|
+
template "page_layouts.yml", "#{Rails.root}/config/alchemy/page_layouts.yml"
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
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
|
+
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
#
|