gluttonberg-core 2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README +107 -0
- data/Rakefile +21 -0
- data/app/assets/images/arrow.png +0 -0
- data/app/assets/images/bg.png +0 -0
- data/app/assets/images/button_bkg_grey.gif +0 -0
- data/app/assets/images/content/blogs.png +0 -0
- data/app/assets/images/content/pages.png +0 -0
- data/app/assets/images/drag_handle.png +0 -0
- data/app/assets/images/form/field_bg.jpg +0 -0
- data/app/assets/images/form/field_bg_active.jpg +0 -0
- data/app/assets/images/form/input_bkg.gif +0 -0
- data/app/assets/images/form/input_bkg.jpg +0 -0
- data/app/assets/images/form/login_bg.png +0 -0
- data/app/assets/images/form/login_form_bg.jpg +0 -0
- data/app/assets/images/form/plus_and_minus.gif +0 -0
- data/app/assets/images/form/warning.gif +0 -0
- data/app/assets/images/gb_logo.png +0 -0
- data/app/assets/images/gb_logo_top.png +0 -0
- data/app/assets/images/gb_wysiwyg.png +0 -0
- data/app/assets/images/help/help.jpg +0 -0
- data/app/assets/images/icon_add.png +0 -0
- data/app/assets/images/icon_asset.png +0 -0
- data/app/assets/images/icon_blog.png +0 -0
- data/app/assets/images/icon_collection.png +0 -0
- data/app/assets/images/icon_content.png +0 -0
- data/app/assets/images/icon_content_2.png +0 -0
- data/app/assets/images/icon_dash.png +0 -0
- data/app/assets/images/icon_dashboard.png +0 -0
- data/app/assets/images/icon_default.png +0 -0
- data/app/assets/images/icon_group.png +0 -0
- data/app/assets/images/icon_library.png +0 -0
- data/app/assets/images/icon_library_2.png +0 -0
- data/app/assets/images/icon_member.png +0 -0
- data/app/assets/images/icon_members.png +0 -0
- data/app/assets/images/icon_pages.png +0 -0
- data/app/assets/images/icon_settings.png +0 -0
- data/app/assets/images/icon_upload.png +0 -0
- data/app/assets/images/icons/collapsed.png +0 -0
- data/app/assets/images/icons/cross.png +0 -0
- data/app/assets/images/icons/expanded.png +0 -0
- data/app/assets/images/icons/folder.png +0 -0
- data/app/assets/images/icons/symbol-add.png +0 -0
- data/app/assets/images/library/all.png +0 -0
- data/app/assets/images/library/audio.png +0 -0
- data/app/assets/images/library/back.gif +0 -0
- data/app/assets/images/library/dialog_overlay.png +0 -0
- data/app/assets/images/library/gb_wysiwyg_pic.png +0 -0
- data/app/assets/images/library/icon_document.jpg +0 -0
- data/app/assets/images/library/image.png +0 -0
- data/app/assets/images/library/inactive_tab.jpg +0 -0
- data/app/assets/images/library/other.png +0 -0
- data/app/assets/images/library/search_icon.gif +0 -0
- data/app/assets/images/library/sort_by_asc.png +0 -0
- data/app/assets/images/library/sort_by_desc.png +0 -0
- data/app/assets/images/library/video.png +0 -0
- data/app/assets/images/page_content_fillin.gif +0 -0
- data/app/assets/images/paginator.gif +0 -0
- data/app/assets/images/row_divider.jpg +0 -0
- data/app/assets/images/settings/config.png +0 -0
- data/app/assets/images/settings/locale.jpg +0 -0
- data/app/assets/images/settings/stylesheet.gif +0 -0
- data/app/assets/images/settings/users.png +0 -0
- data/app/assets/images/sidebar/icon_content.png +0 -0
- data/app/assets/images/sidebar/icon_dashboard.png +0 -0
- data/app/assets/images/sidebar/icon_feedback.png +0 -0
- data/app/assets/images/sidebar/icon_library.png +0 -0
- data/app/assets/images/sidebar/icon_settings.png +0 -0
- data/app/assets/images/sidebar/menu_active.jpg +0 -0
- data/app/assets/images/sidebar/menu_expanded_bg.jpg +0 -0
- data/app/assets/images/sidebar/menu_off.jpg +0 -0
- data/app/assets/images/sidebar/menu_over.jpg +0 -0
- data/app/assets/images/sidebar/nav_closed.png +0 -0
- data/app/assets/images/sidebar/nav_open.png +0 -0
- data/app/assets/images/spinner.gif +0 -0
- data/app/assets/images/spinner_for_dialouge.gif +0 -0
- data/app/assets/images/sub_nav_back_bkg.gif +0 -0
- data/app/assets/images/subnav_bkg.gif +0 -0
- data/app/assets/images/table_head_bkg.gif +0 -0
- data/app/assets/images/wrapper_bkg.png +0 -0
- data/app/assets/javascripts/ajaxfileupload.js +205 -0
- data/app/assets/javascripts/bootstrap-datepicker.js +501 -0
- data/app/assets/javascripts/bootstrap.js +2027 -0
- data/app/assets/javascripts/bootstrap.min.js +1 -0
- data/app/assets/javascripts/expander.js +81 -0
- data/app/assets/javascripts/gb_application.js +828 -0
- data/app/assets/javascripts/gb_login.js +33 -0
- data/app/assets/javascripts/gb_tags.js +177 -0
- data/app/assets/javascripts/jcrop/MIT-LICENSE.txt +22 -0
- data/app/assets/javascripts/jcrop/build/LICENSE +7 -0
- data/app/assets/javascripts/jcrop/build/README +11 -0
- data/app/assets/javascripts/jcrop/build/minimize.bash +10 -0
- data/app/assets/javascripts/jcrop/build/pre-commit.bash +11 -0
- data/app/assets/javascripts/jcrop/css/Jcrop.gif +0 -0
- data/app/assets/javascripts/jcrop/css/jquery-Jcrop.css +35 -0
- data/app/assets/javascripts/jcrop/demos/crop.php +106 -0
- data/app/assets/javascripts/jcrop/demos/demo_files/demos.css +36 -0
- data/app/assets/javascripts/jcrop/demos/demo_files/flowers.jpg +0 -0
- data/app/assets/javascripts/jcrop/demos/demo_files/sago.jpg +0 -0
- data/app/assets/javascripts/jcrop/demos/demo_files/sagomod.jpg +0 -0
- data/app/assets/javascripts/jcrop/demos/demo_files/sagomod.png +0 -0
- data/app/assets/javascripts/jcrop/demos/tutorial1.html +47 -0
- data/app/assets/javascripts/jcrop/demos/tutorial2.html +94 -0
- data/app/assets/javascripts/jcrop/demos/tutorial3.html +94 -0
- data/app/assets/javascripts/jcrop/demos/tutorial4.html +154 -0
- data/app/assets/javascripts/jcrop/demos/tutorial5.html +240 -0
- data/app/assets/javascripts/jcrop/index.html +63 -0
- data/app/assets/javascripts/jcrop/js/jquery-Jcrop-min.js +246 -0
- data/app/assets/javascripts/jcrop/js/jquery.Jcrop.js +1605 -0
- data/app/assets/javascripts/jcrop/js/jquery.color.js +123 -0
- data/app/assets/javascripts/jcrop/js/jquery.min.js +18 -0
- data/app/assets/javascripts/jeditable.js +371 -0
- data/app/assets/javascripts/jquery-1-4-2-min.js +154 -0
- data/app/assets/javascripts/jquery-1-7-1.js +9267 -0
- data/app/assets/javascripts/jquery-dimensions-min.js +12 -0
- data/app/assets/javascripts/jquery-dragTree.js +525 -0
- data/app/assets/javascripts/jquery-tagarea.js +404 -0
- data/app/assets/javascripts/jquery-ui-1-8-1-custom-min.js +756 -0
- data/app/assets/javascripts/jquery-ui-1-8-18-custom-min.js +356 -0
- data/app/assets/javascripts/jquery-ui-1-8-18-custom2-min.js +266 -0
- data/app/assets/javascripts/jquery-ui-1-8-23-custom-min.js +85 -0
- data/app/assets/javascripts/jquery-ui-datetimepicker-min.js +1060 -0
- data/app/assets/javascripts/jquery-validate.js +1297 -0
- data/app/assets/javascripts/rails.js +127 -0
- data/app/assets/javascripts/tiny_mce/jquery.tinymce.js +1 -0
- data/app/assets/javascripts/tiny_mce/langs/en.js +223 -0
- data/app/assets/javascripts/tiny_mce/license.txt +504 -0
- data/app/assets/javascripts/tiny_mce/plugins/advhr/css/advhr.css +5 -0
- data/app/assets/javascripts/tiny_mce/plugins/advhr/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/advhr/editor_plugin_src.js +57 -0
- data/app/assets/javascripts/tiny_mce/plugins/advhr/js/rule.js +43 -0
- data/app/assets/javascripts/tiny_mce/plugins/advhr/langs/en_dlg.js +7 -0
- data/app/assets/javascripts/tiny_mce/plugins/advhr/rule.htm +58 -0
- data/app/assets/javascripts/tiny_mce/plugins/advimage/css/advimage.css +13 -0
- data/app/assets/javascripts/tiny_mce/plugins/advimage/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/advimage/editor_plugin_src.js +50 -0
- data/app/assets/javascripts/tiny_mce/plugins/advimage/image.htm +235 -0
- data/app/assets/javascripts/tiny_mce/plugins/advimage/img/sample.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/advimage/js/image.js +458 -0
- data/app/assets/javascripts/tiny_mce/plugins/advimage/langs/en_dlg.js +45 -0
- data/app/assets/javascripts/tiny_mce/plugins/advlink/css/advlink.css +8 -0
- data/app/assets/javascripts/tiny_mce/plugins/advlink/editor_plugin.js +61 -0
- data/app/assets/javascripts/tiny_mce/plugins/advlink/editor_plugin_src.js +61 -0
- data/app/assets/javascripts/tiny_mce/plugins/advlink/js/advlink.js +564 -0
- data/app/assets/javascripts/tiny_mce/plugins/advlink/langs/en_dlg.js +54 -0
- data/app/assets/javascripts/tiny_mce/plugins/advlink/link.htm +355 -0
- data/app/assets/javascripts/tiny_mce/plugins/advlist/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/advlist/editor_plugin_src.js +161 -0
- data/app/assets/javascripts/tiny_mce/plugins/autolink/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/autolink/editor_plugin_src.js +172 -0
- data/app/assets/javascripts/tiny_mce/plugins/autoresize/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/autoresize/editor_plugin_src.js +137 -0
- data/app/assets/javascripts/tiny_mce/plugins/autosave/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/autosave/editor_plugin_src.js +431 -0
- data/app/assets/javascripts/tiny_mce/plugins/autosave/langs/en.js +4 -0
- data/app/assets/javascripts/tiny_mce/plugins/bbcode/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/bbcode/editor_plugin_src.js +120 -0
- data/app/assets/javascripts/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js +160 -0
- data/app/assets/javascripts/tiny_mce/plugins/directionality/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/directionality/editor_plugin_src.js +82 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/editor_plugin_src.js +43 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/emotions.htm +41 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-cool.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-cry.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-frown.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-smile.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-wink.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-yell.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/js/emotions.js +22 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/langs/en_dlg.js +20 -0
- data/app/assets/javascripts/tiny_mce/plugins/example/dialog.htm +22 -0
- data/app/assets/javascripts/tiny_mce/plugins/example/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/example/editor_plugin_src.js +84 -0
- data/app/assets/javascripts/tiny_mce/plugins/example/img/example.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/example/js/dialog.js +19 -0
- data/app/assets/javascripts/tiny_mce/plugins/example/langs/en.js +3 -0
- data/app/assets/javascripts/tiny_mce/plugins/example/langs/en_dlg.js +3 -0
- data/app/assets/javascripts/tiny_mce/plugins/example_dependency/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/example_dependency/editor_plugin_src.js +50 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullpage/css/fullpage.css +143 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullpage/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullpage/editor_plugin_src.js +399 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullpage/fullpage.htm +259 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullpage/js/fullpage.js +232 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullpage/langs/en_dlg.js +85 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js +159 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm +109 -0
- data/app/assets/javascripts/tiny_mce/plugins/gb_assets/editor_plugin.js +47 -0
- data/app/assets/javascripts/tiny_mce/plugins/gb_assets/editor_plugin_src.js +43 -0
- data/app/assets/javascripts/tiny_mce/plugins/gb_assets/emotions.htm +41 -0
- data/app/assets/javascripts/tiny_mce/plugins/gb_assets/js/emotions.js +22 -0
- data/app/assets/javascripts/tiny_mce/plugins/gb_assets/langs/en_dlg.js +20 -0
- data/app/assets/javascripts/tiny_mce/plugins/iespell/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/iespell/editor_plugin_src.js +54 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +696 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +90 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/template.htm +387 -0
- data/app/assets/javascripts/tiny_mce/plugins/insertdatetime/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js +83 -0
- data/app/assets/javascripts/tiny_mce/plugins/layer/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/layer/editor_plugin_src.js +214 -0
- data/app/assets/javascripts/tiny_mce/plugins/legacyoutput/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js +139 -0
- data/app/assets/javascripts/tiny_mce/plugins/lists/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/lists/editor_plugin_src.js +688 -0
- data/app/assets/javascripts/tiny_mce/plugins/media/css/media.css +17 -0
- data/app/assets/javascripts/tiny_mce/plugins/media/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/media/editor_plugin_src.js +777 -0
- data/app/assets/javascripts/tiny_mce/plugins/media/js/embed.js +73 -0
- data/app/assets/javascripts/tiny_mce/plugins/media/js/media.js +355 -0
- data/app/assets/javascripts/tiny_mce/plugins/media/langs/en_dlg.js +109 -0
- data/app/assets/javascripts/tiny_mce/plugins/media/media.htm +812 -0
- data/app/assets/javascripts/tiny_mce/plugins/media/moxieplayer.swf +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +53 -0
- data/app/assets/javascripts/tiny_mce/plugins/noneditable/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/noneditable/editor_plugin_src.js +92 -0
- data/app/assets/javascripts/tiny_mce/plugins/pagebreak/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js +74 -0
- data/app/assets/javascripts/tiny_mce/plugins/paste/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/paste/editor_plugin_src.js +941 -0
- data/app/assets/javascripts/tiny_mce/plugins/paste/js/pastetext.js +36 -0
- data/app/assets/javascripts/tiny_mce/plugins/paste/js/pasteword.js +51 -0
- data/app/assets/javascripts/tiny_mce/plugins/paste/langs/en_dlg.js +5 -0
- data/app/assets/javascripts/tiny_mce/plugins/paste/pastetext.htm +27 -0
- data/app/assets/javascripts/tiny_mce/plugins/paste/pasteword.htm +21 -0
- data/app/assets/javascripts/tiny_mce/plugins/preview/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/preview/editor_plugin_src.js +53 -0
- data/app/assets/javascripts/tiny_mce/plugins/preview/example.html +28 -0
- data/app/assets/javascripts/tiny_mce/plugins/preview/jscripts/embed.js +73 -0
- data/app/assets/javascripts/tiny_mce/plugins/preview/preview.html +18 -0
- data/app/assets/javascripts/tiny_mce/plugins/print/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/print/editor_plugin_src.js +34 -0
- data/app/assets/javascripts/tiny_mce/plugins/save/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/save/editor_plugin_src.js +101 -0
- data/app/assets/javascripts/tiny_mce/plugins/searchreplace/css/searchreplace.css +6 -0
- data/app/assets/javascripts/tiny_mce/plugins/searchreplace/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js +61 -0
- data/app/assets/javascripts/tiny_mce/plugins/searchreplace/js/searchreplace.js +142 -0
- data/app/assets/javascripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js +16 -0
- data/app/assets/javascripts/tiny_mce/plugins/searchreplace/searchreplace.htm +100 -0
- data/app/assets/javascripts/tiny_mce/plugins/spellchecker/css/content.css +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js +434 -0
- data/app/assets/javascripts/tiny_mce/plugins/spellchecker/img/wline.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/style/css/props.css +13 -0
- data/app/assets/javascripts/tiny_mce/plugins/style/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/style/editor_plugin_src.js +55 -0
- data/app/assets/javascripts/tiny_mce/plugins/style/js/props.js +635 -0
- data/app/assets/javascripts/tiny_mce/plugins/style/langs/en_dlg.js +70 -0
- data/app/assets/javascripts/tiny_mce/plugins/style/props.htm +838 -0
- data/app/assets/javascripts/tiny_mce/plugins/tabfocus/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js +114 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/cell.htm +180 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/css/cell.css +17 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/css/row.css +25 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/css/table.css +13 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/editor_plugin_src.js +1209 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/js/cell.js +319 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/js/merge_cells.js +27 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/js/row.js +237 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/js/table.js +450 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/langs/en_dlg.js +75 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/merge_cells.htm +32 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/row.htm +158 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/table.htm +188 -0
- data/app/assets/javascripts/tiny_mce/plugins/template/blank.htm +12 -0
- data/app/assets/javascripts/tiny_mce/plugins/template/css/template.css +23 -0
- data/app/assets/javascripts/tiny_mce/plugins/template/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/template/editor_plugin_src.js +159 -0
- data/app/assets/javascripts/tiny_mce/plugins/template/js/template.js +106 -0
- data/app/assets/javascripts/tiny_mce/plugins/template/langs/en_dlg.js +15 -0
- data/app/assets/javascripts/tiny_mce/plugins/template/template.htm +31 -0
- data/app/assets/javascripts/tiny_mce/plugins/visualchars/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/visualchars/editor_plugin_src.js +83 -0
- data/app/assets/javascripts/tiny_mce/plugins/wordcount/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/wordcount/editor_plugin_src.js +114 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/abbr.htm +142 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/acronym.htm +142 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/attributes.htm +149 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/cite.htm +142 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css +11 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/css/popup.css +9 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/del.htm +162 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +132 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/ins.htm +162 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js +28 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js +28 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js +111 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/js/cite.js +28 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/js/del.js +53 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js +229 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/js/ins.js +53 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js +32 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/about.htm +52 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/anchor.htm +26 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/charmap.htm +51 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/color_picker.htm +74 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/editor_template.js +1 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/editor_template_src.js +1358 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/image.htm +80 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/flash.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/iframe.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/pagebreak.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/quicktime.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/realmedia.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/shockwave.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/trans.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/video.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/windowsmedia.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/js/about.js +73 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/js/anchor.js +42 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/js/charmap.js +355 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/js/color_picker.js +329 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/js/image.js +247 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/js/link.js +153 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/js/source_editor.js +56 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/langs/en.js +68 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js +54 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/link.htm +57 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/shortcuts.htm +47 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/content.css +47 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css +117 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/ui.css +227 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/content.css +23 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css +105 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css +102 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css +46 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +117 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +217 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +8 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/source_editor.htm +25 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/editor_template.js +1 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/editor_template_src.js +84 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/img/icons.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/langs/en.js +11 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/skins/default/content.css +25 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/skins/default/ui.css +32 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/skins/o2k7/content.css +17 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png +0 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/skins/o2k7/ui.css +35 -0
- data/app/assets/javascripts/tiny_mce/tiny_mce.js +1 -0
- data/app/assets/javascripts/tiny_mce/tiny_mce_popup.js +5 -0
- data/app/assets/javascripts/tiny_mce/tiny_mce_src.js +15216 -0
- data/app/assets/javascripts/tiny_mce/utils/editable_selects.js +70 -0
- data/app/assets/javascripts/tiny_mce/utils/form_utils.js +210 -0
- data/app/assets/javascripts/tiny_mce/utils/mctabs.js +162 -0
- data/app/assets/javascripts/tiny_mce/utils/validate.js +252 -0
- data/app/assets/stylesheets/admin-ie6.sass +94 -0
- data/app/assets/stylesheets/admin-ie7.sass +107 -0
- data/app/assets/stylesheets/admin-override.sass +563 -0
- data/app/assets/stylesheets/admin.sass +2919 -0
- data/app/assets/stylesheets/bootstrap-responsive.css +686 -0
- data/app/assets/stylesheets/bootstrap.css +4124 -0
- data/app/assets/stylesheets/user-styles.sass +3 -0
- data/app/controllers/gluttonberg/admin/asset_library/assets_controller.rb +365 -0
- data/app/controllers/gluttonberg/admin/asset_library/collections_controller.rb +91 -0
- data/app/controllers/gluttonberg/admin/base_controller.rb +185 -0
- data/app/controllers/gluttonberg/admin/content/articles_controller.rb +139 -0
- data/app/controllers/gluttonberg/admin/content/blogs_controller.rb +101 -0
- data/app/controllers/gluttonberg/admin/content/comments_controller.rb +73 -0
- data/app/controllers/gluttonberg/admin/content/flag_controller.rb +19 -0
- data/app/controllers/gluttonberg/admin/content/galleries_controller.rb +123 -0
- data/app/controllers/gluttonberg/admin/content/main_controller.rb +13 -0
- data/app/controllers/gluttonberg/admin/content/page_localizations_controller.rb +78 -0
- data/app/controllers/gluttonberg/admin/content/pages_controller.rb +125 -0
- data/app/controllers/gluttonberg/admin/help_controller.rb +15 -0
- data/app/controllers/gluttonberg/admin/main_controller.rb +32 -0
- data/app/controllers/gluttonberg/admin/membership/base_controller.rb +11 -0
- data/app/controllers/gluttonberg/admin/membership/groups_controller.rb +74 -0
- data/app/controllers/gluttonberg/admin/membership/main_controller.rb +11 -0
- data/app/controllers/gluttonberg/admin/membership/members_controller.rb +142 -0
- data/app/controllers/gluttonberg/admin/password_resets_controller.rb +55 -0
- data/app/controllers/gluttonberg/admin/settings/generic_settings_controller.rb +90 -0
- data/app/controllers/gluttonberg/admin/settings/global_history_controller.rb +11 -0
- data/app/controllers/gluttonberg/admin/settings/locales_controller.rb +75 -0
- data/app/controllers/gluttonberg/admin/settings/main_controller.rb +11 -0
- data/app/controllers/gluttonberg/admin/settings/stylesheets_controller.rb +85 -0
- data/app/controllers/gluttonberg/admin/settings/users_controller.rb +110 -0
- data/app/controllers/gluttonberg/admin/user_sessions_controller.rb +30 -0
- data/app/controllers/gluttonberg/public/articles_controller.rb +70 -0
- data/app/controllers/gluttonberg/public/base_controller.rb +169 -0
- data/app/controllers/gluttonberg/public/blogs_controller.rb +44 -0
- data/app/controllers/gluttonberg/public/comments_controller.rb +45 -0
- data/app/controllers/gluttonberg/public/flag_controller.rb +45 -0
- data/app/controllers/gluttonberg/public/gallery_controller.rb +2 -0
- data/app/controllers/gluttonberg/public/member_password_resets_controller.rb +55 -0
- data/app/controllers/gluttonberg/public/member_sessions_controller.rb +30 -0
- data/app/controllers/gluttonberg/public/members_controller.rb +88 -0
- data/app/controllers/gluttonberg/public/pages_controller.rb +79 -0
- data/app/controllers/gluttonberg/public/public_assets_controller.rb +18 -0
- data/app/helpers/gluttonberg/admin.rb +448 -0
- data/app/helpers/gluttonberg/application_helper.rb +23 -0
- data/app/helpers/gluttonberg/asset_library.rb +258 -0
- data/app/helpers/gluttonberg/content_helpers.rb +100 -0
- data/app/helpers/gluttonberg/public.rb +297 -0
- data/app/mailer/member_notifier.rb +51 -0
- data/app/mailer/notifier.rb +45 -0
- data/app/models/ability.rb +46 -0
- data/app/models/flag.rb +56 -0
- data/app/models/gluttonberg/article.rb +73 -0
- data/app/models/gluttonberg/article_localization.rb +21 -0
- data/app/models/gluttonberg/asset.rb +194 -0
- data/app/models/gluttonberg/asset_category.rb +45 -0
- data/app/models/gluttonberg/asset_collection.rb +18 -0
- data/app/models/gluttonberg/asset_mime_type.rb +8 -0
- data/app/models/gluttonberg/asset_thumbnail.rb +7 -0
- data/app/models/gluttonberg/asset_type.rb +63 -0
- data/app/models/gluttonberg/audio_asset_attribute.rb +8 -0
- data/app/models/gluttonberg/blog.rb +19 -0
- data/app/models/gluttonberg/comment.rb +88 -0
- data/app/models/gluttonberg/comment_subscription.rb +26 -0
- data/app/models/gluttonberg/feed.rb +14 -0
- data/app/models/gluttonberg/gallery.rb +24 -0
- data/app/models/gluttonberg/gallery_image.rb +9 -0
- data/app/models/gluttonberg/group.rb +15 -0
- data/app/models/gluttonberg/help.rb +48 -0
- data/app/models/gluttonberg/html_content.rb +10 -0
- data/app/models/gluttonberg/image_content.rb +10 -0
- data/app/models/gluttonberg/locale.rb +37 -0
- data/app/models/gluttonberg/member.rb +272 -0
- data/app/models/gluttonberg/page.rb +371 -0
- data/app/models/gluttonberg/page_localization.rb +119 -0
- data/app/models/gluttonberg/plain_text_content.rb +11 -0
- data/app/models/gluttonberg/search.rb +125 -0
- data/app/models/gluttonberg/setting.rb +104 -0
- data/app/models/gluttonberg/sitemap.rb +40 -0
- data/app/models/gluttonberg/stylesheet.rb +9 -0
- data/app/models/member_session.rb +8 -0
- data/app/models/user.rb +59 -0
- data/app/models/user_session.rb +7 -0
- data/app/observers/gluttonberg/locale_observer.rb +45 -0
- data/app/observers/gluttonberg/page_localization_observer.rb +38 -0
- data/app/observers/gluttonberg/page_observer.rb +56 -0
- data/app/views/gluttonberg/admin/asset_library/assets/_assets_listing_without_sorting.html.haml +40 -0
- data/app/views/gluttonberg/admin/asset_library/assets/_browser_root.html.haml +60 -0
- data/app/views/gluttonberg/admin/asset_library/assets/_collection_select_form.html.haml +8 -0
- data/app/views/gluttonberg/admin/asset_library/assets/_content_panel.html.haml +8 -0
- data/app/views/gluttonberg/admin/asset_library/assets/_form.html.haml +31 -0
- data/app/views/gluttonberg/admin/asset_library/assets/_search_form.html.haml +3 -0
- data/app/views/gluttonberg/admin/asset_library/assets/add_assets_in_bulk.html.haml +51 -0
- data/app/views/gluttonberg/admin/asset_library/assets/browser.html.haml +14 -0
- data/app/views/gluttonberg/admin/asset_library/assets/category.html.haml +28 -0
- data/app/views/gluttonberg/admin/asset_library/assets/category.json.haml +1 -0
- data/app/views/gluttonberg/admin/asset_library/assets/create_assets_in_bulk.html.haml +17 -0
- data/app/views/gluttonberg/admin/asset_library/assets/crop.html.haml +56 -0
- data/app/views/gluttonberg/admin/asset_library/assets/edit.html.haml +13 -0
- data/app/views/gluttonberg/admin/asset_library/assets/index.html.haml +24 -0
- data/app/views/gluttonberg/admin/asset_library/assets/new.html.haml +30 -0
- data/app/views/gluttonberg/admin/asset_library/assets/search.html.haml +28 -0
- data/app/views/gluttonberg/admin/asset_library/assets/search.json.haml +2 -0
- data/app/views/gluttonberg/admin/asset_library/assets/show.html.haml +119 -0
- data/app/views/gluttonberg/admin/asset_library/collections/_form.html.haml +9 -0
- data/app/views/gluttonberg/admin/asset_library/collections/edit.html.haml +4 -0
- data/app/views/gluttonberg/admin/asset_library/collections/index.html.haml +38 -0
- data/app/views/gluttonberg/admin/asset_library/collections/new.html.haml +12 -0
- data/app/views/gluttonberg/admin/asset_library/collections/show.html.haml +12 -0
- data/app/views/gluttonberg/admin/asset_library/collections/show.json.haml +1 -0
- data/app/views/gluttonberg/admin/asset_library/shared/_asset_panels.html.haml +62 -0
- data/app/views/gluttonberg/admin/asset_library/shared/_sidebar.html.haml +11 -0
- data/app/views/gluttonberg/admin/asset_library/shared/_sorter.html.haml +9 -0
- data/app/views/gluttonberg/admin/content/articles/_form.html.haml +102 -0
- data/app/views/gluttonberg/admin/content/articles/edit.html.haml +17 -0
- data/app/views/gluttonberg/admin/content/articles/index.html.haml +64 -0
- data/app/views/gluttonberg/admin/content/articles/new.html.haml +11 -0
- data/app/views/gluttonberg/admin/content/blogs/_form.html.haml +56 -0
- data/app/views/gluttonberg/admin/content/blogs/edit.html.haml +3 -0
- data/app/views/gluttonberg/admin/content/blogs/index.html.haml +35 -0
- data/app/views/gluttonberg/admin/content/blogs/new.html.haml +10 -0
- data/app/views/gluttonberg/admin/content/comments/index.html.haml +40 -0
- data/app/views/gluttonberg/admin/content/editors/_html_content.html.haml +7 -0
- data/app/views/gluttonberg/admin/content/editors/_image_content.html.haml +7 -0
- data/app/views/gluttonberg/admin/content/editors/_plain_text_content.html.haml +4 -0
- data/app/views/gluttonberg/admin/content/flag/index.html.haml +41 -0
- data/app/views/gluttonberg/admin/content/galleries/_form.html.haml +30 -0
- data/app/views/gluttonberg/admin/content/galleries/_images_list.html.haml +21 -0
- data/app/views/gluttonberg/admin/content/galleries/add_image.html.haml +1 -0
- data/app/views/gluttonberg/admin/content/galleries/edit.html.haml +23 -0
- data/app/views/gluttonberg/admin/content/galleries/index.html.haml +36 -0
- data/app/views/gluttonberg/admin/content/galleries/new.html.haml +12 -0
- data/app/views/gluttonberg/admin/content/main/_sidebar.html.haml +20 -0
- data/app/views/gluttonberg/admin/content/main/index.html.haml +20 -0
- data/app/views/gluttonberg/admin/content/page_localizations/_form.html.haml +82 -0
- data/app/views/gluttonberg/admin/content/page_localizations/edit.html.haml +15 -0
- data/app/views/gluttonberg/admin/content/pages/_form.html.haml +30 -0
- data/app/views/gluttonberg/admin/content/pages/_page_settings.html.haml +20 -0
- data/app/views/gluttonberg/admin/content/pages/_row.html.haml +35 -0
- data/app/views/gluttonberg/admin/content/pages/edit_home.html.haml +11 -0
- data/app/views/gluttonberg/admin/content/pages/index.html.haml +31 -0
- data/app/views/gluttonberg/admin/content/pages/new.html.haml +10 -0
- data/app/views/gluttonberg/admin/content/pages/pages_list_for_tinymce.html.haml +3 -0
- data/app/views/gluttonberg/admin/content/pages/show.html.haml +48 -0
- data/app/views/gluttonberg/admin/exceptions/access_denied.html.haml +11 -0
- data/app/views/gluttonberg/admin/exceptions/internal_server_error.html.haml +11 -0
- data/app/views/gluttonberg/admin/exceptions/not_acceptable.html.haml +9 -0
- data/app/views/gluttonberg/admin/exceptions/not_found.html.haml +12 -0
- data/app/views/gluttonberg/admin/main/index.html.haml +110 -0
- data/app/views/gluttonberg/admin/membership/groups/_form.html.haml +15 -0
- data/app/views/gluttonberg/admin/membership/groups/edit.html.haml +12 -0
- data/app/views/gluttonberg/admin/membership/groups/index.html.haml +35 -0
- data/app/views/gluttonberg/admin/membership/groups/new.html.haml +12 -0
- data/app/views/gluttonberg/admin/membership/main/_sidebar.html.haml +9 -0
- data/app/views/gluttonberg/admin/membership/main/index.html.haml +11 -0
- data/app/views/gluttonberg/admin/membership/members/_form.html.haml +56 -0
- data/app/views/gluttonberg/admin/membership/members/_list.html.haml +25 -0
- data/app/views/gluttonberg/admin/membership/members/create_bulk.html.haml +17 -0
- data/app/views/gluttonberg/admin/membership/members/edit.html.haml +12 -0
- data/app/views/gluttonberg/admin/membership/members/index.html.haml +51 -0
- data/app/views/gluttonberg/admin/membership/members/new.html.haml +13 -0
- data/app/views/gluttonberg/admin/membership/members/new_bulk.html.haml +57 -0
- data/app/views/gluttonberg/admin/password_resets/edit.html.haml +19 -0
- data/app/views/gluttonberg/admin/password_resets/new.html.haml +13 -0
- data/app/views/gluttonberg/admin/settings/generic_settings/_form.html.haml +26 -0
- data/app/views/gluttonberg/admin/settings/generic_settings/_value_tag.html.haml +4 -0
- data/app/views/gluttonberg/admin/settings/generic_settings/edit.html.haml +4 -0
- data/app/views/gluttonberg/admin/settings/generic_settings/index.html.haml +53 -0
- data/app/views/gluttonberg/admin/settings/generic_settings/new.html.haml +12 -0
- data/app/views/gluttonberg/admin/settings/global_history/index.html.haml +41 -0
- data/app/views/gluttonberg/admin/settings/locales/_form.html.haml +22 -0
- data/app/views/gluttonberg/admin/settings/locales/edit.html.haml +4 -0
- data/app/views/gluttonberg/admin/settings/locales/index.html.haml +35 -0
- data/app/views/gluttonberg/admin/settings/locales/new.html.haml +4 -0
- data/app/views/gluttonberg/admin/settings/main/_sidebar.html.haml +23 -0
- data/app/views/gluttonberg/admin/settings/main/index.html.haml +18 -0
- data/app/views/gluttonberg/admin/settings/stylesheets/_form.html.haml +28 -0
- data/app/views/gluttonberg/admin/settings/stylesheets/edit.html.haml +3 -0
- data/app/views/gluttonberg/admin/settings/stylesheets/index.html.haml +39 -0
- data/app/views/gluttonberg/admin/settings/stylesheets/new.html.haml +3 -0
- data/app/views/gluttonberg/admin/settings/users/_form.html.haml +50 -0
- data/app/views/gluttonberg/admin/settings/users/_sidebar.html.haml +36 -0
- data/app/views/gluttonberg/admin/settings/users/edit.html.haml +12 -0
- data/app/views/gluttonberg/admin/settings/users/index.html.haml +57 -0
- data/app/views/gluttonberg/admin/settings/users/new.html.haml +13 -0
- data/app/views/gluttonberg/admin/shared/_asset_panel.html.haml +33 -0
- data/app/views/gluttonberg/admin/shared/delete.html.haml +48 -0
- data/app/views/gluttonberg/admin/shared/generic.html.haml +20 -0
- data/app/views/gluttonberg/admin/user_sessions/new.html.haml +42 -0
- data/app/views/gluttonberg/public/articles/index.rss.builder +21 -0
- data/app/views/gluttonberg/public/blogs/show.rss.builder +21 -0
- data/app/views/gluttonberg/public/exceptions/access_denied.html.haml +11 -0
- data/app/views/gluttonberg/public/exceptions/internal_server_error.html.haml +11 -0
- data/app/views/gluttonberg/public/exceptions/not_acceptable.html.haml +9 -0
- data/app/views/gluttonberg/public/exceptions/not_found.html.haml +11 -0
- data/app/views/gluttonberg/public/flag/new.html.haml +23 -0
- data/app/views/gluttonberg/public/member_password_resets/edit.html.haml +22 -0
- data/app/views/gluttonberg/public/member_password_resets/new.html.haml +11 -0
- data/app/views/gluttonberg/public/member_sessions/new.html.haml +25 -0
- data/app/views/gluttonberg/public/members/_form.html.haml +83 -0
- data/app/views/gluttonberg/public/members/edit.html.haml +82 -0
- data/app/views/gluttonberg/public/members/new.html.haml +1 -0
- data/app/views/gluttonberg/public/members/show.html.haml +35 -0
- data/app/views/gluttonberg/public/pages/restrict_site_access.html.haml +57 -0
- data/app/views/gluttonberg/public/pages/sitemap.html.haml +11 -0
- data/app/views/help/gluttonberg/admin/AssetLibrary/assets/add_assets_in_bulk.html.haml +41 -0
- data/app/views/help/gluttonberg/admin/AssetLibrary/assets/edit.html.haml +61 -0
- data/app/views/help/gluttonberg/admin/AssetLibrary/assets/index.html.haml +16 -0
- data/app/views/help/gluttonberg/admin/AssetLibrary/assets/new.html.haml +57 -0
- data/app/views/help/gluttonberg/admin/AssetLibrary/collections/edit.html.haml +15 -0
- data/app/views/help/gluttonberg/admin/AssetLibrary/collections/index.html.haml +41 -0
- data/app/views/help/gluttonberg/admin/AssetLibrary/collections/new.html.haml +15 -0
- data/app/views/help/gluttonberg/admin/AssetLibrary/main/index.html.haml +34 -0
- data/app/views/help/gluttonberg/admin/content/page_localizations/edit.html.haml +89 -0
- data/app/views/help/gluttonberg/admin/content/pages/_page_description_help.html.haml +14 -0
- data/app/views/help/gluttonberg/admin/content/pages/edit.html.haml +62 -0
- data/app/views/help/gluttonberg/admin/content/pages/index.html.haml +111 -0
- data/app/views/help/gluttonberg/admin/content/pages/new.html.haml +61 -0
- data/app/views/help/gluttonberg/admin/settings/dialects/edit.html.haml +47 -0
- data/app/views/help/gluttonberg/admin/settings/dialects/index.html.haml +50 -0
- data/app/views/help/gluttonberg/admin/settings/dialects/new.html.haml +47 -0
- data/app/views/help/gluttonberg/admin/settings/generic_settings/index.html.haml +74 -0
- data/app/views/help/gluttonberg/admin/settings/locales/edit.html.haml +71 -0
- data/app/views/help/gluttonberg/admin/settings/locales/index.html.haml +57 -0
- data/app/views/help/gluttonberg/admin/settings/locales/new.html.haml +71 -0
- data/app/views/help/gluttonberg/admin/settings/users/edit.html.haml +63 -0
- data/app/views/help/gluttonberg/admin/settings/users/index.html.haml +60 -0
- data/app/views/help/gluttonberg/admin/settings/users/new.html.haml +69 -0
- data/app/views/layouts/_flash_messages.html.haml +12 -0
- data/app/views/layouts/ajax.html.haml +5 -0
- data/app/views/layouts/bare.html.haml +32 -0
- data/app/views/layouts/gluttonberg.html.haml +79 -0
- data/app/views/layouts/help.html.haml +1 -0
- data/app/views/member_notifier/confirmation_instructions.html.haml +18 -0
- data/app/views/member_notifier/password_reset_instructions.html.haml +8 -0
- data/app/views/member_notifier/welcome.html.haml +25 -0
- data/app/views/notifier/comment_notification.html.haml +17 -0
- data/app/views/notifier/comment_notification_for_admin.html.haml +19 -0
- data/app/views/notifier/password_reset_instructions.html.haml +8 -0
- data/config/locales/en_au.yml +205 -0
- data/config/locales/en_gb.yml +27 -0
- data/config/routes.rb +159 -0
- data/db/migrate/migrations +1 -0
- data/db/migrate/old_migrations/1_untitled.rb +147 -0
- data/db/migrate/old_migrations/20101110051141_version_tables.rb +12 -0
- data/db/migrate/old_migrations/20101110061505_add_state_column.rb +9 -0
- data/db/migrate/old_migrations/20101111002552_create_users.rb +18 -0
- data/db/migrate/old_migrations/2_asset_library.rb +87 -0
- data/lib/acts_as_versioned.rb +496 -0
- data/lib/audio_job.rb +17 -0
- data/lib/engine.rb +101 -0
- data/lib/generators/gluttonberg/blog/blog_generator.rb +46 -0
- data/lib/generators/gluttonberg/blog/templates/articles_index.html.haml +18 -0
- data/lib/generators/gluttonberg/blog/templates/articles_show.html.haml +63 -0
- data/lib/generators/gluttonberg/blog/templates/articles_tag.html.haml +24 -0
- data/lib/generators/gluttonberg/blog/templates/blog_migration.rb +88 -0
- data/lib/generators/gluttonberg/blog/templates/blogs_index.html.haml +15 -0
- data/lib/generators/gluttonberg/blog/templates/blogs_show.html.haml +25 -0
- data/lib/generators/gluttonberg/installer/USAGE +1 -0
- data/lib/generators/gluttonberg/installer/installer_generator.rb +105 -0
- data/lib/generators/gluttonberg/installer/templates/delayed_job_script +5 -0
- data/lib/generators/gluttonberg/installer/templates/gluttonberg_migration.rb +368 -0
- data/lib/generators/gluttonberg/installer/templates/page_descriptions.rb +65 -0
- data/lib/generators/gluttonberg/installer/templates/public.html.haml +24 -0
- data/lib/generators/gluttonberg/installer/templates/sitemap.rb +70 -0
- data/lib/generators/gluttonberg/resource/USAGE +1 -0
- data/lib/generators/gluttonberg/resource/resource_generator.rb +200 -0
- data/lib/generators/gluttonberg/resource/templates/admin_controller.rb +143 -0
- data/lib/generators/gluttonberg/resource/templates/backend_view_edit.html.haml +28 -0
- data/lib/generators/gluttonberg/resource/templates/backend_view_form.html.haml +43 -0
- data/lib/generators/gluttonberg/resource/templates/backend_view_import.html.haml +37 -0
- data/lib/generators/gluttonberg/resource/templates/backend_view_index.html.haml +82 -0
- data/lib/generators/gluttonberg/resource/templates/backend_view_new.html.haml +14 -0
- data/lib/generators/gluttonberg/resource/templates/backend_view_show.html.haml +27 -0
- data/lib/generators/gluttonberg/resource/templates/migration.rb +39 -0
- data/lib/generators/gluttonberg/resource/templates/model.rb +39 -0
- data/lib/generators/gluttonberg/resource/templates/public_controller.rb +18 -0
- data/lib/generators/gluttonberg/resource/templates/public_view_index.html.haml +13 -0
- data/lib/generators/gluttonberg/resource/templates/public_view_show.html.haml +7 -0
- data/lib/gluttonberg/authorizable.rb +51 -0
- data/lib/gluttonberg/can_flag/rails_commands.rb +30 -0
- data/lib/gluttonberg/can_flag.rb +93 -0
- data/lib/gluttonberg/components.rb +62 -0
- data/lib/gluttonberg/content/block.rb +147 -0
- data/lib/gluttonberg/content/block_localization.rb +38 -0
- data/lib/gluttonberg/content/clean_html.rb +74 -0
- data/lib/gluttonberg/content/import_export_csv.rb +201 -0
- data/lib/gluttonberg/content/localization.rb +238 -0
- data/lib/gluttonberg/content/publishable.rb +90 -0
- data/lib/gluttonberg/content/slug_management.rb +88 -0
- data/lib/gluttonberg/content/versioning.rb +43 -0
- data/lib/gluttonberg/content/workflow.rb +68 -0
- data/lib/gluttonberg/content.rb +66 -0
- data/lib/gluttonberg/drag_tree/action_controller.rb +61 -0
- data/lib/gluttonberg/drag_tree/action_view.rb +60 -0
- data/lib/gluttonberg/drag_tree/active_record.rb +96 -0
- data/lib/gluttonberg/drag_tree.rb +122 -0
- data/lib/gluttonberg/extensions/array.rb +13 -0
- data/lib/gluttonberg/extensions/kernel.rb +5 -0
- data/lib/gluttonberg/extensions.rb +4 -0
- data/lib/gluttonberg/helpers/form_builder.rb +57 -0
- data/lib/gluttonberg/helpers.rb +20 -0
- data/lib/gluttonberg/library/attachment_mixin.rb +380 -0
- data/lib/gluttonberg/library/quick_magick/image.rb +471 -0
- data/lib/gluttonberg/library/quick_magick/image_list.rb +65 -0
- data/lib/gluttonberg/library/quick_magick.rb +205 -0
- data/lib/gluttonberg/library.rb +151 -0
- data/lib/gluttonberg/middleware/honeypot.rb +23 -0
- data/lib/gluttonberg/middleware/locales.rb +39 -0
- data/lib/gluttonberg/middleware/rewriter.rb +34 -0
- data/lib/gluttonberg/middleware.rb +5 -0
- data/lib/gluttonberg/page_description.rb +284 -0
- data/lib/gluttonberg/record_history.rb +95 -0
- data/lib/gluttonberg/tasks/asset.rake +48 -0
- data/lib/gluttonberg/tasks/gluttonberg.rake +59 -0
- data/lib/gluttonberg/templates.rb +12 -0
- data/lib/gluttonberg/version.rb +3 -0
- data/lib/gluttonberg.rb +47 -0
- data/lib/pagination_list_link_renderer.rb +67 -0
- data/lib/rails/railties/tasks.rake +3 -0
- data/lib/version.rb +3 -0
- metadata +1012 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
module Gluttonberg
|
|
2
|
+
module Library
|
|
3
|
+
# Define quick magick error
|
|
4
|
+
module QuickMagick
|
|
5
|
+
class QuickMagickError < RuntimeError; end
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
# check if ImageMagick is installed
|
|
9
|
+
begin
|
|
10
|
+
x = `identify -version 2>&1`
|
|
11
|
+
raise(QuickMagick::QuickMagickError, "ImageMagick not installed") unless x.index('ImageMagick')
|
|
12
|
+
rescue Errno::ENOENT
|
|
13
|
+
# For Windows machines
|
|
14
|
+
raise(QuickMagick::QuickMagickError, "ImageMagick not installed")
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
module QuickMagick
|
|
18
|
+
# Normally the attributes are treated as pixels.
|
|
19
|
+
# Use this flag when the width and height attributes represent percentages.
|
|
20
|
+
# For example, 125x75 means 125% of the height and 75% of the width.
|
|
21
|
+
# The x and y attributes are not affected by this flag.
|
|
22
|
+
PercentGeometry = "%"
|
|
23
|
+
|
|
24
|
+
# Use this flag when you want to force the new image to have exactly the size specified by the the width and height attributes.
|
|
25
|
+
AspectGeometry = "!"
|
|
26
|
+
|
|
27
|
+
# Use this flag when you want to change the size of the image only if both its width and height
|
|
28
|
+
# are smaller the values specified by those attributes. The image size is changed proportionally.
|
|
29
|
+
LessGeometry = "<"
|
|
30
|
+
|
|
31
|
+
# Use this flag when you want to change the size of the image if either its width and height
|
|
32
|
+
# exceed the values specified by those attributes. The image size is changed proportionally.
|
|
33
|
+
GreaterGeometry = ">"
|
|
34
|
+
|
|
35
|
+
# This flag is useful only with a single width attribute.
|
|
36
|
+
# When present, it means the width attribute represents the total area of the image in pixels.
|
|
37
|
+
AreaGeometry = "@"
|
|
38
|
+
|
|
39
|
+
# Use ^ to set a minimum image size limit.
|
|
40
|
+
# The geometry 640x480^, for example, means the image width will not be less than 640 and
|
|
41
|
+
# the image height will not be less than 480 pixels after the resize.
|
|
42
|
+
# One of those dimensions will match the requested size,
|
|
43
|
+
# but the image will likely overflow the space requested to preserve its aspect ratio.
|
|
44
|
+
MinimumGeometry = "^"
|
|
45
|
+
|
|
46
|
+
# Command for solid color
|
|
47
|
+
SolidColor = "xc"
|
|
48
|
+
# Command for linear gradient
|
|
49
|
+
LinearGradient = "gradient"
|
|
50
|
+
# Command for radial gradient
|
|
51
|
+
RadialGradient = "radial-gradient"
|
|
52
|
+
|
|
53
|
+
# Different possible patterns
|
|
54
|
+
Patterns = %w{bricks checkerboard circles crosshatch crosshatch30 crosshatch45 fishscales} +
|
|
55
|
+
(0..20).collect {|level| "gray#{level}" } +
|
|
56
|
+
%w{hexagons horizontal horizontalsaw hs_bdiagonal hs_cross hs_diagcross hs_fdiagonal hs_horizontal
|
|
57
|
+
hs_vertical left30 left45 leftshingle octagons right30 right45 rightshingle smallfishscales
|
|
58
|
+
vertical verticalbricks verticalleftshingle verticalrightshingle verticalsaw}
|
|
59
|
+
|
|
60
|
+
%w{NorthWest North NorthEast West Center East SouthWest South SouthEast}.each do |gravity_type|
|
|
61
|
+
const_set gravity_type+"Gravity", gravity_type
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class << self
|
|
66
|
+
# Generate a random string of specified length.
|
|
67
|
+
# Used to generate random names for temp files
|
|
68
|
+
def random_string(length=10)
|
|
69
|
+
@@CHARS ||= ("a".."z").to_a + ("1".."9").to_a
|
|
70
|
+
Array.new(length, '').collect{@@CHARS[rand(@@CHARS.size)]}.join
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# Encodes a geometry string with the given options
|
|
74
|
+
def geometry(width, height=nil, x=nil, y=nil, flag=nil)
|
|
75
|
+
geometry_string = ""
|
|
76
|
+
geometry_string << width.to_s if width
|
|
77
|
+
geometry_string << 'x' << height.to_s if height
|
|
78
|
+
geometry_string << '+' << x.to_s if x
|
|
79
|
+
geometry_string << '+' << y.to_s if y
|
|
80
|
+
geometry_string << flag if flag
|
|
81
|
+
geometry_string
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# Returns a formatted string for the color with the given components
|
|
85
|
+
# each component could take one of the following values
|
|
86
|
+
# * an integer from 0 to 255
|
|
87
|
+
# * a float from 0.0 to 1.0
|
|
88
|
+
# * a string showing percentage from "0%" to "100%"
|
|
89
|
+
def rgba_color(red, green, blue, alpha=255)
|
|
90
|
+
"#%02x%02x%02x%02x" % [red, green, blue, alpha].collect do |component|
|
|
91
|
+
case component
|
|
92
|
+
when Integer then component
|
|
93
|
+
when Float then Integer(component*255)
|
|
94
|
+
when String then Integer(component.sub('%', '')) * 255 / 100
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
alias rgb_color rgba_color
|
|
100
|
+
|
|
101
|
+
# Returns a formatted string for a gray color with the given level and alpha.
|
|
102
|
+
# level and alpha could take one of the following values
|
|
103
|
+
# * an integer from 0 to 255
|
|
104
|
+
# * a float from 0.0 to 1.0
|
|
105
|
+
# * a string showing percentage from "0%" to "100%"
|
|
106
|
+
def graya_color(level, alpha=255)
|
|
107
|
+
rgba_color(level, level, level, alpha)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
alias gray_color graya_color
|
|
111
|
+
|
|
112
|
+
# HSL colors are encoding as a triple (hue, saturation, lightness).
|
|
113
|
+
# Hue is represented as an angle of the color circle (i.e. the rainbow represented in a circle).
|
|
114
|
+
# This angle is so typically measured in degrees that the unit is implicit in CSS;
|
|
115
|
+
# syntactically, only a number is given. By definition red=0=360,
|
|
116
|
+
# and the other colors are spread around the circle, so green=120, blue=240, etc.
|
|
117
|
+
# As an angle, it implicitly wraps around such that -120=240 and 480=120, for instance.
|
|
118
|
+
# (Students of trigonometry would say that "coterminal angles are equivalent" here;
|
|
119
|
+
# an angle (theta) can be standardized by computing the equivalent angle, (theta) mod 360.)
|
|
120
|
+
#
|
|
121
|
+
# Saturation and lightness are represented as percentages.
|
|
122
|
+
# 100% is full saturation, and 0% is a shade of grey.
|
|
123
|
+
# 0% lightness is black, 100% lightness is white, and 50% lightness is 'normal'.
|
|
124
|
+
#
|
|
125
|
+
# Hue can take one of the following values:
|
|
126
|
+
# * an integer from 0...360 representing angle in degrees
|
|
127
|
+
# * a float value from 0...2*PI represeting angle in radians
|
|
128
|
+
#
|
|
129
|
+
# saturation, lightness and alpha can take one of the following values:
|
|
130
|
+
# * an integer from 0 to 255
|
|
131
|
+
# * a float from 0.0 to 1.0
|
|
132
|
+
# * a string showing percentage from "0%" to "100%"
|
|
133
|
+
def hsla_color(hue, saturation, lightness, alpha=1.0)
|
|
134
|
+
components = [case hue
|
|
135
|
+
when Integer then hue
|
|
136
|
+
when Float then Integer(hue * 360 / 2 / Math::PI)
|
|
137
|
+
end]
|
|
138
|
+
components += [saturation, lightness].collect do |component|
|
|
139
|
+
case component
|
|
140
|
+
when Integer then (component * 100.0 / 255).round
|
|
141
|
+
when Float then Integer(component*100)
|
|
142
|
+
when String then Integer(component.sub('%', ''))
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
components << case alpha
|
|
146
|
+
when Integer then alpha * 100.0 / 255
|
|
147
|
+
when Float then alpha
|
|
148
|
+
when String then Float(alpha.sub('%', '')) / 100.0
|
|
149
|
+
end
|
|
150
|
+
"hsla(%d,%d%%,%d%%,%g)" % components
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
alias hsl_color hsla_color
|
|
154
|
+
|
|
155
|
+
# Escapes possible special chracters in command line
|
|
156
|
+
# by surrounding it with double quotes
|
|
157
|
+
def escape_commandline(str)
|
|
158
|
+
str =~ /^(\w|\s|\.)*$/ ? str : "\"#{str}\""
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
alias c escape_commandline
|
|
162
|
+
|
|
163
|
+
# Execute a command line and returns its results when it suceeds
|
|
164
|
+
# When the command fails, it throws QuickMagick::QuickMagickError
|
|
165
|
+
def exec3(command)
|
|
166
|
+
error_file = Tempfile.new('error')
|
|
167
|
+
error_filepath = error_file.path
|
|
168
|
+
error_file.close
|
|
169
|
+
result = `#{command} 2>"#{error_filepath}"`
|
|
170
|
+
unless $?.success?
|
|
171
|
+
error_message = <<-ERROR
|
|
172
|
+
Error executing command: command
|
|
173
|
+
Result is: #{result}
|
|
174
|
+
Error is: #{File.read(error_filepath)}
|
|
175
|
+
ERROR
|
|
176
|
+
raise QuickMagick::QuickMagickError, error_message
|
|
177
|
+
end
|
|
178
|
+
result
|
|
179
|
+
end
|
|
180
|
+
end
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
# For backward compatibility with ruby < 1.8.7
|
|
184
|
+
unless "".respond_to? :start_with?
|
|
185
|
+
class String
|
|
186
|
+
def start_with?(x)
|
|
187
|
+
self.index(x) == 0
|
|
188
|
+
end
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
unless "".respond_to? :end_with?
|
|
193
|
+
class String
|
|
194
|
+
def end_with?(x)
|
|
195
|
+
self.index(x) == self.length - 1
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
library = Pathname(__FILE__).dirname.expand_path
|
|
202
|
+
require File.join(library, "quick_magick/image")
|
|
203
|
+
require File.join(library, "quick_magick/image_list")
|
|
204
|
+
end # asset_library
|
|
205
|
+
end #Gluttonberg
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
library = Pathname(__FILE__).dirname.expand_path
|
|
2
|
+
require File.join(library, "library", "attachment_mixin")
|
|
3
|
+
require File.join(library, "library", "quick_magick")
|
|
4
|
+
|
|
5
|
+
module Gluttonberg
|
|
6
|
+
# The library module encapsulates the few bits of functionality that lives
|
|
7
|
+
# outside of the library models and controllers. It contains some
|
|
8
|
+
# configuration details and is responsible for bootstrapping the various bits
|
|
9
|
+
# of meta-data used when categorising uploaded assets.
|
|
10
|
+
|
|
11
|
+
module Library
|
|
12
|
+
UNCATEGORISED_CATEGORY = 'uncategorised'
|
|
13
|
+
|
|
14
|
+
@@assets_root = nil
|
|
15
|
+
@@test_assets_root = nil
|
|
16
|
+
|
|
17
|
+
def self.bootstrap
|
|
18
|
+
build_default_asset_types
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Is run when the slice is loaded. It makes sure that all the required
|
|
22
|
+
# directories for storing assets are in the public dir, creating them if
|
|
23
|
+
# they are missing. It also stores the various paths so they can be
|
|
24
|
+
# retreived using the assets_dir method.
|
|
25
|
+
def self.setup
|
|
26
|
+
#logger.info("AssetLibrary is checking for asset folder")
|
|
27
|
+
@@assets_root = "public/user_assets"
|
|
28
|
+
@@test_assets_root = "public/test_assets"
|
|
29
|
+
FileUtils.mkdir(root) unless File.exists?(root) || File.symlink?(root)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Returns the path to the directory where assets are stored.
|
|
33
|
+
def self.root
|
|
34
|
+
if ::Rails.env == "test"
|
|
35
|
+
@@test_assets_root
|
|
36
|
+
else
|
|
37
|
+
@@assets_root
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# This method is mainly for administrative purposes. It will rebuild the
|
|
42
|
+
# table of asset types, then recategorise each asset.
|
|
43
|
+
def self.rebuild
|
|
44
|
+
Asset.clear_all_asset_types
|
|
45
|
+
flush_asset_types
|
|
46
|
+
build_default_asset_types
|
|
47
|
+
Asset.refresh_all_asset_types
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Removes and re-adds all asset types.
|
|
51
|
+
def self.flush_asset_types
|
|
52
|
+
AssetType.all.each{|asset_type| asset_type.destroy}
|
|
53
|
+
AssetMimeType.all.each{|asset_mime_type| asset_mime_type.destroy}
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# Adds a the inbuilt asset types to the database.
|
|
57
|
+
def self.build_default_asset_types
|
|
58
|
+
begin
|
|
59
|
+
# ensure that all the categories exist
|
|
60
|
+
AssetCategory.build_defaults
|
|
61
|
+
ensure_type('Unknown Image', 'image', AssetCategory.image_category)
|
|
62
|
+
ensure_type('Unknown Video', 'video', AssetCategory.video_category)
|
|
63
|
+
ensure_type('Unknown Audio', 'audio', AssetCategory.audio_category)
|
|
64
|
+
ensure_type('Unknown File', 'multi-part model message unknown', AssetCategory.uncategorised_category)
|
|
65
|
+
|
|
66
|
+
ensure_type('Jpeg Image', 'image/jpeg image/pjpeg', AssetCategory.image_category)
|
|
67
|
+
ensure_type('Gif Image', 'image/gif', AssetCategory.image_category)
|
|
68
|
+
ensure_type('Png Image', 'image/png', AssetCategory.image_category)
|
|
69
|
+
ensure_type('Tiff Image', 'image/tiff', AssetCategory.image_category)
|
|
70
|
+
ensure_type('Adobe Photoshop Image', 'image/vnd.adobe.photoshop', AssetCategory.image_category)
|
|
71
|
+
ensure_type('Autocad Image', 'image/vnd.dwg', AssetCategory.image_category)
|
|
72
|
+
ensure_type('Autocad Image', 'image/vnd.dxf', AssetCategory.image_category)
|
|
73
|
+
ensure_type('Icon Image', 'image/vnd.microsoft.icon', AssetCategory.image_category)
|
|
74
|
+
ensure_type('Bitmap Image', 'image/x-bmp image/bmp image/x-win-bmp', AssetCategory.image_category)
|
|
75
|
+
ensure_type('Paintshop Pro Image', 'image/x-paintshoppro', AssetCategory.image_category)
|
|
76
|
+
ensure_type('Mobile Image (plb,psb,pvb)', 'application/vnd.3gpp.pic-bw-large application/vnd.3gpp.pic-bw-small application/vnd.3gpp.pic-bw-var', AssetCategory.image_category)
|
|
77
|
+
|
|
78
|
+
ensure_type('Moile Audio (3gpp,3gpp2)', 'audio/3gpp audio/3gpp2', AssetCategory.audio_category)
|
|
79
|
+
ensure_type('Dolby Digital Audio (ac3)', 'audio/ac3', AssetCategory.audio_category)
|
|
80
|
+
ensure_type('Mpeg Audio (mpga,mp2,mp3,mp4,mpa)', 'audio/mpeg audio/mpeg4-generic audio/mp4 audio/mpa-robust', AssetCategory.audio_category) # @mpga,mp2,mp3
|
|
81
|
+
ensure_type('Aiff Audio (aif,aifc,aiff)', 'audio/x-aiff', AssetCategory.audio_category)
|
|
82
|
+
ensure_type('Midi Audio (mid,midi,kar)', 'audio/x-midi', AssetCategory.audio_category)
|
|
83
|
+
ensure_type('Real Audio (rm,ram,ra)', 'audio/x-pn-realaudio audio/x-realaudio', AssetCategory.audio_category)
|
|
84
|
+
ensure_type('Wav Audio (wav)', 'audio/x-wav', AssetCategory.audio_category)
|
|
85
|
+
ensure_type('Ogg Vorbis Audio (ogg)', 'application/ogg', AssetCategory.audio_category)
|
|
86
|
+
|
|
87
|
+
ensure_type('Mobile Video', 'video/3gpp video/3gpp-tt video/3gpp2', AssetCategory.video_category) # @3gp,3gpp 'RFC3839,DRAFT:draft-gellens-mime-bucket
|
|
88
|
+
ensure_type('Digital Video', 'video/DV', AssetCategory.video_category) # RFC3189
|
|
89
|
+
ensure_type('Compressed Video', 'application/mpeg4-iod-xmt application/mpeg4-iod application/mpeg4-generic video/mp4 application/mp4 video/MPV video/mpeg4-generic video/mpeg video/MP2T video/H261 video/H263 video/H263-1998 video/H263-2000 video/H264 video/MP1S video/MP2P', AssetCategory.video_category) # RFC3555
|
|
90
|
+
ensure_type('Jpeg Video', 'video/JPEG video/MJ2', AssetCategory.video_category) # RFC3555
|
|
91
|
+
ensure_type('Quicktime Video', 'video/quicktime', AssetCategory.video_category)
|
|
92
|
+
ensure_type('Uncompressed Video', 'video/raw', AssetCategory.video_category)
|
|
93
|
+
ensure_type('Mpeg Playlist (mxu,m4u)', 'video/vnd.mpegurl', AssetCategory.video_category)
|
|
94
|
+
ensure_type('Avi Video (avi)', 'video/x-msvideo', AssetCategory.video_category)
|
|
95
|
+
ensure_type('Flash Video', 'video/x-flv', AssetCategory.video_category)
|
|
96
|
+
|
|
97
|
+
ensure_type('M4v Video', 'video/x-m4v', AssetCategory.video_category)
|
|
98
|
+
|
|
99
|
+
#document category
|
|
100
|
+
ensure_type('Generic Document', 'application/x-csh application/x-dvi application/oda application/pgp-encrypted application/pgp-keys application/pgp-signature', AssetCategory.document_category)
|
|
101
|
+
ensure_type('Calendar Document', 'text/calendar text/x-vcalendar', AssetCategory.document_category)
|
|
102
|
+
ensure_type('Comma Seperated Values Document (csv)', 'text/csv text/comma-separated-values', AssetCategory.document_category)
|
|
103
|
+
ensure_type('Tab Seperated Values Text Document', 'text/tab-separated-values', AssetCategory.document_category)
|
|
104
|
+
ensure_type('Web Document', 'text/html', AssetCategory.document_category)
|
|
105
|
+
ensure_type('Plain Text Document', 'text/plain', AssetCategory.document_category)
|
|
106
|
+
ensure_type('Rich Text Document', 'text/richtext text/rtf', AssetCategory.document_category)
|
|
107
|
+
ensure_type('Sgml Document', 'text/sgml', AssetCategory.document_category)
|
|
108
|
+
ensure_type('Wap Document', 'text/vnd.wap.wml text/vnd.wap.wmlscript', AssetCategory.document_category)
|
|
109
|
+
ensure_type('XML Document', 'text/xml text/xml-external-parsed-entity', AssetCategory.document_category)
|
|
110
|
+
ensure_type('V-Card Document (vcf)', 'text/x-vcard', AssetCategory.document_category)
|
|
111
|
+
ensure_type('Apple Macintosh Document (hqx)', 'application/mac-binhex40', AssetCategory.document_category)
|
|
112
|
+
ensure_type('Adobe Acrobat Document (pdf)', 'application/pdf', AssetCategory.document_category)
|
|
113
|
+
ensure_type('Microsoft Word Document (doc,dot,docx)', 'application/msword application/word', AssetCategory.document_category)
|
|
114
|
+
ensure_type('Microsoft Powerpoint Document (ppt,pps,pot,pptx)', 'application/vnd.ms-powerpoint application/powerpoint', AssetCategory.document_category)
|
|
115
|
+
ensure_type('Microsoft Excel Document (xls,xlt,xlsx)', 'application/vnd.ms-excel application/excel', AssetCategory.document_category)
|
|
116
|
+
ensure_type('Microsoft Works Document', 'application/vnd.ms-works', AssetCategory.document_category)
|
|
117
|
+
ensure_type('Microsoft Project Document (mpp)', 'application/vnd.ms-project', AssetCategory.document_category)
|
|
118
|
+
ensure_type('Microsoft Visio Document (vsd,vst,vsw,vss)', 'application/vnd.visio', AssetCategory.document_category)
|
|
119
|
+
ensure_type('HTML Help Document (chm)', 'application/x-chm', AssetCategory.document_category)
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
rescue => e
|
|
123
|
+
puts "asset library init fails."
|
|
124
|
+
puts e
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
private
|
|
130
|
+
|
|
131
|
+
# Makes sure the specified type exists in the DB, if it doesn’t it creates
|
|
132
|
+
# a new record.
|
|
133
|
+
def self.ensure_type(name, mime_type, category)
|
|
134
|
+
asset_type = AssetType.first( :conditions => "name = '#{name}'" )
|
|
135
|
+
if asset_type then
|
|
136
|
+
asset_type.asset_category = category
|
|
137
|
+
else
|
|
138
|
+
asset_type = AssetType.new(:name => name, :asset_category => category)
|
|
139
|
+
end
|
|
140
|
+
mime_type.split(' ').each do |this_mime_type|
|
|
141
|
+
asset_mime_type = AssetMimeType.new(:mime_type => this_mime_type)
|
|
142
|
+
asset_type.asset_mime_types << asset_mime_type
|
|
143
|
+
asset_mime_type.save
|
|
144
|
+
end
|
|
145
|
+
asset_type.save
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
end # Library
|
|
151
|
+
end # Gluttonberg
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Gluttonberg
|
|
2
|
+
module Middleware
|
|
3
|
+
class Honeypot
|
|
4
|
+
|
|
5
|
+
def initialize(app, field_name)
|
|
6
|
+
@app = app
|
|
7
|
+
@field_name = field_name
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def call(env)
|
|
11
|
+
form_hash = env["rack.request.form_hash"]
|
|
12
|
+
|
|
13
|
+
if form_hash && form_hash[@field_name] =~ /\S/
|
|
14
|
+
[200, {'Content-Type' => 'text/html', "Content-Length" => "0"}, []]
|
|
15
|
+
else
|
|
16
|
+
@app.call(env)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
end # Middleware
|
|
22
|
+
end # Gluttonberg
|
|
23
|
+
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module Gluttonberg
|
|
2
|
+
module Middleware
|
|
3
|
+
class Locales
|
|
4
|
+
def initialize(app)
|
|
5
|
+
@app = app
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def call(env)
|
|
9
|
+
path = env['PATH_INFO']
|
|
10
|
+
unless path =~ /^#{Gluttonberg::Engine.config.admin_path}/ || path.start_with?("/stylesheets") || path.start_with?("/javascripts") || path.start_with?("/images") || path.start_with?("/gluttonberg") || path.start_with?("/assets") || path.start_with?("/user_asset")
|
|
11
|
+
case Gluttonberg::Engine.config.identify_locale
|
|
12
|
+
when :subdomain
|
|
13
|
+
# return the sub-domain
|
|
14
|
+
when :prefix
|
|
15
|
+
if Gluttonberg.localized?
|
|
16
|
+
locale = path.split('/')[1]
|
|
17
|
+
if locale.blank?
|
|
18
|
+
result = Gluttonberg::Locale.first_default
|
|
19
|
+
else
|
|
20
|
+
result = Gluttonberg::Locale.find_by_locale(locale)
|
|
21
|
+
end
|
|
22
|
+
else # take default locale
|
|
23
|
+
result = Gluttonberg::Locale.first_default
|
|
24
|
+
locale = result.slug
|
|
25
|
+
end
|
|
26
|
+
if result
|
|
27
|
+
env['PATH_INFO'].gsub!("/#{locale}", '')
|
|
28
|
+
env['gluttonberg.locale'] = result
|
|
29
|
+
end
|
|
30
|
+
when :domain
|
|
31
|
+
env['SERVER_NAME']
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
@app.call(env)
|
|
35
|
+
end
|
|
36
|
+
end # Locales
|
|
37
|
+
end # Middleware
|
|
38
|
+
end # Gluttonberg
|
|
39
|
+
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
module Gluttonberg
|
|
2
|
+
module Middleware
|
|
3
|
+
class Rewriter
|
|
4
|
+
def initialize(app)
|
|
5
|
+
@app = app
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def call(env)
|
|
9
|
+
path = env['PATH_INFO']
|
|
10
|
+
unless path =~ /^#{Gluttonberg::Engine.config.admin_path}/ || path.start_with?("/assets/") || path.start_with?("/user_asset/")
|
|
11
|
+
page = Gluttonberg::Page.find_by_path(path, env['gluttonberg.locale'] , env['HTTP_HOST'])
|
|
12
|
+
unless page.blank?
|
|
13
|
+
env['gluttonberg.page'] = page
|
|
14
|
+
env['gluttonberg.path_info'] = path
|
|
15
|
+
if page.redirect_required?
|
|
16
|
+
return [301, {"Location" => page.redirect_url}, ["This resource has permanently moved to #{page.redirect_url}"]]
|
|
17
|
+
elsif page.rewrite_required?
|
|
18
|
+
env['PATH_INFO'] = page.generate_rewrite_path(path)
|
|
19
|
+
else
|
|
20
|
+
env['PATH_INFO'] = '/_public/page'
|
|
21
|
+
end
|
|
22
|
+
else
|
|
23
|
+
page = Gluttonberg::Page.find_by_previous_path(path, env['gluttonberg.locale'] , env['HTTP_HOST'])
|
|
24
|
+
unless page.blank?
|
|
25
|
+
return [301, {"Location" => page.current_localization.path}, ["This resource has permanently moved to #{page.current_localization.path}"]]
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
@app.call(env)
|
|
31
|
+
end
|
|
32
|
+
end # Rewriter
|
|
33
|
+
end # Middleware
|
|
34
|
+
end # Gluttonberg
|