muck-contents 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +5 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +112 -0
- data/Rakefile +101 -0
- data/VERSION +1 -0
- data/app/controllers/admin/muck/contents_controller.rb +15 -0
- data/app/controllers/muck/contents_controller.rb +186 -0
- data/app/helpers/muck_contents_helper.rb +22 -0
- data/app/views/admin/contents/index.html.erb +28 -0
- data/app/views/contents/_admin.html.erb +7 -0
- data/app/views/contents/_form.html.erb +13 -0
- data/app/views/contents/edit.html.erb +6 -0
- data/app/views/contents/new.html.erb +5 -0
- data/app/views/contents/show.html.erb +5 -0
- data/config/muck_contents_routes.rb +8 -0
- data/db/migrate/20090703055724_add_contents.rb +49 -0
- data/db/migrate/20090806230610_add_layout_to_contents.rb +9 -0
- data/db/migrate/20090808005918_add_scope_index_to_slugs.rb +9 -0
- data/db/migrate/20090808175401_add_contents_comment_counter_cache.rb +9 -0
- data/lib/action_controller/acts/muck_content_handler.rb +84 -0
- data/lib/active_record/acts/muck_content.rb +313 -0
- data/lib/active_record/acts/muck_content_permission.rb +38 -0
- data/lib/active_record/acts/muck_content_translation.rb +40 -0
- data/lib/muck_contents/initialize_routes.rb +8 -0
- data/lib/muck_contents/tasks.rb +28 -0
- data/lib/muck_contents.rb +38 -0
- data/locales/en.yml +31 -0
- data/muck-contents.gemspec +641 -0
- data/public/javascripts/tiny_mce/langs/en.js +154 -0
- data/public/javascripts/tiny_mce/license.txt +504 -0
- data/public/javascripts/tiny_mce/plugins/advfiletoo/css/advfile.css +34 -0
- data/public/javascripts/tiny_mce/plugins/advfiletoo/editor_plugin.js +55 -0
- data/public/javascripts/tiny_mce/plugins/advfiletoo/editor_plugin_src.js +55 -0
- data/public/javascripts/tiny_mce/plugins/advfiletoo/file.htm +139 -0
- data/public/javascripts/tiny_mce/plugins/advfiletoo/img/upload.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/advfiletoo/js/functions.js +286 -0
- data/public/javascripts/tiny_mce/plugins/advfiletoo/langs/en_dlg.js +48 -0
- data/public/javascripts/tiny_mce/plugins/advhr/css/advhr.css +5 -0
- data/public/javascripts/tiny_mce/plugins/advhr/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/advhr/editor_plugin_src.js +54 -0
- data/public/javascripts/tiny_mce/plugins/advhr/js/rule.js +43 -0
- data/public/javascripts/tiny_mce/plugins/advhr/langs/en_dlg.js +5 -0
- data/public/javascripts/tiny_mce/plugins/advhr/rule.htm +63 -0
- data/public/javascripts/tiny_mce/plugins/advimage/css/advimage.css +13 -0
- data/public/javascripts/tiny_mce/plugins/advimage/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/advimage/editor_plugin_src.js +47 -0
- data/public/javascripts/tiny_mce/plugins/advimage/image.htm +238 -0
- data/public/javascripts/tiny_mce/plugins/advimage/img/sample.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/advimage/js/image.js +441 -0
- data/public/javascripts/tiny_mce/plugins/advimage/langs/en_dlg.js +43 -0
- data/public/javascripts/tiny_mce/plugins/advimagetoo/css/advimage.css +32 -0
- data/public/javascripts/tiny_mce/plugins/advimagetoo/editor_plugin.js +53 -0
- data/public/javascripts/tiny_mce/plugins/advimagetoo/editor_plugin_src.js +53 -0
- data/public/javascripts/tiny_mce/plugins/advimagetoo/image.htm +303 -0
- data/public/javascripts/tiny_mce/plugins/advimagetoo/img/sample.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/advimagetoo/js/functions.js +593 -0
- data/public/javascripts/tiny_mce/plugins/advimagetoo/langs/en_dlg.js +44 -0
- data/public/javascripts/tiny_mce/plugins/advlink/css/advlink.css +8 -0
- data/public/javascripts/tiny_mce/plugins/advlink/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/advlink/editor_plugin_src.js +58 -0
- data/public/javascripts/tiny_mce/plugins/advlink/js/advlink.js +527 -0
- data/public/javascripts/tiny_mce/plugins/advlink/langs/en_dlg.js +52 -0
- data/public/javascripts/tiny_mce/plugins/advlink/link.htm +339 -0
- data/public/javascripts/tiny_mce/plugins/advlinktoo/css/advlink.css +8 -0
- data/public/javascripts/tiny_mce/plugins/advlinktoo/editor_plugin.js +58 -0
- data/public/javascripts/tiny_mce/plugins/advlinktoo/editor_plugin_src.js +58 -0
- data/public/javascripts/tiny_mce/plugins/advlinktoo/js/advlink.js +548 -0
- data/public/javascripts/tiny_mce/plugins/advlinktoo/langs/en_dlg.js +52 -0
- data/public/javascripts/tiny_mce/plugins/advlinktoo/link.htm +344 -0
- data/public/javascripts/tiny_mce/plugins/autosave/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/autosave/editor_plugin_src.js +51 -0
- data/public/javascripts/tiny_mce/plugins/bbcode/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/bbcode/editor_plugin_src.js +117 -0
- data/public/javascripts/tiny_mce/plugins/compat2x/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/compat2x/editor_plugin_src.js +616 -0
- data/public/javascripts/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js +95 -0
- data/public/javascripts/tiny_mce/plugins/directionality/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/directionality/editor_plugin_src.js +79 -0
- data/public/javascripts/tiny_mce/plugins/emotions/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/emotions/editor_plugin_src.js +40 -0
- data/public/javascripts/tiny_mce/plugins/emotions/emotions.htm +41 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-cool.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-cry.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-frown.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-smile.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-wink.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-yell.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/js/emotions.js +22 -0
- data/public/javascripts/tiny_mce/plugins/emotions/langs/en_dlg.js +20 -0
- data/public/javascripts/tiny_mce/plugins/example/dialog.htm +27 -0
- data/public/javascripts/tiny_mce/plugins/example/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/example/editor_plugin_src.js +81 -0
- data/public/javascripts/tiny_mce/plugins/example/img/example.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/example/js/dialog.js +19 -0
- data/public/javascripts/tiny_mce/plugins/example/langs/en.js +3 -0
- data/public/javascripts/tiny_mce/plugins/example/langs/en_dlg.js +3 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/css/fullpage.css +182 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/editor_plugin_src.js +142 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/fullpage.htm +577 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/js/fullpage.js +461 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/langs/en_dlg.js +85 -0
- data/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js +145 -0
- data/public/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm +111 -0
- data/public/javascripts/tiny_mce/plugins/iespell/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/iespell/editor_plugin_src.js +51 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +632 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +90 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/template.htm +387 -0
- data/public/javascripts/tiny_mce/plugins/insertdatetime/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js +80 -0
- data/public/javascripts/tiny_mce/plugins/layer/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/layer/editor_plugin_src.js +209 -0
- data/public/javascripts/tiny_mce/plugins/media/css/content.css +6 -0
- data/public/javascripts/tiny_mce/plugins/media/css/media.css +16 -0
- data/public/javascripts/tiny_mce/plugins/media/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/media/editor_plugin_src.js +374 -0
- data/public/javascripts/tiny_mce/plugins/media/img/flash.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/quicktime.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/realmedia.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/shockwave.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/trans.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/windowsmedia.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/js/embed.js +73 -0
- data/public/javascripts/tiny_mce/plugins/media/js/media.js +628 -0
- data/public/javascripts/tiny_mce/plugins/media/langs/en_dlg.js +103 -0
- data/public/javascripts/tiny_mce/plugins/media/media.htm +824 -0
- data/public/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +50 -0
- data/public/javascripts/tiny_mce/plugins/noneditable/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/noneditable/editor_plugin_src.js +87 -0
- data/public/javascripts/tiny_mce/plugins/pagebreak/css/content.css +1 -0
- data/public/javascripts/tiny_mce/plugins/pagebreak/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js +74 -0
- data/public/javascripts/tiny_mce/plugins/pagebreak/img/pagebreak.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/pagebreak/img/trans.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/paste/blank.htm +22 -0
- data/public/javascripts/tiny_mce/plugins/paste/css/blank.css +14 -0
- data/public/javascripts/tiny_mce/plugins/paste/css/pasteword.css +3 -0
- data/public/javascripts/tiny_mce/plugins/paste/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/paste/editor_plugin_src.js +394 -0
- data/public/javascripts/tiny_mce/plugins/paste/js/pastetext.js +42 -0
- data/public/javascripts/tiny_mce/plugins/paste/js/pasteword.js +56 -0
- data/public/javascripts/tiny_mce/plugins/paste/langs/en_dlg.js +5 -0
- data/public/javascripts/tiny_mce/plugins/paste/pastetext.htm +34 -0
- data/public/javascripts/tiny_mce/plugins/paste/pasteword.htm +29 -0
- data/public/javascripts/tiny_mce/plugins/preview/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/preview/editor_plugin_src.js +50 -0
- data/public/javascripts/tiny_mce/plugins/preview/example.html +28 -0
- data/public/javascripts/tiny_mce/plugins/preview/jscripts/embed.js +73 -0
- data/public/javascripts/tiny_mce/plugins/preview/preview.html +19 -0
- data/public/javascripts/tiny_mce/plugins/print/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/print/editor_plugin_src.js +31 -0
- data/public/javascripts/tiny_mce/plugins/safari/blank.htm +1 -0
- data/public/javascripts/tiny_mce/plugins/safari/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/safari/editor_plugin_src.js +545 -0
- data/public/javascripts/tiny_mce/plugins/save/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/save/editor_plugin_src.js +98 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/css/searchreplace.css +6 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js +54 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/js/searchreplace.js +126 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js +16 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/searchreplace.htm +105 -0
- data/public/javascripts/tiny_mce/plugins/spellchecker/css/content.css +1 -0
- data/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js +338 -0
- data/public/javascripts/tiny_mce/plugins/spellchecker/img/wline.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/style/css/props.css +13 -0
- data/public/javascripts/tiny_mce/plugins/style/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/style/editor_plugin_src.js +52 -0
- data/public/javascripts/tiny_mce/plugins/style/js/props.js +641 -0
- data/public/javascripts/tiny_mce/plugins/style/langs/en_dlg.js +63 -0
- data/public/javascripts/tiny_mce/plugins/style/props.htm +731 -0
- data/public/javascripts/tiny_mce/plugins/table/cell.htm +184 -0
- data/public/javascripts/tiny_mce/plugins/table/css/cell.css +17 -0
- data/public/javascripts/tiny_mce/plugins/table/css/row.css +25 -0
- data/public/javascripts/tiny_mce/plugins/table/css/table.css +13 -0
- data/public/javascripts/tiny_mce/plugins/table/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/table/editor_plugin_src.js +1115 -0
- data/public/javascripts/tiny_mce/plugins/table/js/cell.js +269 -0
- data/public/javascripts/tiny_mce/plugins/table/js/merge_cells.js +29 -0
- data/public/javascripts/tiny_mce/plugins/table/js/row.js +212 -0
- data/public/javascripts/tiny_mce/plugins/table/js/table.js +410 -0
- data/public/javascripts/tiny_mce/plugins/table/langs/en_dlg.js +74 -0
- data/public/javascripts/tiny_mce/plugins/table/merge_cells.htm +38 -0
- data/public/javascripts/tiny_mce/plugins/table/row.htm +161 -0
- data/public/javascripts/tiny_mce/plugins/table/table.htm +193 -0
- data/public/javascripts/tiny_mce/plugins/template/blank.htm +12 -0
- data/public/javascripts/tiny_mce/plugins/template/css/template.css +23 -0
- data/public/javascripts/tiny_mce/plugins/template/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/template/editor_plugin_src.js +156 -0
- data/public/javascripts/tiny_mce/plugins/template/js/template.js +106 -0
- data/public/javascripts/tiny_mce/plugins/template/langs/en_dlg.js +15 -0
- data/public/javascripts/tiny_mce/plugins/template/template.htm +39 -0
- data/public/javascripts/tiny_mce/plugins/visualchars/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/visualchars/editor_plugin_src.js +73 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/abbr.htm +149 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/acronym.htm +149 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/attributes.htm +154 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/cite.htm +149 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css +11 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/popup.css +9 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/del.htm +170 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +136 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/ins.htm +170 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js +25 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js +25 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js +123 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/cite.js +25 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/del.js +60 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js +228 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/ins.js +59 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js +32 -0
- data/public/javascripts/tiny_mce/templates/bio.htm +31 -0
- data/public/javascripts/tiny_mce/templates/country.htm +59 -0
- data/public/javascripts/tiny_mce/themes/advanced/about.htm +56 -0
- data/public/javascripts/tiny_mce/themes/advanced/anchor.htm +32 -0
- data/public/javascripts/tiny_mce/themes/advanced/charmap.htm +54 -0
- data/public/javascripts/tiny_mce/themes/advanced/color_picker.htm +76 -0
- data/public/javascripts/tiny_mce/themes/advanced/editor_template.js +1 -0
- data/public/javascripts/tiny_mce/themes/advanced/editor_template_src.js +1147 -0
- data/public/javascripts/tiny_mce/themes/advanced/image.htm +86 -0
- data/public/javascripts/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/about.js +72 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/anchor.js +37 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/charmap.js +325 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/color_picker.js +253 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/image.js +245 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/link.js +155 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/source_editor.js +62 -0
- data/public/javascripts/tiny_mce/themes/advanced/langs/en.js +62 -0
- data/public/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js +51 -0
- data/public/javascripts/tiny_mce/themes/advanced/link.htm +64 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/content.css +32 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css +114 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/ui.css +215 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css +32 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +113 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +215 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +8 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -0
- data/public/javascripts/tiny_mce/themes/advanced/source_editor.htm +32 -0
- data/public/javascripts/tiny_mce/themes/simple/editor_template.js +1 -0
- data/public/javascripts/tiny_mce/themes/simple/editor_template_src.js +85 -0
- data/public/javascripts/tiny_mce/themes/simple/img/icons.gif +0 -0
- data/public/javascripts/tiny_mce/themes/simple/langs/en.js +11 -0
- data/public/javascripts/tiny_mce/themes/simple/skins/default/content.css +25 -0
- data/public/javascripts/tiny_mce/themes/simple/skins/default/ui.css +32 -0
- data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/content.css +17 -0
- data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png +0 -0
- data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/ui.css +35 -0
- data/public/javascripts/tiny_mce/tiny_mce.js +1 -0
- data/public/javascripts/tiny_mce/tiny_mce_popup.js +294 -0
- data/public/javascripts/tiny_mce/tiny_mce_src.js +11059 -0
- data/public/javascripts/tiny_mce/utils/editable_selects.js +69 -0
- data/public/javascripts/tiny_mce/utils/form_utils.js +199 -0
- data/public/javascripts/tiny_mce/utils/mctabs.js +76 -0
- data/public/javascripts/tiny_mce/utils/validate.js +219 -0
- data/public/javascripts/tiny_mce_helper.js +73 -0
- data/rails/init.rb +24 -0
- data/tasks/muck_contents_tasks.rake +1 -0
- data/test/rails_root/.gitignore +8 -0
- data/test/rails_root/.rake_tasks +103 -0
- data/test/rails_root/Capfile +3 -0
- data/test/rails_root/Rakefile +18 -0
- data/test/rails_root/app/controllers/application_controller.rb +22 -0
- data/test/rails_root/app/controllers/contents_controller.rb +3 -0
- data/test/rails_root/app/controllers/default_controller.rb +7 -0
- data/test/rails_root/app/helpers/application_helper.rb +3 -0
- data/test/rails_root/app/models/.keep +0 -0
- data/test/rails_root/app/models/comment.rb +5 -0
- data/test/rails_root/app/models/content.rb +7 -0
- data/test/rails_root/app/models/content_permission.rb +3 -0
- data/test/rails_root/app/models/content_translation.rb +3 -0
- data/test/rails_root/app/models/user.rb +12 -0
- data/test/rails_root/app/models/user_session.rb +2 -0
- data/test/rails_root/app/views/default/index.html.erb +0 -0
- data/test/rails_root/app/views/layouts/_not_a_template.html.erb +1 -0
- data/test/rails_root/app/views/layouts/default.html.erb +26 -0
- data/test/rails_root/config/amazon_s3.yml +14 -0
- data/test/rails_root/config/boot.rb +109 -0
- data/test/rails_root/config/database.yml +19 -0
- data/test/rails_root/config/environment.rb +33 -0
- data/test/rails_root/config/environments/cucumber.rb +22 -0
- data/test/rails_root/config/environments/development.rb +19 -0
- data/test/rails_root/config/environments/production.rb +1 -0
- data/test/rails_root/config/environments/test.rb +46 -0
- data/test/rails_root/config/global_config.yml +80 -0
- data/test/rails_root/config/initializers/inflections.rb +10 -0
- data/test/rails_root/config/initializers/mime_types.rb +5 -0
- data/test/rails_root/config/initializers/requires.rb +13 -0
- data/test/rails_root/config/initializers/session_store.rb +8 -0
- data/test/rails_root/config/routes.rb +6 -0
- data/test/rails_root/db/.keep +0 -0
- data/test/rails_root/db/migrate/20090320174818_create_muck_permissions_and_roles.rb +16 -0
- data/test/rails_root/db/migrate/20090402033319_add_muck_activities.rb +36 -0
- data/test/rails_root/db/migrate/20090602041838_create_users.rb +39 -0
- data/test/rails_root/db/migrate/20090608073052_create_friends.rb +16 -0
- data/test/rails_root/db/migrate/20090613173314_create_comments.rb +24 -0
- data/test/rails_root/db/migrate/20090703055724_add_contents.rb +49 -0
- data/test/rails_root/db/migrate/20090704220055_create_slugs.rb +18 -0
- data/test/rails_root/db/migrate/20090704220120_acts_as_taggable_on_migration.rb +29 -0
- data/test/rails_root/db/migrate/20090730154102_allow_null_user.rb +9 -0
- data/test/rails_root/db/migrate/20090806230610_add_layout_to_contents.rb +9 -0
- data/test/rails_root/db/migrate/20090808005918_add_scope_index_to_slugs.rb +9 -0
- data/test/rails_root/db/migrate/20090808175401_add_contents_comment_counter_cache.rb +9 -0
- data/test/rails_root/db/schema.rb +186 -0
- data/test/rails_root/features/step_definitions/common_steps.rb +99 -0
- data/test/rails_root/features/step_definitions/content_steps.rb +15 -0
- data/test/rails_root/features/step_definitions/webrat_steps.rb +128 -0
- data/test/rails_root/features/support/env.rb +49 -0
- data/test/rails_root/features/support/paths.rb +27 -0
- data/test/rails_root/features/view_contents.feature +29 -0
- data/test/rails_root/lib/tasks/cucumber.rake +20 -0
- data/test/rails_root/public/.htaccess +40 -0
- data/test/rails_root/public/404.html +30 -0
- data/test/rails_root/public/422.html +30 -0
- data/test/rails_root/public/500.html +30 -0
- data/test/rails_root/public/dispatch.rb +10 -0
- data/test/rails_root/public/favicon.ico +0 -0
- data/test/rails_root/public/images/arrow_left.gif +0 -0
- data/test/rails_root/public/images/arrow_right.gif +0 -0
- data/test/rails_root/public/images/icons/accept.png +0 -0
- data/test/rails_root/public/images/icons/add.png +0 -0
- data/test/rails_root/public/images/icons/delete.png +0 -0
- data/test/rails_root/public/images/icons/vote.png +0 -0
- data/test/rails_root/public/images/loading.gif +0 -0
- data/test/rails_root/public/images/profile_default.jpg +0 -0
- data/test/rails_root/public/images/rails.png +0 -0
- data/test/rails_root/public/images/spinner.gif +0 -0
- data/test/rails_root/public/images/sprites.png +0 -0
- data/test/rails_root/public/javascripts/application.js +2 -0
- data/test/rails_root/public/javascripts/builder.js +136 -0
- data/test/rails_root/public/javascripts/controls.js +963 -0
- data/test/rails_root/public/javascripts/dragdrop.js +972 -0
- data/test/rails_root/public/javascripts/effects.js +1120 -0
- data/test/rails_root/public/javascripts/fancyzoom.min.js +1 -0
- data/test/rails_root/public/javascripts/jquery/jquery-ui.js +273 -0
- data/test/rails_root/public/javascripts/jquery/jquery.form.js +637 -0
- data/test/rails_root/public/javascripts/jquery/jquery.jgrowl.js +2 -0
- data/test/rails_root/public/javascripts/jquery/jquery.js +19 -0
- data/test/rails_root/public/javascripts/jquery/jquery.tips.js +69 -0
- data/test/rails_root/public/javascripts/muck.js +76 -0
- data/test/rails_root/public/javascripts/muck_activities.js +108 -0
- data/test/rails_root/public/javascripts/prototype.js +4225 -0
- data/test/rails_root/public/javascripts/scriptaculous.js +58 -0
- data/test/rails_root/public/javascripts/slider.js +277 -0
- data/test/rails_root/public/javascripts/sound.js +60 -0
- data/test/rails_root/public/robots.txt +1 -0
- data/test/rails_root/public/stylesheets/.keep +0 -0
- data/test/rails_root/public/stylesheets/admin.css +12 -0
- data/test/rails_root/public/stylesheets/blueprint/ie.css +26 -0
- data/test/rails_root/public/stylesheets/blueprint/liquid_screen.css +203 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/icons/cross.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/icons/key.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/icons/tick.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/readme.txt +32 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/buttons/screen.css +97 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/fancy-type/readme.txt +14 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/fancy-type/screen.css +71 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/doc.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/email.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/external.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/feed.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/im.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/pdf.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/visited.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/icons/xls.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/readme.txt +18 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/link-icons/screen.css +40 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/liquid/liquid.css +134 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/liquid/src/liquid.css +197 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/rtl/readme.txt +10 -0
- data/test/rails_root/public/stylesheets/blueprint/plugins/rtl/screen.css +109 -0
- data/test/rails_root/public/stylesheets/blueprint/print.css +30 -0
- data/test/rails_root/public/stylesheets/blueprint/screen.css +251 -0
- data/test/rails_root/public/stylesheets/blueprint/sprite.css +1 -0
- data/test/rails_root/public/stylesheets/blueprint/src/forms.css +49 -0
- data/test/rails_root/public/stylesheets/blueprint/src/grid.css +213 -0
- data/test/rails_root/public/stylesheets/blueprint/src/grid.png +0 -0
- data/test/rails_root/public/stylesheets/blueprint/src/ie.css +59 -0
- data/test/rails_root/public/stylesheets/blueprint/src/print.css +85 -0
- data/test/rails_root/public/stylesheets/blueprint/src/reset.css +38 -0
- data/test/rails_root/public/stylesheets/blueprint/src/typography.css +105 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_diagonals-small_0_aaaaaa_40x40.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_diagonals-thick_15_444444_40x40.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_100_f0f0f0_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_50_99c2ff_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_55_fbf5d0_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_80_e6e6e6_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-bg_highlight-soft_100_e7eef3_1x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_222222_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_2694e8_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_2e83ff_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_72a7cf_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_888888_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/images/ui-icons_ffffff_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/cupertino/jquery-ui-1.7.1.custom.css +404 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_217bc0_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_2e83ff_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_469bdd_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_6da8d5_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_d8e7f3_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/images/ui-icons_f9bd01_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/redmond/jquery-ui-1.7.1.custom.css +404 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/smoothness/jquery-ui-1.7.1.custom.css +404 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
- data/test/rails_root/public/stylesheets/jquery/ui-lightness/jquery-ui-1.7.1.custom.css +404 -0
- data/test/rails_root/public/stylesheets/reset.css +0 -0
- data/test/rails_root/public/stylesheets/styles.css +79 -0
- data/test/rails_root/script/about +3 -0
- data/test/rails_root/script/breakpointer +3 -0
- data/test/rails_root/script/console +3 -0
- data/test/rails_root/script/create_project.rb +52 -0
- data/test/rails_root/script/cucumber +8 -0
- data/test/rails_root/script/dbconsole +3 -0
- data/test/rails_root/script/destroy +3 -0
- data/test/rails_root/script/generate +3 -0
- data/test/rails_root/script/performance/benchmarker +3 -0
- data/test/rails_root/script/performance/profiler +3 -0
- data/test/rails_root/script/performance/request +3 -0
- data/test/rails_root/script/plugin +3 -0
- data/test/rails_root/script/process/inspector +3 -0
- data/test/rails_root/script/process/reaper +3 -0
- data/test/rails_root/script/process/spawner +3 -0
- data/test/rails_root/script/runner +3 -0
- data/test/rails_root/script/server +3 -0
- data/test/rails_root/test/factories.rb +139 -0
- data/test/rails_root/test/functional/.keep +0 -0
- data/test/rails_root/test/functional/contents_controller_test.rb +41 -0
- data/test/rails_root/test/integration/.keep +0 -0
- data/test/rails_root/test/mocks/development/.keep +0 -0
- data/test/rails_root/test/mocks/test/.keep +0 -0
- data/test/rails_root/test/shoulda_macros/controller.rb +49 -0
- data/test/rails_root/test/shoulda_macros/forms.rb +32 -0
- data/test/rails_root/test/shoulda_macros/models.rb +50 -0
- data/test/rails_root/test/shoulda_macros/pagination.rb +53 -0
- data/test/rails_root/test/shoulda_macros/plugins.rb +34 -0
- data/test/rails_root/test/test_helper.rb +55 -0
- data/test/rails_root/test/unit/.keep +0 -0
- data/test/rails_root/test/unit/content_permission_test.rb +30 -0
- data/test/rails_root/test/unit/content_test.rb +289 -0
- data/test/rails_root/test/unit/content_translation_test.rb +35 -0
- data/test/rails_root/test/unit/user_test.rb +12 -0
- data/test/rails_root/vendor/plugins/ssl_requirement/README +43 -0
- data/test/rails_root/vendor/plugins/ssl_requirement/lib/ssl_requirement.rb +62 -0
- data/test/rails_root/vendor/plugins/ssl_requirement/test/ssl_requirement_test.rb +132 -0
- data/test/rails_root/vendor/plugins/validation_reflection/CHANGELOG +24 -0
- data/test/rails_root/vendor/plugins/validation_reflection/LICENSE +20 -0
- data/test/rails_root/vendor/plugins/validation_reflection/README +64 -0
- data/test/rails_root/vendor/plugins/validation_reflection/Rakefile +22 -0
- data/test/rails_root/vendor/plugins/validation_reflection/about.yml +7 -0
- data/test/rails_root/vendor/plugins/validation_reflection/init.rb +8 -0
- data/test/rails_root/vendor/plugins/validation_reflection/lib/boiler_plate/validation_reflection.rb +129 -0
- data/test/rails_root/vendor/plugins/validation_reflection/test/test_helper.rb +36 -0
- data/test/rails_root/vendor/plugins/validation_reflection/test/validation_reflection_test.rb +126 -0
- metadata +705 -0
@@ -0,0 +1,73 @@
|
|
1
|
+
/**
|
2
|
+
* This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.
|
3
|
+
*/
|
4
|
+
|
5
|
+
function writeFlash(p) {
|
6
|
+
writeEmbed(
|
7
|
+
'D27CDB6E-AE6D-11cf-96B8-444553540000',
|
8
|
+
'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
|
9
|
+
'application/x-shockwave-flash',
|
10
|
+
p
|
11
|
+
);
|
12
|
+
}
|
13
|
+
|
14
|
+
function writeShockWave(p) {
|
15
|
+
writeEmbed(
|
16
|
+
'166B1BCA-3F9C-11CF-8075-444553540000',
|
17
|
+
'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
|
18
|
+
'application/x-director',
|
19
|
+
p
|
20
|
+
);
|
21
|
+
}
|
22
|
+
|
23
|
+
function writeQuickTime(p) {
|
24
|
+
writeEmbed(
|
25
|
+
'02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
|
26
|
+
'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
|
27
|
+
'video/quicktime',
|
28
|
+
p
|
29
|
+
);
|
30
|
+
}
|
31
|
+
|
32
|
+
function writeRealMedia(p) {
|
33
|
+
writeEmbed(
|
34
|
+
'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
|
35
|
+
'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
|
36
|
+
'audio/x-pn-realaudio-plugin',
|
37
|
+
p
|
38
|
+
);
|
39
|
+
}
|
40
|
+
|
41
|
+
function writeWindowsMedia(p) {
|
42
|
+
p.url = p.src;
|
43
|
+
writeEmbed(
|
44
|
+
'6BF52A52-394A-11D3-B153-00C04F79FAA6',
|
45
|
+
'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
|
46
|
+
'application/x-mplayer2',
|
47
|
+
p
|
48
|
+
);
|
49
|
+
}
|
50
|
+
|
51
|
+
function writeEmbed(cls, cb, mt, p) {
|
52
|
+
var h = '', n;
|
53
|
+
|
54
|
+
h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
|
55
|
+
h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';
|
56
|
+
h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';
|
57
|
+
h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';
|
58
|
+
h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';
|
59
|
+
h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';
|
60
|
+
h += '>';
|
61
|
+
|
62
|
+
for (n in p)
|
63
|
+
h += '<param name="' + n + '" value="' + p[n] + '">';
|
64
|
+
|
65
|
+
h += '<embed type="' + mt + '"';
|
66
|
+
|
67
|
+
for (n in p)
|
68
|
+
h += n + '="' + p[n] + '" ';
|
69
|
+
|
70
|
+
h += '></embed></object>';
|
71
|
+
|
72
|
+
document.write(h);
|
73
|
+
}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
2
|
+
<head>
|
3
|
+
<script language="javascript" src="../../tiny_mce_popup.js"></script>
|
4
|
+
<script type="text/javascript" src="jscripts/embed.js"></script>
|
5
|
+
<script type="text/javascript">
|
6
|
+
tinyMCEPopup.onInit.add(function(ed) {
|
7
|
+
var dom = tinyMCEPopup.dom;
|
8
|
+
|
9
|
+
dom.setHTML('content', ed.getContent());
|
10
|
+
});
|
11
|
+
|
12
|
+
document.write('<base href="' + tinyMCEPopup.getWindowArg("base") + '">');
|
13
|
+
</script>
|
14
|
+
<title>{#preview.preview_desc}</title>
|
15
|
+
</head>
|
16
|
+
<body id="content">
|
17
|
+
<!-- Gets filled with editor contents -->
|
18
|
+
</body>
|
19
|
+
</html>
|
@@ -0,0 +1 @@
|
|
1
|
+
(function(){tinymce.create('tinymce.plugins.Print',{init:function(ed,url){ed.addCommand('mcePrint',function(){ed.getWin().print();});ed.addButton('print',{title:'print.print_desc',cmd:'mcePrint'});},getInfo:function(){return{longname:'Print',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',version:tinymce.majorVersion+"."+tinymce.minorVersion};}});tinymce.PluginManager.add('print',tinymce.plugins.Print);})();
|
@@ -0,0 +1,31 @@
|
|
1
|
+
/**
|
2
|
+
* $Id: editor_plugin_src.js 520 2008-01-07 16:30:32Z spocke $
|
3
|
+
*
|
4
|
+
* @author Moxiecode
|
5
|
+
* @copyright Copyright � 2004-2008, Moxiecode Systems AB, All rights reserved.
|
6
|
+
*/
|
7
|
+
|
8
|
+
(function() {
|
9
|
+
tinymce.create('tinymce.plugins.Print', {
|
10
|
+
init : function(ed, url) {
|
11
|
+
ed.addCommand('mcePrint', function() {
|
12
|
+
ed.getWin().print();
|
13
|
+
});
|
14
|
+
|
15
|
+
ed.addButton('print', {title : 'print.print_desc', cmd : 'mcePrint'});
|
16
|
+
},
|
17
|
+
|
18
|
+
getInfo : function() {
|
19
|
+
return {
|
20
|
+
longname : 'Print',
|
21
|
+
author : 'Moxiecode Systems AB',
|
22
|
+
authorurl : 'http://tinymce.moxiecode.com',
|
23
|
+
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',
|
24
|
+
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
25
|
+
};
|
26
|
+
}
|
27
|
+
});
|
28
|
+
|
29
|
+
// Register plugin
|
30
|
+
tinymce.PluginManager.add('print', tinymce.plugins.Print);
|
31
|
+
})();
|
@@ -0,0 +1 @@
|
|
1
|
+
<!-- WebKit -->
|
@@ -0,0 +1 @@
|
|
1
|
+
(function(){var Event=tinymce.dom.Event,grep=tinymce.grep,each=tinymce.each,inArray=tinymce.inArray,isOldWebKit=tinymce.isOldWebKit;function isEmpty(d,e,f){var w,n;w=d.createTreeWalker(e,NodeFilter.SHOW_ALL,null,false);while(n=w.nextNode()){if(f){if(!f(n))return false;}if(n.nodeType==3&&n.nodeValue&&/[^\s\u00a0]+/.test(n.nodeValue))return false;if(n.nodeType==1&&/^(HR|IMG|TABLE)$/.test(n.nodeName))return false;}return true;};tinymce.create('tinymce.plugins.Safari',{init:function(ed){var t=this,dom;if(!tinymce.isWebKit)return;t.editor=ed;t.webKitFontSizes=['x-small','small','medium','large','x-large','xx-large','-webkit-xxx-large'];t.namedFontSizes=['xx-small','x-small','small','medium','large','x-large','xx-large'];ed.addCommand('CreateLink',function(u,v){var n=ed.selection.getNode(),dom=ed.dom,a;if(n&&(/^(left|right)$/i.test(dom.getStyle(n,'float',1))||/^(left|right)$/i.test(dom.getAttrib(n,'align')))){a=dom.create('a',{href:v},n.cloneNode());n.parentNode.replaceChild(a,n);ed.selection.select(a);}else ed.getDoc().execCommand("CreateLink",false,v);});ed.onPaste.add(function(ed,e){function removeStyles(e){e=e.target;if(e.nodeType==1){e.style.cssText='';each(ed.dom.select('*',e),function(e){e.style.cssText='';});}};Event.add(ed.getDoc(),'DOMNodeInserted',removeStyles);window.setTimeout(function(){Event.remove(ed.getDoc(),'DOMNodeInserted',removeStyles);},0);});ed.onKeyUp.add(function(ed,e){var h,b;if(e.keyCode==46||e.keyCode==8){b=ed.getBody();h=b.innerHTML;if(b.childNodes.length==1&&!/<(img|hr)/.test(h)&&tinymce.trim(h.replace(/<[^>]+>/g,'')).length==0)ed.setContent('',{format:'raw'});}});ed.addCommand('FormatBlock',function(u,v){var dom=ed.dom,e=dom.getParent(ed.selection.getNode(),dom.isBlock);if(e)dom.replace(dom.create(v),e,1);else ed.getDoc().execCommand("FormatBlock",false,v);});ed.addCommand('mceInsertContent',function(u,v){ed.getDoc().execCommand("InsertText",false,'mce_marker');ed.getBody().innerHTML=ed.getBody().innerHTML.replace(/mce_marker/g,v+'<span id="_mce_tmp">XX</span>');ed.selection.select(ed.dom.get('_mce_tmp'));ed.getDoc().execCommand("Delete",false,' ');});ed.onKeyPress.add(function(ed,e){var se,li,lic,r1,r2,n,sel,doc,be,af,pa;if(e.keyCode==13){sel=ed.selection;se=sel.getNode();if(e.shiftKey||ed.settings.force_br_newlines&&se.nodeName!='LI'){t._insertBR(ed);Event.cancel(e);}if(li=dom.getParent(se,'LI')){lic=dom.getParent(li,'OL,UL');doc=ed.getDoc();pa=dom.create('p');dom.add(pa,'br',{mce_bogus:"1"});if(isEmpty(doc,li)){if(n=dom.getParent(lic.parentNode,'LI,OL,UL'))return;n=dom.getParent(lic,'p,h1,h2,h3,h4,h5,h6,div')||lic;r1=doc.createRange();r1.setStartBefore(n);r1.setEndBefore(li);r2=doc.createRange();r2.setStartAfter(li);r2.setEndAfter(n);be=r1.cloneContents();af=r2.cloneContents();if(!isEmpty(doc,af))dom.insertAfter(af,n);dom.insertAfter(pa,n);if(!isEmpty(doc,be))dom.insertAfter(be,n);dom.remove(n);n=pa.firstChild;r1=doc.createRange();r1.setStartBefore(n);r1.setEndBefore(n);sel.setRng(r1);return Event.cancel(e);}}}});ed.onClick.add(function(ed,e){e=e.target;if(e.nodeName=='IMG'){t.selElm=e;ed.selection.select(e);}else t.selElm=null;});ed.onInit.add(function(){t._fixWebKitSpans();if(isOldWebKit)t._patchSafari2x(ed);});ed.onSetContent.add(function(){dom=ed.dom;each(['strong','b','em','u','strike','sub','sup','a'],function(v){each(grep(dom.select(v)).reverse(),function(n){var nn=n.nodeName.toLowerCase(),st;if(nn=='a'){if(n.name)dom.replace(dom.create('img',{mce_name:'a',name:n.name,'class':'mceItemAnchor'}),n);return;}switch(nn){case'b':case'strong':if(nn=='b')nn='strong';st='font-weight: bold;';break;case'em':st='font-style: italic;';break;case'u':st='text-decoration: underline;';break;case'sub':st='vertical-align: sub;';break;case'sup':st='vertical-align: super;';break;case'strike':st='text-decoration: line-through;';break;}dom.replace(dom.create('span',{mce_name:nn,style:st,'class':'Apple-style-span'}),n,1);});});});ed.onPreProcess.add(function(ed,o){dom=ed.dom;each(grep(o.node.getElementsByTagName('span')).reverse(),function(n){var v,bg;if(o.get){if(dom.hasClass(n,'Apple-style-span')){bg=n.style.backgroundColor;switch(dom.getAttrib(n,'mce_name')){case'font':if(!ed.settings.convert_fonts_to_spans)dom.setAttrib(n,'style','');break;case'strong':case'em':case'sub':case'sup':dom.setAttrib(n,'style','');break;case'strike':case'u':if(!ed.settings.inline_styles)dom.setAttrib(n,'style','');else dom.setAttrib(n,'mce_name','');break;default:if(!ed.settings.inline_styles)dom.setAttrib(n,'style','');}if(bg)n.style.backgroundColor=bg;}}if(dom.hasClass(n,'mceItemRemoved'))dom.remove(n,1);});});ed.onPostProcess.add(function(ed,o){o.content=o.content.replace(/<br \/><\/(h[1-6]|div|p|address|pre)>/g,'</$1>');o.content=o.content.replace(/ id=\"undefined\"/g,'');});},getInfo:function(){return{longname:'Safari compatibility',author:'Moxiecode Systems AB',authorurl:'http://tinymce.moxiecode.com',infourl:'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari',version:tinymce.majorVersion+"."+tinymce.minorVersion};},_fixWebKitSpans:function(){var t=this,ed=t.editor;if(!isOldWebKit){Event.add(ed.getDoc(),'DOMNodeInserted',function(e){e=e.target;if(e&&e.nodeType==1)t._fixAppleSpan(e);});}else{ed.onExecCommand.add(function(){each(ed.dom.select('span'),function(n){t._fixAppleSpan(n);});ed.nodeChanged();});}},_fixAppleSpan:function(e){var ed=this.editor,dom=ed.dom,fz=this.webKitFontSizes,fzn=this.namedFontSizes,s=ed.settings,st,p;if(dom.getAttrib(e,'mce_fixed'))return;if(e.nodeName=='SPAN'&&e.className=='Apple-style-span'){st=e.style;if(!s.convert_fonts_to_spans){if(st.fontSize){dom.setAttrib(e,'mce_name','font');dom.setAttrib(e,'size',inArray(fz,st.fontSize)+1);}if(st.fontFamily){dom.setAttrib(e,'mce_name','font');dom.setAttrib(e,'face',st.fontFamily);}if(st.color){dom.setAttrib(e,'mce_name','font');dom.setAttrib(e,'color',dom.toHex(st.color));}if(st.backgroundColor){dom.setAttrib(e,'mce_name','font');dom.setStyle(e,'background-color',st.backgroundColor);}}else{if(st.fontSize)dom.setStyle(e,'fontSize',fzn[inArray(fz,st.fontSize)]);}if(st.fontWeight=='bold')dom.setAttrib(e,'mce_name','strong');if(st.fontStyle=='italic')dom.setAttrib(e,'mce_name','em');if(st.textDecoration=='underline')dom.setAttrib(e,'mce_name','u');if(st.textDecoration=='line-through')dom.setAttrib(e,'mce_name','strike');if(st.verticalAlign=='super')dom.setAttrib(e,'mce_name','sup');if(st.verticalAlign=='sub')dom.setAttrib(e,'mce_name','sub');dom.setAttrib(e,'mce_fixed','1');}},_patchSafari2x:function(ed){var t=this,setContent,getNode,dom=ed.dom,lr;if(ed.windowManager.onBeforeOpen){ed.windowManager.onBeforeOpen.add(function(){r=ed.selection.getRng();});}ed.selection.select=function(n){this.getSel().setBaseAndExtent(n,0,n,1);};getNode=ed.selection.getNode;ed.selection.getNode=function(){return t.selElm||getNode.call(this);};ed.selection.getRng=function(){var t=this,s=t.getSel(),d=ed.getDoc(),r,rb,ra,di;if(s.anchorNode){r=d.createRange();try{rb=d.createRange();rb.setStart(s.anchorNode,s.anchorOffset);rb.collapse(1);ra=d.createRange();ra.setStart(s.focusNode,s.focusOffset);ra.collapse(1);di=rb.compareBoundaryPoints(rb.START_TO_END,ra)<0;r.setStart(di?s.anchorNode:s.focusNode,di?s.anchorOffset:s.focusOffset);r.setEnd(di?s.focusNode:s.anchorNode,di?s.focusOffset:s.anchorOffset);lr=r;}catch(ex){}}return r||lr;};setContent=ed.selection.setContent;ed.selection.setContent=function(h,s){var r=this.getRng(),b;try{setContent.call(this,h,s);}catch(ex){b=dom.create('body');b.innerHTML=h;each(b.childNodes,function(n){r.insertNode(n.cloneNode(true));});}};},_insertBR:function(ed){var dom=ed.dom,s=ed.selection,r=s.getRng(),br;r.insertNode(br=dom.create('br'));r.setStartAfter(br);r.setEndAfter(br);s.setRng(r);if(s.getSel().focusNode==br.previousSibling){s.select(dom.insertAfter(dom.doc.createTextNode('\u00a0'),br));s.collapse(1);}ed.getWin().scrollTo(0,dom.getPos(s.getRng().startContainer).y);}});tinymce.PluginManager.add('safari',tinymce.plugins.Safari);})();
|
@@ -0,0 +1,545 @@
|
|
1
|
+
/**
|
2
|
+
* $Id: editor_plugin_src.js 264 2007-04-26 20:53:09Z spocke $
|
3
|
+
*
|
4
|
+
* @author Moxiecode
|
5
|
+
* @copyright Copyright � 2004-2008, Moxiecode Systems AB, All rights reserved.
|
6
|
+
*/
|
7
|
+
|
8
|
+
(function() {
|
9
|
+
var Event = tinymce.dom.Event, grep = tinymce.grep, each = tinymce.each, inArray = tinymce.inArray, isOldWebKit = tinymce.isOldWebKit;
|
10
|
+
|
11
|
+
function isEmpty(d, e, f) {
|
12
|
+
var w, n;
|
13
|
+
|
14
|
+
w = d.createTreeWalker(e, NodeFilter.SHOW_ALL, null, false);
|
15
|
+
while (n = w.nextNode()) {
|
16
|
+
// Filter func
|
17
|
+
if (f) {
|
18
|
+
if (!f(n))
|
19
|
+
return false;
|
20
|
+
}
|
21
|
+
|
22
|
+
// Non whitespace text node
|
23
|
+
if (n.nodeType == 3 && n.nodeValue && /[^\s\u00a0]+/.test(n.nodeValue))
|
24
|
+
return false;
|
25
|
+
|
26
|
+
// Is non text element byt still content
|
27
|
+
if (n.nodeType == 1 && /^(HR|IMG|TABLE)$/.test(n.nodeName))
|
28
|
+
return false;
|
29
|
+
}
|
30
|
+
|
31
|
+
return true;
|
32
|
+
};
|
33
|
+
|
34
|
+
tinymce.create('tinymce.plugins.Safari', {
|
35
|
+
init : function(ed) {
|
36
|
+
var t = this, dom;
|
37
|
+
|
38
|
+
// Ignore on non webkit
|
39
|
+
if (!tinymce.isWebKit)
|
40
|
+
return;
|
41
|
+
|
42
|
+
t.editor = ed;
|
43
|
+
t.webKitFontSizes = ['x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', '-webkit-xxx-large'];
|
44
|
+
t.namedFontSizes = ['xx-small', 'x-small','small','medium','large','x-large', 'xx-large'];
|
45
|
+
|
46
|
+
// Safari CreateLink command will not work correctly on images that is aligned
|
47
|
+
ed.addCommand('CreateLink', function(u, v) {
|
48
|
+
var n = ed.selection.getNode(), dom = ed.dom, a;
|
49
|
+
|
50
|
+
if (n && (/^(left|right)$/i.test(dom.getStyle(n, 'float', 1)) || /^(left|right)$/i.test(dom.getAttrib(n, 'align')))) {
|
51
|
+
a = dom.create('a', {href : v}, n.cloneNode());
|
52
|
+
n.parentNode.replaceChild(a, n);
|
53
|
+
ed.selection.select(a);
|
54
|
+
} else
|
55
|
+
ed.getDoc().execCommand("CreateLink", false, v);
|
56
|
+
});
|
57
|
+
|
58
|
+
ed.onPaste.add(function(ed, e) {
|
59
|
+
function removeStyles(e) {
|
60
|
+
e = e.target;
|
61
|
+
|
62
|
+
if (e.nodeType == 1) {
|
63
|
+
e.style.cssText = '';
|
64
|
+
|
65
|
+
each(ed.dom.select('*', e), function(e) {
|
66
|
+
e.style.cssText = '';
|
67
|
+
});
|
68
|
+
}
|
69
|
+
};
|
70
|
+
|
71
|
+
Event.add(ed.getDoc(), 'DOMNodeInserted', removeStyles);
|
72
|
+
|
73
|
+
window.setTimeout(function() {
|
74
|
+
Event.remove(ed.getDoc(), 'DOMNodeInserted', removeStyles);
|
75
|
+
}, 0);
|
76
|
+
});
|
77
|
+
|
78
|
+
ed.onKeyUp.add(function(ed, e) {
|
79
|
+
var h, b;
|
80
|
+
|
81
|
+
// If backspace or delete key
|
82
|
+
if (e.keyCode == 46 || e.keyCode == 8) {
|
83
|
+
b = ed.getBody();
|
84
|
+
h = b.innerHTML;
|
85
|
+
|
86
|
+
// If there is no text content or images or hr elements then remove everything
|
87
|
+
if (b.childNodes.length == 1 && !/<(img|hr)/.test(h) && tinymce.trim(h.replace(/<[^>]+>/g, '')).length == 0)
|
88
|
+
ed.setContent('', {format : 'raw'});
|
89
|
+
}
|
90
|
+
});
|
91
|
+
|
92
|
+
// Workaround for FormatBlock bug, http://bugs.webkit.org/show_bug.cgi?id=16004
|
93
|
+
ed.addCommand('FormatBlock', function(u, v) {
|
94
|
+
var dom = ed.dom, e = dom.getParent(ed.selection.getNode(), dom.isBlock);
|
95
|
+
|
96
|
+
if (e)
|
97
|
+
dom.replace(dom.create(v), e, 1);
|
98
|
+
else
|
99
|
+
ed.getDoc().execCommand("FormatBlock", false, v);
|
100
|
+
});
|
101
|
+
|
102
|
+
// Workaround for InsertHTML bug, http://bugs.webkit.org/show_bug.cgi?id=16382
|
103
|
+
ed.addCommand('mceInsertContent', function(u, v) {
|
104
|
+
ed.getDoc().execCommand("InsertText", false, 'mce_marker');
|
105
|
+
ed.getBody().innerHTML = ed.getBody().innerHTML.replace(/mce_marker/g, v + '<span id="_mce_tmp">XX</span>');
|
106
|
+
ed.selection.select(ed.dom.get('_mce_tmp'));
|
107
|
+
ed.getDoc().execCommand("Delete", false, ' ');
|
108
|
+
});
|
109
|
+
|
110
|
+
ed.onKeyPress.add(function(ed, e) {
|
111
|
+
var se, li, lic, r1, r2, n, sel, doc, be, af, pa;
|
112
|
+
|
113
|
+
if (e.keyCode == 13) {
|
114
|
+
sel = ed.selection;
|
115
|
+
se = sel.getNode();
|
116
|
+
|
117
|
+
// Workaround for missing shift+enter support, http://bugs.webkit.org/show_bug.cgi?id=16973
|
118
|
+
if (e.shiftKey || ed.settings.force_br_newlines && se.nodeName != 'LI') {
|
119
|
+
t._insertBR(ed);
|
120
|
+
Event.cancel(e);
|
121
|
+
}
|
122
|
+
|
123
|
+
// Workaround for DIV elements produced by Safari
|
124
|
+
if (li = dom.getParent(se, 'LI')) {
|
125
|
+
lic = dom.getParent(li, 'OL,UL');
|
126
|
+
doc = ed.getDoc();
|
127
|
+
|
128
|
+
pa = dom.create('p');
|
129
|
+
dom.add(pa, 'br', {mce_bogus : "1"});
|
130
|
+
|
131
|
+
if (isEmpty(doc, li)) {
|
132
|
+
// If list in list then use browser default behavior
|
133
|
+
if (n = dom.getParent(lic.parentNode, 'LI,OL,UL'))
|
134
|
+
return;
|
135
|
+
|
136
|
+
n = dom.getParent(lic, 'p,h1,h2,h3,h4,h5,h6,div') || lic;
|
137
|
+
|
138
|
+
// Create range from the start of block element to the list item
|
139
|
+
r1 = doc.createRange();
|
140
|
+
r1.setStartBefore(n);
|
141
|
+
r1.setEndBefore(li);
|
142
|
+
|
143
|
+
// Create range after the list to the end of block element
|
144
|
+
r2 = doc.createRange();
|
145
|
+
r2.setStartAfter(li);
|
146
|
+
r2.setEndAfter(n);
|
147
|
+
|
148
|
+
be = r1.cloneContents();
|
149
|
+
af = r2.cloneContents();
|
150
|
+
|
151
|
+
if (!isEmpty(doc, af))
|
152
|
+
dom.insertAfter(af, n);
|
153
|
+
|
154
|
+
dom.insertAfter(pa, n);
|
155
|
+
|
156
|
+
if (!isEmpty(doc, be))
|
157
|
+
dom.insertAfter(be, n);
|
158
|
+
|
159
|
+
dom.remove(n);
|
160
|
+
|
161
|
+
n = pa.firstChild;
|
162
|
+
r1 = doc.createRange();
|
163
|
+
r1.setStartBefore(n);
|
164
|
+
r1.setEndBefore(n);
|
165
|
+
sel.setRng(r1);
|
166
|
+
|
167
|
+
return Event.cancel(e);
|
168
|
+
}
|
169
|
+
}
|
170
|
+
}
|
171
|
+
});
|
172
|
+
|
173
|
+
// Safari returns incorrect values
|
174
|
+
/* ed.addQueryValueHandler('Fo2ntSize', function(u, v) {
|
175
|
+
var e, v;
|
176
|
+
|
177
|
+
// Check for the real font size at the start of selection
|
178
|
+
if ((e = ed.dom.getParent(ed.selection.getStart(), 'span')) && (v = e.style.fontSize))
|
179
|
+
return tinymce.inArray(t.namedFontSizes, v) + 1;
|
180
|
+
|
181
|
+
// Check for the real font size at the end of selection
|
182
|
+
if ((e = ed.dom.getParent(ed.selection.getEnd(), 'span')) && (v = e.style.fontSize))
|
183
|
+
return tinymce.inArray(t.namedFontSizes, v) + 1;
|
184
|
+
|
185
|
+
// Return default value it's better than nothing right!
|
186
|
+
return ed.getDoc().queryCommandValue('FontSize');
|
187
|
+
});
|
188
|
+
|
189
|
+
// Safari returns incorrect values
|
190
|
+
ed.addQueryValueHandler('Fo2ntName', function(u, v) {
|
191
|
+
var e, v;
|
192
|
+
|
193
|
+
// Check for the real font name at the start of selection
|
194
|
+
if ((e = ed.dom.getParent(ed.selection.getStart(), 'span')) && (v = e.style.fontFamily))
|
195
|
+
return v.replace(/\'/g, '').replace(/, /g, ',');
|
196
|
+
|
197
|
+
// Check for the real font name at the end of selection
|
198
|
+
if ((e = ed.dom.getParent(ed.selection.getEnd(), 'span')) && (v = e.style.fontFamily))
|
199
|
+
return v.replace(/\'/g, '').replace(/, /g, ',');
|
200
|
+
|
201
|
+
// Return default value it's better than nothing right!
|
202
|
+
return ed.getDoc().queryCommandValue('FontName');
|
203
|
+
});*/
|
204
|
+
|
205
|
+
// Workaround for bug, http://bugs.webkit.org/show_bug.cgi?id=12250
|
206
|
+
ed.onClick.add(function(ed, e) {
|
207
|
+
e = e.target;
|
208
|
+
|
209
|
+
if (e.nodeName == 'IMG') {
|
210
|
+
t.selElm = e;
|
211
|
+
ed.selection.select(e);
|
212
|
+
} else
|
213
|
+
t.selElm = null;
|
214
|
+
});
|
215
|
+
|
216
|
+
/* ed.onBeforeExecCommand.add(function(ed, c, b) {
|
217
|
+
var r = t.bookmarkRng;
|
218
|
+
|
219
|
+
// Restore selection
|
220
|
+
if (r) {
|
221
|
+
ed.selection.setRng(r);
|
222
|
+
t.bookmarkRng = null;
|
223
|
+
//console.debug('restore', r.startContainer, r.startOffset, r.endContainer, r.endOffset);
|
224
|
+
}
|
225
|
+
});*/
|
226
|
+
|
227
|
+
ed.onInit.add(function() {
|
228
|
+
t._fixWebKitSpans();
|
229
|
+
|
230
|
+
/* ed.windowManager.onOpen.add(function() {
|
231
|
+
var r = ed.selection.getRng();
|
232
|
+
|
233
|
+
// Store selection if valid
|
234
|
+
if (r.startContainer != ed.getDoc()) {
|
235
|
+
t.bookmarkRng = r.cloneRange();
|
236
|
+
//console.debug('store', r.startContainer, r.startOffset, r.endContainer, r.endOffset);
|
237
|
+
}
|
238
|
+
});
|
239
|
+
|
240
|
+
ed.windowManager.onClose.add(function() {
|
241
|
+
t.bookmarkRng = null;
|
242
|
+
});*/
|
243
|
+
|
244
|
+
if (isOldWebKit)
|
245
|
+
t._patchSafari2x(ed);
|
246
|
+
});
|
247
|
+
|
248
|
+
ed.onSetContent.add(function() {
|
249
|
+
dom = ed.dom;
|
250
|
+
|
251
|
+
// Convert strong,b,em,u,strike to spans
|
252
|
+
each(['strong','b','em','u','strike','sub','sup','a'], function(v) {
|
253
|
+
each(grep(dom.select(v)).reverse(), function(n) {
|
254
|
+
var nn = n.nodeName.toLowerCase(), st;
|
255
|
+
|
256
|
+
// Convert anchors into images
|
257
|
+
if (nn == 'a') {
|
258
|
+
if (n.name)
|
259
|
+
dom.replace(dom.create('img', {mce_name : 'a', name : n.name, 'class' : 'mceItemAnchor'}), n);
|
260
|
+
|
261
|
+
return;
|
262
|
+
}
|
263
|
+
|
264
|
+
switch (nn) {
|
265
|
+
case 'b':
|
266
|
+
case 'strong':
|
267
|
+
if (nn == 'b')
|
268
|
+
nn = 'strong';
|
269
|
+
|
270
|
+
st = 'font-weight: bold;';
|
271
|
+
break;
|
272
|
+
|
273
|
+
case 'em':
|
274
|
+
st = 'font-style: italic;';
|
275
|
+
break;
|
276
|
+
|
277
|
+
case 'u':
|
278
|
+
st = 'text-decoration: underline;';
|
279
|
+
break;
|
280
|
+
|
281
|
+
case 'sub':
|
282
|
+
st = 'vertical-align: sub;';
|
283
|
+
break;
|
284
|
+
|
285
|
+
case 'sup':
|
286
|
+
st = 'vertical-align: super;';
|
287
|
+
break;
|
288
|
+
|
289
|
+
case 'strike':
|
290
|
+
st = 'text-decoration: line-through;';
|
291
|
+
break;
|
292
|
+
}
|
293
|
+
|
294
|
+
dom.replace(dom.create('span', {mce_name : nn, style : st, 'class' : 'Apple-style-span'}), n, 1);
|
295
|
+
});
|
296
|
+
});
|
297
|
+
});
|
298
|
+
|
299
|
+
ed.onPreProcess.add(function(ed, o) {
|
300
|
+
dom = ed.dom;
|
301
|
+
|
302
|
+
each(grep(o.node.getElementsByTagName('span')).reverse(), function(n) {
|
303
|
+
var v, bg;
|
304
|
+
|
305
|
+
if (o.get) {
|
306
|
+
if (dom.hasClass(n, 'Apple-style-span')) {
|
307
|
+
bg = n.style.backgroundColor;
|
308
|
+
|
309
|
+
switch (dom.getAttrib(n, 'mce_name')) {
|
310
|
+
case 'font':
|
311
|
+
if (!ed.settings.convert_fonts_to_spans)
|
312
|
+
dom.setAttrib(n, 'style', '');
|
313
|
+
break;
|
314
|
+
|
315
|
+
case 'strong':
|
316
|
+
case 'em':
|
317
|
+
case 'sub':
|
318
|
+
case 'sup':
|
319
|
+
dom.setAttrib(n, 'style', '');
|
320
|
+
break;
|
321
|
+
|
322
|
+
case 'strike':
|
323
|
+
case 'u':
|
324
|
+
if (!ed.settings.inline_styles)
|
325
|
+
dom.setAttrib(n, 'style', '');
|
326
|
+
else
|
327
|
+
dom.setAttrib(n, 'mce_name', '');
|
328
|
+
|
329
|
+
break;
|
330
|
+
|
331
|
+
default:
|
332
|
+
if (!ed.settings.inline_styles)
|
333
|
+
dom.setAttrib(n, 'style', '');
|
334
|
+
}
|
335
|
+
|
336
|
+
|
337
|
+
if (bg)
|
338
|
+
n.style.backgroundColor = bg;
|
339
|
+
}
|
340
|
+
}
|
341
|
+
|
342
|
+
if (dom.hasClass(n, 'mceItemRemoved'))
|
343
|
+
dom.remove(n, 1);
|
344
|
+
});
|
345
|
+
});
|
346
|
+
|
347
|
+
ed.onPostProcess.add(function(ed, o) {
|
348
|
+
// Safari adds BR at end of all block elements
|
349
|
+
o.content = o.content.replace(/<br \/><\/(h[1-6]|div|p|address|pre)>/g, '</$1>');
|
350
|
+
|
351
|
+
// Safari adds id="undefined" to HR elements
|
352
|
+
o.content = o.content.replace(/ id=\"undefined\"/g, '');
|
353
|
+
});
|
354
|
+
},
|
355
|
+
|
356
|
+
getInfo : function() {
|
357
|
+
return {
|
358
|
+
longname : 'Safari compatibility',
|
359
|
+
author : 'Moxiecode Systems AB',
|
360
|
+
authorurl : 'http://tinymce.moxiecode.com',
|
361
|
+
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari',
|
362
|
+
version : tinymce.majorVersion + "." + tinymce.minorVersion
|
363
|
+
};
|
364
|
+
},
|
365
|
+
|
366
|
+
// Internal methods
|
367
|
+
|
368
|
+
_fixWebKitSpans : function() {
|
369
|
+
var t = this, ed = t.editor;
|
370
|
+
|
371
|
+
if (!isOldWebKit) {
|
372
|
+
// Use mutator events on new WebKit
|
373
|
+
Event.add(ed.getDoc(), 'DOMNodeInserted', function(e) {
|
374
|
+
e = e.target;
|
375
|
+
|
376
|
+
if (e && e.nodeType == 1)
|
377
|
+
t._fixAppleSpan(e);
|
378
|
+
});
|
379
|
+
} else {
|
380
|
+
// Do post command processing in old WebKit since the browser crashes on Mutator events :(
|
381
|
+
ed.onExecCommand.add(function() {
|
382
|
+
each(ed.dom.select('span'), function(n) {
|
383
|
+
t._fixAppleSpan(n);
|
384
|
+
});
|
385
|
+
|
386
|
+
ed.nodeChanged();
|
387
|
+
});
|
388
|
+
}
|
389
|
+
},
|
390
|
+
|
391
|
+
_fixAppleSpan : function(e) {
|
392
|
+
var ed = this.editor, dom = ed.dom, fz = this.webKitFontSizes, fzn = this.namedFontSizes, s = ed.settings, st, p;
|
393
|
+
|
394
|
+
if (dom.getAttrib(e, 'mce_fixed'))
|
395
|
+
return;
|
396
|
+
|
397
|
+
// Handle Apple style spans
|
398
|
+
if (e.nodeName == 'SPAN' && e.className == 'Apple-style-span') {
|
399
|
+
st = e.style;
|
400
|
+
|
401
|
+
if (!s.convert_fonts_to_spans) {
|
402
|
+
if (st.fontSize) {
|
403
|
+
dom.setAttrib(e, 'mce_name', 'font');
|
404
|
+
dom.setAttrib(e, 'size', inArray(fz, st.fontSize) + 1);
|
405
|
+
}
|
406
|
+
|
407
|
+
if (st.fontFamily) {
|
408
|
+
dom.setAttrib(e, 'mce_name', 'font');
|
409
|
+
dom.setAttrib(e, 'face', st.fontFamily);
|
410
|
+
}
|
411
|
+
|
412
|
+
if (st.color) {
|
413
|
+
dom.setAttrib(e, 'mce_name', 'font');
|
414
|
+
dom.setAttrib(e, 'color', dom.toHex(st.color));
|
415
|
+
}
|
416
|
+
|
417
|
+
if (st.backgroundColor) {
|
418
|
+
dom.setAttrib(e, 'mce_name', 'font');
|
419
|
+
dom.setStyle(e, 'background-color', st.backgroundColor);
|
420
|
+
}
|
421
|
+
} else {
|
422
|
+
if (st.fontSize)
|
423
|
+
dom.setStyle(e, 'fontSize', fzn[inArray(fz, st.fontSize)]);
|
424
|
+
}
|
425
|
+
|
426
|
+
if (st.fontWeight == 'bold')
|
427
|
+
dom.setAttrib(e, 'mce_name', 'strong');
|
428
|
+
|
429
|
+
if (st.fontStyle == 'italic')
|
430
|
+
dom.setAttrib(e, 'mce_name', 'em');
|
431
|
+
|
432
|
+
if (st.textDecoration == 'underline')
|
433
|
+
dom.setAttrib(e, 'mce_name', 'u');
|
434
|
+
|
435
|
+
if (st.textDecoration == 'line-through')
|
436
|
+
dom.setAttrib(e, 'mce_name', 'strike');
|
437
|
+
|
438
|
+
if (st.verticalAlign == 'super')
|
439
|
+
dom.setAttrib(e, 'mce_name', 'sup');
|
440
|
+
|
441
|
+
if (st.verticalAlign == 'sub')
|
442
|
+
dom.setAttrib(e, 'mce_name', 'sub');
|
443
|
+
|
444
|
+
dom.setAttrib(e, 'mce_fixed', '1');
|
445
|
+
}
|
446
|
+
},
|
447
|
+
|
448
|
+
_patchSafari2x : function(ed) {
|
449
|
+
var t = this, setContent, getNode, dom = ed.dom, lr;
|
450
|
+
|
451
|
+
// Inline dialogs
|
452
|
+
if (ed.windowManager.onBeforeOpen) {
|
453
|
+
ed.windowManager.onBeforeOpen.add(function() {
|
454
|
+
r = ed.selection.getRng();
|
455
|
+
});
|
456
|
+
}
|
457
|
+
|
458
|
+
// Fake select on 2.x
|
459
|
+
ed.selection.select = function(n) {
|
460
|
+
this.getSel().setBaseAndExtent(n, 0, n, 1);
|
461
|
+
};
|
462
|
+
|
463
|
+
getNode = ed.selection.getNode;
|
464
|
+
ed.selection.getNode = function() {
|
465
|
+
return t.selElm || getNode.call(this);
|
466
|
+
};
|
467
|
+
|
468
|
+
// Fake range on Safari 2.x
|
469
|
+
ed.selection.getRng = function() {
|
470
|
+
var t = this, s = t.getSel(), d = ed.getDoc(), r, rb, ra, di;
|
471
|
+
|
472
|
+
// Fake range on Safari 2.x
|
473
|
+
if (s.anchorNode) {
|
474
|
+
r = d.createRange();
|
475
|
+
|
476
|
+
try {
|
477
|
+
// Setup before range
|
478
|
+
rb = d.createRange();
|
479
|
+
rb.setStart(s.anchorNode, s.anchorOffset);
|
480
|
+
rb.collapse(1);
|
481
|
+
|
482
|
+
// Setup after range
|
483
|
+
ra = d.createRange();
|
484
|
+
ra.setStart(s.focusNode, s.focusOffset);
|
485
|
+
ra.collapse(1);
|
486
|
+
|
487
|
+
// Setup start/end points by comparing locations
|
488
|
+
di = rb.compareBoundaryPoints(rb.START_TO_END, ra) < 0;
|
489
|
+
r.setStart(di ? s.anchorNode : s.focusNode, di ? s.anchorOffset : s.focusOffset);
|
490
|
+
r.setEnd(di ? s.focusNode : s.anchorNode, di ? s.focusOffset : s.anchorOffset);
|
491
|
+
|
492
|
+
lr = r;
|
493
|
+
} catch (ex) {
|
494
|
+
// Sometimes fails, at least we tried to do it by the book. I hope Safari 2.x will go disappear soooon!!!
|
495
|
+
}
|
496
|
+
}
|
497
|
+
|
498
|
+
return r || lr;
|
499
|
+
};
|
500
|
+
|
501
|
+
// Fix setContent so it works
|
502
|
+
setContent = ed.selection.setContent;
|
503
|
+
ed.selection.setContent = function(h, s) {
|
504
|
+
var r = this.getRng(), b;
|
505
|
+
|
506
|
+
try {
|
507
|
+
setContent.call(this, h, s);
|
508
|
+
} catch (ex) {
|
509
|
+
// Workaround for Safari 2.x
|
510
|
+
b = dom.create('body');
|
511
|
+
b.innerHTML = h;
|
512
|
+
|
513
|
+
each(b.childNodes, function(n) {
|
514
|
+
r.insertNode(n.cloneNode(true));
|
515
|
+
});
|
516
|
+
}
|
517
|
+
};
|
518
|
+
},
|
519
|
+
|
520
|
+
_insertBR : function(ed) {
|
521
|
+
var dom = ed.dom, s = ed.selection, r = s.getRng(), br;
|
522
|
+
|
523
|
+
// Insert BR element
|
524
|
+
r.insertNode(br = dom.create('br'));
|
525
|
+
|
526
|
+
// Place caret after BR
|
527
|
+
r.setStartAfter(br);
|
528
|
+
r.setEndAfter(br);
|
529
|
+
s.setRng(r);
|
530
|
+
|
531
|
+
// Could not place caret after BR then insert an nbsp entity and move the caret
|
532
|
+
if (s.getSel().focusNode == br.previousSibling) {
|
533
|
+
s.select(dom.insertAfter(dom.doc.createTextNode('\u00a0'), br));
|
534
|
+
s.collapse(1);
|
535
|
+
}
|
536
|
+
|
537
|
+
// Scroll to new position, scrollIntoView can't be used due to bug: http://bugs.webkit.org/show_bug.cgi?id=16117
|
538
|
+
ed.getWin().scrollTo(0, dom.getPos(s.getRng().startContainer).y);
|
539
|
+
}
|
540
|
+
});
|
541
|
+
|
542
|
+
// Register plugin
|
543
|
+
tinymce.PluginManager.add('safari', tinymce.plugins.Safari);
|
544
|
+
})();
|
545
|
+
|