brick_layer 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- 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'}}});
|