browsercms-artirix 4.0.0.rc1.art4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.yardopts +5 -0
- data/COPYRIGHT.txt +27 -0
- data/GPL.txt +674 -0
- data/LICENSE.txt +165 -0
- data/README.markdown +45 -0
- data/app/assets/fonts/icomoon.dev.svg +61 -0
- data/app/assets/fonts/icomoon.eot +0 -0
- data/app/assets/fonts/icomoon.svg +61 -0
- data/app/assets/fonts/icomoon.ttf +0 -0
- data/app/assets/fonts/icomoon.woff +0 -0
- data/app/assets/images/ckeditor/plugins/delete_content/icons/deletecontent.png +0 -0
- data/app/assets/images/ckeditor/plugins/edit_content/icons/editcontent.png +0 -0
- data/app/assets/images/ckeditor/plugins/move_content/icons/movecontentdown.png +0 -0
- data/app/assets/images/ckeditor/plugins/move_content/icons/movecontentup.png +0 -0
- data/app/assets/images/cms/administration/user_browser_bg.gif +0 -0
- data/app/assets/images/cms/arrow-down.png +0 -0
- data/app/assets/images/cms/arrow-up.png +0 -0
- data/app/assets/images/cms/bg.png +0 -0
- data/app/assets/images/cms/bl_curve.png +0 -0
- data/app/assets/images/cms/bottom_cap.png +0 -0
- data/app/assets/images/cms/bottom_cap_content.png +0 -0
- data/app/assets/images/cms/browse.gif +0 -0
- data/app/assets/images/cms/browser_media_logo.png +0 -0
- data/app/assets/images/cms/browsercms_logo.png +0 -0
- data/app/assets/images/cms/buttons/button.png +0 -0
- data/app/assets/images/cms/buttons/button_bg.png +0 -0
- data/app/assets/images/cms/buttons/button_cap.png +0 -0
- data/app/assets/images/cms/buttons/button_cap_h.png +0 -0
- data/app/assets/images/cms/buttons/button_cap_off.gif +0 -0
- data/app/assets/images/cms/buttons/button_cap_off_middle.gif +0 -0
- data/app/assets/images/cms/buttons/button_h.png +0 -0
- data/app/assets/images/cms/buttons/button_left_bg.png +0 -0
- data/app/assets/images/cms/buttons/button_off.png +0 -0
- data/app/assets/images/cms/buttons/button_off_middle.png +0 -0
- data/app/assets/images/cms/buttons/delete_x.png +0 -0
- data/app/assets/images/cms/buttons/delete_x_disabled.png +0 -0
- data/app/assets/images/cms/buttons/delete_x_h.png +0 -0
- data/app/assets/images/cms/buttons/sm_button.gif +0 -0
- data/app/assets/images/cms/buttons/sm_button_2.gif +0 -0
- data/app/assets/images/cms/buttons/sm_button_2_h.gif +0 -0
- data/app/assets/images/cms/buttons/sm_button_h.gif +0 -0
- data/app/assets/images/cms/cogs.png +0 -0
- data/app/assets/images/cms/containers/add.gif +0 -0
- data/app/assets/images/cms/containers/alpha.png +0 -0
- data/app/assets/images/cms/containers/beta.png +0 -0
- data/app/assets/images/cms/containers/delete.gif +0 -0
- data/app/assets/images/cms/containers/down.gif +0 -0
- data/app/assets/images/cms/containers/edit.gif +0 -0
- data/app/assets/images/cms/containers/up.gif +0 -0
- data/app/assets/images/cms/containers/view.gif +0 -0
- data/app/assets/images/cms/content_bg.gif +0 -0
- data/app/assets/images/cms/dashboard/bottom_cap.png +0 -0
- data/app/assets/images/cms/dashboard/bottom_cap_content.png +0 -0
- data/app/assets/images/cms/dashboard/header_bg.gif +0 -0
- data/app/assets/images/cms/dashboard/header_left_bg.gif +0 -0
- data/app/assets/images/cms/dashboard/home.png +0 -0
- data/app/assets/images/cms/dashboard/table_header_bg.gif +0 -0
- data/app/assets/images/cms/dashboard/top_cap.png +0 -0
- data/app/assets/images/cms/dashed.gif +0 -0
- data/app/assets/images/cms/datepicker/clear.gif +0 -0
- data/app/assets/images/cms/datepicker/close.gif +0 -0
- data/app/assets/images/cms/dk_button_l.gif +0 -0
- data/app/assets/images/cms/dk_button_r.gif +0 -0
- data/app/assets/images/cms/dot.png +0 -0
- data/app/assets/images/cms/draft_status.gif +0 -0
- data/app/assets/images/cms/file-uploading.gif +0 -0
- data/app/assets/images/cms/gray_long_bg.gif +0 -0
- data/app/assets/images/cms/home.png +0 -0
- data/app/assets/images/cms/icons/actions/add.png +0 -0
- data/app/assets/images/cms/icons/actions/config.png +0 -0
- data/app/assets/images/cms/icons/actions/connect.png +0 -0
- data/app/assets/images/cms/icons/actions/delete.png +0 -0
- data/app/assets/images/cms/icons/actions/down.png +0 -0
- data/app/assets/images/cms/icons/actions/edit.png +0 -0
- data/app/assets/images/cms/icons/actions/folder.png +0 -0
- data/app/assets/images/cms/icons/actions/folder_add.png +0 -0
- data/app/assets/images/cms/icons/actions/folder_delete.png +0 -0
- data/app/assets/images/cms/icons/actions/folder_edit.png +0 -0
- data/app/assets/images/cms/icons/actions/folder_move.png +0 -0
- data/app/assets/images/cms/icons/actions/folder_open.png +0 -0
- data/app/assets/images/cms/icons/actions/history.png +0 -0
- data/app/assets/images/cms/icons/actions/home.png +0 -0
- data/app/assets/images/cms/icons/actions/left.png +0 -0
- data/app/assets/images/cms/icons/actions/link.png +0 -0
- data/app/assets/images/cms/icons/actions/page.png +0 -0
- data/app/assets/images/cms/icons/actions/page_add.png +0 -0
- data/app/assets/images/cms/icons/actions/page_edit.png +0 -0
- data/app/assets/images/cms/icons/actions/page_move.png +0 -0
- data/app/assets/images/cms/icons/actions/redo.png +0 -0
- data/app/assets/images/cms/icons/actions/refresh.png +0 -0
- data/app/assets/images/cms/icons/actions/right.png +0 -0
- data/app/assets/images/cms/icons/actions/root_folder.png +0 -0
- data/app/assets/images/cms/icons/actions/root_link.png +0 -0
- data/app/assets/images/cms/icons/actions/root_page.png +0 -0
- data/app/assets/images/cms/icons/actions/undo.png +0 -0
- data/app/assets/images/cms/icons/actions/up.png +0 -0
- data/app/assets/images/cms/icons/actions/view.png +0 -0
- data/app/assets/images/cms/icons/file_types/doc.png +0 -0
- data/app/assets/images/cms/icons/file_types/file.png +0 -0
- data/app/assets/images/cms/icons/file_types/gif.png +0 -0
- data/app/assets/images/cms/icons/file_types/htm.png +0 -0
- data/app/assets/images/cms/icons/file_types/pdf.png +0 -0
- data/app/assets/images/cms/icons/file_types/ppt.png +0 -0
- data/app/assets/images/cms/icons/file_types/swf.png +0 -0
- data/app/assets/images/cms/icons/file_types/txt.png +0 -0
- data/app/assets/images/cms/icons/file_types/xls.png +0 -0
- data/app/assets/images/cms/icons/file_types/xml.png +0 -0
- data/app/assets/images/cms/icons/file_types/zip.png +0 -0
- data/app/assets/images/cms/icons/status/archived.gif +0 -0
- data/app/assets/images/cms/icons/status/draft.gif +0 -0
- data/app/assets/images/cms/icons/status/hidden.gif +0 -0
- data/app/assets/images/cms/icons/status/locked.gif +0 -0
- data/app/assets/images/cms/icons/status/published.gif +0 -0
- data/app/assets/images/cms/icons/status/unlocked.gif +0 -0
- data/app/assets/images/cms/icons/user.png +0 -0
- data/app/assets/images/cms/login_bg.jpg +0 -0
- data/app/assets/images/cms/login_bottom.jpg +0 -0
- data/app/assets/images/cms/login_top.gif +0 -0
- data/app/assets/images/cms/logo.png +0 -0
- data/app/assets/images/cms/lt_button_bg.gif +0 -0
- data/app/assets/images/cms/lt_button_l.gif +0 -0
- data/app/assets/images/cms/lt_button_r.gif +0 -0
- data/app/assets/images/cms/menu/block_cap_h.gif +0 -0
- data/app/assets/images/cms/menu/bottom_cap.png +0 -0
- data/app/assets/images/cms/menu/bottom_cap_menu.png +0 -0
- data/app/assets/images/cms/menu/bottom_cap_menu_first.png +0 -0
- data/app/assets/images/cms/menu/menu_header_first_bg.gif +0 -0
- data/app/assets/images/cms/menu/selected_block_cap.gif +0 -0
- data/app/assets/images/cms/menu/top_cap.png +0 -0
- data/app/assets/images/cms/menu/top_cap_menu_header.png +0 -0
- data/app/assets/images/cms/menu.png +0 -0
- data/app/assets/images/cms/menu_h.gif +0 -0
- data/app/assets/images/cms/menu_header.png +0 -0
- data/app/assets/images/cms/menu_open.png +0 -0
- data/app/assets/images/cms/menu_open_bg.gif +0 -0
- data/app/assets/images/cms/nav/on_bg.gif +0 -0
- data/app/assets/images/cms/nav.png +0 -0
- data/app/assets/images/cms/nav_admin.gif +0 -0
- data/app/assets/images/cms/nav_admin_h.gif +0 -0
- data/app/assets/images/cms/nav_admin_on.gif +0 -0
- data/app/assets/images/cms/nav_cap.png +0 -0
- data/app/assets/images/cms/nav_cap_h.gif +0 -0
- data/app/assets/images/cms/nav_content_library.gif +0 -0
- data/app/assets/images/cms/nav_content_library_h.gif +0 -0
- data/app/assets/images/cms/nav_content_library_on.gif +0 -0
- data/app/assets/images/cms/nav_dash.gif +0 -0
- data/app/assets/images/cms/nav_dash_h.gif +0 -0
- data/app/assets/images/cms/nav_dash_on.gif +0 -0
- data/app/assets/images/cms/nav_h.gif +0 -0
- data/app/assets/images/cms/nav_sitemap.gif +0 -0
- data/app/assets/images/cms/nav_sitemap_h.gif +0 -0
- data/app/assets/images/cms/nav_sitemap_on.gif +0 -0
- data/app/assets/images/cms/page_toolbar/page_toolbar_bg.gif +0 -0
- data/app/assets/images/cms/page_toolbar/page_toolbar_inset_bg.gif +0 -0
- data/app/assets/images/cms/page_toolbar/page_toolbar_inset_draft_bg.gif +0 -0
- data/app/assets/images/cms/page_toolbar/page_toolbar_inset_draft_l.gif +0 -0
- data/app/assets/images/cms/page_toolbar/page_toolbar_inset_draft_r.gif +0 -0
- data/app/assets/images/cms/page_toolbar/page_toolbar_inset_l.gif +0 -0
- data/app/assets/images/cms/page_toolbar/page_toolbar_inset_published_bg.gif +0 -0
- data/app/assets/images/cms/page_toolbar/page_toolbar_inset_published_l.gif +0 -0
- data/app/assets/images/cms/page_toolbar/page_toolbar_inset_published_r.gif +0 -0
- data/app/assets/images/cms/page_toolbar/page_toolbar_inset_r.gif +0 -0
- data/app/assets/images/cms/page_toolbar/page_toolbar_l.gif +0 -0
- data/app/assets/images/cms/page_toolbar/page_toolbar_r.gif +0 -0
- data/app/assets/images/cms/page_toolbar/status_draft_bg.gif +0 -0
- data/app/assets/images/cms/page_toolbar/status_draft_l.gif +0 -0
- data/app/assets/images/cms/page_toolbar/status_l.gif +0 -0
- data/app/assets/images/cms/page_toolbar/status_published_bg.gif +0 -0
- data/app/assets/images/cms/page_toolbar/status_published_l.gif +0 -0
- data/app/assets/images/cms/page_toolbar/visual_editor_bg.gif +0 -0
- data/app/assets/images/cms/page_toolbar/visual_editor_end.gif +0 -0
- data/app/assets/images/cms/page_toolbar/visual_editor_r.gif +0 -0
- data/app/assets/images/cms/page_toolbar/visual_editor_state_bg.gif +0 -0
- data/app/assets/images/cms/pages/add_connectable.gif +0 -0
- data/app/assets/images/cms/pages/connect_connectable.gif +0 -0
- data/app/assets/images/cms/pages/container_border.gif +0 -0
- data/app/assets/images/cms/pages/container_border_l.gif +0 -0
- data/app/assets/images/cms/pages/container_border_r.gif +0 -0
- data/app/assets/images/cms/pages/delete_connectable.gif +0 -0
- data/app/assets/images/cms/pages/down_connectable.gif +0 -0
- data/app/assets/images/cms/pages/down_connectable_disabled.gif +0 -0
- data/app/assets/images/cms/pages/edit_connectable.gif +0 -0
- data/app/assets/images/cms/pages/edit_connectable_2.gif +0 -0
- data/app/assets/images/cms/pages/show_connectable.gif +0 -0
- data/app/assets/images/cms/pages/up_connectable.gif +0 -0
- data/app/assets/images/cms/pages/up_connectable_disabled.gif +0 -0
- data/app/assets/images/cms/pagination/first.gif +0 -0
- data/app/assets/images/cms/pagination/first_h.gif +0 -0
- data/app/assets/images/cms/pagination/input.gif +0 -0
- data/app/assets/images/cms/pagination/last.gif +0 -0
- data/app/assets/images/cms/pagination/last_h.gif +0 -0
- data/app/assets/images/cms/pagination/next.gif +0 -0
- data/app/assets/images/cms/pagination/next_h.gif +0 -0
- data/app/assets/images/cms/pagination/previous.gif +0 -0
- data/app/assets/images/cms/pagination/previous_h.gif +0 -0
- data/app/assets/images/cms/pencil.png +0 -0
- data/app/assets/images/cms/plus.png +0 -0
- data/app/assets/images/cms/published_status.gif +0 -0
- data/app/assets/images/cms/search.png +0 -0
- data/app/assets/images/cms/search_submit.gif +0 -0
- data/app/assets/images/cms/search_submit_h.gif +0 -0
- data/app/assets/images/cms/searchbox_gradient.gif +0 -0
- data/app/assets/images/cms/select_bg.gif +0 -0
- data/app/assets/images/cms/select_bg_2.gif +0 -0
- data/app/assets/images/cms/sitemap/bottom_cap.png +0 -0
- data/app/assets/images/cms/sitemap/buffer_caps.png +0 -0
- data/app/assets/images/cms/sitemap/contract.png +0 -0
- data/app/assets/images/cms/sitemap/corners.gif +0 -0
- data/app/assets/images/cms/sitemap/corners_hover.gif +0 -0
- data/app/assets/images/cms/sitemap/divider.gif +0 -0
- data/app/assets/images/cms/sitemap/expand.png +0 -0
- data/app/assets/images/cms/sitemap/gradient.gif +0 -0
- data/app/assets/images/cms/sitemap/gray_contract.png +0 -0
- data/app/assets/images/cms/sitemap/gray_expand.png +0 -0
- data/app/assets/images/cms/sitemap/no_contents.png +0 -0
- data/app/assets/images/cms/sitemap/site_root_cap.png +0 -0
- data/app/assets/images/cms/sitemap/tooltip.gif +0 -0
- data/app/assets/images/cms/sitemap/top_cap_content.png +0 -0
- data/app/assets/images/cms/solid.gif +0 -0
- data/app/assets/images/cms/table/bl.gif +0 -0
- data/app/assets/images/cms/table/br.gif +0 -0
- data/app/assets/images/cms/table/divider.gif +0 -0
- data/app/assets/images/cms/table/td_cap_first_h.gif +0 -0
- data/app/assets/images/cms/table/td_cap_first_s.gif +0 -0
- data/app/assets/images/cms/table/td_cap_last_h.gif +0 -0
- data/app/assets/images/cms/table/td_cap_last_s.gif +0 -0
- data/app/assets/images/cms/table/td_last_bg.gif +0 -0
- data/app/assets/images/cms/table/th_bg.gif +0 -0
- data/app/assets/images/cms/table/th_divider.gif +0 -0
- data/app/assets/images/cms/table/th_last_bg.gif +0 -0
- data/app/assets/images/cms/table/tl.gif +0 -0
- data/app/assets/images/cms/table/tr.gif +0 -0
- data/app/assets/images/cms/table/tr_bg.gif +0 -0
- data/app/assets/images/cms/toolbar_bg.png +0 -0
- data/app/assets/images/cms/top_cap.png +0 -0
- data/app/assets/images/cms/top_cap_content.png +0 -0
- data/app/assets/images/cms/top_cap_menu_header.png +0 -0
- data/app/assets/images/cms/user.png +0 -0
- data/app/assets/images/cms/user_search_submit.gif +0 -0
- data/app/assets/images/cms/usercontrols_bg.png +0 -0
- data/app/assets/images/cms/usercontrols_bg_cap.png +0 -0
- data/app/assets/javascripts/bcms/ckeditor.js +8 -0
- data/app/assets/javascripts/bcms/ckeditor_inline.js +23 -0
- data/app/assets/javascripts/bcms/ckeditor_load.js +54 -0
- data/app/assets/javascripts/bcms/ckeditor_standard_config.js +10 -0
- data/app/assets/javascripts/ckeditor/plugins/delete_content/plugin.js +36 -0
- data/app/assets/javascripts/ckeditor/plugins/edit_content/plugin.js +24 -0
- data/app/assets/javascripts/ckeditor/plugins/move_content/plugin.js +25 -0
- data/app/assets/javascripts/cms/ajax.js +60 -0
- data/app/assets/javascripts/cms/application.js +18 -0
- data/app/assets/javascripts/cms/attachment_manager.js +88 -0
- data/app/assets/javascripts/cms/content_library.js +121 -0
- data/app/assets/javascripts/cms/content_types.js +13 -0
- data/app/assets/javascripts/cms/core_library.js.erb +210 -0
- data/app/assets/javascripts/cms/form_builder.js +250 -0
- data/app/assets/javascripts/cms/namespace.js +2 -0
- data/app/assets/javascripts/cms/new_content_button.js +27 -0
- data/app/assets/javascripts/cms/page_editor.js +189 -0
- data/app/assets/javascripts/cms/page_toolbar.js +13 -0
- data/app/assets/javascripts/cms/site.js +2 -0
- data/app/assets/javascripts/cms/sitemap.js +219 -0
- data/app/assets/javascripts/cms/toolbar.js +21 -0
- data/app/assets/javascripts/cms/user.js +40 -0
- data/app/assets/javascripts/jquery.exists.js +5 -0
- data/app/assets/javascripts/jquery.taglist.js +157 -0
- data/app/assets/stylesheets/cms/_assets.scss +60 -0
- data/app/assets/stylesheets/cms/_base.scss +42 -0
- data/app/assets/stylesheets/cms/_cms-buttons.scss +73 -0
- data/app/assets/stylesheets/cms/_cms-forms.scss +70 -0
- data/app/assets/stylesheets/cms/_colors.scss +20 -0
- data/app/assets/stylesheets/cms/_dashboard.scss +25 -0
- data/app/assets/stylesheets/cms/_glyph.scss +60 -0
- data/app/assets/stylesheets/cms/_main-area.scss +62 -0
- data/app/assets/stylesheets/cms/_nav.scss +197 -0
- data/app/assets/stylesheets/cms/_sidebar.scss +64 -0
- data/app/assets/stylesheets/cms/_sitemap.scss +209 -0
- data/app/assets/stylesheets/cms/_submenu.scss +48 -0
- data/app/assets/stylesheets/cms/application.scss +49 -0
- data/app/assets/stylesheets/cms/core.scss +96 -0
- data/app/assets/stylesheets/cms/default-forms.scss +3 -0
- data/app/assets/stylesheets/cms/includes/_animation.scss +2 -0
- data/app/assets/stylesheets/cms/includes/_rem.scss +120 -0
- data/app/assets/stylesheets/cms/includes/animation/_animate.scss +31 -0
- data/app/assets/stylesheets/cms/includes/animation/_core.scss +127 -0
- data/app/assets/stylesheets/cms/includes/animation/_shared.scss +22 -0
- data/app/assets/stylesheets/cms/includes/animation/animate/_attention-seekers.scss +152 -0
- data/app/assets/stylesheets/cms/includes/animation/animate/_bouncing.scss +3 -0
- data/app/assets/stylesheets/cms/includes/animation/animate/_classes.scss +21 -0
- data/app/assets/stylesheets/cms/includes/animation/animate/_fading.scss +3 -0
- data/app/assets/stylesheets/cms/includes/animation/animate/_flippers.scss +87 -0
- data/app/assets/stylesheets/cms/includes/animation/animate/_lightspeed.scss +24 -0
- data/app/assets/stylesheets/cms/includes/animation/animate/_rotating.scss +3 -0
- data/app/assets/stylesheets/cms/includes/animation/animate/_specials.scss +42 -0
- data/app/assets/stylesheets/cms/includes/animation/animate/bouncing/_bouncing-entrances.scss +68 -0
- data/app/assets/stylesheets/cms/includes/animation/animate/bouncing/_bouncing-exits.scss +60 -0
- data/app/assets/stylesheets/cms/includes/animation/animate/fading/_fading-entrances.scss +86 -0
- data/app/assets/stylesheets/cms/includes/animation/animate/fading/_fading-exits.scss +86 -0
- data/app/assets/stylesheets/cms/includes/animation/animate/rotating/_rotating-entrances.scss +58 -0
- data/app/assets/stylesheets/cms/includes/animation/animate/rotating/_rotating-exits.scss +58 -0
- data/app/assets/stylesheets/cms/page_content_editing.scss +4 -0
- data/app/assets/stylesheets/cms/page_editor.scss +4 -0
- data/app/assets/stylesheets/cms/style.scss +138 -0
- data/app/assets/stylesheets/cms/styles/_alerts.scss +150 -0
- data/app/assets/stylesheets/cms/styles/_base-grid.scss +299 -0
- data/app/assets/stylesheets/cms/styles/_buttons.scss +247 -0
- data/app/assets/stylesheets/cms/styles/_dropdown.scss +155 -0
- data/app/assets/stylesheets/cms/styles/_forms.scss +728 -0
- data/app/assets/stylesheets/cms/styles/_glyph.scss +86 -0
- data/app/assets/stylesheets/cms/styles/_images.scss +86 -0
- data/app/assets/stylesheets/cms/styles/_lists.scss +115 -0
- data/app/assets/stylesheets/cms/styles/_modal.scss +174 -0
- data/app/assets/stylesheets/cms/styles/_progress.scss +43 -0
- data/app/assets/stylesheets/cms/styles/_tables.scss +141 -0
- data/app/assets/stylesheets/cms/styles/_text.scss +134 -0
- data/app/controllers/cms/application_controller.rb +11 -0
- data/app/controllers/cms/attachments_controller.rb +48 -0
- data/app/controllers/cms/base_controller.rb +22 -0
- data/app/controllers/cms/cache_controller.rb +23 -0
- data/app/controllers/cms/categories_controller.rb +7 -0
- data/app/controllers/cms/category_types_controller.rb +12 -0
- data/app/controllers/cms/connectors_controller.rb +70 -0
- data/app/controllers/cms/content_block_controller.rb +361 -0
- data/app/controllers/cms/content_controller.rb +173 -0
- data/app/controllers/cms/content_types_controller.rb +14 -0
- data/app/controllers/cms/dashboard_controller.rb +13 -0
- data/app/controllers/cms/dynamic_views_controller.rb +81 -0
- data/app/controllers/cms/email_messages_controller.rb +21 -0
- data/app/controllers/cms/file_blocks_controller.rb +4 -0
- data/app/controllers/cms/form_entries_controller.rb +140 -0
- data/app/controllers/cms/form_fields_controller.rb +74 -0
- data/app/controllers/cms/forms_controller.rb +35 -0
- data/app/controllers/cms/groups_controller.rb +25 -0
- data/app/controllers/cms/home_controller.rb +10 -0
- data/app/controllers/cms/html_blocks_controller.rb +4 -0
- data/app/controllers/cms/image_blocks_controller.rb +4 -0
- data/app/controllers/cms/inline_content_controller.rb +50 -0
- data/app/controllers/cms/links_controller.rb +81 -0
- data/app/controllers/cms/page_components_controller.rb +20 -0
- data/app/controllers/cms/page_route_conditions_controller.rb +4 -0
- data/app/controllers/cms/page_route_options_controller.rb +58 -0
- data/app/controllers/cms/page_route_requirements_controller.rb +4 -0
- data/app/controllers/cms/page_routes_controller.rb +51 -0
- data/app/controllers/cms/pages_controller.rb +151 -0
- data/app/controllers/cms/passwords_controller.rb +22 -0
- data/app/controllers/cms/portlet_controller.rb +21 -0
- data/app/controllers/cms/portlets_controller.rb +35 -0
- data/app/controllers/cms/redirects_controller.rb +25 -0
- data/app/controllers/cms/resource_controller.rb +125 -0
- data/app/controllers/cms/routes_controller.rb +22 -0
- data/app/controllers/cms/section_nodes_controller.rb +24 -0
- data/app/controllers/cms/sections_controller.rb +100 -0
- data/app/controllers/cms/sessions_controller.rb +15 -0
- data/app/controllers/cms/sites/passwords_controller.rb +32 -0
- data/app/controllers/cms/sites/sessions_controller.rb +20 -0
- data/app/controllers/cms/tags_controller.rb +16 -0
- data/app/controllers/cms/tasks_controller.rb +56 -0
- data/app/controllers/cms/toolbar_controller.rb +18 -0
- data/app/controllers/cms/user_controller.rb +8 -0
- data/app/controllers/cms/users_controller.rb +125 -0
- data/app/controllers/tests/pretend_controller.rb +32 -0
- data/app/helpers/cms/application_helper.rb +258 -0
- data/app/helpers/cms/content_block_helper.rb +55 -0
- data/app/helpers/cms/content_types_helper.rb +4 -0
- data/app/helpers/cms/form_tag_helper.rb +36 -0
- data/app/helpers/cms/menu_helper.rb +167 -0
- data/app/helpers/cms/mobile_helper.rb +29 -0
- data/app/helpers/cms/nav_menu_helper.rb +23 -0
- data/app/helpers/cms/page_helper.rb +169 -0
- data/app/helpers/cms/path_helper.rb +113 -0
- data/app/helpers/cms/rendering_helper.rb +112 -0
- data/app/helpers/cms/section_nodes_helper.rb +112 -0
- data/app/helpers/cms/sites/authentication_helper.rb +25 -0
- data/app/helpers/cms/sites/devise_shim_helper.rb +31 -0
- data/app/helpers/cms/template_support.rb +18 -0
- data/app/helpers/cms/ui_elements_helper.rb +168 -0
- data/app/helpers/forgot_password_portlet_helper.rb +9 -0
- data/app/helpers/login_portlet_helper.rb +10 -0
- data/app/inputs/attachments_input.rb +14 -0
- data/app/inputs/cms_text_area_input.rb +10 -0
- data/app/inputs/date_picker_input.rb +8 -0
- data/app/inputs/file_picker_input.rb +75 -0
- data/app/inputs/name_input.rb +42 -0
- data/app/inputs/path_input.rb +18 -0
- data/app/inputs/tag_list_input.rb +3 -0
- data/app/inputs/template_editor_input.rb +24 -0
- data/app/inputs/text_editor_input.rb +19 -0
- data/app/models/cms/abstract_file_block.rb +50 -0
- data/app/models/cms/attachment.rb +267 -0
- data/app/models/cms/category.rb +56 -0
- data/app/models/cms/category_type.rb +43 -0
- data/app/models/cms/connector.rb +99 -0
- data/app/models/cms/content.rb +31 -0
- data/app/models/cms/content_type.rb +191 -0
- data/app/models/cms/dynamic_view.rb +81 -0
- data/app/models/cms/email_message.rb +63 -0
- data/app/models/cms/email_message_mailer.rb +12 -0
- data/app/models/cms/external_user.rb +60 -0
- data/app/models/cms/file_block.rb +19 -0
- data/app/models/cms/form.rb +47 -0
- data/app/models/cms/form_entry.rb +75 -0
- data/app/models/cms/form_field.rb +78 -0
- data/app/models/cms/group.rb +62 -0
- data/app/models/cms/group_permission.rb +12 -0
- data/app/models/cms/group_section.rb +9 -0
- data/app/models/cms/group_type.rb +16 -0
- data/app/models/cms/group_type_permission.rb +8 -0
- data/app/models/cms/guest_user.rb +57 -0
- data/app/models/cms/html_block.rb +38 -0
- data/app/models/cms/image_block.rb +23 -0
- data/app/models/cms/link.rb +20 -0
- data/app/models/cms/page.rb +437 -0
- data/app/models/cms/page_component.rb +43 -0
- data/app/models/cms/page_partial.rb +40 -0
- data/app/models/cms/page_route.rb +140 -0
- data/app/models/cms/page_route_condition.rb +5 -0
- data/app/models/cms/page_route_option.rb +7 -0
- data/app/models/cms/page_route_requirement.rb +5 -0
- data/app/models/cms/page_template.rb +45 -0
- data/app/models/cms/permission.rb +17 -0
- data/app/models/cms/persistent_user.rb +223 -0
- data/app/models/cms/portlet.rb +237 -0
- data/app/models/cms/redirect.rb +12 -0
- data/app/models/cms/search_filter.rb +18 -0
- data/app/models/cms/section.rb +224 -0
- data/app/models/cms/section_node.rb +144 -0
- data/app/models/cms/site.rb +45 -0
- data/app/models/cms/tag.rb +69 -0
- data/app/models/cms/tagging.rb +14 -0
- data/app/models/cms/task.rb +75 -0
- data/app/models/cms/templates.rb +31 -0
- data/app/models/cms/user.rb +43 -0
- data/app/models/cms/user_group_membership.rb +9 -0
- data/app/models/cms/view_context.rb +81 -0
- data/app/portlets/deprecated_placeholder.rb +12 -0
- data/app/portlets/dynamic_portlet.rb +7 -0
- data/app/portlets/email_page_portlet.rb +32 -0
- data/app/portlets/forgot_password_portlet.rb +15 -0
- data/app/portlets/helpers/cms/list_portlet_helper.rb +5 -0
- data/app/portlets/list_portlet.rb +40 -0
- data/app/portlets/login_portlet.rb +13 -0
- data/app/portlets/tag_cloud_portlet.rb +15 -0
- data/app/presenters/cms/user_presenter.rb +47 -0
- data/app/views/cms/application/_add_content_modal.html.erb +3 -0
- data/app/views/cms/application/_buttons.html.erb +7 -0
- data/app/views/cms/application/_exception.html.erb +6 -0
- data/app/views/cms/application/_form_errors.html.erb +7 -0
- data/app/views/cms/application/_form_with_buttons.html.erb +10 -0
- data/app/views/cms/application/_main_content.html.erb +3 -0
- data/app/views/cms/application/_main_with_sidebar.html.erb +8 -0
- data/app/views/cms/application/_mobile_toolbar.html.erb +16 -0
- data/app/views/cms/application/_page_title.html.erb +5 -0
- data/app/views/cms/application/_pagination.html.erb +26 -0
- data/app/views/cms/application/_row.html.erb +1 -0
- data/app/views/cms/application/_save_buttons.html.erb +7 -0
- data/app/views/cms/application/_sidebar_layout.html.erb +3 -0
- data/app/views/cms/application/_version.html.erb +23 -0
- data/app/views/cms/application/_version_conflict_diff.html.erb +11 -0
- data/app/views/cms/application/_version_conflict_error.html.erb +6 -0
- data/app/views/cms/attachments/_attachment.html.erb +16 -0
- data/app/views/cms/attachments/_attachment_manager.html.erb +39 -0
- data/app/views/cms/attachments/_attachment_table.html.erb +22 -0
- data/app/views/cms/attachments/_attachment_wrapper.html.erb +4 -0
- data/app/views/cms/attachments/_no_attachments_defined.html.erb +1 -0
- data/app/views/cms/cache/show.html.erb +7 -0
- data/app/views/cms/categories/_form.html.erb +27 -0
- data/app/views/cms/category_types/_form.html.erb +1 -0
- data/app/views/cms/connectors/new.html.erb +38 -0
- data/app/views/cms/content/editing_frame.html.erb +1 -0
- data/app/views/cms/content/no_page.html.erb +19 -0
- data/app/views/cms/content/show.html.erb +21 -0
- data/app/views/cms/content_block/_block_form.html.erb +15 -0
- data/app/views/cms/content_block/_buttonbar.html.erb +29 -0
- data/app/views/cms/content_block/_buttons.html.erb +13 -0
- data/app/views/cms/content_block/_hidden_fields.html.erb +13 -0
- data/app/views/cms/content_block/_sidebar.html.erb +36 -0
- data/app/views/cms/content_block/edit.html.erb +3 -0
- data/app/views/cms/content_block/index.html.erb +87 -0
- data/app/views/cms/content_block/new.html.erb +3 -0
- data/app/views/cms/content_block/render_block_in_main_container.html.erb +10 -0
- data/app/views/cms/content_block/show.html.erb +1 -0
- data/app/views/cms/content_block/show_in_isolation.html.erb +15 -0
- data/app/views/cms/content_block/versions.html.erb +24 -0
- data/app/views/cms/content_types/_order_field.html.erb +5 -0
- data/app/views/cms/content_types/index.html.erb +3 -0
- data/app/views/cms/dashboard/_page_drafts.html.erb +39 -0
- data/app/views/cms/dashboard/_tasks.html.erb +41 -0
- data/app/views/cms/dashboard/index.html.erb +13 -0
- data/app/views/cms/dynamic_views/_form.html.erb +9 -0
- data/app/views/cms/dynamic_views/edit.html.erb +2 -0
- data/app/views/cms/dynamic_views/index.html.erb +33 -0
- data/app/views/cms/dynamic_views/new.html.erb +2 -0
- data/app/views/cms/email_messages/index.html.erb +36 -0
- data/app/views/cms/email_messages/show.html.erb +50 -0
- data/app/views/cms/file_blocks/_form.html.erb +3 -0
- data/app/views/cms/file_blocks/_section_selector.html.erb +13 -0
- data/app/views/cms/file_blocks/render.html.erb +5 -0
- data/app/views/cms/forgot_password_mailer/reset_password.text.html.erb +3 -0
- data/app/views/cms/forgot_password_mailer/reset_password.text.plain.erb +3 -0
- data/app/views/cms/form_entries/_buttons.html.erb +2 -0
- data/app/views/cms/form_entries/_form.html.erb +7 -0
- data/app/views/cms/form_entries/_internal_form.html.erb +9 -0
- data/app/views/cms/form_entries/edit.html.erb +5 -0
- data/app/views/cms/form_entries/error.html.erb +3 -0
- data/app/views/cms/form_entries/index.html.erb +5 -0
- data/app/views/cms/form_entries/new.html.erb +5 -0
- data/app/views/cms/form_entries/show.html.erb +13 -0
- data/app/views/cms/form_entries/submit.html.erb +1 -0
- data/app/views/cms/form_fields/_form.html.erb +8 -0
- data/app/views/cms/form_fields/_select.html.erb +3 -0
- data/app/views/cms/form_fields/_text_area.html.erb +3 -0
- data/app/views/cms/form_fields/_text_field.html.erb +3 -0
- data/app/views/cms/form_fields/edit.html.erb +0 -0
- data/app/views/cms/form_fields/new.html.erb +26 -0
- data/app/views/cms/form_fields/preview.html.erb +16 -0
- data/app/views/cms/forms/_form.html.erb +67 -0
- data/app/views/cms/forms/render.html.erb +15 -0
- data/app/views/cms/forms/show.html.erb +6 -0
- data/app/views/cms/groups/_form.html.erb +38 -0
- data/app/views/cms/groups/_permissions.html.erb +14 -0
- data/app/views/cms/groups/_sections.html.erb +12 -0
- data/app/views/cms/groups/edit.html.erb +2 -0
- data/app/views/cms/groups/index.html.erb +36 -0
- data/app/views/cms/groups/new.html.erb +2 -0
- data/app/views/cms/html_blocks/_form.html.erb +3 -0
- data/app/views/cms/html_blocks/render.html.erb +1 -0
- data/app/views/cms/image_blocks/_form.html.erb +3 -0
- data/app/views/cms/image_blocks/render.html.erb +4 -0
- data/app/views/cms/links/_form.html.erb +8 -0
- data/app/views/cms/links/edit.html.erb +4 -0
- data/app/views/cms/links/new.html.erb +5 -0
- data/app/views/cms/menus/_menu.html.erb +9 -0
- data/app/views/cms/menus/_menu_item.html.erb +11 -0
- data/app/views/cms/page_components/_content.html.erb +18 -0
- data/app/views/cms/page_components/new.html.erb +12 -0
- data/app/views/cms/page_routes/_form.html.erb +12 -0
- data/app/views/cms/page_routes/edit.html.erb +2 -0
- data/app/views/cms/page_routes/index.html.erb +33 -0
- data/app/views/cms/page_routes/new.html.erb +2 -0
- data/app/views/cms/pages/_edit_content.html.erb +28 -0
- data/app/views/cms/pages/_form.html.erb +21 -0
- data/app/views/cms/pages/_main_form.html.erb +23 -0
- data/app/views/cms/pages/_simple_container.html.erb +8 -0
- data/app/views/cms/pages/edit.html.erb +2 -0
- data/app/views/cms/pages/new.html.erb +19 -0
- data/app/views/cms/pages/versions.html.erb +22 -0
- data/app/views/cms/passwords/new.html.erb +16 -0
- data/app/views/cms/redirects/_form.html.erb +7 -0
- data/app/views/cms/redirects/edit.html.erb +2 -0
- data/app/views/cms/redirects/index.html.erb +25 -0
- data/app/views/cms/redirects/new.html.erb +2 -0
- data/app/views/cms/routes/index.html.erb +35 -0
- data/app/views/cms/section_nodes/_children.html.erb +5 -0
- data/app/views/cms/section_nodes/_row_buttons.html.erb +11 -0
- data/app/views/cms/section_nodes/_section_node.html.erb +24 -0
- data/app/views/cms/section_nodes/_sitemap_buttons.html.erb +47 -0
- data/app/views/cms/section_nodes/_status.html.erb +5 -0
- data/app/views/cms/section_nodes/show.html.erb +9 -0
- data/app/views/cms/sections/_buttons.html.erb +6 -0
- data/app/views/cms/sections/_form.html.erb +30 -0
- data/app/views/cms/sections/edit.html.erb +4 -0
- data/app/views/cms/sections/new.html.erb +5 -0
- data/app/views/cms/sessions/new.html.erb +16 -0
- data/app/views/cms/shared/access_denied.html.erb +2 -0
- data/app/views/cms/shared/error.html.erb +40 -0
- data/app/views/cms/shared/error.xml.erb +8 -0
- data/app/views/cms/sites/_flash.html.erb +8 -0
- data/app/views/cms/sites/passwords/new.html.erb +2 -0
- data/app/views/cms/sites/sessions/new.html.erb +2 -0
- data/app/views/cms/tags/_form.html.erb +1 -0
- data/app/views/cms/tags/render.html.erb +52 -0
- data/app/views/cms/tasks/new.html.erb +22 -0
- data/app/views/cms/toolbar/_new_pages_menu.html.erb +10 -0
- data/app/views/cms/users/_form.html.erb +9 -0
- data/app/views/cms/users/_password.html.erb +2 -0
- data/app/views/cms/users/_user_fields.html.erb +7 -0
- data/app/views/cms/users/change_password.html.erb +12 -0
- data/app/views/cms/users/edit.html.erb +2 -0
- data/app/views/cms/users/index.html.erb +65 -0
- data/app/views/cms/users/new.html.erb +2 -0
- data/app/views/devise/confirmations/new.html.erb +16 -0
- data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
- data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
- data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
- data/app/views/devise/passwords/edit.html.erb +19 -0
- data/app/views/devise/passwords/new.html.erb +15 -0
- data/app/views/devise/registrations/edit.html.erb +28 -0
- data/app/views/devise/registrations/new.html.erb +18 -0
- data/app/views/devise/shared/_links.erb +25 -0
- data/app/views/devise/unlocks/new.html.erb +16 -0
- data/app/views/layouts/cms/_content_types.html.erb +13 -0
- data/app/views/layouts/cms/_footer.erb +4 -0
- data/app/views/layouts/cms/_head.html.erb +8 -0
- data/app/views/layouts/cms/_main_menu.html.erb +78 -0
- data/app/views/layouts/cms/application.html.erb +23 -0
- data/app/views/layouts/cms/content_page.html.erb +5 -0
- data/app/views/layouts/cms/page_editor.html.erb +90 -0
- data/app/views/portlets/deprecated_placeholders/_form.html.erb +1 -0
- data/app/views/portlets/deprecated_placeholders/render.html.erb +8 -0
- data/app/views/portlets/dynamic/_form.html.erb +3 -0
- data/app/views/portlets/email_page/_form.html.erb +5 -0
- data/app/views/portlets/email_page/render.html.erb +17 -0
- data/app/views/portlets/forgot_password/_form.html.erb +5 -0
- data/app/views/portlets/forgot_password/render.html.erb +2 -0
- data/app/views/portlets/list/_form.html.erb +33 -0
- data/app/views/portlets/list/_list.html.erb +6 -0
- data/app/views/portlets/list/_table.html.erb +13 -0
- data/app/views/portlets/list/render.html.erb +1 -0
- data/app/views/portlets/login/_form.html.erb +4 -0
- data/app/views/portlets/login/render.html.erb +10 -0
- data/app/views/portlets/portlets/_form.html.erb +20 -0
- data/app/views/portlets/tag_cloud/_form.html.erb +4 -0
- data/app/views/portlets/tag_cloud/render.html.erb +5 -0
- data/app/views/tests/pretend/open_with_layout.html.erb +5 -0
- data/bin/bcms +321 -0
- data/bin/browsercms +4 -0
- data/bin/rake +16 -0
- data/config/routes.rb +135 -0
- data/db/browsercms.seeds.rb +63 -0
- data/db/migrate/20080815014337_browsercms300.rb +287 -0
- data/db/migrate/20130327184912_browsercms400.rb +120 -0
- data/db/migrate/20150715173336_create_default_users.rb +12 -0
- data/db/seeds.rb +1 -0
- data/doc/README_FOR_APP +6 -0
- data/doc/design/blue_button.psd +0 -0
- data/doc/design/gray_box.psd +0 -0
- data/doc/design/main_nav.psd +0 -0
- data/doc/features/design_integration.md +45 -0
- data/doc/features/external_user.md +7 -0
- data/doc/features/form_builder.md +40 -0
- data/doc/features/simple_form_refactor.md +60 -0
- data/doc/performance_tuning_notes.md +12 -0
- data/doc/release_notes.md +837 -0
- data/doc/test_procedure.txt +141 -0
- data/lib/acts_as_list.rb +257 -0
- data/lib/browsercms-artirix.rb +1 -0
- data/lib/browsercms.rb +73 -0
- data/lib/cms/acts/cms_user.rb +131 -0
- data/lib/cms/acts/content_block.rb +61 -0
- data/lib/cms/acts/content_page.rb +90 -0
- data/lib/cms/acts.rb +7 -0
- data/lib/cms/admin_tab.rb +15 -0
- data/lib/cms/attachments/attachment_serving.rb +59 -0
- data/lib/cms/attachments/configuration.rb +88 -0
- data/lib/cms/authentication/controller.rb +120 -0
- data/lib/cms/authentication/test_password_strategy.rb +28 -0
- data/lib/cms/authentication.rb +4 -0
- data/lib/cms/authoring.rb +9 -0
- data/lib/cms/behaviors/archiving.rb +43 -0
- data/lib/cms/behaviors/attaching.rb +363 -0
- data/lib/cms/behaviors/categorizing.rb +31 -0
- data/lib/cms/behaviors/connecting.rb +141 -0
- data/lib/cms/behaviors/dynamic_attributes.rb +384 -0
- data/lib/cms/behaviors/flush_cache_on_change.rb +31 -0
- data/lib/cms/behaviors/hiding.rb +46 -0
- data/lib/cms/behaviors/namespacing.rb +15 -0
- data/lib/cms/behaviors/naming.rb +16 -0
- data/lib/cms/behaviors/publishing.rb +205 -0
- data/lib/cms/behaviors/rendering.rb +195 -0
- data/lib/cms/behaviors/searching.rb +45 -0
- data/lib/cms/behaviors/soft_deleting.rb +103 -0
- data/lib/cms/behaviors/taggable.rb +66 -0
- data/lib/cms/behaviors/userstamping.rb +42 -0
- data/lib/cms/behaviors/versioning.rb +360 -0
- data/lib/cms/behaviors.rb +34 -0
- data/lib/cms/caching.rb +62 -0
- data/lib/cms/commands/actions.rb +107 -0
- data/lib/cms/commands/to_version400.rb +10 -0
- data/lib/cms/concerns/can_be_addressable.rb +326 -0
- data/lib/cms/concerns/has_content_type.rb +46 -0
- data/lib/cms/concerns/ignores_publishing.rb +9 -0
- data/lib/cms/concerns.rb +7 -0
- data/lib/cms/configuration/configurable_template.rb +24 -0
- data/lib/cms/configuration/devise.rb +256 -0
- data/lib/cms/configuration.rb +79 -0
- data/lib/cms/configure_simple_form.rb +142 -0
- data/lib/cms/configure_simple_form_bootstrap.rb +58 -0
- data/lib/cms/content_filter.rb +18 -0
- data/lib/cms/content_page.rb +77 -0
- data/lib/cms/content_rendering_support.rb +114 -0
- data/lib/cms/controllers/admin_controller.rb +78 -0
- data/lib/cms/data_loader.rb +54 -0
- data/lib/cms/date_picker.rb +23 -0
- data/lib/cms/default_accessible.rb +13 -0
- data/lib/cms/domain_support.rb +38 -0
- data/lib/cms/engine.rb +135 -0
- data/lib/cms/engine_helper.rb +103 -0
- data/lib/cms/error_handling.rb +84 -0
- data/lib/cms/error_pages.rb +8 -0
- data/lib/cms/extensions/action_view/base.rb +13 -0
- data/lib/cms/extensions/active_model/name.rb +13 -0
- data/lib/cms/extensions/active_record/base.rb +37 -0
- data/lib/cms/extensions/active_record/connection_adapters/abstract/schema_statements.rb +94 -0
- data/lib/cms/extensions/active_record/errors.rb +12 -0
- data/lib/cms/extensions/active_support/cache/file_store.rb +9 -0
- data/lib/cms/extensions/hash.rb +11 -0
- data/lib/cms/extensions/integer.rb +16 -0
- data/lib/cms/extensions/nil.rb +19 -0
- data/lib/cms/extensions/string.rb +24 -0
- data/lib/cms/extensions.rb +5 -0
- data/lib/cms/form_builder/content_block_form_builder.rb +45 -0
- data/lib/cms/form_builder/default_input.rb +13 -0
- data/lib/cms/form_builder/deprecated_inputs.rb +40 -0
- data/lib/cms/form_builder/workflow_buttons.rb +38 -0
- data/lib/cms/installation_actions.rb +8 -0
- data/lib/cms/mobile_aware.rb +67 -0
- data/lib/cms/module.rb +36 -0
- data/lib/cms/module_installation.rb +31 -0
- data/lib/cms/polymorphic_single_table_inheritance.rb +19 -0
- data/lib/cms/publish_workflow.rb +26 -0
- data/lib/cms/responders/content_responder.rb +14 -0
- data/lib/cms/route_extensions.rb +157 -0
- data/lib/cms/users_service.rb +208 -0
- data/lib/cms/version.rb +11 -0
- data/lib/command_line.rb +39 -0
- data/lib/generators/browser_cms/demo_site/USAGE +3 -0
- data/lib/generators/browser_cms/demo_site/templates/demo.seeds.rb +249 -0
- data/lib/generators/browser_cms/demo_site/templates/demo_site.rake +14 -0
- data/lib/generators/browser_cms/demo_site/templates/logo.jpg +0 -0
- data/lib/generators/browser_cms/demo_site/templates/splash.jpg +0 -0
- data/lib/generators/browser_cms/demo_site/templates/style.css +257 -0
- data/lib/generators/browser_cms.rb +12 -0
- data/lib/generators/cms/content_block/USAGE +22 -0
- data/lib/generators/cms/content_block/content_block_generator.rb +103 -0
- data/lib/generators/cms/content_block/templates/_form.html.erb +27 -0
- data/lib/generators/cms/content_block/templates/application_controller.rb.erb +4 -0
- data/lib/generators/cms/content_block/templates/render.html.erb +23 -0
- data/lib/generators/cms/install/USAGE +8 -0
- data/lib/generators/cms/install/install_generator.rb +16 -0
- data/lib/generators/cms/portlet/USAGE +26 -0
- data/lib/generators/cms/portlet/portlet_generator.rb +38 -0
- data/lib/generators/cms/portlet/templates/_form.html.erb +5 -0
- data/lib/generators/cms/portlet/templates/portlet.rb +12 -0
- data/lib/generators/cms/portlet/templates/portlet_helper.rb +5 -0
- data/lib/generators/cms/portlet/templates/render.html.erb +1 -0
- data/lib/generators/cms/portlet/templates/unit_test.erb +9 -0
- data/lib/generators/cms/project/USAGE +1 -0
- data/lib/generators/cms/project/templates/COPYRIGHT.txt +23 -0
- data/lib/generators/cms/project/templates/GPL.txt +674 -0
- data/lib/generators/cms/project/templates/LICENSE.txt +165 -0
- data/lib/generators/cms/project/templates/USAGE +3 -0
- data/lib/generators/cms/project/templates/devise.rb.erb +7 -0
- data/lib/generators/cms/project/templates/gitignore.erb +11 -0
- data/lib/generators/cms/project/templates/install_generator.erb +21 -0
- data/lib/generators/cms/project/templates/module_tasks.rake +10 -0
- data/lib/generators/cms/template/USAGE +10 -0
- data/lib/generators/cms/template/template_generator.rb +29 -0
- data/lib/generators/cms/template/templates/template.erb +2 -0
- data/lib/sequence.rb +6 -0
- data/lib/tasks/cms.rake +23 -0
- data/lib/templates/active_record/model/model.rb +17 -0
- data/vendor/assets/javascripts/jquery.cookie.js +91 -0
- data/vendor/assets/javascripts/jquery.selectbox.js +209 -0
- metadata +1048 -0
@@ -0,0 +1,287 @@
|
|
1
|
+
class Browsercms300 < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :cms_users, :force => true do |t|
|
4
|
+
t.column :login, :string, :limit => 40
|
5
|
+
t.column :first_name, :string, :limit => 40
|
6
|
+
t.column :last_name, :string, :limit => 40
|
7
|
+
t.column :email, :string, :limit => 40
|
8
|
+
t.column :crypted_password, :string, :limit => 40
|
9
|
+
t.column :salt, :string, :limit => 40
|
10
|
+
t.column :created_at, :datetime
|
11
|
+
t.column :updated_at, :datetime
|
12
|
+
t.column :expires_at, :datetime
|
13
|
+
t.column :remember_token, :string, :limit => 40
|
14
|
+
t.column :remember_token_expires_at, :datetime
|
15
|
+
t.column :reset_token, :string
|
16
|
+
end
|
17
|
+
add_index :cms_users, :login, :unique => true
|
18
|
+
|
19
|
+
create_content_table :cms_dynamic_views do |t|
|
20
|
+
t.string :type
|
21
|
+
t.string :name
|
22
|
+
t.string :format
|
23
|
+
t.string :handler
|
24
|
+
t.text :body
|
25
|
+
t.timestamps
|
26
|
+
end
|
27
|
+
|
28
|
+
create_content_table :cms_pages do |t|
|
29
|
+
t.string :name
|
30
|
+
t.string :title
|
31
|
+
t.string :path
|
32
|
+
t.string :template_file_name
|
33
|
+
t.text :description
|
34
|
+
t.text :keywords
|
35
|
+
t.string :language
|
36
|
+
t.boolean :cacheable, :default => false
|
37
|
+
t.boolean :hidden, :default => false
|
38
|
+
end
|
39
|
+
add_column :cms_pages, :latest_version, :integer
|
40
|
+
|
41
|
+
create_table :cms_content_type_groups do |t|
|
42
|
+
t.string :name
|
43
|
+
t.timestamps
|
44
|
+
end
|
45
|
+
|
46
|
+
create_table :cms_content_types do |t|
|
47
|
+
t.string :name
|
48
|
+
t.belongs_to :content_type_group
|
49
|
+
t.integer :priority, :default => 2
|
50
|
+
t.timestamps
|
51
|
+
end
|
52
|
+
|
53
|
+
create_table :cms_category_types do |t|
|
54
|
+
t.string :name
|
55
|
+
t.timestamps
|
56
|
+
end
|
57
|
+
|
58
|
+
create_table :cms_categories do |t|
|
59
|
+
t.belongs_to :category_type
|
60
|
+
t.belongs_to :parent
|
61
|
+
t.string :name
|
62
|
+
t.timestamps
|
63
|
+
end
|
64
|
+
|
65
|
+
create_table :cms_connectors do |t|
|
66
|
+
t.integer :page_id
|
67
|
+
t.integer :page_version
|
68
|
+
t.integer :connectable_id
|
69
|
+
t.string :connectable_type
|
70
|
+
t.integer :connectable_version
|
71
|
+
t.string :container
|
72
|
+
t.integer :position
|
73
|
+
t.timestamps
|
74
|
+
end
|
75
|
+
|
76
|
+
create_content_table :cms_html_blocks do |t|
|
77
|
+
t.text :content, :limit => 64.kilobytes + 1
|
78
|
+
end
|
79
|
+
|
80
|
+
create_table :cms_sections do |t|
|
81
|
+
t.string :name
|
82
|
+
t.string :path
|
83
|
+
t.boolean :root, :default => false
|
84
|
+
t.boolean :hidden, :default => false
|
85
|
+
t.timestamps
|
86
|
+
end
|
87
|
+
|
88
|
+
create_table :cms_portlets do |t|
|
89
|
+
t.string :type
|
90
|
+
t.string :name
|
91
|
+
t.boolean :archived, :default => false
|
92
|
+
t.boolean :deleted, :default => false
|
93
|
+
t.integer :created_by_id, :updated_by_id
|
94
|
+
t.timestamps
|
95
|
+
end
|
96
|
+
create_table :cms_portlet_attributes do |t|
|
97
|
+
t.integer :portlet_id
|
98
|
+
t.string :name
|
99
|
+
t.text :value
|
100
|
+
end
|
101
|
+
|
102
|
+
create_table :cms_redirects do |t|
|
103
|
+
t.string :from_path
|
104
|
+
t.string :to_path
|
105
|
+
t.timestamps
|
106
|
+
end
|
107
|
+
|
108
|
+
create_content_table :cms_attachments, name: false do |t|
|
109
|
+
t.string :data_file_name
|
110
|
+
t.string :data_file_path
|
111
|
+
t.string :file_location
|
112
|
+
t.string :data_content_type
|
113
|
+
t.integer :data_file_size
|
114
|
+
t.string :data_fingerprint
|
115
|
+
t.string :attachable_type
|
116
|
+
t.string :attachment_name
|
117
|
+
t.integer :attachable_id
|
118
|
+
t.integer :attachable_version
|
119
|
+
t.string :cardinality
|
120
|
+
end
|
121
|
+
|
122
|
+
create_content_table :cms_file_blocks do |t|
|
123
|
+
t.string :type
|
124
|
+
t.string :name
|
125
|
+
t.integer :attachment_id
|
126
|
+
t.integer :attachment_version
|
127
|
+
end
|
128
|
+
|
129
|
+
create_table :cms_group_types do |t|
|
130
|
+
t.string :name
|
131
|
+
t.boolean :guest, :default => false
|
132
|
+
t.boolean :cms_access, :default => false
|
133
|
+
t.timestamps
|
134
|
+
end
|
135
|
+
create_table :cms_groups do |t|
|
136
|
+
t.string :name
|
137
|
+
t.string :code
|
138
|
+
t.integer :group_type_id
|
139
|
+
t.timestamps
|
140
|
+
end
|
141
|
+
create_table :cms_user_group_memberships do |t|
|
142
|
+
t.integer :user_id
|
143
|
+
t.integer :group_id
|
144
|
+
end
|
145
|
+
|
146
|
+
create_table :cms_permissions do |t|
|
147
|
+
t.string :name
|
148
|
+
t.string :full_name
|
149
|
+
t.string :description
|
150
|
+
t.string :for_module
|
151
|
+
t.timestamps
|
152
|
+
end
|
153
|
+
create_table :cms_group_permissions do |t|
|
154
|
+
t.integer :group_id
|
155
|
+
t.integer :permission_id
|
156
|
+
end
|
157
|
+
create_table :cms_group_type_permissions do |t|
|
158
|
+
t.integer :group_type_id
|
159
|
+
t.integer :permission_id
|
160
|
+
end
|
161
|
+
create_table :cms_group_sections do |t|
|
162
|
+
t.integer :group_id
|
163
|
+
t.integer :section_id
|
164
|
+
end
|
165
|
+
|
166
|
+
create_table :cms_sites do |t|
|
167
|
+
t.string :name
|
168
|
+
t.string :domain
|
169
|
+
t.boolean :the_default
|
170
|
+
t.timestamps
|
171
|
+
end
|
172
|
+
|
173
|
+
create_table :cms_section_nodes do |t|
|
174
|
+
t.string :node_type
|
175
|
+
t.integer :node_id
|
176
|
+
t.integer :position
|
177
|
+
t.string :ancestry
|
178
|
+
t.timestamps
|
179
|
+
end
|
180
|
+
|
181
|
+
create_content_table :cms_links do |t|
|
182
|
+
t.string :name
|
183
|
+
t.string :url
|
184
|
+
t.boolean :new_window, :default => false
|
185
|
+
t.timestamps
|
186
|
+
end
|
187
|
+
add_column :cms_links, :latest_version, :integer
|
188
|
+
|
189
|
+
|
190
|
+
create_table :cms_tags do |t|
|
191
|
+
t.string :name
|
192
|
+
t.timestamps
|
193
|
+
end
|
194
|
+
|
195
|
+
create_table :cms_taggings do |t|
|
196
|
+
t.integer :tag_id
|
197
|
+
t.integer :taggable_id
|
198
|
+
t.string :taggable_type
|
199
|
+
t.integer :taggable_version
|
200
|
+
t.timestamps
|
201
|
+
end
|
202
|
+
|
203
|
+
create_table :cms_email_messages do |t|
|
204
|
+
t.string :sender
|
205
|
+
t.text :recipients
|
206
|
+
t.text :subject
|
207
|
+
t.text :cc
|
208
|
+
t.text :bcc
|
209
|
+
t.text :body
|
210
|
+
t.string :content_type
|
211
|
+
t.datetime :delivered_at
|
212
|
+
t.timestamps
|
213
|
+
end
|
214
|
+
|
215
|
+
create_table :cms_tasks do |t|
|
216
|
+
t.integer :assigned_by_id
|
217
|
+
t.integer :assigned_to_id
|
218
|
+
t.integer :page_id
|
219
|
+
t.text :comment
|
220
|
+
t.date :due_date
|
221
|
+
t.datetime :completed_at
|
222
|
+
t.timestamps
|
223
|
+
end
|
224
|
+
|
225
|
+
create_table :cms_page_routes do |t|
|
226
|
+
t.string :name
|
227
|
+
t.string :pattern
|
228
|
+
t.belongs_to :page
|
229
|
+
t.text :code
|
230
|
+
t.timestamps
|
231
|
+
end
|
232
|
+
create_table :cms_page_route_options do |t|
|
233
|
+
t.belongs_to :page_route
|
234
|
+
t.string :type
|
235
|
+
t.string :name
|
236
|
+
t.string :value
|
237
|
+
t.timestamps
|
238
|
+
end
|
239
|
+
|
240
|
+
INDEXES.each do |index|
|
241
|
+
table_name, column = *index
|
242
|
+
add_index cms_(table_name), column
|
243
|
+
end
|
244
|
+
end
|
245
|
+
|
246
|
+
# Add some very commonly used indexes to improve the site performance as the # of pages/content grows (i.e. several thousand pages)
|
247
|
+
INDEXES = [
|
248
|
+
[:pages, :deleted],
|
249
|
+
[:pages, :path],
|
250
|
+
[:pages, :version],
|
251
|
+
[:page_versions, :original_record_id],
|
252
|
+
[:groups, :code],
|
253
|
+
[:groups, :group_type_id],
|
254
|
+
[:group_types, :cms_access],
|
255
|
+
[:group_sections, :section_id],
|
256
|
+
[:group_sections, :group_id],
|
257
|
+
[:users, :expires_at],
|
258
|
+
[:user_group_memberships, :group_id],
|
259
|
+
[:user_group_memberships, :user_id],
|
260
|
+
[:group_permissions, :group_id],
|
261
|
+
[:group_permissions, :permission_id],
|
262
|
+
[:group_permissions, [:group_id, :permission_id]],
|
263
|
+
[:section_nodes, :node_type],
|
264
|
+
[:section_nodes, :ancestry],
|
265
|
+
[:connectors, :page_id],
|
266
|
+
[:connectors, :page_version],
|
267
|
+
[:html_blocks, :deleted],
|
268
|
+
[:html_block_versions, :original_record_id],
|
269
|
+
[:html_block_versions, :version],
|
270
|
+
[:portlet_attributes, :portlet_id],
|
271
|
+
[:portlets, :name],
|
272
|
+
[:sections, :path],
|
273
|
+
[:redirects, :from_path],
|
274
|
+
[:connectors, :connectable_version],
|
275
|
+
[:connectors, :connectable_type],
|
276
|
+
[:content_types, :content_type_group_id],
|
277
|
+
[:content_types, :name],
|
278
|
+
[:file_block_versions, :original_record_id],
|
279
|
+
[:file_block_versions, :version],
|
280
|
+
[:file_blocks, :deleted],
|
281
|
+
[:file_blocks, :type],
|
282
|
+
[:attachment_versions, :original_record_id],
|
283
|
+
[:tasks, :page_id],
|
284
|
+
[:tasks, :completed_at],
|
285
|
+
[:tasks, :assigned_to_id],
|
286
|
+
]
|
287
|
+
end
|
@@ -0,0 +1,120 @@
|
|
1
|
+
class Browsercms400 < ActiveRecord::Migration
|
2
|
+
|
3
|
+
def up
|
4
|
+
apply_cms_namespace_to_all_core_tables
|
5
|
+
|
6
|
+
add_column :cms_section_nodes, :slug, :string
|
7
|
+
add_content_column :cms_dynamic_views, :path, :string
|
8
|
+
add_content_column :cms_dynamic_views, :locale, :string, default: 'en'
|
9
|
+
add_content_column :cms_dynamic_views, :partial, :boolean, default: false
|
10
|
+
|
11
|
+
Cms::PageTemplate.all.find_each do |pt|
|
12
|
+
pt.path = "layout/templates/#{pt.name}"
|
13
|
+
pt.locale = "en"
|
14
|
+
pt.save!
|
15
|
+
end
|
16
|
+
|
17
|
+
Cms::PagePartial.all.find_each do |pp|
|
18
|
+
pp.path = "partials/#{pp.name}"
|
19
|
+
pp.locale = "en"
|
20
|
+
pp.partial = true
|
21
|
+
pp.save!
|
22
|
+
end
|
23
|
+
|
24
|
+
drop_table :cms_content_type_groups
|
25
|
+
drop_table :cms_content_types
|
26
|
+
|
27
|
+
create_content_table :cms_forms do |t|
|
28
|
+
t.string :name
|
29
|
+
t.text :description
|
30
|
+
t.string :confirmation_behavior
|
31
|
+
t.text :confirmation_text
|
32
|
+
t.string :confirmation_redirect
|
33
|
+
t.string :notification_email
|
34
|
+
end
|
35
|
+
|
36
|
+
create_table :cms_form_fields do |t|
|
37
|
+
t.integer :form_id
|
38
|
+
t.string :label
|
39
|
+
t.string :name
|
40
|
+
t.string :field_type
|
41
|
+
t.boolean :required
|
42
|
+
t.integer :position
|
43
|
+
t.text :instructions
|
44
|
+
t.text :default_value
|
45
|
+
t.text :choices
|
46
|
+
t.timestamps
|
47
|
+
end
|
48
|
+
|
49
|
+
# Field names should be unique per form
|
50
|
+
add_index :cms_form_fields, [:form_id, :name], :unique => true
|
51
|
+
|
52
|
+
create_table :cms_form_entries do |t|
|
53
|
+
t.text :data_columns
|
54
|
+
t.integer :form_id
|
55
|
+
t.timestamps
|
56
|
+
end
|
57
|
+
|
58
|
+
add_devise_users
|
59
|
+
remove_reset_password_portlet
|
60
|
+
add_external_users
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
private
|
66
|
+
|
67
|
+
def add_external_users
|
68
|
+
change_table :cms_users do |t|
|
69
|
+
t.column :type, :string, default: 'Cms::User'
|
70
|
+
t.column :source, :string
|
71
|
+
t.text :external_data
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def remove_reset_password_portlet
|
76
|
+
Cms::Portlet.connection.execute("UPDATE cms_portlets SET type = 'DeprecatedPlaceholder' WHERE type = 'ResetPasswordPortlet'")
|
77
|
+
end
|
78
|
+
|
79
|
+
def add_devise_users
|
80
|
+
change_table(:cms_users) do |t|
|
81
|
+
t.string :encrypted_password, :null => false, :default => ""
|
82
|
+
t.rename :reset_token, :reset_password_token
|
83
|
+
t.datetime :reset_password_sent_at
|
84
|
+
t.rename :remember_token_expires_at, :remember_created_at
|
85
|
+
t.remove :remember_token
|
86
|
+
t.remove :crypted_password
|
87
|
+
end
|
88
|
+
|
89
|
+
add_index :cms_users, :email, :unique => true
|
90
|
+
add_index :cms_users, :reset_password_token, :unique => true
|
91
|
+
end
|
92
|
+
# In 4.x, all core tables MUST start with cms_. See https://github.com/browsermedia/browsercms/issues/639
|
93
|
+
def apply_cms_namespace_to_all_core_tables
|
94
|
+
unversioned_tables.each do |table_name|
|
95
|
+
if (needs_namespacing(table_name))
|
96
|
+
rename_table table_name, cms_(table_name)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
versioned_tables.each do |table_name|
|
101
|
+
if (needs_namespacing(table_name))
|
102
|
+
rename_table table_name, cms_(table_name)
|
103
|
+
rename_table versioned_(table_name), cms_(versioned_(table_name))
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
# All tables that aren't versioned. (I.e. two tables)
|
109
|
+
def unversioned_tables
|
110
|
+
[:categories, :category_types, :connectors, :content_types, :content_type_groups, :email_messages, :group_permissions, :group_sections, :group_type_permissions, :group_types, :groups, :page_route_options, :page_routes, :permissions, :portlet_attributes, :portlets, :redirects, :section_nodes, :sections, :sites, :taggings, :tags, :tasks, :user_group_memberships, :users]
|
111
|
+
end
|
112
|
+
|
113
|
+
def versioned_tables
|
114
|
+
[:attachments, :dynamic_views, :file_blocks, :html_blocks, :links, :pages]
|
115
|
+
end
|
116
|
+
|
117
|
+
def needs_namespacing(table_name)
|
118
|
+
table_exists?(table_name) && !table_exists?(cms_(table_name))
|
119
|
+
end
|
120
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class CreateDefaultUsers < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :cms_default_users do |t|
|
4
|
+
t.column :login, :string
|
5
|
+
t.column :full_name, :string
|
6
|
+
t.column :extra_data, :text
|
7
|
+
t.timestamps
|
8
|
+
end
|
9
|
+
|
10
|
+
add_index :cms_default_users, :login, unique: true
|
11
|
+
end
|
12
|
+
end
|
data/db/seeds.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
load File.expand_path('../browsercms.seeds.rb', __FILE__)
|
data/doc/README_FOR_APP
ADDED
@@ -0,0 +1,6 @@
|
|
1
|
+
== BrowserCMS
|
2
|
+
|
3
|
+
BrowserCMS is a general purpose, open source Web Content Management System (CMS), written in Ruby on Rails. See the Getting Started guide (https://github.com/browsermedia/browsercms/wiki/Getting-Started) for how to install and start a BrowserCMS project.
|
4
|
+
|
5
|
+
|
6
|
+
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# Design Integration
|
2
|
+
|
3
|
+
This covers some of the remaining design issues that we need to resolve before the beta/final 4.0 release.
|
4
|
+
|
5
|
+
## [Ask Kyle]
|
6
|
+
|
7
|
+
* Fonts for Dashboard table headers/menus are just less bold than in design.
|
8
|
+
* Icons for:
|
9
|
+
- Edit button (Pencil) for content
|
10
|
+
- Links
|
11
|
+
- Portlets - Should use 'list' icon
|
12
|
+
- Other Content Types (Product, Catalog, Generic Document) - Ideas: Book? Newspaper? Full page?
|
13
|
+
- Visual Indicator for a section/page can't be edited. (Currently just removing the buttons)
|
14
|
+
- Up and down sorting icons (caret is always down)
|
15
|
+
* Need style for Checkbox groups that are labeled. See Add User.
|
16
|
+
* Tables that are too wide (/cms/routes)
|
17
|
+
* JQuery Date picker - Has no styling.
|
18
|
+
* Styling for CKEditor 'selector'.
|
19
|
+
* Need help styling 'path' element.
|
20
|
+
* Errors - Review the placement of errors on the form.
|
21
|
+
* Products
|
22
|
+
- Photo 2 is wrapping unnecessarily (Does it without photo 1)
|
23
|
+
- Slug path needs styling.
|
24
|
+
|
25
|
+
## IA Questions
|
26
|
+
|
27
|
+
* What Label for first element under Assets? (Assets? Asset library). Or just make Text first.
|
28
|
+
* Selecting a section always toggles. Might want to select an open section to add content to it, but not close it.
|
29
|
+
* Where should "Settings" link take user to.
|
30
|
+
|
31
|
+
## Implied Features by Design
|
32
|
+
|
33
|
+
Features in the original design/IA that didn't get implemented.
|
34
|
+
|
35
|
+
* Make 'Assign' on Edit page work.
|
36
|
+
* Sitemap filters
|
37
|
+
* Sitemap Hide/Archive/Publish
|
38
|
+
* Dashboard Activity / My and All
|
39
|
+
* [Assets] Filter by publish/notpublished
|
40
|
+
* [Assets] Infinite scrolling
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
|
@@ -0,0 +1,7 @@
|
|
1
|
+
# [#644] External User
|
2
|
+
|
3
|
+
Support a built in way to authenticate external users and store their information in the database. These users could be from any system (CRM, AMS, Facebook) and they would be authenticated using credentials from those services. Each external user would be given a record in the user table and would be marked as an external user.
|
4
|
+
|
5
|
+
* Permission: Groups would be dynamically assigned on login and recorded as an association with that user until they reauthentice.
|
6
|
+
* External Data: Third Party APIs often provide extra information. Provide an easy way to store this information on the user record without needing new columns.
|
7
|
+
* Subclasses: Projects/Engines should be able to subclass ExternalUser to provide additional behavior.
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# Form Builder
|
2
|
+
|
3
|
+
Allow content editors to create new form via the interface.
|
4
|
+
|
5
|
+
## Remain issues/features
|
6
|
+
|
7
|
+
* [MINOR] Unique icon for forms (i.e. custom) for sitemap
|
8
|
+
* [Improvement] Captcha?
|
9
|
+
* [FEATURE] Allow sorting/reporting.
|
10
|
+
* [BUG] Preview for dropdowns is inaccurate (doesn't change after updates). To fix, would need to refactor to have HTML returned rather than JSON.
|
11
|
+
* [BUG] 500 errors when posting forms within CMS shows errors within double nested toolbar.
|
12
|
+
* [Improvement] Default Forms just uses bootstrap, which is probably not a valid option. Need a way to pare it down to avoid changing styles for existing designes.
|
13
|
+
* [BUG] After adding a field, it clears but does not correctly show the 'blank' value.
|
14
|
+
* [BUG] Addressable content types (product, forms, etc) do not/cannot appear in menus without manually creating a link.
|
15
|
+
|
16
|
+
## Documentation
|
17
|
+
|
18
|
+
## Forms
|
19
|
+
|
20
|
+
* Can notify staff when a form is submitted.
|
21
|
+
* Email mailbot can be configured in application.rb
|
22
|
+
|
23
|
+
### Configuration
|
24
|
+
|
25
|
+
In config/application.rb, to change which CSS stylesheet is applied to Form pages, update the following:
|
26
|
+
|
27
|
+
```
|
28
|
+
# Default is 'cms/default-forms'
|
29
|
+
config.cms.form_builder_css = 'my-forms' # Returns /assets/my-forms.css
|
30
|
+
```
|
31
|
+
|
32
|
+
# New Namespacing
|
33
|
+
|
34
|
+
When upgrading, Content Models should be moved under application namespace. Basis steps:
|
35
|
+
|
36
|
+
Custom models should have the following added to them:
|
37
|
+
Create a directory in the project named app/models/cms
|
38
|
+
Move any Content Blocks into that directory.
|
39
|
+
Rename from Widget to *Cms::*Widget
|
40
|
+
Add self.table_name = :widgets (or migrate the table from widgets to cms_widgets)
|
@@ -0,0 +1,60 @@
|
|
1
|
+
[#623] Refactor CMS forms to use SimpleForm
|
2
|
+
|
3
|
+
Converted all the internal forms to use SimpleForm rather than our own custom form builder. This provides better consistency with bootstrap forms, as well as well tested API for defining new form inputs. This will primarily affect developers when they create content blocks. New content will be generated using simple_form syntax like so:
|
4
|
+
|
5
|
+
<%= f.input :photo, as: :file_picker %>
|
6
|
+
|
7
|
+
rather than the older syntax that looks like this:
|
8
|
+
|
9
|
+
<%= f.cms_file_field :photo %>
|
10
|
+
|
11
|
+
The old form_builder methods like cms_text_field and cms_file_field have been deprecated and will generate warnings when used. These methods are scheduled for removal in BrowserCMS 4.1. It's recommended that custom content blocks be upgraded to use the new syntax when feasible. The deprecation warnings should provide some guideance, but also look at simple_forms documentation http://simple-form.plataformatec.com.br for help.
|
12
|
+
|
13
|
+
## Available Input Types
|
14
|
+
|
15
|
+
All of the existing simple_form input mappings are available. See http://simple-form.plataformatec.com.br/#mappings-inputs-available for the reference. BrowserCMS adds some additional input types for specific CMS features.
|
16
|
+
|
17
|
+
|# Mapping | Input | Purpose/column type #|
|
18
|
+
| file_picker | File Upload | A single attachment with section/path selectors |
|
19
|
+
| cms_text_area | text area | Like :text but with a :default |
|
20
|
+
| cms_text_field | text field | Like :string with optional path generator (for addressable content types)|
|
21
|
+
| date_picker | jquery date select | date |
|
22
|
+
| path | text field | A slug/path for addressable content (works with cms_text_field to automatically generate names) |
|
23
|
+
| template_editor | text area | For editing templates via ERB or other permitted template languages. |
|
24
|
+
| text_editor | WYSIWYG editor | For editing HTML content (has toggle to use a text area |
|
25
|
+
| attachments | Multiple File Uploads | Unlimited # of attachments. |
|
26
|
+
| tag_list| text field | has_many with :tags |
|
27
|
+
|
28
|
+
### Usage
|
29
|
+
|
30
|
+
Here are some examples showing how to use the CMS specific inputs.
|
31
|
+
|
32
|
+
```
|
33
|
+
<%= f.input :name %>
|
34
|
+
```
|
35
|
+
|
36
|
+
Generates the 'name' field as a text field.
|
37
|
+
|
38
|
+
```
|
39
|
+
<%= f.input :expires_on, as: :date_picker %>
|
40
|
+
```
|
41
|
+
|
42
|
+
Renders a text_field that can be left blank or have a date entered into it as text. Clicking on it will bring up a JQuery Date Picker to select the date.
|
43
|
+
|
44
|
+
```
|
45
|
+
<%= f.input :template, as: :template_editor %>
|
46
|
+
```
|
47
|
+
|
48
|
+
Renders a template editor (if the content block has enabled template editing). The default template body for the model will be used when creating a new record.
|
49
|
+
|
50
|
+
|
51
|
+
### Usage Exceptions
|
52
|
+
|
53
|
+
Several of the input types above are not used directly, but rather via methods like this that hide some of their complexity:
|
54
|
+
|
55
|
+
```
|
56
|
+
<%= f.cms_attachment_manager %>
|
57
|
+
<%= f.cms_tag_list %>
|
58
|
+
```
|
59
|
+
|
60
|
+
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Performance Tuning Notes
|
2
|
+
|
3
|
+
Benchmark using site with ~700 pages, ~120 sections, ~1200 section_nodes in development mode.
|
4
|
+
|
5
|
+
Overall, Rails 3 has similar performance characteristics to Rails 2. The changes to the sitemap have reduced the # of queries that larger sites will experience.
|
6
|
+
|
7
|
+
## Further Improvements
|
8
|
+
|
9
|
+
* Viewing a page (/some-page) is can still be ~100 queries and ~0.7s.
|
10
|
+
** Jumps up to ~250 when edit mode is on
|
11
|
+
* Sitemap is still the same # of queries (9) but is slower in Rails 3 (5s vs 2.5). Probably ActiveRecord loading.
|
12
|
+
* /content_library still ~1.2s and ~150 queries
|