rostra 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +18 -7
- data/app/assets/images/rostra/anonymous_avatar.png +0 -0
- data/app/assets/javascripts/rostra/application.js +64 -8
- data/app/assets/javascripts/rostra/tiny_mce/jquery.tinymce.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/langs/en.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advhr/css/advhr.css +5 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advhr/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advhr/editor_plugin_src.js +57 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advhr/js/rule.js +43 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advhr/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advhr/rule.htm +58 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advimage/css/advimage.css +13 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advimage/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advimage/editor_plugin_src.js +50 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advimage/image.htm +235 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advimage/img/sample.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advimage/js/image.js +462 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advimage/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advlink/css/advlink.css +8 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advlink/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advlink/editor_plugin_src.js +61 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advlink/js/advlink.js +532 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advlink/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advlink/link.htm +338 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advlist/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/advlist/editor_plugin_src.js +176 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/autolink/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/autolink/editor_plugin_src.js +172 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/autoresize/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/autoresize/editor_plugin_src.js +137 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/autosave/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/autosave/editor_plugin_src.js +431 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/autosave/langs/en.js +4 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/bbcode/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/bbcode/editor_plugin_src.js +120 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/contextmenu/editor_plugin_src.js +160 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/directionality/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/directionality/editor_plugin_src.js +82 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/editor_plugin_src.js +43 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/emotions.htm +41 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/img/smiley-cool.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/img/smiley-cry.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/img/smiley-embarassed.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/img/smiley-frown.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/img/smiley-innocent.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/img/smiley-kiss.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/img/smiley-laughing.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/img/smiley-sealed.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/img/smiley-smile.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/img/smiley-surprised.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/img/smiley-undecided.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/img/smiley-wink.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/img/smiley-yell.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/js/emotions.js +22 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/emotions/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/example/dialog.htm +22 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/example/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/example/editor_plugin_src.js +84 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/example/img/example.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/example/js/dialog.js +19 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/example/langs/en.js +3 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/example/langs/en_dlg.js +3 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/example_dependency/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/example_dependency/editor_plugin_src.js +50 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/fullpage/css/fullpage.css +143 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/fullpage/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/fullpage/editor_plugin_src.js +405 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/fullpage/fullpage.htm +259 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/fullpage/js/fullpage.js +232 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/fullpage/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/fullscreen/editor_plugin_src.js +159 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/fullscreen/fullscreen.htm +110 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/iespell/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/iespell/editor_plugin_src.js +54 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +699 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +90 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/inlinepopups/template.htm +387 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/insertdatetime/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/insertdatetime/editor_plugin_src.js +83 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/layer/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/layer/editor_plugin_src.js +214 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/legacyoutput/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/legacyoutput/editor_plugin_src.js +139 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/lists/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/lists/editor_plugin_src.js +781 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/media/css/media.css +17 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/media/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/media/editor_plugin_src.js +822 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/media/js/embed.js +73 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/media/js/media.js +389 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/media/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/media/media.htm +897 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/media/moxieplayer.swf +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/nonbreaking/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +54 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/noneditable/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/noneditable/editor_plugin_src.js +95 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/pagebreak/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/pagebreak/editor_plugin_src.js +74 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/paste/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/paste/editor_plugin_src.js +861 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/paste/js/pastetext.js +36 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/paste/js/pasteword.js +51 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/paste/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/paste/pastetext.htm +27 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/paste/pasteword.htm +21 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/preview/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/preview/editor_plugin_src.js +53 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/preview/example.html +28 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/preview/jscripts/embed.js +73 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/preview/preview.html +17 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/print/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/print/editor_plugin_src.js +34 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/save/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/save/editor_plugin_src.js +101 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/searchreplace/css/searchreplace.css +6 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/searchreplace/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/searchreplace/editor_plugin_src.js +61 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/searchreplace/js/searchreplace.js +142 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/searchreplace/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/searchreplace/searchreplace.htm +100 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/spellchecker/css/content.css +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/spellchecker/editor_plugin_src.js +434 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/spellchecker/img/wline.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/style/css/props.css +13 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/style/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/style/editor_plugin_src.js +55 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/style/js/props.js +635 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/style/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/style/props.htm +840 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/tabfocus/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/tabfocus/editor_plugin_src.js +122 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/table/cell.htm +180 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/table/css/cell.css +17 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/table/css/row.css +25 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/table/css/table.css +13 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/table/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/table/editor_plugin_src.js +1364 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/table/js/cell.js +319 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/table/js/merge_cells.js +27 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/table/js/row.js +237 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/table/js/table.js +450 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/table/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/table/merge_cells.htm +32 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/table/row.htm +158 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/table/table.htm +188 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/template/blank.htm +12 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/template/css/template.css +23 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/template/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/template/editor_plugin_src.js +159 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/template/js/template.js +106 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/template/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/template/template.htm +31 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/visualchars/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/visualchars/editor_plugin_src.js +83 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/wordcount/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/wordcount/editor_plugin_src.js +114 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/abbr.htm +142 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/acronym.htm +142 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/attributes.htm +149 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/cite.htm +142 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/css/attributes.css +11 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/css/popup.css +9 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/del.htm +162 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/editor_plugin.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +132 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/ins.htm +162 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/js/abbr.js +28 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/js/acronym.js +28 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/js/attributes.js +111 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/js/cite.js +28 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/js/del.js +53 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/js/element_common.js +229 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/js/ins.js +53 -0
- data/app/assets/javascripts/rostra/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/about.htm +52 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/anchor.htm +26 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/charmap.htm +51 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/color_picker.htm +74 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/editor_template.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/editor_template_src.js +1358 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/image.htm +80 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/img/flash.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/img/icons.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/img/iframe.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/img/pagebreak.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/img/quicktime.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/img/realmedia.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/img/shockwave.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/img/trans.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/img/video.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/img/windowsmedia.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/js/about.js +73 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/js/anchor.js +42 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/js/charmap.js +355 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/js/color_picker.js +329 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/js/image.js +251 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/js/link.js +153 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/js/source_editor.js +56 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/langs/en.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/link.htm +57 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/shortcuts.htm +47 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/default/content.css +50 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/default/dialog.css +117 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/default/ui.css +214 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/highcontrast/content.css +24 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/highcontrast/dialog.css +105 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/highcontrast/ui.css +102 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/o2k7/content.css +48 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/o2k7/dialog.css +117 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/o2k7/ui.css +217 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +8 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/advanced/source_editor.htm +25 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/simple/editor_template.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/simple/editor_template_src.js +84 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/simple/img/icons.gif +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/simple/langs/en.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/simple/skins/default/content.css +25 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/simple/skins/default/ui.css +32 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/simple/skins/o2k7/content.css +17 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png +0 -0
- data/app/assets/javascripts/rostra/tiny_mce/themes/simple/skins/o2k7/ui.css +35 -0
- data/app/assets/javascripts/rostra/tiny_mce/tiny_mce.js +1 -0
- data/app/assets/javascripts/rostra/tiny_mce/tiny_mce_popup.js +5 -0
- data/app/assets/javascripts/rostra/tiny_mce/tiny_mce_src.js +15617 -0
- data/app/assets/javascripts/rostra/tiny_mce/utils/editable_selects.js +70 -0
- data/app/assets/javascripts/rostra/tiny_mce/utils/form_utils.js +210 -0
- data/app/assets/javascripts/rostra/tiny_mce/utils/mctabs.js +162 -0
- data/app/assets/javascripts/rostra/tiny_mce/utils/validate.js +252 -0
- data/app/assets/stylesheets/rostra/application.css +113 -20
- data/app/assets/stylesheets/rostra/flash_messages.css +3 -0
- data/app/assets/stylesheets/rostra/forms.css +4 -4
- data/app/assets/stylesheets/rostra/typography.css +1 -0
- data/app/controllers/rostra/answers_controller.rb +1 -8
- data/app/controllers/rostra/application_controller.rb +17 -3
- data/app/controllers/rostra/comments_controller.rb +31 -0
- data/app/controllers/rostra/questions_controller.rb +3 -9
- data/app/helpers/rostra/application_helper.rb +58 -0
- data/app/models/comment.rb +13 -0
- data/app/models/rostra/ability.rb +7 -2
- data/app/models/rostra/answer.rb +1 -0
- data/app/models/rostra/question.rb +20 -0
- data/app/views/layouts/rostra/application.html.erb +0 -2
- data/app/views/rostra/answers/_form.html.erb +2 -2
- data/app/views/rostra/answers/vote.js.erb +2 -1
- data/app/views/rostra/questions/_form.html.erb +2 -2
- data/app/views/rostra/questions/index.html.erb +24 -14
- data/app/views/rostra/questions/show.html.erb +46 -13
- data/app/views/rostra/questions/vote.js.erb +2 -1
- data/app/views/rostra/shared/_sidebar.html.erb +9 -2
- data/app/views/rostra/shared/_votes.html.erb +13 -21
- data/config/routes.rb +1 -0
- data/db/migrate/20111012020025_create_comments.rb +18 -0
- data/db/migrate/20111016021105_create_impressions_table.rb +37 -0
- data/lib/generators/rostra/install_generator.rb +14 -0
- data/lib/generators/rostra/templates/config/initializers/rostra.rb +26 -0
- data/lib/rostra/config.rb +38 -0
- data/lib/rostra/engine.rb +3 -1
- data/lib/rostra/version.rb +1 -1
- data/lib/rostra.rb +60 -5
- metadata +296 -15
- data/app/helpers/rostra/questions_helper.rb +0 -4
- data/app/views/rostra/shared/_answers_votes.html.erb +0 -27
@@ -4,22 +4,17 @@
|
|
4
4
|
|
5
5
|
<div id="page_content">
|
6
6
|
|
7
|
-
<div class="question">
|
8
|
-
<%= render 'rostra/shared/votes' %>
|
7
|
+
<div class="question" id="<%= dom_id(@question) %>">
|
8
|
+
<%= render partial: 'rostra/shared/votes', locals: { resource: @question } %>
|
9
|
+
<%= image_tag avatar_url(@question.user), class: 'avatar' %>
|
9
10
|
<h3 class="title"><%= @question.title %></h3>
|
10
|
-
|
11
11
|
<cite>
|
12
|
-
Asked by <%= @question.user.
|
12
|
+
Asked by <%= @question.user.rostra_user_name %>
|
13
13
|
<%= link_to 'edit', edit_question_path(@question) if can? :manage, @question %>
|
14
14
|
</cite>
|
15
15
|
<div class="text"><%= simple_format(@question.details) %></div>
|
16
16
|
<div class="timestamp"><%= time_ago_in_words(@question.updated_at) %> ago</div>
|
17
|
-
|
18
|
-
Tags:
|
19
|
-
<% @question.tags.each do |tag| %>
|
20
|
-
<%= link_to tag, "" %>
|
21
|
-
<% end %>
|
22
|
-
</div>
|
17
|
+
<%= tag_list(@question) %>
|
23
18
|
</div>
|
24
19
|
|
25
20
|
<% unless @answers.empty? %>
|
@@ -27,13 +22,51 @@
|
|
27
22
|
<div id="answers">
|
28
23
|
<% @answers.each do |answer| %>
|
29
24
|
<div class="answer" id="<%= dom_id(answer) %>">
|
30
|
-
<%= render partial: 'rostra/shared/
|
25
|
+
<%= render partial: 'rostra/shared/votes', locals: { resource: answer } %>
|
26
|
+
<%= image_tag avatar_url(answer.user), class: 'avatar' %>
|
31
27
|
<cite>
|
32
|
-
<%= answer.user.
|
28
|
+
<%= answer.user.rostra_user_name %> says:
|
33
29
|
<%= link_to('edit', edit_question_answer_path(@question, answer)) if can? :manage, answer %>
|
34
30
|
</cite>
|
35
31
|
<div class="text"><%= simple_format(answer.text) %></div>
|
36
32
|
<div class="timestamp"><%= time_ago_in_words(answer.updated_at) %> ago</div>
|
33
|
+
|
34
|
+
<% if answer.comments.any? %>
|
35
|
+
<div class="comments">
|
36
|
+
<% answer.comments.each do |comment| %>
|
37
|
+
<div class="comment text">
|
38
|
+
<div class="editable" data-ajax_url="<%= question_comment_path(@question, comment) %>"><%= comment.comment %></div>
|
39
|
+
<div class="timestamp">
|
40
|
+
<%= comment.user.rostra_user_name %> – <%= time_ago_in_words(comment.updated_at) %> ago
|
41
|
+
<% if can? :manage, comment %>
|
42
|
+
<%= link_to('edit', question_comment_path(@question, comment), class: 'edit_comment') %>
|
43
|
+
<%= link_to('delete', question_comment_path(@question, comment), method: :delete, confirm: 'Are you sure?') if can? :manage, comment %>
|
44
|
+
<% end %>
|
45
|
+
</div>
|
46
|
+
</div>
|
47
|
+
<% end %>
|
48
|
+
</div>
|
49
|
+
<% end %>
|
50
|
+
|
51
|
+
|
52
|
+
<% if can? :manage, Comment %>
|
53
|
+
<%= link_to("leave comment", '#', class: 'leave_comment') %>
|
54
|
+
<% else %>
|
55
|
+
<%= link_to("login leave comment", main_app_login_path) %>
|
56
|
+
<% end %>
|
57
|
+
|
58
|
+
|
59
|
+
<% if can? :manage, Comment %>
|
60
|
+
<%= simple_form_for [@question, answer.comments.build], validate: true do |f| %>
|
61
|
+
<% # TODO: Should not need hidden fields. Why doesn't build apply the foreign keys? %>
|
62
|
+
<%= f.hidden_field :user_id, value: rostra_user.id %>
|
63
|
+
<%= f.hidden_field :commentable_id, value: answer.id %>
|
64
|
+
<%= f.hidden_field :commentable_type, value: "Rostra::Answer" %>
|
65
|
+
<%= f.input :comment, label: '' %>
|
66
|
+
<%= f.submit 'post comment' %>
|
67
|
+
<% end %>
|
68
|
+
<% end %>
|
69
|
+
|
37
70
|
</div>
|
38
71
|
<% end %>
|
39
72
|
</div>
|
@@ -42,6 +75,6 @@
|
|
42
75
|
<% if user_signed_in? %>
|
43
76
|
<%= render 'rostra/answers/form' %>
|
44
77
|
<% else %>
|
45
|
-
<%= link_to "Login to answer this question",
|
78
|
+
<%= link_to "Login to answer this question", main_app_login_path, class: 'button' %>
|
46
79
|
<% end %>
|
47
80
|
</div><!-- page_content -->
|
@@ -1 +1,2 @@
|
|
1
|
-
|
1
|
+
var selector = "#rostra_question_<%= @question.id%> .vote_wrapper";
|
2
|
+
$(selector).replaceWith('<%= escape_javascript(render partial: 'rostra/shared/votes', locals: { resource: @question }) %>');
|
@@ -2,7 +2,14 @@
|
|
2
2
|
<% if user_signed_in? %>
|
3
3
|
<%= link_to 'Ask a question', new_question_path, class: "button" %>
|
4
4
|
<% else %>
|
5
|
-
<%= link_to 'Login to ask a question',
|
5
|
+
<%= link_to 'Login to ask a question', main_app_login_path, class: "button" %>
|
6
6
|
<% end %>
|
7
|
-
</div><!--sidebar-->
|
8
7
|
|
8
|
+
<h4>Trending questions</h4>
|
9
|
+
<ul id="trending_questions">
|
10
|
+
<% Rostra::Question.trending.each do |question| %>
|
11
|
+
<li><%= link_to question.title, question %></li>
|
12
|
+
<% end %>
|
13
|
+
</ul>
|
14
|
+
|
15
|
+
</div>
|
@@ -1,27 +1,19 @@
|
|
1
1
|
<div class="vote_wrapper">
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
<% up_selected = current_user.voted_for?(@question) ? 'selected' : "" %>
|
6
|
-
<%= link_to('Vote Question Up', vote_question_path(@question, vote_type: 'up'), method: :put, remote: true, class: "vote up #{up_selected}") %>
|
7
|
-
|
8
|
-
<div class="count"><%= @question.plusminus %></div>
|
9
|
-
|
10
|
-
<% down_selected = current_user.voted_against?(@question) ? 'selected' : "" %>
|
11
|
-
<%= link_to('Vote Question Down', vote_question_path(@question, vote_type: 'down'), method: :put, remote: true, class: "vote down #{down_selected}") %>
|
12
|
-
|
13
|
-
<% else %>
|
14
|
-
|
15
|
-
<%= link_to('Vote Question Up', '#', class: "vote up login_flash") %>
|
16
|
-
<div class="count"><%= @question.plusminus %></div>
|
17
|
-
<%= link_to('Vote Question Down', '#', class: "vote down login_flash") %>
|
18
|
-
|
19
|
-
<% end %>
|
20
|
-
|
2
|
+
<%= link_to_vote(:up, resource) %>
|
3
|
+
<div class="count"><%= resource.plusminus %></div>
|
4
|
+
<%= link_to_vote(:down, resource) %>
|
21
5
|
</div>
|
22
6
|
|
23
7
|
<% unless user_signed_in? %>
|
24
8
|
<div class="hidden flash" id="flash_notice">
|
25
|
-
You must <%= link_to 'login',
|
9
|
+
You must <%= link_to 'login', main_app_login_path %> or <%= link_to 'signup', main_app_signup_path %> in order to vote
|
10
|
+
<%= link_to 'close', '#', class: 'close' %>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
13
|
+
|
14
|
+
<% if can? :manage, resource %>
|
15
|
+
<div class="hidden flash" id="flash_notice">
|
16
|
+
You cannot vote on your own <%= class_name(resource) %>
|
17
|
+
<%= link_to 'close', '#', class: 'close' %>
|
26
18
|
</div>
|
27
|
-
<% end %>
|
19
|
+
<% end %>
|
data/config/routes.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
class CreateComments < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :comments do |t|
|
4
|
+
t.text :comment
|
5
|
+
t.references :commentable, :polymorphic => true
|
6
|
+
t.references :user
|
7
|
+
t.timestamps
|
8
|
+
end
|
9
|
+
|
10
|
+
add_index :comments, :commentable_type
|
11
|
+
add_index :comments, :commentable_id
|
12
|
+
add_index :comments, :user_id
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.down
|
16
|
+
drop_table :comments
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
class CreateImpressionsTable < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :impressions, :force => true do |t|
|
4
|
+
t.string :impressionable_type
|
5
|
+
t.integer :impressionable_id
|
6
|
+
t.integer :user_id
|
7
|
+
t.string :controller_name
|
8
|
+
t.string :action_name
|
9
|
+
t.string :view_name
|
10
|
+
t.string :request_hash
|
11
|
+
t.string :session_hash
|
12
|
+
t.string :ip_address
|
13
|
+
t.string :message
|
14
|
+
t.string :referrer
|
15
|
+
t.timestamps
|
16
|
+
end
|
17
|
+
add_index :impressions, [:impressionable_type, :impressionable_id, :request_hash], :name => "poly_request_index", :unique => false
|
18
|
+
add_index :impressions, [:impressionable_type, :impressionable_id, :ip_address], :name => "poly_ip_index", :unique => false
|
19
|
+
add_index :impressions, [:impressionable_type, :impressionable_id, :session_hash], :name => "poly_session_index", :unique => false
|
20
|
+
add_index :impressions, [:controller_name,:action_name,:request_hash], :name => "controlleraction_request_index", :unique => false
|
21
|
+
add_index :impressions, [:controller_name,:action_name,:ip_address], :name => "controlleraction_ip_index", :unique => false
|
22
|
+
add_index :impressions, [:controller_name,:action_name,:session_hash], :name => "controlleraction_session_index", :unique => false
|
23
|
+
add_index :impressions, :user_id
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.down
|
27
|
+
remove_index :impressions, :name => :poly_request_index
|
28
|
+
remove_index :impressions, :name => :poly_ip_index
|
29
|
+
remove_index :impressions, :name => :poly_session_index
|
30
|
+
remove_index :impressions, :name => :controlleraction_request_index
|
31
|
+
remove_index :impressions, :name => :controlleraction_ip_index
|
32
|
+
remove_index :impressions, :name => :controlleraction_session_index
|
33
|
+
remove_index :impressions, :user_id
|
34
|
+
|
35
|
+
drop_table :impressions
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Rostra
|
2
|
+
module Generators
|
3
|
+
class InstallGenerator < Rails::Generators::Base
|
4
|
+
desc "Copy Rostra config file"
|
5
|
+
source_root File.expand_path('../templates', __FILE__)
|
6
|
+
class_option :template_engine
|
7
|
+
|
8
|
+
def copy_config
|
9
|
+
directory 'config'
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Use this setup block to configure all options available in Rostra.
|
2
|
+
Rostra::Config.setup do |config|
|
3
|
+
# Helper method used to access current user in the view
|
4
|
+
# config.rostra_user = :current_user
|
5
|
+
|
6
|
+
# Method called on the rostra'd model (e.g. User) to access the users full name
|
7
|
+
# config.rostra_user_name = :name
|
8
|
+
|
9
|
+
# Method called on the rostra'd model (e.g. User) to access the users email address
|
10
|
+
# config.rostra_user_email = :email
|
11
|
+
|
12
|
+
# Method called on the rostra'd model (e.g. User) to access the users avatar. It
|
13
|
+
# looks for an avatar in this order:
|
14
|
+
#
|
15
|
+
# 1. Calls the method defined here
|
16
|
+
# 2. Uses the users email address to looks for a gravatar
|
17
|
+
# 3. Renders <tt>app/assets/images/rostra/anonymous_avatar.png</tt>
|
18
|
+
#
|
19
|
+
# config.rostra_user_avatar = :avatar
|
20
|
+
|
21
|
+
# Route to your login page
|
22
|
+
# config.main_app_login_path = :new_user_session_path
|
23
|
+
|
24
|
+
# Route to your signup page
|
25
|
+
# config.main_app_signup_path = :new_user_registration_path
|
26
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Rostra
|
2
|
+
module Config
|
3
|
+
# Helper method used to access current user in the view
|
4
|
+
mattr_accessor :rostra_user
|
5
|
+
@@rostra_user = :current_user
|
6
|
+
|
7
|
+
# Method called on the rostra'd model (e.g. User) to access the users full name
|
8
|
+
mattr_accessor :rostra_user_name
|
9
|
+
@@rostra_user_name = :name
|
10
|
+
|
11
|
+
# Method called on the rostra'd model (e.g. User) to access the users email
|
12
|
+
mattr_accessor :rostra_user_email
|
13
|
+
@@rostra_user_email = :email
|
14
|
+
|
15
|
+
# Method called on the rostra'd model (e.g. User) to access the users avatar. It looks
|
16
|
+
# for an avatar in this order:
|
17
|
+
#
|
18
|
+
# 1. Calls the method defined here
|
19
|
+
# 2. Uses the users email address to looks for a gravatar
|
20
|
+
# 3. Renders <tt>app/assets/images/rostra/anonymous_avatar.png</tt>
|
21
|
+
#
|
22
|
+
mattr_accessor :rostra_user_avatar
|
23
|
+
@@rostra_user_avatar = :avatar
|
24
|
+
|
25
|
+
# Route to your login page
|
26
|
+
mattr_accessor :main_app_login_path
|
27
|
+
@@main_app_login_path = :new_user_session_path
|
28
|
+
|
29
|
+
# Route to your signup page
|
30
|
+
mattr_accessor :main_app_signup_path
|
31
|
+
@@main_app_signup_path = :new_user_registration_path
|
32
|
+
|
33
|
+
def self.setup
|
34
|
+
yield self
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
data/lib/rostra/engine.rb
CHANGED
data/lib/rostra/version.rb
CHANGED
data/lib/rostra.rb
CHANGED
@@ -1,11 +1,66 @@
|
|
1
1
|
require "rostra/engine"
|
2
|
+
require "rostra/config"
|
2
3
|
|
3
4
|
module Rostra
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
module ActsAsRostra
|
7
|
+
def self.included(base)
|
8
|
+
base.extend ClassMethods
|
9
|
+
end
|
10
|
+
|
11
|
+
module ClassMethods
|
12
|
+
|
13
|
+
# Include this method in your <tt>rostra</tt>'d model to add the necessary accociations and
|
14
|
+
# and methods:
|
15
|
+
#
|
16
|
+
# class User < ActiveRecord::Base
|
17
|
+
# rostra
|
18
|
+
# end
|
19
|
+
#
|
20
|
+
def rostra
|
21
|
+
has_many :questions
|
22
|
+
has_many :answers
|
23
|
+
has_many :comments
|
24
|
+
acts_as_voter
|
25
|
+
|
26
|
+
include InstanceMethods
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
module InstanceMethods
|
31
|
+
|
32
|
+
# Built atop the <tt>thumbs_up</tt> API, this method does some conditional voting:
|
33
|
+
#
|
34
|
+
# * Clear the user's existing vote if...
|
35
|
+
# - they've already voted up and attempt to vote up again
|
36
|
+
# - they've already voted down and attempt to vote down again
|
37
|
+
# * Ensure the user only votes once per resource (i.e. question or answer)
|
38
|
+
# * Clear previous votes before casting a new vote (e.g. they've already voted up and
|
39
|
+
# click to vote down, then clear the old up vote prior to casting the new down vote)
|
40
|
+
#
|
41
|
+
def vote_on(resource, direction)
|
42
|
+
direction = direction.to_sym
|
43
|
+
if (direction == :up && voted_for?(resource)) || (direction == :down && voted_against?(resource))
|
44
|
+
clear_votes(resource)
|
45
|
+
else
|
46
|
+
vote(resource, {:exclusive => true, :direction => direction})
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
# Rostra will use this method to find a user's full name.
|
51
|
+
#
|
52
|
+
def rostra_user_name
|
53
|
+
send(Rostra::Config.rostra_user_name)
|
54
|
+
end
|
55
|
+
|
56
|
+
# Rostra will use this method to find a user's email address.
|
57
|
+
#
|
58
|
+
def rostra_user_email
|
59
|
+
send(Rostra::Config.rostra_user_email)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
10
63
|
|
11
64
|
end
|
65
|
+
|
66
|
+
ActiveRecord::Base.send(:include, Rostra::ActsAsRostra)
|