brick_layer 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +9 -0
- data/Gemfile +13 -0
- data/README.rdoc +278 -0
- data/Rakefile +36 -0
- data/app/assets/javascripts/tiny_mce/langs/en.js +1 -0
- data/app/assets/javascripts/tiny_mce/license.txt +504 -0
- data/app/assets/javascripts/tiny_mce/plugins/advhr/css/advhr.css +5 -0
- data/app/assets/javascripts/tiny_mce/plugins/advhr/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/advhr/editor_plugin_src.js +57 -0
- data/app/assets/javascripts/tiny_mce/plugins/advhr/js/rule.js +43 -0
- data/app/assets/javascripts/tiny_mce/plugins/advhr/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/advhr/rule.htm +58 -0
- data/app/assets/javascripts/tiny_mce/plugins/advimage/css/advimage.css +13 -0
- data/app/assets/javascripts/tiny_mce/plugins/advimage/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/advimage/editor_plugin_src.js +50 -0
- data/app/assets/javascripts/tiny_mce/plugins/advimage/image.htm +235 -0
- data/app/assets/javascripts/tiny_mce/plugins/advimage/img/sample.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/advimage/js/image.js +462 -0
- data/app/assets/javascripts/tiny_mce/plugins/advimage/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/advlink/css/advlink.css +8 -0
- data/app/assets/javascripts/tiny_mce/plugins/advlink/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/advlink/editor_plugin_src.js +61 -0
- data/app/assets/javascripts/tiny_mce/plugins/advlink/js/advlink.js +539 -0
- data/app/assets/javascripts/tiny_mce/plugins/advlink/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/advlink/link.htm +338 -0
- data/app/assets/javascripts/tiny_mce/plugins/advlist/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/advlist/editor_plugin_src.js +176 -0
- data/app/assets/javascripts/tiny_mce/plugins/autolink/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/autolink/editor_plugin_src.js +174 -0
- data/app/assets/javascripts/tiny_mce/plugins/autoresize/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/autoresize/editor_plugin_src.js +119 -0
- data/app/assets/javascripts/tiny_mce/plugins/autosave/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/autosave/editor_plugin_src.js +431 -0
- data/app/assets/javascripts/tiny_mce/plugins/autosave/langs/en.js +4 -0
- data/app/assets/javascripts/tiny_mce/plugins/bbcode/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/bbcode/editor_plugin_src.js +120 -0
- data/app/assets/javascripts/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js +161 -0
- data/app/assets/javascripts/tiny_mce/plugins/directionality/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/directionality/editor_plugin_src.js +82 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/editor_plugin_src.js +43 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/emotions.htm +42 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-cool.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-cry.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-frown.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-smile.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-wink.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/img/smiley-yell.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/js/emotions.js +43 -0
- data/app/assets/javascripts/tiny_mce/plugins/emotions/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/example/dialog.htm +22 -0
- data/app/assets/javascripts/tiny_mce/plugins/example/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/example/editor_plugin_src.js +84 -0
- data/app/assets/javascripts/tiny_mce/plugins/example/img/example.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/example/js/dialog.js +19 -0
- data/app/assets/javascripts/tiny_mce/plugins/example/langs/en.js +3 -0
- data/app/assets/javascripts/tiny_mce/plugins/example/langs/en_dlg.js +3 -0
- data/app/assets/javascripts/tiny_mce/plugins/example_dependency/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/example_dependency/editor_plugin_src.js +50 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullpage/css/fullpage.css +143 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullpage/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullpage/editor_plugin_src.js +405 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullpage/fullpage.htm +259 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullpage/js/fullpage.js +232 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullpage/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js +159 -0
- data/app/assets/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm +110 -0
- data/app/assets/javascripts/tiny_mce/plugins/iespell/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/iespell/editor_plugin_src.js +54 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +699 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +90 -0
- data/app/assets/javascripts/tiny_mce/plugins/inlinepopups/template.htm +387 -0
- data/app/assets/javascripts/tiny_mce/plugins/insertdatetime/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js +83 -0
- data/app/assets/javascripts/tiny_mce/plugins/layer/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/layer/editor_plugin_src.js +262 -0
- data/app/assets/javascripts/tiny_mce/plugins/legacyoutput/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js +139 -0
- data/app/assets/javascripts/tiny_mce/plugins/lists/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/lists/editor_plugin_src.js +954 -0
- data/app/assets/javascripts/tiny_mce/plugins/media/css/media.css +17 -0
- data/app/assets/javascripts/tiny_mce/plugins/media/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/media/editor_plugin_src.js +890 -0
- data/app/assets/javascripts/tiny_mce/plugins/media/js/embed.js +73 -0
- data/app/assets/javascripts/tiny_mce/plugins/media/js/media.js +470 -0
- data/app/assets/javascripts/tiny_mce/plugins/media/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/media/media.htm +922 -0
- data/app/assets/javascripts/tiny_mce/plugins/media/moxieplayer.swf +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +54 -0
- data/app/assets/javascripts/tiny_mce/plugins/noneditable/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/noneditable/editor_plugin_src.js +433 -0
- data/app/assets/javascripts/tiny_mce/plugins/pagebreak/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js +74 -0
- data/app/assets/javascripts/tiny_mce/plugins/paste/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/paste/editor_plugin_src.js +871 -0
- data/app/assets/javascripts/tiny_mce/plugins/paste/js/pastetext.js +36 -0
- data/app/assets/javascripts/tiny_mce/plugins/paste/js/pasteword.js +51 -0
- data/app/assets/javascripts/tiny_mce/plugins/paste/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/paste/pastetext.htm +27 -0
- data/app/assets/javascripts/tiny_mce/plugins/paste/pasteword.htm +21 -0
- data/app/assets/javascripts/tiny_mce/plugins/preview/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/preview/editor_plugin_src.js +53 -0
- data/app/assets/javascripts/tiny_mce/plugins/preview/example.html +28 -0
- data/app/assets/javascripts/tiny_mce/plugins/preview/jscripts/embed.js +73 -0
- data/app/assets/javascripts/tiny_mce/plugins/preview/preview.html +17 -0
- data/app/assets/javascripts/tiny_mce/plugins/print/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/print/editor_plugin_src.js +34 -0
- data/app/assets/javascripts/tiny_mce/plugins/save/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/save/editor_plugin_src.js +101 -0
- data/app/assets/javascripts/tiny_mce/plugins/searchreplace/css/searchreplace.css +6 -0
- data/app/assets/javascripts/tiny_mce/plugins/searchreplace/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js +61 -0
- data/app/assets/javascripts/tiny_mce/plugins/searchreplace/js/searchreplace.js +142 -0
- data/app/assets/javascripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/searchreplace/searchreplace.htm +100 -0
- data/app/assets/javascripts/tiny_mce/plugins/spellchecker/css/content.css +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js +436 -0
- data/app/assets/javascripts/tiny_mce/plugins/spellchecker/img/wline.gif +0 -0
- data/app/assets/javascripts/tiny_mce/plugins/style/css/props.css +14 -0
- data/app/assets/javascripts/tiny_mce/plugins/style/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/style/editor_plugin_src.js +71 -0
- data/app/assets/javascripts/tiny_mce/plugins/style/js/props.js +709 -0
- data/app/assets/javascripts/tiny_mce/plugins/style/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/style/props.htm +845 -0
- data/app/assets/javascripts/tiny_mce/plugins/style/readme.txt +19 -0
- data/app/assets/javascripts/tiny_mce/plugins/tabfocus/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js +122 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/cell.htm +180 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/css/cell.css +17 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/css/row.css +25 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/css/table.css +13 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/editor_plugin_src.js +1428 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/js/cell.js +319 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/js/merge_cells.js +27 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/js/row.js +237 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/js/table.js +489 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/merge_cells.htm +32 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/row.htm +158 -0
- data/app/assets/javascripts/tiny_mce/plugins/table/table.htm +188 -0
- data/app/assets/javascripts/tiny_mce/plugins/template/blank.htm +12 -0
- data/app/assets/javascripts/tiny_mce/plugins/template/css/template.css +23 -0
- data/app/assets/javascripts/tiny_mce/plugins/template/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/template/editor_plugin_src.js +159 -0
- data/app/assets/javascripts/tiny_mce/plugins/template/js/template.js +106 -0
- data/app/assets/javascripts/tiny_mce/plugins/template/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/template/template.htm +31 -0
- data/app/assets/javascripts/tiny_mce/plugins/visualblocks/css/visualblocks.css +19 -0
- data/app/assets/javascripts/tiny_mce/plugins/visualblocks/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/visualblocks/editor_plugin_src.js +63 -0
- data/app/assets/javascripts/tiny_mce/plugins/visualchars/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/visualchars/editor_plugin_src.js +83 -0
- data/app/assets/javascripts/tiny_mce/plugins/wordcount/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/wordcount/editor_plugin_src.js +122 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/abbr.htm +142 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/acronym.htm +142 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/attributes.htm +149 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/cite.htm +142 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css +11 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/css/popup.css +9 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/del.htm +162 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js +1 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +132 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/ins.htm +162 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js +28 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js +28 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js +111 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/js/cite.js +28 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/js/del.js +53 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js +229 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/js/ins.js +53 -0
- data/app/assets/javascripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/about.htm +52 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/anchor.htm +26 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/charmap.htm +55 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/color_picker.htm +74 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/editor_template.js +1 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/editor_template_src.js +1467 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/image.htm +80 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/flash.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/iframe.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/pagebreak.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/quicktime.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/realmedia.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/shockwave.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/trans.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/video.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/img/windowsmedia.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/js/about.js +73 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/js/anchor.js +44 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/js/charmap.js +363 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/js/color_picker.js +345 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/js/image.js +251 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/js/link.js +153 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/js/source_editor.js +78 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/langs/en.js +1 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js +1 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/link.htm +57 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/shortcuts.htm +47 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/content.css +50 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css +117 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/default/ui.css +215 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/content.css +24 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css +105 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css +102 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css +48 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +117 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +218 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +8 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -0
- data/app/assets/javascripts/tiny_mce/themes/advanced/source_editor.htm +25 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/editor_template.js +1 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/editor_template_src.js +84 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/img/icons.gif +0 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/langs/en.js +1 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/skins/default/content.css +25 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/skins/default/ui.css +32 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/skins/o2k7/content.css +17 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png +0 -0
- data/app/assets/javascripts/tiny_mce/themes/simple/skins/o2k7/ui.css +35 -0
- data/app/assets/javascripts/tiny_mce/tiny_mce.js +1 -0
- data/app/assets/javascripts/tiny_mce/tiny_mce_popup.js +5 -0
- data/app/assets/javascripts/tiny_mce/tiny_mce_src.js +17480 -0
- data/app/assets/javascripts/tiny_mce/utils/editable_selects.js +70 -0
- data/app/assets/javascripts/tiny_mce/utils/form_utils.js +210 -0
- data/app/assets/javascripts/tiny_mce/utils/mctabs.js +162 -0
- data/app/assets/javascripts/tiny_mce/utils/validate.js +252 -0
- data/app/assets/stylesheets/brick_layer.css +4 -0
- data/app/assets/stylesheets/default_form.css.scss +117 -0
- data/app/assets/stylesheets/default_style.css.scss +90 -0
- data/app/assets/stylesheets/default_table.css.scss +40 -0
- data/app/assets/stylesheets/default_typography.css.scss +10 -0
- data/app/assets/stylesheets/reset.css +102 -0
- data/app/controllers/brick_layer/admin_controller.rb +3 -0
- data/app/controllers/brick_layer/data_sets_controller.rb +95 -0
- data/app/controllers/brick_layer/manager_controller.rb +7 -0
- data/app/controllers/brick_layer/routes_controller.rb +103 -0
- data/app/helpers/brick_layer/data_set_helper.rb +148 -0
- data/app/helpers/brick_layer/layout_helper.rb +20 -0
- data/app/helpers/brick_layer/site_helper.rb +5 -0
- data/app/models/brick_layer/data_set.rb +219 -0
- data/app/models/brick_layer/file_uploader.rb +7 -0
- data/app/models/brick_layer/route.rb +68 -0
- data/app/models/brick_layer/search.rb +61 -0
- data/app/views/brick_layer/data_sets/_form.html.haml +18 -0
- data/app/views/brick_layer/data_sets/edit.html.haml +7 -0
- data/app/views/brick_layer/data_sets/index.html.haml +25 -0
- data/app/views/brick_layer/data_sets/new.html.haml +5 -0
- data/app/views/brick_layer/data_sets/search.html.haml +1 -0
- data/app/views/brick_layer/data_sets/show.html.haml +32 -0
- data/app/views/brick_layer/layouts/brick_layer_layout.html.haml +40 -0
- data/app/views/brick_layer/manager/data_set_list.html.haml +1 -0
- data/app/views/brick_layer/manager/index.html.haml +1 -0
- data/app/views/brick_layer/routes/_form.html.haml +11 -0
- data/app/views/brick_layer/routes/_route.html.haml +15 -0
- data/app/views/brick_layer/routes/edit.html.haml +21 -0
- data/app/views/brick_layer/routes/index.html.haml +5 -0
- data/app/views/brick_layer/routes/new.html.haml +5 -0
- data/app/views/brick_layer/routes/show.html.haml +27 -0
- data/app/views/brick_layer/shared/_custom_data_sets_list.html.haml +9 -0
- data/config/initializers/brick_layer_carrierwave.rb +6 -0
- data/config/initializers/brick_layer_dragonfly.rb +10 -0
- data/config/routes.rb +28 -0
- data/lib/brick_layer/engine.rb +11 -0
- data/lib/brick_layer/extensions.rb +8 -0
- data/lib/brick_layer/serve_grid_fs_file.rb +22 -0
- data/lib/brick_layer.rb +27 -0
- data/lib/tasks/brick_layer_tasks.rake +4 -0
- data/lib/version.rb +3 -0
- data/spec/controllers/brick_layer/data_sets_controller_spec.rb +69 -0
- data/spec/helpers/brick_layer/data_set_helper_spec.rb +174 -0
- data/spec/helpers/brick_layer/layout_helper_spec.rb +17 -0
- data/spec/models/brick_layer/data_set_spec.rb +81 -0
- data/spec/models/brick_layer/route_spec.rb +76 -0
- data/spec/models/brick_layer/search_spec.rb +101 -0
- data/spec/routing/data_set_routing_spec.rb +83 -0
- data/spec/spec_helper.rb +44 -0
- metadata +588 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.rdoc
ADDED
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
= Brick Layer
|
|
2
|
+
|
|
3
|
+
The concept behind Brick Layer is to have a site manager that includes CMS as a feature. It should be easy
|
|
4
|
+
to plug into any Rails 3.1 application. It provides the bare minimum support to get up and rolling quickly
|
|
5
|
+
with a basic CRUD data management system that easily outputs JSON as an alternative format by default.
|
|
6
|
+
|
|
7
|
+
== Features
|
|
8
|
+
|
|
9
|
+
* CRUD and RESTful DataSet Support
|
|
10
|
+
- If you just need to have a system of any kind of data that outputs to json
|
|
11
|
+
|
|
12
|
+
* Search Support
|
|
13
|
+
- Searching across a certain set of data or all data sets should be easy
|
|
14
|
+
|
|
15
|
+
* Routing Support
|
|
16
|
+
- Easily tie a route to a certain data set endpoint
|
|
17
|
+
|
|
18
|
+
* Auto UI Generation
|
|
19
|
+
- Allow the dataset definitions to generate your user interface for you
|
|
20
|
+
|
|
21
|
+
*[TODO] User Authentication (For now you can roll your own)
|
|
22
|
+
- Don't allow anyone to pop into the admin, this control is already installed
|
|
23
|
+
|
|
24
|
+
* Custom Config API
|
|
25
|
+
- Easily ping the app to get JSON format delivery of existing Routes and other configuration
|
|
26
|
+
|
|
27
|
+
== Requirements
|
|
28
|
+
|
|
29
|
+
- Right now this requires Mongo which currently provides the maximum flexibility in what the use cases are.
|
|
30
|
+
|
|
31
|
+
== Installation
|
|
32
|
+
|
|
33
|
+
Add the gem to your Rails 3.1 application Gemfile and that's it!
|
|
34
|
+
|
|
35
|
+
gem 'brick_layer'
|
|
36
|
+
|
|
37
|
+
Also in your 'app/assets/stylesheets' directory add:
|
|
38
|
+
//= require brick_layer
|
|
39
|
+
|
|
40
|
+
== Data Sets
|
|
41
|
+
|
|
42
|
+
To define a data set:
|
|
43
|
+
|
|
44
|
+
# You can name your data set whatever you want, but you probably want to try and end it with "DataSet" as a convention
|
|
45
|
+
|
|
46
|
+
class ShipDataSet < BrickLayer::DataSet
|
|
47
|
+
field :name, type: String
|
|
48
|
+
field :size, type: String
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
This will include the timestamps and text search abilities (if you need them) by default. After creating a data set or a few, it should be accessible via:
|
|
52
|
+
|
|
53
|
+
http://<host>:<port>/brick_layer/data-sets/ship_data_sets
|
|
54
|
+
OR EVEN BETTER
|
|
55
|
+
http://<host>:<port>/brick_layer/data-sets/ship_data_sets.json
|
|
56
|
+
|
|
57
|
+
If you want to make a method accessible in the data set json you can just:
|
|
58
|
+
|
|
59
|
+
class ShipDataSet < BrickLayer::DataSet
|
|
60
|
+
field :name, type: String
|
|
61
|
+
field :size, type: String
|
|
62
|
+
|
|
63
|
+
expose_data :my_method
|
|
64
|
+
|
|
65
|
+
def my_method(options={})
|
|
66
|
+
"result from my method"
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
This will make the method's result available in the json in the format:
|
|
71
|
+
|
|
72
|
+
{ my_method: "result from method" }
|
|
73
|
+
|
|
74
|
+
The options variable is there to support changing up the data if you want for some reason. The default html view on a page data set will pass { :html => true } as an option
|
|
75
|
+
to the exposed data method. So you can format the display of exposed data methods if you want.
|
|
76
|
+
|
|
77
|
+
class ShipDataSet < BrickLayer::DataSet
|
|
78
|
+
field :name, type: String
|
|
79
|
+
field :size, type: String
|
|
80
|
+
|
|
81
|
+
expose_data :my_method
|
|
82
|
+
|
|
83
|
+
def my_method(options={})
|
|
84
|
+
if options[:html]
|
|
85
|
+
"something that is readable in an html view"
|
|
86
|
+
else
|
|
87
|
+
"some other format for json display"
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
== CRUD and Auto Form Builder
|
|
93
|
+
|
|
94
|
+
There is a built in auto-crud system with simple styles to handle quickly adding data to the database.
|
|
95
|
+
|
|
96
|
+
Brick Layer is using simple form to help support the auto building for HTML5 forms for custom field types. You can find out more about
|
|
97
|
+
simple form at https://github.com/plataformatec/simple_form
|
|
98
|
+
|
|
99
|
+
Using the UI form builder is fairly easy. It'll automatically read the fields you define on a model and display them correctly.
|
|
100
|
+
|
|
101
|
+
Let's say we define a standalone data set like:
|
|
102
|
+
|
|
103
|
+
class Product < BrickLayer::DataSet
|
|
104
|
+
field :name, type: String
|
|
105
|
+
field :release_date, type: DateTime
|
|
106
|
+
field :publish, type: Boolean
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
Then we head over to:
|
|
110
|
+
|
|
111
|
+
http://<host>:<port>/brick_layer/data-sets/products
|
|
112
|
+
|
|
113
|
+
From there will be able to create a new product and the fields will be formatted to match the data types we've described here.
|
|
114
|
+
|
|
115
|
+
Now, I know what you are thinking - what about when I want to have a file field or something similar. That's easy to:
|
|
116
|
+
|
|
117
|
+
class Product < BrickLayer::DataSet
|
|
118
|
+
field :name, type: String
|
|
119
|
+
field :release_date, type: DateTime
|
|
120
|
+
field :publish, type: Boolean
|
|
121
|
+
|
|
122
|
+
custom_field :description, :text
|
|
123
|
+
custom_field :website, :url
|
|
124
|
+
custom_field :phone, :phone
|
|
125
|
+
custom_field :avatar, :image # This requires you have imagemagick installed
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
All you have to do is say 'custom_field_type' with whatever mapping that is supported by simple form.
|
|
129
|
+
|
|
130
|
+
You can pass simple form supported options into your custom field to enable the built in WYSIWYG editor or whatever else you want to pass to the view.
|
|
131
|
+
|
|
132
|
+
class Product < BrickLayer::DataSet
|
|
133
|
+
custom_field :description, :text, { :input_html => { :class => "withEditor" } }
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
Relationships are also supported so you can add those and the fields should automatically show up.
|
|
138
|
+
|
|
139
|
+
class Owner < BrickLayer::DataSet
|
|
140
|
+
field :name
|
|
141
|
+
|
|
142
|
+
has_one :company, autosave: true
|
|
143
|
+
|
|
144
|
+
def to_s
|
|
145
|
+
self.name
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
class Company < BrickLayer::DataSet
|
|
150
|
+
field :name
|
|
151
|
+
|
|
152
|
+
belongs_to :owner
|
|
153
|
+
has_many :employees, autosave: true
|
|
154
|
+
|
|
155
|
+
def to_s
|
|
156
|
+
self.name
|
|
157
|
+
end
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
class Employee < BrickLayer::DataSet
|
|
161
|
+
belongs_to :company
|
|
162
|
+
|
|
163
|
+
field :first_name, type: String
|
|
164
|
+
field :last_name, type: String
|
|
165
|
+
field :dob, type: DateTime
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
The defined "to_s" method will be used when displaying item information in the form fields.
|
|
169
|
+
|
|
170
|
+
== Admin UI Control (CUSTOM DATA SET LINKS)
|
|
171
|
+
|
|
172
|
+
If you choose to use the view navigation outside of just using URLs you can add the standalone classes you want to show in an initializer file.
|
|
173
|
+
|
|
174
|
+
# config/initializers/brick_layer_init.rb (or whatever you want)
|
|
175
|
+
|
|
176
|
+
BrickLayer.data_sets_standalones = [:companies, :employees]
|
|
177
|
+
|
|
178
|
+
This will add these classes to the "Custom Data Sets Link" in the admin navigation and also initialize the navigation link to show all together.
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
== Admin UI Control (ROUTES and PAGES)
|
|
182
|
+
|
|
183
|
+
The concept behind the admin of brick layer when it comes to pages is that you don't have to use them unless you want to.
|
|
184
|
+
In order to get a page (which is basically a route with a data set) requires little work. There is a conventional way of using pages.
|
|
185
|
+
|
|
186
|
+
First you have to enable page support by adding this configuration to your initializer file:
|
|
187
|
+
|
|
188
|
+
# config/initializers/brick_layer_init.rb (or whatever you want)
|
|
189
|
+
|
|
190
|
+
BrickLayer.enable_pages = true
|
|
191
|
+
|
|
192
|
+
Once that is done you'll get a pages link that'll allow you to create new routes and attach data sets to them. So the way this works is that you define
|
|
193
|
+
your dataset for page just like any other dataset. Except you put it in your models/page_data_sets/directory (this is a convention)
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
# app/models/page_data_sets/home_page
|
|
197
|
+
|
|
198
|
+
class PageDataSets::HomePage < BrickLayer::DataSet
|
|
199
|
+
belongs_to :company
|
|
200
|
+
|
|
201
|
+
field :welcome_message, type: String
|
|
202
|
+
field :blurb, type: String
|
|
203
|
+
|
|
204
|
+
custom_field :welcome_message, :text
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
Once you do this and you go to create a route you'll get the option to select the data set associated with the route. Once you create the route it'll redirect
|
|
208
|
+
you to the edit page for that route which will show the custom form fields associated with that page. That's it!
|
|
209
|
+
|
|
210
|
+
So all you have to do at this point is create data sets that you want to associate with a page that'll be made available when you request the page. Don't forget
|
|
211
|
+
that you can aggregate more data on a page as well.
|
|
212
|
+
|
|
213
|
+
For example, let's say you have a product custom data set already and you want to display the 10 most recent on the homepage. You can do this:
|
|
214
|
+
|
|
215
|
+
# app/models/page_data_sets/home_page
|
|
216
|
+
|
|
217
|
+
class PageDataSets::HomePage < BrickLayer::DataSet
|
|
218
|
+
belongs_to :company
|
|
219
|
+
|
|
220
|
+
field :welcome_message, type: String
|
|
221
|
+
field :blurb, type: String
|
|
222
|
+
|
|
223
|
+
custom_field :welcome_message, :text
|
|
224
|
+
|
|
225
|
+
expose_data :most_recent_products
|
|
226
|
+
|
|
227
|
+
def most_recent_products(options={})
|
|
228
|
+
DummyCompany.order_by(:created_at,"DESC").limit(10)
|
|
229
|
+
end
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
That data will be made available for that page attached to that route!
|
|
233
|
+
|
|
234
|
+
Also, let's say that you want to give the administrator control over what the limit to display on that page is. No sweat, you would:
|
|
235
|
+
|
|
236
|
+
# app/models/page_data_sets/home_page
|
|
237
|
+
|
|
238
|
+
class PageDataSets::HomePage < BrickLayer::DataSet
|
|
239
|
+
belongs_to :company
|
|
240
|
+
|
|
241
|
+
field :welcome_message, type: String
|
|
242
|
+
field :blurb, type: String
|
|
243
|
+
field :limit, type: Integer
|
|
244
|
+
|
|
245
|
+
custom_field :welcome_message, :text
|
|
246
|
+
|
|
247
|
+
expose_data :most_recent_products
|
|
248
|
+
|
|
249
|
+
def most_recent_productss(options={})
|
|
250
|
+
product_limit = 10 || self.limit
|
|
251
|
+
DummyCompany.order_by(:created_at,"DESC").limit(product_limit)
|
|
252
|
+
end
|
|
253
|
+
end
|
|
254
|
+
|
|
255
|
+
You can access this data at:
|
|
256
|
+
http://<host>:<port>/brick_layer/your-route-here
|
|
257
|
+
AND OF COURSE in JSON!
|
|
258
|
+
http://<host>:<port>/brick_layer/your-route-here.json
|
|
259
|
+
|
|
260
|
+
== Search
|
|
261
|
+
|
|
262
|
+
To search all data sets you can ping the url with the path to search and pass it params. The search supports most mongo queries.
|
|
263
|
+
|
|
264
|
+
So you can:
|
|
265
|
+
|
|
266
|
+
http://<host>:<port>/brick_layer/data-sets/search?title_in="document title"
|
|
267
|
+
|
|
268
|
+
If you want to search on a specific data set just pass it in as a model param:
|
|
269
|
+
|
|
270
|
+
http://<host>:<port>/brick_layer/data-sets/search?title_in="document title"&models="ship_data_set"
|
|
271
|
+
|
|
272
|
+
You can also chain queries together:
|
|
273
|
+
|
|
274
|
+
http://<host>:<port>/brick_layer/data-sets/search?queries[title_in]="document title"&queries[meta_description_in] = "meta description"
|
|
275
|
+
|
|
276
|
+
Just add .json to the end of 'search' and you get results in json format:
|
|
277
|
+
|
|
278
|
+
http://<host>:<port>/brick_layer/data-sets/search.json?title_in="document title"
|
data/Rakefile
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#!/usr/bin/env rake
|
|
2
|
+
begin
|
|
3
|
+
require 'bundler/setup'
|
|
4
|
+
rescue LoadError
|
|
5
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
|
6
|
+
end
|
|
7
|
+
begin
|
|
8
|
+
require 'rdoc/task'
|
|
9
|
+
rescue LoadError
|
|
10
|
+
require 'rdoc/rdoc'
|
|
11
|
+
require 'rake/rdoctask'
|
|
12
|
+
RDoc::Task = Rake::RDocTask
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
|
16
|
+
rdoc.rdoc_dir = 'rdoc'
|
|
17
|
+
rdoc.title = 'BrickLayer'
|
|
18
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
|
19
|
+
rdoc.rdoc_files.include('README.rdoc')
|
|
20
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
|
|
24
|
+
load 'rails/tasks/engine.rake'
|
|
25
|
+
|
|
26
|
+
require 'rake/testtask'
|
|
27
|
+
|
|
28
|
+
Rake::TestTask.new(:test) do |t|
|
|
29
|
+
t.libs << 'lib'
|
|
30
|
+
t.libs << 'test'
|
|
31
|
+
t.pattern = 'test/**/*_test.rb'
|
|
32
|
+
t.verbose = false
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
task :default => :test
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
tinyMCE.addI18n({en:{common:{"more_colors":"More Colors...","invalid_data":"Error: Invalid values entered, these are marked in red.","popup_blocked":"Sorry, but we have noticed that your popup-blocker has disabled a window that provides application functionality. You will need to disable popup blocking on this site in order to fully utilize this tool.","clipboard_no_support":"Currently not supported by your browser, use keyboard shortcuts instead.","clipboard_msg":"Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?","not_set":"-- Not Set --","class_name":"Class",browse:"Browse",close:"Close",cancel:"Cancel",update:"Update",insert:"Insert",apply:"Apply","edit_confirm":"Do you want to use the WYSIWYG mode for this textarea?","invalid_data_number":"{#field} must be a number","invalid_data_min":"{#field} must be a number greater than {#min}","invalid_data_size":"{#field} must be a number or percentage",value:"(value)"},contextmenu:{full:"Full",right:"Right",center:"Center",left:"Left",align:"Alignment"},insertdatetime:{"day_short":"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun","day_long":"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday","months_short":"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec","months_long":"January,February,March,April,May,June,July,August,September,October,November,December","inserttime_desc":"Insert Time","insertdate_desc":"Insert Date","time_fmt":"%H:%M:%S","date_fmt":"%Y-%m-%d"},print:{"print_desc":"Print"},preview:{"preview_desc":"Preview"},directionality:{"rtl_desc":"Direction Right to Left","ltr_desc":"Direction Left to Right"},layer:{content:"New layer...","absolute_desc":"Toggle Absolute Positioning","backward_desc":"Move Backward","forward_desc":"Move Forward","insertlayer_desc":"Insert New Layer"},save:{"save_desc":"Save","cancel_desc":"Cancel All Changes"},nonbreaking:{"nonbreaking_desc":"Insert Non-Breaking Space Character"},iespell:{download:"ieSpell not detected. Do you want to install it now?","iespell_desc":"Check Spelling"},advhr:{"delta_height":"","delta_width":"","advhr_desc":"Insert Horizontal Line"},emotions:{"delta_height":"","delta_width":"","emotions_desc":"Emotions"},searchreplace:{"replace_desc":"Find/Replace","delta_width":"","delta_height":"","search_desc":"Find"},advimage:{"delta_width":"","image_desc":"Insert/Edit Image","delta_height":""},advlink:{"delta_height":"","delta_width":"","link_desc":"Insert/Edit Link"},xhtmlxtras:{"attribs_delta_height":"","attribs_delta_width":"","ins_delta_height":"","ins_delta_width":"","del_delta_height":"","del_delta_width":"","acronym_delta_height":"","acronym_delta_width":"","abbr_delta_height":"","abbr_delta_width":"","cite_delta_height":"","cite_delta_width":"","attribs_desc":"Insert/Edit Attributes","ins_desc":"Insertion","del_desc":"Deletion","acronym_desc":"Acronym","abbr_desc":"Abbreviation","cite_desc":"Citation"},style:{"delta_height":"","delta_width":"",desc:"Edit CSS Style"},paste:{"plaintext_mode_stick":"Paste is now in plain text mode. Click again to toggle back to regular paste mode.","plaintext_mode":"Paste is now in plain text mode. Click again to toggle back to regular paste mode. After you paste something you will be returned to regular paste mode.","selectall_desc":"Select All","paste_word_desc":"Paste from Word","paste_text_desc":"Paste as Plain Text"},"paste_dlg":{"word_title":"Use Ctrl+V on your keyboard to paste the text into the window.","text_linebreaks":"Keep Linebreaks","text_title":"Use Ctrl+V on your keyboard to paste the text into the window."},table:{"merge_cells_delta_height":"","merge_cells_delta_width":"","table_delta_height":"","table_delta_width":"","cellprops_delta_height":"","cellprops_delta_width":"","rowprops_delta_height":"","rowprops_delta_width":"",cell:"Cell",col:"Column",row:"Row",del:"Delete Table","copy_row_desc":"Copy Table Row","cut_row_desc":"Cut Table Row","paste_row_after_desc":"Paste Table Row After","paste_row_before_desc":"Paste Table Row Before","props_desc":"Table Properties","cell_desc":"Table Cell Properties","row_desc":"Table Row Properties","merge_cells_desc":"Merge Table Cells","split_cells_desc":"Split Merged Table Cells","delete_col_desc":"Delete Column","col_after_desc":"Insert Column After","col_before_desc":"Insert Column Before","delete_row_desc":"Delete Row","row_after_desc":"Insert Row After","row_before_desc":"Insert Row Before",desc:"Insert/Edit Table"},autosave:{"warning_message":"If you restore the saved content, you will lose all the content that is currently in the editor.\n\nAre you sure you want to restore the saved content?","restore_content":"Restore auto-saved content.","unload_msg":"The changes you made will be lost if you navigate away from this page."},fullscreen:{desc:"Toggle Full Screen Mode"},media:{"delta_height":"","delta_width":"",edit:"Edit Embedded Media",desc:"Insert/Edit Embedded Media"},fullpage:{desc:"Document Properties","delta_width":"","delta_height":""},template:{desc:"Insert Predefined Template Content"},visualchars:{desc:"Show/Hide Visual Control Characters"},spellchecker:{desc:"Toggle Spell Checker",menu:"Spell Checker Settings","ignore_word":"Ignore Word","ignore_words":"Ignore All",langs:"Languages",wait:"Please wait...",sug:"Suggestions","no_sug":"No Suggestions","no_mpell":"No misspellings found.","learn_word":"Learn word"},pagebreak:{desc:"Insert Page Break for Printing"},advlist:{types:"Types",def:"Default","lower_alpha":"Lower Alpha","lower_greek":"Lower Greek","lower_roman":"Lower Roman","upper_alpha":"Upper Alpha","upper_roman":"Upper Roman",circle:"Circle",disc:"Disc",square:"Square"},colors:{"333300":"Dark olive","993300":"Burnt orange","000000":"Black","003300":"Dark green","003366":"Dark azure","000080":"Navy Blue","333399":"Indigo","333333":"Very dark gray","800000":"Maroon",FF6600:"Orange","808000":"Olive","008000":"Green","008080":"Teal","0000FF":"Blue","666699":"Grayish blue","808080":"Gray",FF0000:"Red",FF9900:"Amber","99CC00":"Yellow green","339966":"Sea green","33CCCC":"Turquoise","3366FF":"Royal blue","800080":"Purple","999999":"Medium gray",FF00FF:"Magenta",FFCC00:"Gold",FFFF00:"Yellow","00FF00":"Lime","00FFFF":"Aqua","00CCFF":"Sky blue","993366":"Brown",C0C0C0:"Silver",FF99CC:"Pink",FFCC99:"Peach",FFFF99:"Light yellow",CCFFCC:"Pale green",CCFFFF:"Pale cyan","99CCFF":"Light sky blue",CC99FF:"Plum",FFFFFF:"White"},aria:{"rich_text_area":"Rich Text Area"},wordcount:{words:"Words:"},visualblocks:{desc:'Show/hide block elements'}}});
|