refinerycms-core 1.0.11 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/{public → app/assets/images}/favicon.ico +0 -0
- data/{public → app/assets}/images/refinery/add.png +0 -0
- data/{public → app/assets}/images/refinery/admin_bg.png +0 -0
- data/{public → app/assets}/images/refinery/ajax-loader.gif +0 -0
- data/{public → app/assets}/images/refinery/branch-end.gif +0 -0
- data/{public → app/assets}/images/refinery/branch-start.gif +0 -0
- data/{public → app/assets}/images/refinery/branch.gif +0 -0
- data/{public → app/assets}/images/refinery/carousel-left.png +0 -0
- data/{public → app/assets}/images/refinery/carousel-right.png +0 -0
- data/{public → app/assets}/images/refinery/cross.png +0 -0
- data/{public → app/assets}/images/refinery/dialogLoadingAnimation.gif +0 -0
- data/{public → app/assets}/images/refinery/header_background.png +0 -0
- data/{public → app/assets}/images/refinery/hover-gradient.jpg +0 -0
- data/{public → app/assets}/images/refinery/icons/accept.png +0 -0
- data/{public → app/assets}/images/refinery/icons/add.png +0 -0
- data/{public → app/assets}/images/refinery/icons/ajax-loader.gif +0 -0
- data/{public → app/assets}/images/refinery/icons/application_edit.png +0 -0
- data/{public → app/assets}/images/refinery/icons/application_go.png +0 -0
- data/{public → app/assets}/images/refinery/icons/arrow_left.png +0 -0
- data/{public → app/assets}/images/refinery/icons/arrow_switch.png +0 -0
- data/{public → app/assets}/images/refinery/icons/arrow_up.png +0 -0
- data/{public → app/assets}/images/refinery/icons/bin.png +0 -0
- data/{public → app/assets}/images/refinery/icons/bin_closed.png +0 -0
- data/{public → app/assets}/images/refinery/icons/cancel.png +0 -0
- data/{public → app/assets}/images/refinery/icons/cog_add.png +0 -0
- data/{public → app/assets}/images/refinery/icons/cog_edit.png +0 -0
- data/{public → app/assets}/images/refinery/icons/cross.png +0 -0
- data/{public → app/assets}/images/refinery/icons/delete.png +0 -0
- data/{public → app/assets}/images/refinery/icons/doc.png +0 -0
- data/{public → app/assets}/images/refinery/icons/down.gif +0 -0
- data/{public → app/assets}/images/refinery/icons/edit.png +0 -0
- data/{public → app/assets}/images/refinery/icons/email.png +0 -0
- data/{public → app/assets}/images/refinery/icons/email_edit.png +0 -0
- data/{public → app/assets}/images/refinery/icons/email_go.png +0 -0
- data/{public → app/assets}/images/refinery/icons/email_open.png +0 -0
- data/{public → app/assets}/images/refinery/icons/eye.png +0 -0
- data/app/assets/images/refinery/icons/folder.png +0 -0
- data/app/assets/images/refinery/icons/folder_open.png +0 -0
- data/{public → app/assets}/images/refinery/icons/folder_page_white.png +0 -0
- data/{public → app/assets}/images/refinery/icons/image_add.png +0 -0
- data/{public → app/assets}/images/refinery/icons/image_edit.png +0 -0
- data/{public → app/assets}/images/refinery/icons/img.png +0 -0
- data/{public → app/assets}/images/refinery/icons/information.png +0 -0
- data/{public → app/assets}/images/refinery/icons/layout_add.png +0 -0
- data/{public → app/assets}/images/refinery/icons/layout_edit.png +0 -0
- data/{public → app/assets}/images/refinery/icons/music.png +0 -0
- data/app/assets/images/refinery/icons/page.png +0 -0
- data/{public → app/assets}/images/refinery/icons/page_add.png +0 -0
- data/{public → app/assets}/images/refinery/icons/page_edit.png +0 -0
- data/{public → app/assets}/images/refinery/icons/page_white_edit.png +0 -0
- data/{public → app/assets}/images/refinery/icons/page_white_gear.png +0 -0
- data/{public → app/assets}/images/refinery/icons/page_white_put.png +0 -0
- data/{public → app/assets}/images/refinery/icons/pdf.png +0 -0
- data/{public → app/assets}/images/refinery/icons/ppt.png +0 -0
- data/{public → app/assets}/images/refinery/icons/star.png +0 -0
- data/{public → app/assets}/images/refinery/icons/tick.png +0 -0
- data/{public → app/assets}/images/refinery/icons/up.gif +0 -0
- data/{public → app/assets}/images/refinery/icons/user_add.png +0 -0
- data/{public → app/assets}/images/refinery/icons/user_comment.png +0 -0
- data/{public → app/assets}/images/refinery/icons/user_edit.png +0 -0
- data/{public → app/assets}/images/refinery/icons/xls.png +0 -0
- data/{public → app/assets}/images/refinery/icons/zip.png +0 -0
- data/{public → app/assets}/images/refinery/icons/zoom.png +0 -0
- data/{public → app/assets}/images/refinery/logo-large.png +0 -0
- data/{public → app/assets}/images/refinery/logo-medium.png +0 -0
- data/{public → app/assets}/images/refinery/logo-site-bar.png +0 -0
- data/{public → app/assets}/images/refinery/logo-small-medium.png +0 -0
- data/{public → app/assets}/images/refinery/logo-small.png +0 -0
- data/{public → app/assets}/images/refinery/logo-tiny.png +0 -0
- data/{public → app/assets}/images/refinery/logo.png +0 -0
- data/{public → app/assets}/images/refinery/nav-3-background.gif +0 -0
- data/{public → app/assets}/images/refinery/nav_inactive_background.png +0 -0
- data/{public → app/assets}/images/refinery/orange_button.png +0 -0
- data/{public → app/assets}/images/refinery/page_bg.png +0 -0
- data/{public → app/assets}/images/refinery/resolve_digital_footer_logo.png +0 -0
- data/{public → app/assets}/images/refinery/text_field_background.png +0 -0
- data/{public → app/assets}/images/refinery/tooltip-nib.gif +0 -0
- data/{public → app/assets}/images/refinery/tooltip-nib.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/arrow_redo.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/arrow_undo.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/eye.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/article.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/aside.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/blockquote.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/command.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/details.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/figcaption.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/figure.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/footer.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/h1.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/h2.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/h3.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/h4.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/h5.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/h6.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/header.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/hgroup.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/mark.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/meter.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/nav.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/p.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/pre.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/progress.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/readme.md +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/rp.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/rt.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/ruby.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/section.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/summary.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/html5/time.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-blockquote.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-h1.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-h2.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-h3.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-h4.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-h5.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-h6.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-p.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/iframe/lbl-pre.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/link_add.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/link_break.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/page_code.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/page_paste.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/photo_add.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/right.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/style.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/table_add.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_align_center.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_align_justify.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_align_left.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_align_right.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_bold.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_heading_1.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_heading_2.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_heading_3.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_heading_4.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_heading_5.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_heading_6.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_indent.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_indent_remove.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_italic.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_list_bullets.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_list_numbers.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_paragraph.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_strikethrough.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_subscript.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_superscript.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/refinery/text_underline.png +0 -0
- data/{public → app/assets}/images/wymeditor/skins/wymeditor_icon.png +0 -0
- data/{public → app/assets}/javascripts/admin.js +1 -2
- data/{public → app/assets}/javascripts/application.js +0 -0
- data/{public → app/assets}/javascripts/dd_belatedpng.js +0 -0
- data/{public → app/assets}/javascripts/jquery/GPL-LICENSE.txt +0 -0
- data/{public → app/assets}/javascripts/jquery/MIT-LICENSE.txt +0 -0
- data/{public → app/assets}/javascripts/jquery/jquery.corner.js +0 -0
- data/{public → app/assets}/javascripts/jquery/jquery.html5-placeholder-shim.js +0 -0
- data/{public → app/assets}/javascripts/jquery/jquery.jcarousel.js +0 -0
- data/{public → app/assets}/javascripts/jquery/jquery.textTruncate.js +0 -0
- data/{public → app/assets}/javascripts/jquery/jquery.timers.js +0 -0
- data/app/assets/javascripts/modernizr-min.js +4 -0
- data/{public/javascripts/refinery/admin.js → app/assets/javascripts/refinery/admin.js.erb} +121 -209
- data/app/assets/javascripts/refinery/ajaxy_pagination.js.coffee +13 -0
- data/{public/javascripts/refinery/boot_wym.js → app/assets/javascripts/refinery/boot_wym.js.erb} +8 -8
- data/{public → app/assets}/javascripts/refinery/core.js +1 -1
- data/app/assets/javascripts/refinery/interface.js.coffee.erb +70 -0
- data/app/assets/javascripts/refinery/modal_dialogs.js.erb +142 -0
- data/app/assets/javascripts/refinery/nestedsortables.js +356 -0
- data/app/assets/javascripts/refinery/refinery.js.erb +20 -0
- data/app/assets/javascripts/refinery/serializelist.js +68 -0
- data/{public → app/assets}/javascripts/refinery/site_bar.js +0 -0
- data/app/assets/javascripts/refinery/sortable_menu.js.coffee +21 -0
- data/{public/javascripts/refinery/submenu.js → app/assets/javascripts/refinery/submenu.js.erb} +1 -1
- data/app/assets/javascripts/refinery/submit_continue.js.coffee.erb +8 -0
- data/app/assets/javascripts/refinery/tree.js +25 -0
- data/app/assets/javascripts/refinery/wymeditor.js +37 -0
- data/app/assets/javascripts/wymeditor/browsers/ie.js.erb +224 -0
- data/app/assets/javascripts/wymeditor/browsers/mozilla.js.erb +293 -0
- data/app/assets/javascripts/wymeditor/browsers/opera.js.erb +123 -0
- data/app/assets/javascripts/wymeditor/browsers/webkit.js.erb +284 -0
- data/app/assets/javascripts/wymeditor/classes.js.erb +1577 -0
- data/app/assets/javascripts/wymeditor/functions.js.erb +218 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/bg.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/ca.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/cs.js +12 -1
- data/{public → app/assets}/javascripts/wymeditor/lang/da.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/de.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/en.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/es.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/fa.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/fi.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/fr.js +13 -1
- data/{public → app/assets}/javascripts/wymeditor/lang/he.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/hu.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/it.js +0 -0
- data/{public/javascripts/wymeditor/lang/jp.js → app/assets/javascripts/wymeditor/lang/ja.js} +1 -1
- data/{public → app/assets}/javascripts/wymeditor/lang/lv.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/nb.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/nl.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/nn.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/pl.js +0 -0
- data/app/assets/javascripts/wymeditor/lang/pt-BR.js +58 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/pt.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/rs.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/ru.js +14 -3
- data/{public → app/assets}/javascripts/wymeditor/lang/sk.js +12 -1
- data/{public → app/assets}/javascripts/wymeditor/lang/sl.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/sv.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/tr.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/vi.js +0 -0
- data/{public → app/assets}/javascripts/wymeditor/lang/zh_cn.js +0 -0
- data/app/assets/javascripts/wymeditor/prototypes.js.erb +1106 -0
- data/app/assets/javascripts/wymeditor/setup.js.erb +622 -0
- data/{public → app/assets}/javascripts/wymeditor/skins/refinery/skin.js +0 -0
- data/app/assets/javascripts/wymeditor/validators.js.erb +776 -0
- data/{public/stylesheets/refinery/home.css → app/assets/stylesheets/.gitkeep} +0 -0
- data/app/assets/stylesheets/application.css.scss +55 -0
- data/{public/stylesheets/refinery/formatting.css → app/assets/stylesheets/formatting.css.scss} +20 -23
- data/{public/stylesheets/home.css → app/assets/stylesheets/home.css.scss} +1 -2
- data/{public/stylesheets/refinery/refinery.css → app/assets/stylesheets/refinery/refinery.css.scss} +616 -654
- data/app/assets/stylesheets/refinery/site_bar.css.scss +92 -0
- data/app/assets/stylesheets/refinery/submenu.css.scss +24 -0
- data/app/assets/stylesheets/refinery/tooltips.css.scss +34 -0
- data/{public/stylesheets/refinery/ui.css → app/assets/stylesheets/refinery/ui.css.scss} +50 -54
- data/{public/stylesheets/refinery/theme.css → app/assets/stylesheets/theme.css.scss} +1 -1
- data/{public/stylesheets/wymeditor/skins/refinery/skin.css → app/assets/stylesheets/wymeditor/skins/refinery/skin.css.scss} +58 -58
- data/{public/stylesheets/wymeditor/skins/refinery/wymiframe.css → app/assets/stylesheets/wymeditor/skins/refinery/wymiframe.css.scss} +29 -29
- data/app/controllers/application_controller.rb +0 -1
- data/app/controllers/refinery/admin/dialogs_controller.rb +24 -0
- data/app/controllers/refinery/admin/refinery_core_controller.rb +14 -0
- data/app/controllers/{admin/base_controller.rb → refinery/admin_controller.rb} +2 -3
- data/app/controllers/refinery/fast_controller.rb +5 -1
- data/app/controllers/refinery/sitemap_controller.rb +20 -0
- data/app/helpers/application_helper.rb +1 -1
- data/app/helpers/refinery/custom_assets_helper.rb +11 -0
- data/app/helpers/refinery/html_truncation_helper.rb +23 -0
- data/app/helpers/refinery/image_helper.rb +37 -0
- data/app/helpers/refinery/menu_helper.rb +66 -0
- data/app/helpers/refinery/meta_helper.rb +52 -0
- data/app/helpers/refinery/pagination_helper.rb +14 -0
- data/app/helpers/refinery/site_bar_helper.rb +30 -0
- data/app/helpers/refinery/tag_helper.rb +20 -0
- data/app/helpers/refinery/translation_helper.rb +15 -0
- data/app/models/refinery/core/base_model.rb +11 -0
- data/app/views/layouts/application.html.erb +9 -9
- data/app/views/layouts/refinery/admin.html.erb +23 -0
- data/app/views/layouts/refinery/admin_dialog.html.erb +17 -0
- data/app/views/layouts/refinery/flash.html.erb +2 -0
- data/app/views/refinery/_content_page.html.erb +2 -0
- data/app/views/{shared → refinery}/_draft_page_message.html.erb +0 -0
- data/app/views/refinery/_footer.html.erb +4 -0
- data/app/views/{shared → refinery}/_google_analytics.html.erb +2 -2
- data/app/views/refinery/_head.html.erb +18 -0
- data/app/views/refinery/_header.html.erb +7 -0
- data/app/views/{shared → refinery}/_html_tag.html.erb +0 -0
- data/app/views/{shared → refinery}/_ie6check.html.erb +2 -2
- data/app/views/{shared → refinery}/_javascripts.html.erb +0 -0
- data/app/views/refinery/_menu.html.erb +20 -0
- data/app/views/refinery/_menu_branch.html.erb +19 -0
- data/app/views/refinery/_message.html.erb +7 -0
- data/app/views/{shared → refinery}/_no_script.html.erb +0 -0
- data/app/views/{shared → refinery}/_site_bar.html.erb +3 -3
- data/app/views/{shared → refinery}/admin/_continue_editing.html.erb +0 -0
- data/app/views/refinery/admin/_dialog_success.html.erb +5 -0
- data/app/views/{shared → refinery}/admin/_error_messages.html.erb +0 -0
- data/app/views/{shared → refinery}/admin/_form_actions.html.erb +11 -15
- data/app/views/refinery/admin/_head.html.erb +13 -0
- data/app/views/{shared → refinery}/admin/_image_picker.html.erb +8 -7
- data/app/views/refinery/admin/_javascripts.html.erb +8 -0
- data/app/views/refinery/admin/_make_sortable.html.erb +16 -0
- data/app/views/{admin → refinery/admin}/_menu.html.erb +4 -4
- data/app/views/{shared → refinery}/admin/_resource_picker.html.erb +14 -23
- data/app/views/{shared → refinery}/admin/_search.html.erb +1 -1
- data/app/views/{shared → refinery}/admin/_sortable_list.html.erb +0 -0
- data/app/views/{shared → refinery}/admin/_tabbed_fields.html.erb +2 -2
- data/app/views/{admin → refinery/admin}/dialogs/show.html.erb +0 -0
- data/app/views/refinery/sitemap/index.xml.builder +25 -0
- data/app/views/{wymiframe.html.erb → refinery/wymiframe.html.erb} +2 -3
- data/config/initializers/will_paginate_monkeypatch.rb +21 -0
- data/config/locales/bg.yml +24 -29
- data/config/locales/cs.yml +20 -25
- data/config/locales/da.yml +19 -24
- data/config/locales/de.yml +19 -24
- data/config/locales/el.yml +19 -24
- data/config/locales/en.yml +25 -31
- data/config/locales/es.yml +12 -17
- data/config/locales/fi.yml +22 -27
- data/config/locales/fr.yml +19 -24
- data/config/locales/it.yml +19 -40
- data/config/locales/{jp.yml → ja.yml} +25 -28
- data/config/locales/ko.yml +76 -0
- data/config/locales/lt.yml +19 -24
- data/config/locales/lv.yml +21 -26
- data/config/locales/nb.yml +19 -24
- data/config/locales/nl.yml +19 -24
- data/config/locales/pl.yml +19 -24
- data/config/locales/pt-BR.yml +19 -24
- data/config/locales/rs.yml +19 -25
- data/config/locales/ru.yml +37 -38
- data/config/locales/sk.yml +19 -24
- data/config/locales/sl.yml +12 -21
- data/config/locales/sv.yml +19 -24
- data/config/locales/vi.yml +19 -24
- data/config/locales/zh-CN.yml +19 -24
- data/config/locales/zh-TW.yml +19 -24
- data/config/routes.rb +5 -10
- data/lib/generators/refinery/clash_keywords.yml +3 -0
- data/lib/generators/refinery/cms/cms_generator.rb +238 -0
- data/lib/generators/{templates → refinery/cms/templates}/.gitignore +3 -1
- data/lib/generators/refinery/cms/templates/app/decorators/controllers/refinery/.gitkeep +0 -0
- data/lib/generators/refinery/cms/templates/app/decorators/models/refinery/.gitkeep +0 -0
- data/lib/generators/{templates → refinery/cms/templates}/app/views/sitemap/index.xml.builder +1 -1
- data/lib/generators/{templates → refinery/cms/templates}/config/database.yml.mysql +5 -5
- data/lib/generators/{templates → refinery/cms/templates}/config/database.yml.postgresql +26 -25
- data/lib/generators/{templates → refinery/cms/templates}/config/database.yml.sqlite3 +1 -9
- data/lib/generators/refinery/cms/templates/config/initializers/devise.rb +229 -0
- data/lib/generators/refinery/core/core_generator.rb +9 -0
- data/lib/generators/refinery/core/templates/config/initializers/refinery/core.rb.erb +48 -0
- data/lib/generators/refinery/dummy/dummy_generator.rb +86 -0
- data/lib/generators/refinery/dummy/templates/rails/Rakefile +7 -0
- data/lib/generators/refinery/dummy/templates/rails/application.rb +14 -0
- data/lib/generators/refinery/dummy/templates/rails/boot.rb +6 -0
- data/lib/generators/refinery/dummy/templates/rails/database.yml +34 -0
- data/lib/generators/refinery/dummy/templates/rails/routes.rb +3 -0
- data/lib/generators/refinery/engine/USAGE +24 -0
- data/lib/generators/refinery/engine/engine_generator.rb +36 -0
- data/lib/generators/refinery/engine/templates/Gemfile +69 -0
- data/lib/generators/refinery/engine/templates/Guardfile +27 -0
- data/lib/generators/refinery/engine/templates/Rakefile +20 -0
- data/lib/generators/refinery/engine/templates/app/controllers/refinery/namespace/admin/plural_name_controller.rb +14 -0
- data/lib/generators/refinery/engine/templates/app/controllers/refinery/namespace/plural_name_controller.rb +34 -0
- data/lib/generators/refinery/engine/templates/app/models/refinery/namespace/singular_name.rb +28 -0
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_actions.html.erb +25 -0
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_form.html.erb +67 -0
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_locale_picker.html.erb +11 -0
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_plural_name.html.erb +2 -0
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_records.html.erb +18 -0
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_singular_name.html.erb +32 -0
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/_sortable_list.html.erb +5 -0
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/edit.html.erb +1 -0
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/index.html.erb +7 -0
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/admin/plural_name/new.html.erb +1 -0
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/plural_name/index.html.erb +11 -0
- data/lib/generators/refinery/engine/templates/app/views/refinery/namespace/plural_name/show.html.erb +39 -0
- data/lib/generators/refinery/engine/templates/config/locales/en.yml +28 -0
- data/lib/generators/refinery/engine/templates/config/locales/es.yml +29 -0
- data/lib/generators/refinery/engine/templates/config/locales/fr.yml +28 -0
- data/lib/generators/refinery/engine/templates/config/locales/nb.yml +28 -0
- data/lib/generators/refinery/engine/templates/config/locales/nl.yml +28 -0
- data/lib/generators/refinery/engine/templates/config/routes.rb +19 -0
- data/lib/generators/refinery/engine/templates/db/migrate/1_create_namespace_plural_name.rb +39 -0
- data/lib/generators/refinery/engine/templates/db/seeds.rb +23 -0
- data/lib/generators/refinery/engine/templates/lib/generators/refinery/extension_plural_name_generator.rb +18 -0
- data/lib/generators/refinery/engine/templates/lib/refinery/plural_name/engine.rb +30 -0
- data/lib/generators/refinery/engine/templates/lib/refinery/plural_name.rb +21 -0
- data/lib/generators/refinery/engine/templates/lib/refinerycms-extension_plural_name.rb +1 -0
- data/lib/generators/refinery/engine/templates/lib/tasks/refinery/extension_plural_name.rake +13 -0
- data/lib/generators/refinery/engine/templates/readme.md +10 -0
- data/lib/generators/refinery/engine/templates/refinerycms-extension_plural_name.gemspec +18 -0
- data/lib/generators/refinery/engine/templates/spec/models/refinery/namespace/singular_name_spec.rb +20 -0
- data/lib/generators/refinery/engine/templates/spec/requests/refinery/namespace/admin/plural_name_spec.rb +200 -0
- data/lib/generators/refinery/engine/templates/spec/spec_helper.rb +50 -0
- data/lib/generators/refinery/engine/templates/spec/support/factories/refinery/plural_name.rb +7 -0
- data/lib/generators/refinery/engine/templates/tasks/rspec.rake +6 -0
- data/lib/generators/refinery/engine/templates/tasks/testing.rake +8 -0
- data/lib/generators/refinery/form/USAGE +20 -0
- data/lib/generators/refinery/form/form_generator.rb +31 -0
- data/lib/generators/refinery/form/templates/.gitkeep +0 -0
- data/lib/generators/refinery/form/templates/app/controllers/refinery/namespace/admin/plural_name_controller.rb +54 -0
- data/lib/generators/refinery/form/templates/app/controllers/refinery/namespace/admin/settings_controller.rb +51 -0
- data/lib/generators/refinery/form/templates/app/controllers/refinery/namespace/plural_name_controller.rb +53 -0
- data/lib/generators/refinery/form/templates/app/mailers/refinery/namespace/mailer.rb +22 -0
- data/lib/generators/refinery/form/templates/app/models/refinery/namespace/setting.rb +34 -0
- data/lib/generators/refinery/form/templates/app/models/refinery/namespace/singular_name.rb +46 -0
- data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/_records.html.erb +23 -0
- data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/_singular_name.html.erb +25 -0
- data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/_submenu.html.erb +29 -0
- data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/index.html.erb +4 -0
- data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/show.html.erb +52 -0
- data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/plural_name/spam.html.erb +26 -0
- data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/settings/_confirmation_email_form.html.erb +51 -0
- data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/settings/_notification_recipients_form.html.erb +21 -0
- data/lib/generators/refinery/form/templates/app/views/refinery/namespace/admin/settings/edit.html.erb +5 -0
- data/lib/generators/refinery/form/templates/app/views/refinery/namespace/mailer/confirmation.html.erb +1 -0
- data/lib/generators/refinery/form/templates/app/views/refinery/namespace/mailer/notification.html.erb +17 -0
- data/lib/generators/refinery/form/templates/app/views/refinery/namespace/plural_name/new.html.erb +43 -0
- data/lib/generators/refinery/form/templates/app/views/refinery/namespace/plural_name/thank_you.html.erb +1 -0
- data/lib/generators/refinery/form/templates/config/locales/da.yml +69 -0
- data/lib/generators/refinery/form/templates/config/locales/de.yml +78 -0
- data/lib/generators/refinery/form/templates/config/locales/en.yml +78 -0
- data/lib/generators/refinery/form/templates/config/locales/es.yml +70 -0
- data/lib/generators/refinery/form/templates/config/locales/fr.yml +78 -0
- data/lib/generators/refinery/form/templates/config/locales/it.yml +68 -0
- data/lib/generators/refinery/form/templates/config/locales/lv.yml +77 -0
- data/lib/generators/refinery/form/templates/config/locales/nb.yml +78 -0
- data/lib/generators/refinery/form/templates/config/locales/nl.yml +77 -0
- data/lib/generators/refinery/form/templates/config/locales/pt-BR.yml +78 -0
- data/lib/generators/refinery/form/templates/config/locales/ru.yml +80 -0
- data/lib/generators/refinery/form/templates/config/locales/sl.yml +69 -0
- data/lib/generators/refinery/form/templates/config/locales/zh-CN.yml +4 -0
- data/lib/generators/refinery/form/templates/config/routes.rb +26 -0
- data/lib/generators/refinery/form/templates/db/migrate/1_create_plural_name.rb +42 -0
- data/lib/generators/refinery/form/templates/db/seeds.rb +27 -0
- data/lib/generators/refinery/form/templates/lib/generators/refinery/plural_name_generator.rb +20 -0
- data/lib/generators/refinery/form/templates/lib/refinery/plural_name/engine.rb +30 -0
- data/lib/generators/refinery/form/templates/lib/refinery/plural_name.rb +17 -0
- data/lib/generators/refinery/form/templates/lib/refinerycms-plural_name.rb +1 -0
- data/lib/generators/refinery/form/templates/refinerycms-plural_name.gemspec +19 -0
- data/lib/refinery/activity.rb +75 -18
- data/lib/refinery/admin/base_controller.rb +49 -66
- data/lib/refinery/application_controller.rb +59 -79
- data/lib/refinery/base_presenter.rb +25 -23
- data/lib/refinery/catch_all_routes.rb +1 -1
- data/lib/refinery/cli.rb +162 -0
- data/lib/refinery/core/configuration.rb +57 -0
- data/lib/refinery/core/engine.rb +143 -0
- data/lib/refinery/core.rb +179 -0
- data/lib/refinery/crud.rb +74 -54
- data/lib/refinery/engine.rb +56 -12
- data/lib/refinery/errors.rb +13 -0
- data/lib/refinery/ext/action_view/helpers/form_builder.rb +7 -0
- data/lib/refinery/ext/action_view/helpers/form_helper.rb +20 -0
- data/lib/refinery/ext/action_view/helpers/form_tag_helper.rb +10 -0
- data/lib/refinery/extension_generation.rb +258 -0
- data/lib/refinery/menu.rb +0 -19
- data/lib/refinery/menu_item.rb +32 -14
- data/lib/refinery/plugin.rb +19 -43
- data/lib/refinery/plugins.rb +2 -2
- data/lib/refinery/version.rb +16 -0
- data/lib/refinerycms-core.rb +1 -175
- data/lib/tasks/refinery.rake +2 -191
- data/lib/tasks/yard.rake +1 -1
- data/refinerycms-core.gemspec +23 -422
- data/spec/controllers/refinery/admin/refinery_core_controller_spec.rb +20 -0
- data/spec/controllers/{fast_controller_spec.rb → refinery/fast_controller_spec.rb} +3 -1
- data/spec/controllers/refinery/sitemap_controller_spec.rb +28 -0
- data/spec/helpers/refinery/custom_assets_helper_spec.rb +53 -0
- data/spec/helpers/refinery/html_truncation_helper_spec.rb +26 -0
- data/spec/helpers/refinery/pagination_helper_spec.rb +35 -0
- data/spec/helpers/refinery/tag_helper_spec.rb +23 -0
- data/spec/helpers/refinery/translation_helper_spec.rb +14 -0
- data/spec/lib/generators/refinery/cms/cms_generator_spec.rb +47 -0
- data/spec/lib/generators/refinery/core/core_generator_spec.rb +29 -0
- data/spec/lib/generators/refinery/engine/engine_generator_spec.rb +84 -0
- data/spec/lib/generators/refinery/engine/engine_generator_with_i18n_spec.rb +85 -0
- data/spec/lib/generators/refinery/engine/engine_generator_without_frontend_spec.rb +77 -0
- data/spec/lib/generators/refinery/form/form_generator_spec.rb +91 -0
- data/spec/lib/refinery/activity_spec.rb +38 -0
- data/spec/lib/refinery/application_controller_spec.rb +28 -0
- data/spec/lib/refinery/core_spec.rb +176 -0
- data/spec/lib/refinery/plugin_spec.rb +36 -34
- data/spec/lib/refinery/plugins_spec.rb +42 -16
- data/spec/requests/refinery/admin/custom_assets_spec.rb +32 -0
- data/spec/requests/refinery/admin/dialogs_spec.rb +28 -0
- data/spec/requests/refinery/search_spec.rb +71 -0
- data/spec/requests/refinery/site_bar_spec.rb +49 -0
- data/spec/support/background_selenium_firefox_driver.rb +14 -0
- data/spec/support/database_cleaner.rb +15 -0
- data/spec/support/fixtures/invalid_engine.rb +6 -0
- data/spec/support/fixtures/valid_engine.rb +13 -0
- data/spec/support/refinery.rb +14 -0
- metadata +626 -439
- data/app/controllers/admin/dialogs_controller.rb +0 -23
- data/app/controllers/admin/refinery_core_controller.rb +0 -12
- data/app/controllers/sitemap_controller.rb +0 -18
- data/app/views/admin/_head.html.erb +0 -21
- data/app/views/admin/_javascripts.html.erb +0 -33
- data/app/views/layouts/admin.html.erb +0 -24
- data/app/views/layouts/admin_dialog.html.erb +0 -14
- data/app/views/shared/_content_page.html.erb +0 -63
- data/app/views/shared/_footer.html.erb +0 -4
- data/app/views/shared/_head.html.erb +0 -20
- data/app/views/shared/_header.html.erb +0 -7
- data/app/views/shared/_menu.html.erb +0 -19
- data/app/views/shared/_menu_branch.html.erb +0 -19
- data/app/views/shared/_message.html.erb +0 -10
- data/app/views/shared/admin/_make_sortable.html.erb +0 -13
- data/app/views/welcome.html.erb +0 -17
- data/config/locales/lolcat.yml +0 -71
- data/doc/included-jquery-ui-packages.jpg +0 -0
- data/features/dialogs.feature +0 -20
- data/features/search.feature +0 -55
- data/features/site_bar.feature +0 -27
- data/features/step_definitions/core_steps.rb +0 -59
- data/features/support/paths.rb +0 -18
- data/features/uploads/beach.jpeg +0 -0
- data/features/uploads/refinery_is_awesome.txt +0 -1
- data/lib/gemspec.rb +0 -44
- data/lib/generators/refinerycms_generator.rb +0 -124
- data/lib/generators/templates/autotest/autotest.rb +0 -17
- data/lib/generators/templates/autotest/discover.rb +0 -2
- data/lib/generators/templates/config/initializers/devise.rb +0 -144
- data/lib/generators/templates/db/seeds.rb +0 -5
- data/lib/refinery/admin_base_controller.rb +0 -5
- data/lib/refinery/application.rb +0 -47
- data/lib/refinery/application_helper.rb +0 -19
- data/lib/refinery/configuration.rb +0 -29
- data/lib/refinery/helpers/form_helper.rb +0 -66
- data/lib/refinery/helpers/head_helper.rb +0 -17
- data/lib/refinery/helpers/html_truncation_helper.rb +0 -25
- data/lib/refinery/helpers/image_helper.rb +0 -42
- data/lib/refinery/helpers/menu_helper.rb +0 -98
- data/lib/refinery/helpers/meta_helper.rb +0 -78
- data/lib/refinery/helpers/pagination_helper.rb +0 -16
- data/lib/refinery/helpers/script_helper.rb +0 -36
- data/lib/refinery/helpers/site_bar_helper.rb +0 -32
- data/lib/refinery/helpers/tag_helper.rb +0 -22
- data/lib/refinery/helpers/translation_helper.rb +0 -17
- data/lib/tasks/doc.rake +0 -29
- data/public/javascripts/i18n-messages.js +0 -2
- data/public/javascripts/jquery-min.js +0 -16
- data/public/javascripts/jquery-ui-custom-min.js +0 -252
- data/public/javascripts/jquery.js +0 -8374
- data/public/javascripts/modernizr-min.js +0 -2
- data/public/javascripts/rails.js +0 -297
- data/public/javascripts/refinery/i18n.js +0 -340
- data/public/javascripts/refinery/nestedsortables.js +0 -164
- data/public/javascripts/refinery/serializelist.js +0 -66
- data/public/javascripts/wymeditor/jquery.refinery.wymeditor.js +0 -5262
- data/public/javascripts/wymeditor/lang/pt-BR.js +0 -47
- data/public/stylesheets/application.css +0 -4
- data/public/stylesheets/formatting.css +0 -4
- data/public/stylesheets/refinery/application.css +0 -76
- data/public/stylesheets/refinery/site_bar.css +0 -87
- data/public/stylesheets/refinery/submenu.css +0 -22
- data/public/stylesheets/refinery/tooltips.css +0 -34
- data/public/stylesheets/theme.css +0 -4
- data/spec/controllers/refinery_core_controller_spec.rb +0 -18
- data/spec/controllers/sitemap_controller_spec.rb +0 -27
@@ -5,93 +5,76 @@ module Refinery
|
|
5
5
|
module Admin
|
6
6
|
module BaseController
|
7
7
|
|
8
|
-
|
9
|
-
controller.send :include, ::Refinery::Admin::BaseController::InstanceMethods
|
10
|
-
controller.send :include, ::Refinery::Admin::BaseController::ClassMethods
|
11
|
-
end
|
8
|
+
extend ActiveSupport::Concern
|
12
9
|
|
13
|
-
|
14
|
-
|
15
|
-
c.layout :layout?
|
10
|
+
included do
|
11
|
+
layout :layout?
|
16
12
|
|
17
|
-
|
18
|
-
|
13
|
+
before_filter :authenticate_refinery_user!, :restrict_plugins, :restrict_controller
|
14
|
+
after_filter :store_location?, :except => [:new, :create, :edit, :update, :destroy, :update_positions] # for redirect_back_or_default
|
19
15
|
|
20
|
-
|
21
|
-
end
|
16
|
+
helper_method :searching?, :group_by_date
|
22
17
|
end
|
23
18
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
def searching?
|
30
|
-
params[:search].present?
|
31
|
-
end
|
32
|
-
|
33
|
-
def error_404(exception=nil)
|
34
|
-
# fallback to the default 404.html page.
|
35
|
-
render :file => Rails.root.join("public", "404.html").cleanpath.to_s,
|
36
|
-
:layout => false,
|
37
|
-
:status => 404
|
38
|
-
end
|
19
|
+
def admin?
|
20
|
+
true # we're in the admin base controller, so always true.
|
21
|
+
end
|
39
22
|
|
40
|
-
|
23
|
+
def searching?
|
24
|
+
params[:search].present?
|
25
|
+
end
|
41
26
|
|
42
|
-
|
43
|
-
new_records = []
|
27
|
+
protected
|
44
28
|
|
45
|
-
|
46
|
-
|
47
|
-
record_group = new_records.collect{|records| records.last if records.first == key }.flatten.compact << record
|
48
|
-
(new_records.delete_if {|i| i.first == key}) << [key, record_group]
|
49
|
-
end
|
29
|
+
def group_by_date(records)
|
30
|
+
new_records = []
|
50
31
|
|
51
|
-
|
32
|
+
records.each do |record|
|
33
|
+
key = record.created_at.strftime("%Y-%m-%d")
|
34
|
+
record_group = new_records.collect{|records| records.last if records.first == key }.flatten.compact << record
|
35
|
+
(new_records.delete_if {|i| i.first == key}) << [key, record_group]
|
52
36
|
end
|
53
37
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
# Superusers get granted access if they don't already have access.
|
58
|
-
if current_user.has_role?(:superuser)
|
59
|
-
if (plugins = plugins | ::Refinery::Plugins.registered.names).length > current_length
|
60
|
-
current_user.plugins = plugins
|
61
|
-
end
|
62
|
-
end
|
38
|
+
new_records
|
39
|
+
end
|
63
40
|
|
64
|
-
|
65
|
-
|
41
|
+
def restrict_plugins
|
42
|
+
current_length = (plugins = current_refinery_user.authorized_plugins).length
|
66
43
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
44
|
+
# Superusers get granted access if they don't already have access.
|
45
|
+
if current_refinery_user.has_role?(:superuser)
|
46
|
+
if (plugins = plugins | ::Refinery::Plugins.registered.names).length > current_length
|
47
|
+
current_refinery_user.plugins = plugins
|
71
48
|
end
|
72
49
|
end
|
73
50
|
|
74
|
-
|
75
|
-
|
51
|
+
::Refinery::Plugins.set_active(plugins)
|
52
|
+
end
|
76
53
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
54
|
+
def restrict_controller
|
55
|
+
# if ::Refinery::Plugins.active.reject { |plugin| params[:controller] !~ Regexp.new(plugin.menu_match)}.empty?
|
56
|
+
# warn "'#{current_refinery_user.username}' tried to access '#{params[:controller]}' but was rejected."
|
57
|
+
# error_404
|
58
|
+
# end
|
59
|
+
end
|
81
60
|
|
82
|
-
|
83
|
-
# were at instead of the default e.g. admin_pages_url
|
84
|
-
# right now we just want to snap back to index actions and definitely not to dialogues.
|
85
|
-
def store_location?
|
86
|
-
store_location unless action_name !~ /index/ or request.xhr? or from_dialog?
|
87
|
-
end
|
61
|
+
private
|
88
62
|
|
89
|
-
|
90
|
-
|
91
|
-
refinery_user?
|
92
|
-
end
|
63
|
+
def layout?
|
64
|
+
"refinery/admin#{"_dialog" if from_dialog?}"
|
93
65
|
end
|
94
66
|
|
67
|
+
# Check whether it makes sense to return the user to the last page they
|
68
|
+
# were at instead of the default e.g. refinery_admin_pages_path
|
69
|
+
# right now we just want to snap back to index actions and definitely not to dialogues.
|
70
|
+
def store_location?
|
71
|
+
store_location unless action_name !~ /index/ or request.xhr? or from_dialog?
|
72
|
+
end
|
73
|
+
|
74
|
+
# Override authorized? so that only users with the Refinery role can admin the website.
|
75
|
+
def authorized?
|
76
|
+
refinery_user?
|
77
|
+
end
|
95
78
|
end
|
96
79
|
end
|
97
80
|
end
|
@@ -1,106 +1,86 @@
|
|
1
|
-
require 'action_controller'
|
2
|
-
# require application helper so that we can include our helpers into it.
|
3
|
-
if defined?(Rails) and !Rails.root.nil?
|
4
|
-
if (app_helper = Rails.root.join('app', 'helpers', 'application_helper.rb')).file?
|
5
|
-
require app_helper.to_s
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
1
|
module Refinery
|
10
2
|
module ApplicationController
|
11
3
|
|
12
|
-
|
13
|
-
controller.send :include, ::Refinery::ApplicationController::InstanceMethods
|
14
|
-
controller.send :include, ::Refinery::ApplicationController::ClassMethods
|
15
|
-
end
|
4
|
+
extend ActiveSupport::Concern
|
16
5
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
:login?
|
6
|
+
included do # Extend controller
|
7
|
+
helper_method :home_page?,
|
8
|
+
:local_request?,
|
9
|
+
:just_installed?,
|
10
|
+
:from_dialog?,
|
11
|
+
:admin?,
|
12
|
+
:login?
|
25
13
|
|
26
|
-
|
14
|
+
protect_from_forgery # See ActionController::RequestForgeryProtection
|
27
15
|
|
28
|
-
|
16
|
+
send :include, Refinery::Crud # basic create, read, update and delete methods
|
29
17
|
|
30
|
-
|
31
|
-
:show_welcome_page?
|
18
|
+
send :before_filter, :refinery_user_required?
|
32
19
|
|
33
|
-
|
34
|
-
|
20
|
+
send :after_filter, :store_current_location!,
|
21
|
+
:if => Proc.new {|c| send(:refinery_user?) }
|
35
22
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
end
|
23
|
+
if Refinery::Core.rescue_not_found
|
24
|
+
send :rescue_from, ActiveRecord::RecordNotFound,
|
25
|
+
ActionController::UnknownAction,
|
26
|
+
ActionView::MissingTemplate,
|
27
|
+
:with => :error_404
|
42
28
|
end
|
43
29
|
end
|
44
30
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
end
|
31
|
+
def admin?
|
32
|
+
controller_name =~ %r{^admin/}
|
33
|
+
end
|
49
34
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
35
|
+
def error_404(exception=nil)
|
36
|
+
# fallback to the default 404.html page.
|
37
|
+
file = Rails.root.join('public', '404.html')
|
38
|
+
file = Refinery.roots(:'refinery/core').join('public', '404.html') unless file.exist?
|
39
|
+
render :file => file.cleanpath.to_s.gsub(%r{#{file.extname}$}, ''),
|
40
|
+
:layout => false, :status => 404, :formats => [:html]
|
41
|
+
return false
|
42
|
+
end
|
58
43
|
|
59
|
-
|
60
|
-
|
61
|
-
|
44
|
+
def from_dialog?
|
45
|
+
params[:dialog] == 'true' or params[:modal] == 'true'
|
46
|
+
end
|
62
47
|
|
63
|
-
|
64
|
-
|
65
|
-
|
48
|
+
def home_page?
|
49
|
+
refinery.root_path =~ /^#{Regexp.escape(request.path.sub("//", "/"))}\/?/
|
50
|
+
end
|
66
51
|
|
67
|
-
|
68
|
-
|
69
|
-
|
52
|
+
def just_installed?
|
53
|
+
Refinery::Role[:refinery].users.empty?
|
54
|
+
end
|
70
55
|
|
71
|
-
|
72
|
-
|
73
|
-
|
56
|
+
def local_request?
|
57
|
+
Rails.env.development? or request.remote_ip =~ /(::1)|(127.0.0.1)|((192.168).*)/
|
58
|
+
end
|
74
59
|
|
75
|
-
|
76
|
-
|
77
|
-
|
60
|
+
def login?
|
61
|
+
(controller_name =~ /^(user|session)(|s)/ and not admin?) or just_installed?
|
62
|
+
end
|
78
63
|
|
79
|
-
|
64
|
+
protected
|
80
65
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
66
|
+
# use a different model for the meta information.
|
67
|
+
def present(model)
|
68
|
+
presenter = (Object.const_get("#{model.class}Presenter") rescue ::Refinery::BasePresenter)
|
69
|
+
@meta = presenter.new(model)
|
70
|
+
end
|
85
71
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
@meta = presenter.new(model)
|
72
|
+
def refinery_user_required?
|
73
|
+
if just_installed? and controller_name != 'users'
|
74
|
+
redirect_to refinery.new_refinery_user_registration_path
|
90
75
|
end
|
76
|
+
end
|
91
77
|
|
92
|
-
|
93
|
-
if just_installed? and controller_name != 'users'
|
94
|
-
render :template => '/welcome', :layout => 'login'
|
95
|
-
end
|
96
|
-
end
|
78
|
+
private
|
97
79
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
session[:refinery_return_to] = request.path
|
103
|
-
end
|
80
|
+
def store_current_location!
|
81
|
+
if admin? and request.get? and !request.xhr? and !from_dialog?
|
82
|
+
# ensure that we don't redirect to AJAX or POST/PUT/DELETE urls
|
83
|
+
session[:refinery_return_to] = request.path.sub('//', '/')
|
104
84
|
end
|
105
85
|
end
|
106
86
|
end
|
@@ -1,31 +1,33 @@
|
|
1
|
-
|
1
|
+
module Refinery
|
2
|
+
class BasePresenter
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
4
|
+
DEFAULT_FIELDS = {
|
5
|
+
:title => proc { |p| (p.model.class.name.titleize if p.model.present?) },
|
6
|
+
:path => proc { |p| p.title },
|
7
|
+
:browser_title => nil,
|
8
|
+
:meta_description => nil,
|
9
|
+
:meta_keywords => nil
|
10
|
+
}
|
10
11
|
|
11
|
-
|
12
|
+
attr_reader :model
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
14
|
+
def initialize(obj)
|
15
|
+
@model = obj
|
16
|
+
end
|
16
17
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
18
|
+
def method_missing(method, *args)
|
19
|
+
if @model.respond_to? method
|
20
|
+
@model.send method
|
21
|
+
elsif DEFAULT_FIELDS.has_key? method
|
22
|
+
(value = DEFAULT_FIELDS[method]).is_a?(Proc) ? value.call(self) : value
|
23
|
+
else
|
24
|
+
raise NoMethodError.new("#{self.class.name} doesn't know #{method}. Define or delegate it.", method)
|
25
|
+
end
|
24
26
|
end
|
25
|
-
end
|
26
27
|
|
27
|
-
|
28
|
-
|
29
|
-
|
28
|
+
def respond_to?(method)
|
29
|
+
super || @model.respond_to?(method) || DEFAULT_FIELDS.has_key?(method)
|
30
|
+
end
|
30
31
|
|
32
|
+
end
|
31
33
|
end
|
data/lib/refinery/cli.rb
ADDED
@@ -0,0 +1,162 @@
|
|
1
|
+
require 'thor'
|
2
|
+
|
3
|
+
module Refinery
|
4
|
+
class CLI < Thor
|
5
|
+
include Thor::Actions
|
6
|
+
|
7
|
+
desc "override", "copies files from any Refinery extension that you are using into your application"
|
8
|
+
def override(env)
|
9
|
+
if (view = env["view"]).present?
|
10
|
+
pattern = "{refinery#{File::SEPARATOR},}#{view.split("/").join(File::SEPARATOR)}*.{erb,builder}"
|
11
|
+
looking_for = ::Refinery::Plugins.registered.pathnames.map{|p| p.join("app", "views", pattern).to_s}
|
12
|
+
|
13
|
+
# copy in the matches
|
14
|
+
if (matches = looking_for.map{|d| Dir[d]}.flatten.compact.uniq).any?
|
15
|
+
matches.each do |match|
|
16
|
+
dir = match.split("/app/views/").last.split('/')
|
17
|
+
file = dir.pop # get rid of the file.
|
18
|
+
dir = dir.join(File::SEPARATOR) # join directory back together
|
19
|
+
|
20
|
+
destination_dir = Rails.root.join("app", "views", dir)
|
21
|
+
FileUtils.mkdir_p(destination_dir)
|
22
|
+
FileUtils.cp match, (destination = File.join(destination_dir, file))
|
23
|
+
|
24
|
+
puts "Copied view template file to #{destination.gsub("#{Rails.root.to_s}#{File::SEPARATOR}", '')}"
|
25
|
+
end
|
26
|
+
else
|
27
|
+
puts "Couldn't match any view template files in any extensions like #{view}"
|
28
|
+
end
|
29
|
+
elsif (controller = env["controller"]).present?
|
30
|
+
pattern = "{refinery#{File::SEPARATOR},}#{controller.split("/").join(File::SEPARATOR)}*.rb"
|
31
|
+
looking_for = ::Refinery::Plugins.registered.pathnames.map{|p| p.join("app", "controllers", pattern).to_s}
|
32
|
+
|
33
|
+
# copy in the matches
|
34
|
+
if (matches = looking_for.map{|d| Dir[d]}.flatten.compact.uniq).any?
|
35
|
+
matches.each do |match|
|
36
|
+
dir = match.split("/app/controllers/").last.split('/')
|
37
|
+
file = dir.pop # get rid of the file.
|
38
|
+
dir = dir.join(File::SEPARATOR) # join directory back together
|
39
|
+
|
40
|
+
destination_dir = Rails.root.join("app", "controllers", dir)
|
41
|
+
FileUtils.mkdir_p(destination_dir)
|
42
|
+
FileUtils.cp match, (destination = File.join(destination_dir, file))
|
43
|
+
|
44
|
+
puts "Copied controller file to #{destination.gsub("#{Rails.root.to_s}#{File::SEPARATOR}", '')}"
|
45
|
+
end
|
46
|
+
else
|
47
|
+
puts "Couldn't match any controller files in any extensions like #{controller}"
|
48
|
+
end
|
49
|
+
elsif (model = env["model"]).present?
|
50
|
+
pattern = "{refinery#{File::SEPARATOR},}#{model.split("/").join(File::SEPARATOR)}*.rb"
|
51
|
+
looking_for = ::Refinery::Plugins.registered.pathnames.map{|p| p.join("app", "models", pattern).to_s}
|
52
|
+
|
53
|
+
# copy in the matches
|
54
|
+
if (matches = looking_for.map{|d| Dir[d]}.flatten.compact.uniq).any?
|
55
|
+
matches.each do |match|
|
56
|
+
dir = match.split("/app/models/").last.split('/')
|
57
|
+
file = dir.pop # get rid of the file.
|
58
|
+
dir = dir.join(File::SEPARATOR) # join directory back together
|
59
|
+
|
60
|
+
destination_dir = Rails.root.join("app", "models", dir)
|
61
|
+
FileUtils.mkdir_p(destination_dir)
|
62
|
+
FileUtils.cp match, (destination = File.join(destination_dir, file))
|
63
|
+
|
64
|
+
puts "Copied model file to #{destination.gsub("#{Rails.root.to_s}#{File::SEPARATOR}", '')}"
|
65
|
+
end
|
66
|
+
else
|
67
|
+
puts "Couldn't match any model files in any extensions like #{model}"
|
68
|
+
end
|
69
|
+
elsif (javascripts = env["javascript"]).present?
|
70
|
+
pattern = "#{javascripts.split("/").join(File::SEPARATOR)}*.js"
|
71
|
+
looking_for = ::Refinery::Plugins.registered.pathnames.map{|p| p.join("app", "assets", "javascripts", pattern).to_s}
|
72
|
+
|
73
|
+
# copy in the matches
|
74
|
+
if (matches = looking_for.map{|d| Dir[d]}.flatten.compact.uniq).any?
|
75
|
+
matches.each do |match|
|
76
|
+
dir = match.split("/app/assets/javascripts/").last.split('/')
|
77
|
+
file = dir.pop # get rid of the file.
|
78
|
+
dir = dir.join(File::SEPARATOR) # join directory back together
|
79
|
+
|
80
|
+
destination_dir = Rails.root.join("app", "assets", "javascripts", dir)
|
81
|
+
FileUtils.mkdir_p(destination_dir)
|
82
|
+
FileUtils.cp match, (destination = File.join(destination_dir, file))
|
83
|
+
|
84
|
+
puts "Copied javascript file to #{destination.gsub("#{Rails.root.to_s}#{File::SEPARATOR}", '')}"
|
85
|
+
end
|
86
|
+
else
|
87
|
+
puts "Couldn't match any javascript files in any extensions like #{javascripts}"
|
88
|
+
end
|
89
|
+
elsif (stylesheets = env["stylesheet"]).present?
|
90
|
+
pattern = "#{stylesheets.split("/").join(File::SEPARATOR)}*.css.scss"
|
91
|
+
looking_for = ::Refinery::Plugins.registered.pathnames.map{|p| p.join("app", "assets", "stylesheets", pattern).to_s}
|
92
|
+
|
93
|
+
# copy in the matches
|
94
|
+
if (matches = looking_for.map{|d| Dir[d]}.flatten.compact.uniq).any?
|
95
|
+
matches.each do |match|
|
96
|
+
dir = match.split("/app/assets/stylesheets/").last.split('/')
|
97
|
+
file = dir.pop # get rid of the file.
|
98
|
+
dir = dir.join(File::SEPARATOR) # join directory back together
|
99
|
+
|
100
|
+
destination_dir = Rails.root.join("app", "assets", "stylesheets", dir)
|
101
|
+
FileUtils.mkdir_p(destination_dir)
|
102
|
+
FileUtils.cp match, (destination = File.join(destination_dir, file))
|
103
|
+
|
104
|
+
puts "Copied stylesheet file to #{destination.gsub("#{Rails.root.to_s}#{File::SEPARATOR}", '')}"
|
105
|
+
end
|
106
|
+
else
|
107
|
+
puts "Couldn't match any stylesheet files in any extensions like #{stylesheets}"
|
108
|
+
end
|
109
|
+
else
|
110
|
+
puts "You didn't specify anything to override. Here are some examples:"
|
111
|
+
{
|
112
|
+
:view => ['pages/home', 'refinery/pages/home', '**/*menu', '_menu_branch'],
|
113
|
+
:javascript => %w(admin refinery/site_bar),
|
114
|
+
:stylesheet => %w(home refinery/site_bar),
|
115
|
+
:controller => %w(pages),
|
116
|
+
:model => %w(page refinery/page)
|
117
|
+
}.each do |type, examples|
|
118
|
+
examples.each do |example|
|
119
|
+
puts "rake refinery:override #{type}=#{example}"
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
end
|
125
|
+
|
126
|
+
desc "uncrudify", "shows you the code that your controller using crudify is running for a given action"
|
127
|
+
def uncrudify(controller, action)
|
128
|
+
unless (controller_name = controller).present? and (action = action).present?
|
129
|
+
abort <<-HELPDOC.strip_heredoc
|
130
|
+
You didn't specify anything to uncrudify. Here's some examples:
|
131
|
+
rake refinery:uncrudify controller=refinery/admin/pages action=create
|
132
|
+
rake refinery:uncrudify controller=products action=new
|
133
|
+
HELPDOC
|
134
|
+
end
|
135
|
+
|
136
|
+
controller_class_name = "#{controller_name}_controller".classify
|
137
|
+
begin
|
138
|
+
controller_class = controller_class_name.constantize
|
139
|
+
rescue NameError
|
140
|
+
abort "#{controller_class_name} is not defined"
|
141
|
+
end
|
142
|
+
|
143
|
+
crud_lines = Refinery.roots(:'refinery/core').join('lib', 'refinery', 'crud.rb').read
|
144
|
+
if (matches = crud_lines.scan(/(\ +)(def #{action}.+?protected)/m).first).present? and
|
145
|
+
(method_lines = "#{matches.last.split(%r{^#{matches.first}end}).first.strip}\nend".split("\n")).many?
|
146
|
+
indent = method_lines.second.index(%r{[^ ]})
|
147
|
+
crud_method = method_lines.join("\n").gsub(/^#{" " * indent}/, " ")
|
148
|
+
|
149
|
+
crud_options = controller_class.try(:crudify_options) || {}
|
150
|
+
crud_method.gsub!('#{options[:redirect_to_url]}', crud_options[:redirect_to_url].to_s)
|
151
|
+
crud_method.gsub!('#{options[:conditions].inspect}', crud_options[:conditions].inspect)
|
152
|
+
crud_method.gsub!('#{options[:title_attribute]}', crud_options[:title_attribute])
|
153
|
+
crud_method.gsub!('#{singular_name}', crud_options[:singular_name])
|
154
|
+
crud_method.gsub!('#{class_name}', crud_options[:class_name])
|
155
|
+
crud_method.gsub!('#{plural_name}', crud_options[:plural_name])
|
156
|
+
crud_method.gsub!('\\#{', '#{')
|
157
|
+
|
158
|
+
puts crud_method
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module Refinery
|
2
|
+
module Core
|
3
|
+
include ActiveSupport::Configurable
|
4
|
+
|
5
|
+
config_accessor :rescue_not_found, :s3_backend, :base_cache_key, :site_name,
|
6
|
+
:google_analytics_page_code, :authenticity_token_on_frontend,
|
7
|
+
:menu_hide_children, :menu_css, :dragonfly_secret, :ie6_upgrade_message_enabled,
|
8
|
+
:show_internet_explorer_upgrade_message, :wymeditor_whitelist_tags,
|
9
|
+
:javascripts, :stylesheets, :s3_bucket_name, :s3_region, :s3_access_key_id,
|
10
|
+
:s3_secret_access_key
|
11
|
+
|
12
|
+
self.rescue_not_found = false
|
13
|
+
self.s3_backend = false
|
14
|
+
self.base_cache_key = :refinery
|
15
|
+
self.site_name = "Company Name"
|
16
|
+
self.google_analytics_page_code = "UA-xxxxxx-x"
|
17
|
+
self.authenticity_token_on_frontend = true
|
18
|
+
self.menu_hide_children = false
|
19
|
+
self.menu_css = { :selected => "selected", :first => "first", :last => "last" }
|
20
|
+
self.dragonfly_secret = Array.new(24) { rand(256) }.pack('C*').unpack('H*').first
|
21
|
+
self.ie6_upgrade_message_enabled = true
|
22
|
+
self.show_internet_explorer_upgrade_message = false
|
23
|
+
self.wymeditor_whitelist_tags = {}
|
24
|
+
self.javascripts = []
|
25
|
+
self.stylesheets = []
|
26
|
+
self.s3_bucket_name = ENV['S3_BUCKET']
|
27
|
+
self.s3_region = ENV['S3_REGION']
|
28
|
+
self.s3_access_key_id = ENV['S3_KEY']
|
29
|
+
self.s3_secret_access_key = ENV['S3_SECRET']
|
30
|
+
|
31
|
+
def config.register_javascript(name)
|
32
|
+
self.javascripts << name
|
33
|
+
end
|
34
|
+
|
35
|
+
def config.register_stylesheet(*args)
|
36
|
+
self.stylesheets << Stylesheet.new(*args)
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.clear_javascripts!
|
40
|
+
self.javascripts = []
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.clear_stylesheets!
|
44
|
+
self.stylesheets = []
|
45
|
+
end
|
46
|
+
|
47
|
+
# wrapper for stylesheet registration
|
48
|
+
class Stylesheet
|
49
|
+
attr_reader :options, :path
|
50
|
+
def initialize(*args)
|
51
|
+
@options = args.extract_options!
|
52
|
+
@path = args.first if args.first
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
end
|