contentment 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +15 -0
- data/config/routes.rb +18 -0
- data/lib/contentment.rb +8 -0
- data/lib/contentment/engine.rb +16 -0
- data/lib/extensions/action_controller/base.rb +5 -0
- data/lib/generators/contentment/contentment_views_templates/contents/_preview.html.erb +9 -0
- data/lib/generators/contentment/contentment_views_templates/contents/edit.html.erb +56 -0
- data/lib/generators/contentment/contentment_views_templates/contents/index.html.erb +28 -0
- data/lib/generators/contentment/contentment_views_templates/contents/new.html.erb +37 -0
- data/lib/generators/contentment/contentment_views_templates/contents/show.html.erb +22 -0
- data/lib/generators/contentment/templates/content.rb +48 -0
- data/lib/generators/contentment/templates/contents_controller.rb +58 -0
- data/lib/generators/contentment/templates/migration.rb +24 -0
- data/lib/generators/contentment_generator.rb +46 -0
- data/lib/generators/contentment_views_generator.rb +15 -0
- data/public/javascripts/tiny_mce/langs/en.js +169 -0
- data/public/javascripts/tiny_mce/license.txt +504 -0
- data/public/javascripts/tiny_mce/plugins/advhr/css/advhr.css +5 -0
- data/public/javascripts/tiny_mce/plugins/advhr/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/advhr/editor_plugin_src.js +57 -0
- data/public/javascripts/tiny_mce/plugins/advhr/js/rule.js +43 -0
- data/public/javascripts/tiny_mce/plugins/advhr/langs/en_dlg.js +5 -0
- data/public/javascripts/tiny_mce/plugins/advhr/rule.htm +62 -0
- data/public/javascripts/tiny_mce/plugins/advimage/css/advimage.css +13 -0
- data/public/javascripts/tiny_mce/plugins/advimage/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/advimage/editor_plugin_src.js +50 -0
- data/public/javascripts/tiny_mce/plugins/advimage/image.htm +237 -0
- data/public/javascripts/tiny_mce/plugins/advimage/img/sample.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/advimage/js/image.js +443 -0
- data/public/javascripts/tiny_mce/plugins/advimage/langs/en_dlg.js +43 -0
- data/public/javascripts/tiny_mce/plugins/advlink/css/advlink.css +8 -0
- data/public/javascripts/tiny_mce/plugins/advlink/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/advlink/editor_plugin_src.js +61 -0
- data/public/javascripts/tiny_mce/plugins/advlink/js/advlink.js +528 -0
- data/public/javascripts/tiny_mce/plugins/advlink/langs/en_dlg.js +52 -0
- data/public/javascripts/tiny_mce/plugins/advlink/link.htm +338 -0
- data/public/javascripts/tiny_mce/plugins/advlist/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/advlist/editor_plugin_src.js +154 -0
- data/public/javascripts/tiny_mce/plugins/autoresize/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/autoresize/editor_plugin_src.js +117 -0
- data/public/javascripts/tiny_mce/plugins/autosave/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/autosave/editor_plugin_src.js +422 -0
- data/public/javascripts/tiny_mce/plugins/autosave/langs/en.js +4 -0
- data/public/javascripts/tiny_mce/plugins/bbcode/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/bbcode/editor_plugin_src.js +120 -0
- data/public/javascripts/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js +127 -0
- data/public/javascripts/tiny_mce/plugins/directionality/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/directionality/editor_plugin_src.js +82 -0
- data/public/javascripts/tiny_mce/plugins/emotions/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/emotions/editor_plugin_src.js +43 -0
- data/public/javascripts/tiny_mce/plugins/emotions/emotions.htm +40 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-cool.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-cry.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-frown.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-smile.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-wink.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-yell.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/js/emotions.js +22 -0
- data/public/javascripts/tiny_mce/plugins/emotions/langs/en_dlg.js +20 -0
- data/public/javascripts/tiny_mce/plugins/example/dialog.htm +27 -0
- data/public/javascripts/tiny_mce/plugins/example/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/example/editor_plugin_src.js +84 -0
- data/public/javascripts/tiny_mce/plugins/example/img/example.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/example/js/dialog.js +19 -0
- data/public/javascripts/tiny_mce/plugins/example/langs/en.js +3 -0
- data/public/javascripts/tiny_mce/plugins/example/langs/en_dlg.js +3 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/css/fullpage.css +182 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/editor_plugin_src.js +149 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/fullpage.htm +576 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/js/fullpage.js +471 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/langs/en_dlg.js +85 -0
- data/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js +148 -0
- data/public/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm +110 -0
- data/public/javascripts/tiny_mce/plugins/iespell/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/iespell/editor_plugin_src.js +54 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +635 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +90 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/template.htm +387 -0
- data/public/javascripts/tiny_mce/plugins/insertdatetime/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js +83 -0
- data/public/javascripts/tiny_mce/plugins/layer/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/layer/editor_plugin_src.js +212 -0
- data/public/javascripts/tiny_mce/plugins/legacyoutput/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js +133 -0
- data/public/javascripts/tiny_mce/plugins/media/css/content.css +6 -0
- data/public/javascripts/tiny_mce/plugins/media/css/media.css +16 -0
- data/public/javascripts/tiny_mce/plugins/media/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/media/editor_plugin_src.js +414 -0
- data/public/javascripts/tiny_mce/plugins/media/img/flash.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/flv_player.swf +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/quicktime.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/realmedia.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/shockwave.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/trans.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/windowsmedia.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/js/embed.js +73 -0
- data/public/javascripts/tiny_mce/plugins/media/js/media.js +630 -0
- data/public/javascripts/tiny_mce/plugins/media/langs/en_dlg.js +103 -0
- data/public/javascripts/tiny_mce/plugins/media/media.htm +822 -0
- data/public/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +53 -0
- data/public/javascripts/tiny_mce/plugins/noneditable/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/noneditable/editor_plugin_src.js +90 -0
- data/public/javascripts/tiny_mce/plugins/pagebreak/css/content.css +1 -0
- data/public/javascripts/tiny_mce/plugins/pagebreak/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js +77 -0
- data/public/javascripts/tiny_mce/plugins/pagebreak/img/pagebreak.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/pagebreak/img/trans.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/paste/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/paste/editor_plugin_src.js +929 -0
- data/public/javascripts/tiny_mce/plugins/paste/js/pastetext.js +36 -0
- data/public/javascripts/tiny_mce/plugins/paste/js/pasteword.js +51 -0
- data/public/javascripts/tiny_mce/plugins/paste/langs/en_dlg.js +5 -0
- data/public/javascripts/tiny_mce/plugins/paste/pastetext.htm +33 -0
- data/public/javascripts/tiny_mce/plugins/paste/pasteword.htm +27 -0
- data/public/javascripts/tiny_mce/plugins/preview/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/preview/editor_plugin_src.js +53 -0
- data/public/javascripts/tiny_mce/plugins/preview/example.html +28 -0
- data/public/javascripts/tiny_mce/plugins/preview/jscripts/embed.js +73 -0
- data/public/javascripts/tiny_mce/plugins/preview/preview.html +17 -0
- data/public/javascripts/tiny_mce/plugins/print/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/print/editor_plugin_src.js +34 -0
- data/public/javascripts/tiny_mce/plugins/save/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/save/editor_plugin_src.js +101 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/css/searchreplace.css +6 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js +57 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/js/searchreplace.js +126 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js +16 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/searchreplace.htm +104 -0
- data/public/javascripts/tiny_mce/plugins/spellchecker/css/content.css +1 -0
- data/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js +341 -0
- data/public/javascripts/tiny_mce/plugins/spellchecker/img/wline.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/style/css/props.css +13 -0
- data/public/javascripts/tiny_mce/plugins/style/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/style/editor_plugin_src.js +55 -0
- data/public/javascripts/tiny_mce/plugins/style/js/props.js +641 -0
- data/public/javascripts/tiny_mce/plugins/style/langs/en_dlg.js +63 -0
- data/public/javascripts/tiny_mce/plugins/style/props.htm +730 -0
- data/public/javascripts/tiny_mce/plugins/tabfocus/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js +112 -0
- data/public/javascripts/tiny_mce/plugins/table/cell.htm +183 -0
- data/public/javascripts/tiny_mce/plugins/table/css/cell.css +17 -0
- data/public/javascripts/tiny_mce/plugins/table/css/row.css +25 -0
- data/public/javascripts/tiny_mce/plugins/table/css/table.css +13 -0
- data/public/javascripts/tiny_mce/plugins/table/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/table/editor_plugin_src.js +1118 -0
- data/public/javascripts/tiny_mce/plugins/table/js/cell.js +269 -0
- data/public/javascripts/tiny_mce/plugins/table/js/merge_cells.js +27 -0
- data/public/javascripts/tiny_mce/plugins/table/js/row.js +212 -0
- data/public/javascripts/tiny_mce/plugins/table/js/table.js +449 -0
- data/public/javascripts/tiny_mce/plugins/table/langs/en_dlg.js +74 -0
- data/public/javascripts/tiny_mce/plugins/table/merge_cells.htm +37 -0
- data/public/javascripts/tiny_mce/plugins/table/row.htm +160 -0
- data/public/javascripts/tiny_mce/plugins/table/table.htm +192 -0
- data/public/javascripts/tiny_mce/plugins/template/blank.htm +12 -0
- data/public/javascripts/tiny_mce/plugins/template/css/template.css +23 -0
- data/public/javascripts/tiny_mce/plugins/template/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/template/editor_plugin_src.js +159 -0
- data/public/javascripts/tiny_mce/plugins/template/js/template.js +106 -0
- data/public/javascripts/tiny_mce/plugins/template/langs/en_dlg.js +15 -0
- data/public/javascripts/tiny_mce/plugins/template/template.htm +38 -0
- data/public/javascripts/tiny_mce/plugins/visualchars/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/visualchars/editor_plugin_src.js +76 -0
- data/public/javascripts/tiny_mce/plugins/wordcount/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/wordcount/editor_plugin_src.js +98 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/abbr.htm +148 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/acronym.htm +148 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/attributes.htm +153 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/cite.htm +148 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css +11 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/popup.css +9 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/del.htm +169 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +139 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/ins.htm +169 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js +28 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js +28 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js +126 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/cite.js +28 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/del.js +63 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js +234 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/ins.js +62 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js +32 -0
- data/public/javascripts/tiny_mce/themes/advanced/about.htm +56 -0
- data/public/javascripts/tiny_mce/themes/advanced/anchor.htm +31 -0
- data/public/javascripts/tiny_mce/themes/advanced/charmap.htm +53 -0
- data/public/javascripts/tiny_mce/themes/advanced/color_picker.htm +75 -0
- data/public/javascripts/tiny_mce/themes/advanced/editor_template.js +1 -0
- data/public/javascripts/tiny_mce/themes/advanced/editor_template_src.js +1209 -0
- data/public/javascripts/tiny_mce/themes/advanced/image.htm +85 -0
- data/public/javascripts/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/about.js +72 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/anchor.js +37 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/charmap.js +335 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/color_picker.js +253 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/image.js +245 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/link.js +156 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/source_editor.js +62 -0
- data/public/javascripts/tiny_mce/themes/advanced/langs/en.js +62 -0
- data/public/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js +51 -0
- data/public/javascripts/tiny_mce/themes/advanced/link.htm +63 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/content.css +36 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css +116 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/ui.css +215 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css +35 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +115 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +216 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +8 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -0
- data/public/javascripts/tiny_mce/themes/advanced/source_editor.htm +31 -0
- data/public/javascripts/tiny_mce/themes/simple/editor_template.js +1 -0
- data/public/javascripts/tiny_mce/themes/simple/editor_template_src.js +85 -0
- data/public/javascripts/tiny_mce/themes/simple/img/icons.gif +0 -0
- data/public/javascripts/tiny_mce/themes/simple/langs/en.js +11 -0
- data/public/javascripts/tiny_mce/themes/simple/skins/default/content.css +25 -0
- data/public/javascripts/tiny_mce/themes/simple/skins/default/ui.css +32 -0
- data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/content.css +17 -0
- data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png +0 -0
- data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/ui.css +35 -0
- data/public/javascripts/tiny_mce/tiny_mce.js +1 -0
- data/public/javascripts/tiny_mce/tiny_mce_popup.js +5 -0
- data/public/javascripts/tiny_mce/tiny_mce_src.js +13771 -0
- data/public/javascripts/tiny_mce/utils/editable_selects.js +70 -0
- data/public/javascripts/tiny_mce/utils/form_utils.js +200 -0
- data/public/javascripts/tiny_mce/utils/mctabs.js +77 -0
- data/public/javascripts/tiny_mce/utils/validate.js +220 -0
- metadata +322 -0
data/README.rdoc
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
=Contentment
|
2
|
+
|
3
|
+
===Contentment is a extremely basic Content Management System.
|
4
|
+
|
5
|
+
The primary advantage it offers over a roll-your-own CMS is consistency.
|
6
|
+
Use Contentment whenever you need a basic CMS and you can stop re-inventing the wheel and start pumping code.
|
7
|
+
|
8
|
+
|
9
|
+
==Thanks
|
10
|
+
|
11
|
+
A thousand thanks to @modestrubyist from http://www.themodestrubyist.com/ , without whose tutorials on the subject of Rails 3 Engines I would be nowhere.
|
12
|
+
|
13
|
+
Also thanks to the thoughtbot team and the clearance gem, which I looked at to learn more. https://github.com/thoughtbot/clearance
|
14
|
+
|
15
|
+
And also finally thanks to https://github.com/elricstorm/baby_dove which is where I copied most of this from.
|
data/config/routes.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
Rails.application.routes.draw do
|
2
|
+
|
3
|
+
# We are adding full resources for bird and declaring which controller to use
|
4
|
+
resources :contents#, :controller => 'baby_dove/birds'
|
5
|
+
|
6
|
+
# If you had nests and wanted to nest your nests you would do:
|
7
|
+
|
8
|
+
# resources :birds, :controller => 'baby_dove/birds' do
|
9
|
+
# resources :nests, :controller => 'baby_dove/nests'
|
10
|
+
# end
|
11
|
+
|
12
|
+
# It's that simple. Run rake routes from your 'main app' and you will see
|
13
|
+
# the routes from the engine listed after any routes you define in the main
|
14
|
+
# app.
|
15
|
+
|
16
|
+
# root :to => "baby_dove/birds#index"
|
17
|
+
|
18
|
+
end
|
data/lib/contentment.rb
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
module Contentment
|
2
|
+
# This require basically states that we're going to require the engine
|
3
|
+
# if you are using rails and your rails version is 3.x..
|
4
|
+
require 'contentment/engine' if defined?(Rails) && Rails::VERSION::MAJOR == 3
|
5
|
+
end
|
6
|
+
# Adding a couple of extra files here and you can view all of the source
|
7
|
+
# to see what they have in them.
|
8
|
+
require 'extensions/action_controller/base'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require "contentment"
|
2
|
+
require "rails"
|
3
|
+
#require "action_controller"
|
4
|
+
module Contentment
|
5
|
+
class Engine < Rails::Engine
|
6
|
+
engine_name :contentment
|
7
|
+
|
8
|
+
# # We can add all of the public assets from our engine and make them
|
9
|
+
# # available to use. This allows us to use javascripts, images, stylesheets
|
10
|
+
# # etc.
|
11
|
+
# initializer "static assets" do |app|
|
12
|
+
# app.middleware.use ::ActionDispatch::Static, "#{root}/public"
|
13
|
+
# end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
<%= link_to 'New content', new_content_path, :class => 'button', :id => "add-content" %>
|
2
|
+
<%= link_to "Back to Content List", contents_path, :class => 'button', :id => 'back-to-contents' %>
|
3
|
+
<%= content_for :scripts do %>
|
4
|
+
<script src='/javascripts/tinymce_hammer.js' type='text/javascript'></script>
|
5
|
+
<script type='text/javascript'>
|
6
|
+
TinymceHammer = {
|
7
|
+
init : function() {
|
8
|
+
var init = { paste_convert_headers_to_strong : true, paste_convert_middot_lists : true, paste_remove_spans : true, paste_remove_styles : true, paste_strip_class_attributes : true, theme : "advanced", theme_advanced_buttons1 : "undo,redo,cut,copy,paste,pastetext,|,bold,italic,strikethrough,blockquote,charmap,bullist,numlist,removeformat,|,link,unlink,image,|,cleanup,code", theme_advanced_buttons2 : "", theme_advanced_buttons3 : "", theme_advanced_toolbar_align : "left", theme_advanced_toolbar_location : "top", valid_elements : "a[href|title,blockquote[cite],br,caption,cite,code,dl,dt,dd,em,i,img[src|alt|title|width|height|align],li,ol,p,pre,q[cite],small,strike,strong/b,sub,sup,u,ul", setup : function(ed) { ed.onKeyUp.add(function(ed, evt) { var iframe = document.getElementById('content_body_ifr'); var paul = iframe.contentWindow.document.body.innerHTML; $('.content_preview_body').html(paul); }); } };
|
9
|
+
init.mode = 'specific_textareas';
|
10
|
+
init.editor_selector = 'tinymce';
|
11
|
+
init.plugins = 'paste';
|
12
|
+
init.language = 'en';
|
13
|
+
|
14
|
+
tinyMCE.init(init);
|
15
|
+
},
|
16
|
+
addEditor : function(dom_id) {
|
17
|
+
tinyMCE.execCommand('mceAddControl', true, dom_id);
|
18
|
+
}
|
19
|
+
}
|
20
|
+
DomReady.ready(TinymceHammer.init);
|
21
|
+
</script>
|
22
|
+
<% end %>
|
23
|
+
<div class="panel clearfix">
|
24
|
+
<h3>Edit content</h3>
|
25
|
+
<% form_for(@content) do |f| %>
|
26
|
+
<div class="tools">
|
27
|
+
<%= link_to 'Back', contents_path %>
|
28
|
+
<%= f.submit 'Update' %>
|
29
|
+
</div>
|
30
|
+
<div class="main">
|
31
|
+
<%= f.text_field :title, :placeholder => "Content Title", :class => 'title' %>
|
32
|
+
<%= f.label :body %>
|
33
|
+
<%= f.tinymce :body %>
|
34
|
+
</div>
|
35
|
+
<div class="side">
|
36
|
+
<p>
|
37
|
+
<%= f.label :type %>
|
38
|
+
<%= f.select :tipe, content_tipe_options %>
|
39
|
+
</p>
|
40
|
+
<p>
|
41
|
+
<%= f.label "DOM id" %>
|
42
|
+
<%= f.text_field :dom_id %>
|
43
|
+
</p>
|
44
|
+
|
45
|
+
<p>
|
46
|
+
<%= f.label :position %>
|
47
|
+
<%= f.text_field :position %>
|
48
|
+
</p>
|
49
|
+
<p>
|
50
|
+
<%= f.label :visible %>
|
51
|
+
<%= f.check_box :visible%>
|
52
|
+
</p>
|
53
|
+
</div>
|
54
|
+
<% end %>
|
55
|
+
</div>
|
56
|
+
<%= render :partial => "preview", :locals => { :form => '.edit_content', :content => @content } %>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<div id="cms">
|
2
|
+
<%= link_to 'New content', new_content_path, :class => 'button', :id => "add-content" %>
|
3
|
+
<h1 class="intro">Content Management</h1>
|
4
|
+
<table class="alternating admin admin-table" id="content-table">
|
5
|
+
<tr>
|
6
|
+
<th>Title</th>
|
7
|
+
<th>Type</th>
|
8
|
+
<th>DOM ID</th>
|
9
|
+
<th>Position</th>
|
10
|
+
|
11
|
+
<th></th>
|
12
|
+
</tr>
|
13
|
+
|
14
|
+
<% @contents.each do |content| %>
|
15
|
+
<tr class=<%= cycle("even", "odd")%>>
|
16
|
+
<td><strong><%=h content.title %></strong></td>
|
17
|
+
<td><%=h content.tipe %></td>
|
18
|
+
<td><%=h content.dom_id %></td>
|
19
|
+
<td><%=h content.position %></td>
|
20
|
+
<td style="width: 150px;">
|
21
|
+
<%= link_to 'Show', content %>
|
22
|
+
<%= link_to 'Edit', edit_content_path(content) %>
|
23
|
+
<%= link_to 'Destroy', content, :confirm => 'Are you sure?', :method => :delete %>
|
24
|
+
</td>
|
25
|
+
</tr>
|
26
|
+
<% end %>
|
27
|
+
</table>
|
28
|
+
</div>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<div class="panel clearfix">
|
2
|
+
<h3>New content</h3>
|
3
|
+
<% form_for(@content) do |f| %>
|
4
|
+
<div class="tools">
|
5
|
+
<%= link_to 'Cancel', contents_path %>
|
6
|
+
<%= f.submit 'Create' %>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<div class="main">
|
10
|
+
<%= f.text_field :title, :placeholder => "Content Title", :class => 'title' %>
|
11
|
+
|
12
|
+
<%= f.label :body %>
|
13
|
+
<%= f.text_area :body %>
|
14
|
+
|
15
|
+
</div>
|
16
|
+
<div class="side">
|
17
|
+
<p>
|
18
|
+
<%= f.label :type %>
|
19
|
+
<%= f.select :tipe, content_tipe_options %>
|
20
|
+
</p>
|
21
|
+
<p>
|
22
|
+
<%= f.label "DOM id" %>
|
23
|
+
<%= f.text_field :dom_id %>
|
24
|
+
</p>
|
25
|
+
|
26
|
+
<p>
|
27
|
+
<%= f.label :position %>
|
28
|
+
<%= f.text_field :position %>
|
29
|
+
</p>
|
30
|
+
<p>
|
31
|
+
<%= f.label :visible %>
|
32
|
+
<%= f.check_box :visible%>
|
33
|
+
</p>
|
34
|
+
</div>
|
35
|
+
<% end %>
|
36
|
+
</div>
|
37
|
+
<%= render :partial => "preview", :locals => { :form => '.new_content', :content => @content } %>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<div class="clear">
|
2
|
+
<p>
|
3
|
+
<b>Title:</b>
|
4
|
+
<%=h @content.title %>
|
5
|
+
</p>
|
6
|
+
|
7
|
+
<p>
|
8
|
+
<b>Body:</b>
|
9
|
+
<%=h @content.body %>
|
10
|
+
</p>
|
11
|
+
|
12
|
+
<p>
|
13
|
+
<b>Type:</b>
|
14
|
+
<%=h @content.tipe %>
|
15
|
+
</p>
|
16
|
+
|
17
|
+
|
18
|
+
<%= link_to 'Edit', edit_content_path(@content) %> |
|
19
|
+
<%= link_to 'Back', contents_path %>
|
20
|
+
|
21
|
+
<%= link_to "new", new_content_path %>
|
22
|
+
</div>
|
@@ -0,0 +1,48 @@
|
|
1
|
+
class Content < ActiveRecord::Base
|
2
|
+
|
3
|
+
# ADJUST_POSTIONS DOES NOT WORK RIGHT NOW
|
4
|
+
# before_save :adjust_positions
|
5
|
+
|
6
|
+
class << self; attr_accessor :tipes; end
|
7
|
+
|
8
|
+
@tipes = [
|
9
|
+
# "Billboard",
|
10
|
+
# "What You Learn",
|
11
|
+
# "Tips",
|
12
|
+
# "Questions Copy",
|
13
|
+
# "FAQ",
|
14
|
+
# "Examples",
|
15
|
+
# "Testimonial",
|
16
|
+
# "Navigation",
|
17
|
+
]
|
18
|
+
|
19
|
+
@tipes.each do |thing|
|
20
|
+
scope "for_#{thing.downcase.gsub(' ', '_')}".intern, where("tipe = ?", thing)
|
21
|
+
end
|
22
|
+
|
23
|
+
scope :visible, lambda {|x| where(:visible => x)}
|
24
|
+
|
25
|
+
|
26
|
+
def brothers
|
27
|
+
Content.where("tipe = ?", self.tipe).where("id NOT in (#{self.id})")
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
def adjust_positions
|
32
|
+
|
33
|
+
# return true unless changed.include?('position')
|
34
|
+
#
|
35
|
+
# @contents = brothers.order('position ASC')
|
36
|
+
# @contents.each_with_index do |x, idx|
|
37
|
+
# unless x.position > self.position
|
38
|
+
# if x.position
|
39
|
+
# x.update_attribute :position, x.position + 1
|
40
|
+
# else
|
41
|
+
# x.update_attribute :position, self.position + idx
|
42
|
+
# end
|
43
|
+
# end
|
44
|
+
# end
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
class ContentsController < ApplicationController
|
2
|
+
|
3
|
+
def index
|
4
|
+
@contents = Content.order("tipe ASC, position ASC")
|
5
|
+
respond_to do |format|
|
6
|
+
format.html
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def show
|
11
|
+
@content = Content.find(params[:id])
|
12
|
+
respond_to do |format|
|
13
|
+
format.html
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def new
|
18
|
+
@content = Content.new
|
19
|
+
respond_to do |format|
|
20
|
+
format.html
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def edit
|
25
|
+
@content = Content.find(params[:id])
|
26
|
+
end
|
27
|
+
|
28
|
+
def create
|
29
|
+
@content = Content.new(params[:content])
|
30
|
+
respond_to do |format|
|
31
|
+
if @content.save
|
32
|
+
format.html { redirect_to edit_content_path(@content.id), :notice => 'Content was successfully created.' }
|
33
|
+
else
|
34
|
+
format.html { redirect_to new_content_path, :notice => "There was a problem creating that content" + @content.errors.full_messages.join(', ') }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def update
|
40
|
+
@content = Content.find(params[:id])
|
41
|
+
respond_to do |format|
|
42
|
+
if @content.save
|
43
|
+
format.html { redirect_to edit_content_path(@content.id), :notice => 'Content was successfully updated.' }
|
44
|
+
else
|
45
|
+
format.html { redirect_to new_content_path, :notice => "There was a problem updating that content" + @content.errors.full_messages.join(', ') }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def destroy
|
51
|
+
@content = Content.find(params[:id])
|
52
|
+
@content.destroy
|
53
|
+
respond_to do |format|
|
54
|
+
format.html { redirect_to(contents_url) }
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# Everything listed in this migration will be added to a migration file
|
2
|
+
# inside of your main app.
|
3
|
+
class CreateContents < ActiveRecord::Migration
|
4
|
+
def self.up
|
5
|
+
|
6
|
+
# Birds Table
|
7
|
+
create_table :contents do |t|
|
8
|
+
t.string :title
|
9
|
+
t.text :body
|
10
|
+
t.string :tipe
|
11
|
+
t.string :dom_id
|
12
|
+
t.integer :position
|
13
|
+
t.boolean :visible
|
14
|
+
|
15
|
+
t.timestamps
|
16
|
+
end
|
17
|
+
|
18
|
+
end # End of self.up
|
19
|
+
|
20
|
+
def self.down
|
21
|
+
drop_table :contents
|
22
|
+
# You can drop more tables here
|
23
|
+
end # End of self.down
|
24
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
require 'rails/generators/migration'
|
3
|
+
|
4
|
+
class ContentmentGenerator < Rails::Generators::Base
|
5
|
+
desc "This generator creates the contents model and table"
|
6
|
+
include Rails::Generators::Migration
|
7
|
+
|
8
|
+
def self.source_root
|
9
|
+
# This must be defined. It tells the generator where to find the template for your migration.
|
10
|
+
File.join(File.dirname(__FILE__), 'contentment/templates')
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.next_migration_number(dirname) #:nodoc:
|
14
|
+
if ActiveRecord::Base.timestamped_migrations
|
15
|
+
Time.now.utc.strftime("%Y%m%d%H%M%S")
|
16
|
+
else
|
17
|
+
"%.3d" % (current_migration_number(dirname) + 1)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def install
|
22
|
+
content_model = "app/models/content.rb"
|
23
|
+
if File.exists?(content_model)
|
24
|
+
puts "Well, Fuck."
|
25
|
+
# Need to figure out how to ask the user if they would like to overwrite their model.
|
26
|
+
else
|
27
|
+
template 'content.rb', content_model
|
28
|
+
end
|
29
|
+
|
30
|
+
contents_controller = 'app/controllers/contents_controller.rb'
|
31
|
+
if File.exists?(contents_controller)
|
32
|
+
puts "Damn, him too?"
|
33
|
+
# Again, figure out how to ask the user if they want to overwrite it.
|
34
|
+
else
|
35
|
+
template 'contents_controller.rb', contents_controller
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# This method is pulling all of the migration data from the migration.rb template.
|
40
|
+
# After it pulls the migration date, it generates a migration in the main application
|
41
|
+
# called create_contents...
|
42
|
+
# You can change the name of this if and when you make your own engine.
|
43
|
+
def create_migration_file
|
44
|
+
migration_template 'migration.rb', 'db/migrate/create_contents.rb'
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
class ContentmentViewsGenerator < Rails::Generators::Base
|
4
|
+
desc "This generator creates the views for Contentment"
|
5
|
+
|
6
|
+
def self.source_root
|
7
|
+
File.join(File.dirname(__FILE__), 'contentment/contentment_views_templates')
|
8
|
+
end
|
9
|
+
|
10
|
+
def install
|
11
|
+
puts "Installing Views"
|
12
|
+
directory 'contents', 'app/views/contents'
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,169 @@
|
|
1
|
+
tinyMCE.addI18n({en:{
|
2
|
+
common:{
|
3
|
+
edit_confirm:"Do you want to use the WYSIWYG mode for this textarea?",
|
4
|
+
apply:"Apply",
|
5
|
+
insert:"Insert",
|
6
|
+
update:"Update",
|
7
|
+
cancel:"Cancel",
|
8
|
+
close:"Close",
|
9
|
+
browse:"Browse",
|
10
|
+
class_name:"Class",
|
11
|
+
not_set:"-- Not set --",
|
12
|
+
clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?",
|
13
|
+
clipboard_no_support:"Currently not supported by your browser, use keyboard shortcuts instead.",
|
14
|
+
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.",
|
15
|
+
invalid_data:"Error: Invalid values entered, these are marked in red.",
|
16
|
+
more_colors:"More colors"
|
17
|
+
},
|
18
|
+
contextmenu:{
|
19
|
+
align:"Alignment",
|
20
|
+
left:"Left",
|
21
|
+
center:"Center",
|
22
|
+
right:"Right",
|
23
|
+
full:"Full"
|
24
|
+
},
|
25
|
+
insertdatetime:{
|
26
|
+
date_fmt:"%Y-%m-%d",
|
27
|
+
time_fmt:"%H:%M:%S",
|
28
|
+
insertdate_desc:"Insert date",
|
29
|
+
inserttime_desc:"Insert time",
|
30
|
+
months_long:"January,February,March,April,May,June,July,August,September,October,November,December",
|
31
|
+
months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",
|
32
|
+
day_long:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday",
|
33
|
+
day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun"
|
34
|
+
},
|
35
|
+
print:{
|
36
|
+
print_desc:"Print"
|
37
|
+
},
|
38
|
+
preview:{
|
39
|
+
preview_desc:"Preview"
|
40
|
+
},
|
41
|
+
directionality:{
|
42
|
+
ltr_desc:"Direction left to right",
|
43
|
+
rtl_desc:"Direction right to left"
|
44
|
+
},
|
45
|
+
layer:{
|
46
|
+
insertlayer_desc:"Insert new layer",
|
47
|
+
forward_desc:"Move forward",
|
48
|
+
backward_desc:"Move backward",
|
49
|
+
absolute_desc:"Toggle absolute positioning",
|
50
|
+
content:"New layer..."
|
51
|
+
},
|
52
|
+
save:{
|
53
|
+
save_desc:"Save",
|
54
|
+
cancel_desc:"Cancel all changes"
|
55
|
+
},
|
56
|
+
nonbreaking:{
|
57
|
+
nonbreaking_desc:"Insert non-breaking space character"
|
58
|
+
},
|
59
|
+
iespell:{
|
60
|
+
iespell_desc:"Run spell checking",
|
61
|
+
download:"ieSpell not detected. Do you want to install it now?"
|
62
|
+
},
|
63
|
+
advhr:{
|
64
|
+
advhr_desc:"Horizontal rule"
|
65
|
+
},
|
66
|
+
emotions:{
|
67
|
+
emotions_desc:"Emotions"
|
68
|
+
},
|
69
|
+
searchreplace:{
|
70
|
+
search_desc:"Find",
|
71
|
+
replace_desc:"Find/Replace"
|
72
|
+
},
|
73
|
+
advimage:{
|
74
|
+
image_desc:"Insert/edit image"
|
75
|
+
},
|
76
|
+
advlink:{
|
77
|
+
link_desc:"Insert/edit link"
|
78
|
+
},
|
79
|
+
xhtmlxtras:{
|
80
|
+
cite_desc:"Citation",
|
81
|
+
abbr_desc:"Abbreviation",
|
82
|
+
acronym_desc:"Acronym",
|
83
|
+
del_desc:"Deletion",
|
84
|
+
ins_desc:"Insertion",
|
85
|
+
attribs_desc:"Insert/Edit Attributes"
|
86
|
+
},
|
87
|
+
style:{
|
88
|
+
desc:"Edit CSS Style"
|
89
|
+
},
|
90
|
+
paste:{
|
91
|
+
paste_text_desc:"Paste as Plain Text",
|
92
|
+
paste_word_desc:"Paste from Word",
|
93
|
+
selectall_desc:"Select All"
|
94
|
+
},
|
95
|
+
paste_dlg:{
|
96
|
+
text_title:"Use CTRL+V on your keyboard to paste the text into the window.",
|
97
|
+
text_linebreaks:"Keep linebreaks",
|
98
|
+
word_title:"Use CTRL+V on your keyboard to paste the text into the window."
|
99
|
+
},
|
100
|
+
table:{
|
101
|
+
desc:"Inserts a new table",
|
102
|
+
row_before_desc:"Insert row before",
|
103
|
+
row_after_desc:"Insert row after",
|
104
|
+
delete_row_desc:"Delete row",
|
105
|
+
col_before_desc:"Insert column before",
|
106
|
+
col_after_desc:"Insert column after",
|
107
|
+
delete_col_desc:"Remove column",
|
108
|
+
split_cells_desc:"Split merged table cells",
|
109
|
+
merge_cells_desc:"Merge table cells",
|
110
|
+
row_desc:"Table row properties",
|
111
|
+
cell_desc:"Table cell properties",
|
112
|
+
props_desc:"Table properties",
|
113
|
+
paste_row_before_desc:"Paste table row before",
|
114
|
+
paste_row_after_desc:"Paste table row after",
|
115
|
+
cut_row_desc:"Cut table row",
|
116
|
+
copy_row_desc:"Copy table row",
|
117
|
+
del:"Delete table",
|
118
|
+
row:"Row",
|
119
|
+
col:"Column",
|
120
|
+
cell:"Cell"
|
121
|
+
},
|
122
|
+
autosave:{
|
123
|
+
unload_msg:"The changes you made will be lost if you navigate away from this page.",
|
124
|
+
restore_content: "Restore auto-saved content",
|
125
|
+
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?"
|
126
|
+
},
|
127
|
+
fullscreen:{
|
128
|
+
desc:"Toggle fullscreen mode"
|
129
|
+
},
|
130
|
+
media:{
|
131
|
+
desc:"Insert / edit embedded media",
|
132
|
+
edit:"Edit embedded media"
|
133
|
+
},
|
134
|
+
fullpage:{
|
135
|
+
desc:"Document properties"
|
136
|
+
},
|
137
|
+
template:{
|
138
|
+
desc:"Insert predefined template content"
|
139
|
+
},
|
140
|
+
visualchars:{
|
141
|
+
desc:"Visual control characters on/off."
|
142
|
+
},
|
143
|
+
spellchecker:{
|
144
|
+
desc:"Toggle spellchecker",
|
145
|
+
menu:"Spellchecker settings",
|
146
|
+
ignore_word:"Ignore word",
|
147
|
+
ignore_words:"Ignore all",
|
148
|
+
langs:"Languages",
|
149
|
+
wait:"Please wait...",
|
150
|
+
sug:"Suggestions",
|
151
|
+
no_sug:"No suggestions",
|
152
|
+
no_mpell:"No misspellings found."
|
153
|
+
},
|
154
|
+
pagebreak:{
|
155
|
+
desc:"Insert page break."
|
156
|
+
},
|
157
|
+
advlist : {
|
158
|
+
types : 'Types',
|
159
|
+
def : 'Default',
|
160
|
+
lower_alpha : "Lower alpha",
|
161
|
+
lower_greek : "Lower greek",
|
162
|
+
lower_roman : "Lower roman",
|
163
|
+
upper_alpha : "Upper alpha",
|
164
|
+
upper_roman : "Upper roman",
|
165
|
+
circle : "Circle",
|
166
|
+
disc : "Disc",
|
167
|
+
square : "Square"
|
168
|
+
}
|
169
|
+
}});
|