beef-admin_area 0.3.4 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. data/VERSION +1 -1
  2. data/app/controllers/admin/users_controller.rb +16 -1
  3. data/app/views/admin/users/index.html.erb +27 -2
  4. data/beef-admin_area.gemspec +77 -6
  5. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/langs/en.js +170 -1
  6. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -1
  7. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +635 -0
  8. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
  9. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
  10. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +90 -1
  11. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/paste/editor_plugin.js +1 -1
  12. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/paste/editor_plugin_src.js +952 -0
  13. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/paste/js/pastetext.js +36 -1
  14. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/paste/js/pasteword.js +51 -1
  15. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/paste/langs/en_dlg.js +5 -1
  16. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/paste/pastetext.htm +2 -8
  17. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/paste/pasteword.htm +2 -8
  18. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/template/css/template.css +23 -1
  19. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/template/editor_plugin.js +1 -1
  20. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/template/editor_plugin_src.js +159 -0
  21. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/template/js/template.js +106 -1
  22. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/template/langs/en_dlg.js +15 -1
  23. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/template/template.htm +2 -9
  24. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/wordcount/editor_plugin.js +1 -0
  25. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/plugins/wordcount/editor_plugin_src.js +98 -0
  26. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/about.htm +54 -0
  27. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/anchor.htm +2 -7
  28. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/charmap.htm +52 -0
  29. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/color_picker.htm +1 -3
  30. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/editor_template.js +1 -1
  31. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/editor_template_src.js +1217 -0
  32. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/image.htm +80 -0
  33. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/img/icons.gif +0 -0
  34. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/js/about.js +72 -0
  35. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/js/anchor.js +37 -1
  36. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/js/charmap.js +335 -0
  37. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/js/color_picker.js +253 -1
  38. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/js/image.js +245 -0
  39. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/js/link.js +156 -1
  40. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/langs/en.js +62 -1
  41. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/langs/en_dlg.js +51 -1
  42. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/link.htm +2 -7
  43. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/default/content.css +36 -1
  44. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/default/dialog.css +117 -1
  45. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/default/ui.css +213 -1
  46. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/o2k7/content.css +36 -0
  47. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/o2k7/dialog.css +116 -0
  48. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
  49. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  50. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  51. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/o2k7/ui.css +215 -0
  52. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +8 -0
  53. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -0
  54. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/themes/advanced/source_editor.htm +4 -10
  55. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/tiny_mce.js +1 -1
  56. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/tiny_mce_popup.js +5 -1
  57. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/utils/editable_selects.js +70 -0
  58. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/utils/form_utils.js +200 -1
  59. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/utils/mctabs.js +77 -1
  60. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce/utils/validate.js +220 -1
  61. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/langs/en.js +1 -0
  62. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/inlinepopups/editor_plugin.js +1 -0
  63. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
  64. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
  65. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
  66. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
  67. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
  68. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/inlinepopups/skins/clearlooks2/window.css +1 -0
  69. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/inlinepopups/template.htm +387 -0
  70. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/paste/editor_plugin.js +1 -0
  71. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/paste/js/pastetext.js +1 -0
  72. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/paste/js/pasteword.js +1 -0
  73. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/paste/langs/en_dlg.js +1 -0
  74. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/paste/pastetext.htm +33 -0
  75. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/paste/pasteword.htm +27 -0
  76. data/generators/admin_area_files/templates/public/javascripts/admin/{tiny_mce → tiny_mce.old}/plugins/safari/blank.htm +0 -0
  77. data/generators/admin_area_files/templates/public/javascripts/admin/{tiny_mce → tiny_mce.old}/plugins/safari/editor_plugin.js +0 -0
  78. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/template/blank.htm +12 -0
  79. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/template/css/template.css +1 -0
  80. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/template/editor_plugin.js +1 -0
  81. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/template/js/template.js +1 -0
  82. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/template/langs/en_dlg.js +1 -0
  83. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/plugins/template/template.htm +38 -0
  84. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/anchor.htm +31 -0
  85. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/color_picker.htm +75 -0
  86. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/editor_template.js +1 -0
  87. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/img/colorpicker.jpg +0 -0
  88. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/img/icons.gif +0 -0
  89. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/js/anchor.js +1 -0
  90. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/js/color_picker.js +1 -0
  91. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/js/link.js +1 -0
  92. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/js/source_editor.js +62 -0
  93. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/langs/en.js +1 -0
  94. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/langs/en_dlg.js +1 -0
  95. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/link.htm +63 -0
  96. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/content.css +1 -0
  97. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/dialog.css +1 -0
  98. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/img/buttons.png +0 -0
  99. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/img/items.gif +0 -0
  100. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
  101. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/img/menu_check.gif +0 -0
  102. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/img/progress.gif +0 -0
  103. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/img/tabs.gif +0 -0
  104. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/skins/default/ui.css +1 -0
  105. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/themes/advanced/source_editor.htm +31 -0
  106. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/tiny_mce.js +1 -0
  107. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/tiny_mce_popup.js +1 -0
  108. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/utils/form_utils.js +1 -0
  109. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/utils/mctabs.js +1 -0
  110. data/generators/admin_area_files/templates/public/javascripts/admin/tiny_mce.old/utils/validate.js +1 -0
  111. metadata +78 -7
@@ -1 +1,36 @@
1
- tinyMCEPopup.requireLangPack();var PasteTextDialog={init:function(){this.resize()},insert:function(){var b=tinyMCEPopup.dom.encode(document.getElementById("content").value),a;if(document.getElementById("linebreaks").checked){a=b.split(/\r?\n/);if(a.length>1){b="";tinymce.each(a,function(c){b+="<p>"+c+"</p>"})}}tinyMCEPopup.editor.execCommand("mceInsertClipboardContent",false,{content:b});tinyMCEPopup.close()},resize:function(){var a=tinyMCEPopup.dom.getViewPort(window),b;b=document.getElementById("content");b.style.width=(a.w-20)+"px";b.style.height=(a.h-90)+"px"}};tinyMCEPopup.onInit.add(PasteTextDialog.init,PasteTextDialog);
1
+ tinyMCEPopup.requireLangPack();
2
+
3
+ var PasteTextDialog = {
4
+ init : function() {
5
+ this.resize();
6
+ },
7
+
8
+ insert : function() {
9
+ var h = tinyMCEPopup.dom.encode(document.getElementById('content').value), lines;
10
+
11
+ // Convert linebreaks into paragraphs
12
+ if (document.getElementById('linebreaks').checked) {
13
+ lines = h.split(/\r?\n/);
14
+ if (lines.length > 1) {
15
+ h = '';
16
+ tinymce.each(lines, function(row) {
17
+ h += '<p>' + row + '</p>';
18
+ });
19
+ }
20
+ }
21
+
22
+ tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h});
23
+ tinyMCEPopup.close();
24
+ },
25
+
26
+ resize : function() {
27
+ var vp = tinyMCEPopup.dom.getViewPort(window), el;
28
+
29
+ el = document.getElementById('content');
30
+
31
+ el.style.width = (vp.w - 20) + 'px';
32
+ el.style.height = (vp.h - 90) + 'px';
33
+ }
34
+ };
35
+
36
+ tinyMCEPopup.onInit.add(PasteTextDialog.init, PasteTextDialog);
@@ -1 +1,51 @@
1
- tinyMCEPopup.requireLangPack();var PasteWordDialog={init:function(){var a=tinyMCEPopup.editor,c=document.getElementById("iframecontainer"),f,e,b,d="";c.innerHTML='<iframe id="iframe" src="javascript:\'\';" frameBorder="0" style="border: 1px solid gray"></iframe>';f=document.getElementById("iframe");e=f.contentWindow.document;b=[a.baseURI.toAbsolute("themes/"+a.settings.theme+"/skins/"+a.settings.skin+"/content.css")];b=b.concat(tinymce.explode(a.settings.content_css)||[]);tinymce.each(b,function(g){d+='<link href="'+a.documentBaseURI.toAbsolute(""+g)+'" rel="stylesheet" type="text/css" />'});e.open();e.write("<html><head>"+d+'</head><body class="mceContentBody" spellcheck="false"></body></html>');e.close();e.designMode="on";this.resize();window.setTimeout(function(){f.contentWindow.focus()},10)},insert:function(){var a=document.getElementById("iframe").contentWindow.document.body.innerHTML;tinyMCEPopup.editor.execCommand("mceInsertClipboardContent",false,{content:a,wordContent:true});tinyMCEPopup.close()},resize:function(){var a=tinyMCEPopup.dom.getViewPort(window),b;b=document.getElementById("iframe");if(b){b.style.width=(a.w-20)+"px";b.style.height=(a.h-90)+"px"}}};tinyMCEPopup.onInit.add(PasteWordDialog.init,PasteWordDialog);
1
+ tinyMCEPopup.requireLangPack();
2
+
3
+ var PasteWordDialog = {
4
+ init : function() {
5
+ var ed = tinyMCEPopup.editor, el = document.getElementById('iframecontainer'), ifr, doc, css, cssHTML = '';
6
+
7
+ // Create iframe
8
+ el.innerHTML = '<iframe id="iframe" src="javascript:\'\';" frameBorder="0" style="border: 1px solid gray"></iframe>';
9
+ ifr = document.getElementById('iframe');
10
+ doc = ifr.contentWindow.document;
11
+
12
+ // Force absolute CSS urls
13
+ css = [ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css")];
14
+ css = css.concat(tinymce.explode(ed.settings.content_css) || []);
15
+ tinymce.each(css, function(u) {
16
+ cssHTML += '<link href="' + ed.documentBaseURI.toAbsolute('' + u) + '" rel="stylesheet" type="text/css" />';
17
+ });
18
+
19
+ // Write content into iframe
20
+ doc.open();
21
+ doc.write('<html><head>' + cssHTML + '</head><body class="mceContentBody" spellcheck="false"></body></html>');
22
+ doc.close();
23
+
24
+ doc.designMode = 'on';
25
+ this.resize();
26
+
27
+ window.setTimeout(function() {
28
+ ifr.contentWindow.focus();
29
+ }, 10);
30
+ },
31
+
32
+ insert : function() {
33
+ var h = document.getElementById('iframe').contentWindow.document.body.innerHTML;
34
+
35
+ tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h, wordContent : true});
36
+ tinyMCEPopup.close();
37
+ },
38
+
39
+ resize : function() {
40
+ var vp = tinyMCEPopup.dom.getViewPort(window), el;
41
+
42
+ el = document.getElementById('iframe');
43
+
44
+ if (el) {
45
+ el.style.width = (vp.w - 20) + 'px';
46
+ el.style.height = (vp.h - 90) + 'px';
47
+ }
48
+ }
49
+ };
50
+
51
+ tinyMCEPopup.onInit.add(PasteWordDialog.init, PasteWordDialog);
@@ -1 +1,5 @@
1
- tinyMCE.addI18n("en.paste_dlg",{text_title:"Use CTRL+V on your keyboard to paste the text into the window.",text_linebreaks:"Keep linebreaks",word_title:"Use CTRL+V on your keyboard to paste the text into the window."});
1
+ tinyMCE.addI18n('en.paste_dlg',{
2
+ text_title:"Use CTRL+V on your keyboard to paste the text into the window.",
3
+ text_linebreaks:"Keep linebreaks",
4
+ word_title:"Use CTRL+V on your keyboard to paste the text into the window."
5
+ });
@@ -1,7 +1,6 @@
1
1
  <html xmlns="http://www.w3.org/1999/xhtml">
2
2
  <head>
3
3
  <title>{#paste.paste_text_desc}</title>
4
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
5
4
  <script type="text/javascript" src="../../tiny_mce_popup.js"></script>
6
5
  <script type="text/javascript" src="js/pastetext.js"></script>
7
6
  </head>
@@ -20,13 +19,8 @@
20
19
  <textarea id="content" name="content" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,mono; font-size: 12px;" dir="ltr" wrap="soft" class="mceFocus"></textarea>
21
20
 
22
21
  <div class="mceActionPanel">
23
- <div style="float: left">
24
- <input type="submit" name="insert" value="{#insert}" id="insert" />
25
- </div>
26
-
27
- <div style="float: right">
28
- <input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
29
- </div>
22
+ <input type="submit" name="insert" value="{#insert}" id="insert" />
23
+ <input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
30
24
  </div>
31
25
  </form>
32
26
  </body>
@@ -1,6 +1,5 @@
1
1
  <html xmlns="http://www.w3.org/1999/xhtml">
2
2
  <head>
3
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
4
3
  <title>{#paste.paste_word_desc}</title>
5
4
  <script type="text/javascript" src="../../tiny_mce_popup.js"></script>
6
5
  <script type="text/javascript" src="js/pasteword.js"></script>
@@ -14,13 +13,8 @@
14
13
  <div id="iframecontainer"></div>
15
14
 
16
15
  <div class="mceActionPanel">
17
- <div style="float: left">
18
- <input type="submit" id="insert" name="insert" value="{#insert}" />
19
- </div>
20
-
21
- <div style="float: right">
22
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
23
- </div>
16
+ <input type="submit" id="insert" name="insert" value="{#insert}" />
17
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
24
18
  </div>
25
19
  </form>
26
20
  </body>
@@ -1 +1,23 @@
1
- #frmbody{padding:10px;background-color:#FFF;border:1px solid #CCC;}.frmRow{margin-bottom:10px;}#templatesrc{border:none;width:320px;height:240px;}.title{padding-bottom:5px;}.mceActionPanel{padding-top:5px;}
1
+ #frmbody {
2
+ padding: 10px;
3
+ background-color: #FFF;
4
+ border: 1px solid #CCC;
5
+ }
6
+
7
+ .frmRow {
8
+ margin-bottom: 10px;
9
+ }
10
+
11
+ #templatesrc {
12
+ border: none;
13
+ width: 320px;
14
+ height: 240px;
15
+ }
16
+
17
+ .title {
18
+ padding-bottom: 5px;
19
+ }
20
+
21
+ .mceActionPanel {
22
+ padding-top: 5px;
23
+ }
@@ -1 +1 @@
1
- (function(){var b=tinymce.each;tinymce.create("tinymce.plugins.TemplatePlugin",{init:function(a,f){var e=this;e.editor=a;a.addCommand("mceTemplate",function(c){a.windowManager.open({file:f+"/template.htm",width:a.getParam("template_popup_width",750),height:a.getParam("template_popup_height",600),inline:1},{plugin_url:f})});a.addCommand("mceInsertTemplate",e._insertTemplate,e);a.addButton("template",{title:"template.desc",cmd:"mceTemplate"});a.onPreProcess.add(function(h,c){var d=h.dom;b(d.select("div",c.node),function(g){if(d.hasClass(g,"mceTmpl")){b(d.select("*",g),function(j){if(d.hasClass(j,h.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){j.innerHTML=e._getDateTime(new Date(),h.getParam("template_mdate_format",h.getLang("template.mdate_format")))}});e._replaceVals(g)}})})},getInfo:function(){return{longname:"Template plugin",author:"Moxiecode Systems AB",authorurl:"http://www.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_insertTemplate:function(l,h){var a=this,m=a.editor,o,r,q=m.dom,s=m.selection.getContent();o=h.content;b(a.editor.getParam("template_replace_values"),function(c,d){if(typeof(c)!="function"){o=o.replace(new RegExp("\\{\\$"+d+"\\}","g"),c)}});r=q.create("div",null,o);n=q.select(".mceTmpl",r);if(n&&n.length>0){r=q.create("div",null);r.appendChild(n[0].cloneNode(true))}function p(c,d){return new RegExp("\\b"+d+"\\b","g").test(c.className)}b(q.select("*",r),function(c){if(p(c,m.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))){c.innerHTML=a._getDateTime(new Date(),m.getParam("template_cdate_format",m.getLang("template.cdate_format")))}if(p(c,m.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){c.innerHTML=a._getDateTime(new Date(),m.getParam("template_mdate_format",m.getLang("template.mdate_format")))}if(p(c,m.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))){c.innerHTML=s}});a._replaceVals(r);m.execCommand("mceInsertContent",false,r.innerHTML);m.addVisual()},_replaceVals:function(f){var e=this.editor.dom,a=this.editor.getParam("template_replace_values");b(e.select("*",f),function(c){b(a,function(d,h){if(e.hasClass(c,h)){if(typeof(a[h])=="function"){a[h](c)}}})})},_getDateTime:function(d,a){if(!a){return""}function f(c,h){var e;c=""+c;if(c.length<h){for(e=0;e<(h-c.length);e++){c="0"+c}}return c}a=a.replace("%D","%m/%d/%y");a=a.replace("%r","%I:%M:%S %p");a=a.replace("%Y",""+d.getFullYear());a=a.replace("%y",""+d.getYear());a=a.replace("%m",f(d.getMonth()+1,2));a=a.replace("%d",f(d.getDate(),2));a=a.replace("%H",""+f(d.getHours(),2));a=a.replace("%M",""+f(d.getMinutes(),2));a=a.replace("%S",""+f(d.getSeconds(),2));a=a.replace("%I",""+((d.getHours()+11)%12+1));a=a.replace("%p",""+(d.getHours()<12?"AM":"PM"));a=a.replace("%B",""+this.editor.getLang("template_months_long").split(",")[d.getMonth()]);a=a.replace("%b",""+this.editor.getLang("template_months_short").split(",")[d.getMonth()]);a=a.replace("%A",""+this.editor.getLang("template_day_long").split(",")[d.getDay()]);a=a.replace("%a",""+this.editor.getLang("template_day_short").split(",")[d.getDay()]);a=a.replace("%%","%");return a}});tinymce.PluginManager.add("template",tinymce.plugins.TemplatePlugin)})();
1
+ (function(){var a=tinymce.each;tinymce.create("tinymce.plugins.TemplatePlugin",{init:function(b,c){var d=this;d.editor=b;b.addCommand("mceTemplate",function(e){b.windowManager.open({file:c+"/template.htm",width:b.getParam("template_popup_width",750),height:b.getParam("template_popup_height",600),inline:1},{plugin_url:c})});b.addCommand("mceInsertTemplate",d._insertTemplate,d);b.addButton("template",{title:"template.desc",cmd:"mceTemplate"});b.onPreProcess.add(function(e,g){var f=e.dom;a(f.select("div",g.node),function(h){if(f.hasClass(h,"mceTmpl")){a(f.select("*",h),function(i){if(f.hasClass(i,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){i.innerHTML=d._getDateTime(new Date(),e.getParam("template_mdate_format",e.getLang("template.mdate_format")))}});d._replaceVals(h)}})})},getInfo:function(){return{longname:"Template plugin",author:"Moxiecode Systems AB",authorurl:"http://www.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_insertTemplate:function(i,j){var k=this,g=k.editor,f,c,d=g.dom,b=g.selection.getContent();f=j.content;a(k.editor.getParam("template_replace_values"),function(l,h){if(typeof(l)!="function"){f=f.replace(new RegExp("\\{\\$"+h+"\\}","g"),l)}});c=d.create("div",null,f);n=d.select(".mceTmpl",c);if(n&&n.length>0){c=d.create("div",null);c.appendChild(n[0].cloneNode(true))}function e(l,h){return new RegExp("\\b"+h+"\\b","g").test(l.className)}a(d.select("*",c),function(h){if(e(h,g.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))){h.innerHTML=k._getDateTime(new Date(),g.getParam("template_cdate_format",g.getLang("template.cdate_format")))}if(e(h,g.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){h.innerHTML=k._getDateTime(new Date(),g.getParam("template_mdate_format",g.getLang("template.mdate_format")))}if(e(h,g.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))){h.innerHTML=b}});k._replaceVals(c);g.execCommand("mceInsertContent",false,c.innerHTML);g.addVisual()},_replaceVals:function(c){var d=this.editor.dom,b=this.editor.getParam("template_replace_values");a(d.select("*",c),function(f){a(b,function(g,e){if(d.hasClass(f,e)){if(typeof(b[e])=="function"){b[e](f)}}})})},_getDateTime:function(e,b){if(!b){return""}function c(g,d){var f;g=""+g;if(g.length<d){for(f=0;f<(d-g.length);f++){g="0"+g}}return g}b=b.replace("%D","%m/%d/%y");b=b.replace("%r","%I:%M:%S %p");b=b.replace("%Y",""+e.getFullYear());b=b.replace("%y",""+e.getYear());b=b.replace("%m",c(e.getMonth()+1,2));b=b.replace("%d",c(e.getDate(),2));b=b.replace("%H",""+c(e.getHours(),2));b=b.replace("%M",""+c(e.getMinutes(),2));b=b.replace("%S",""+c(e.getSeconds(),2));b=b.replace("%I",""+((e.getHours()+11)%12+1));b=b.replace("%p",""+(e.getHours()<12?"AM":"PM"));b=b.replace("%B",""+this.editor.getLang("template_months_long").split(",")[e.getMonth()]);b=b.replace("%b",""+this.editor.getLang("template_months_short").split(",")[e.getMonth()]);b=b.replace("%A",""+this.editor.getLang("template_day_long").split(",")[e.getDay()]);b=b.replace("%a",""+this.editor.getLang("template_day_short").split(",")[e.getDay()]);b=b.replace("%%","%");return b}});tinymce.PluginManager.add("template",tinymce.plugins.TemplatePlugin)})();
@@ -0,0 +1,159 @@
1
+ /**
2
+ * editor_plugin_src.js
3
+ *
4
+ * Copyright 2009, Moxiecode Systems AB
5
+ * Released under LGPL License.
6
+ *
7
+ * License: http://tinymce.moxiecode.com/license
8
+ * Contributing: http://tinymce.moxiecode.com/contributing
9
+ */
10
+
11
+ (function() {
12
+ var each = tinymce.each;
13
+
14
+ tinymce.create('tinymce.plugins.TemplatePlugin', {
15
+ init : function(ed, url) {
16
+ var t = this;
17
+
18
+ t.editor = ed;
19
+
20
+ // Register commands
21
+ ed.addCommand('mceTemplate', function(ui) {
22
+ ed.windowManager.open({
23
+ file : url + '/template.htm',
24
+ width : ed.getParam('template_popup_width', 750),
25
+ height : ed.getParam('template_popup_height', 600),
26
+ inline : 1
27
+ }, {
28
+ plugin_url : url
29
+ });
30
+ });
31
+
32
+ ed.addCommand('mceInsertTemplate', t._insertTemplate, t);
33
+
34
+ // Register buttons
35
+ ed.addButton('template', {title : 'template.desc', cmd : 'mceTemplate'});
36
+
37
+ ed.onPreProcess.add(function(ed, o) {
38
+ var dom = ed.dom;
39
+
40
+ each(dom.select('div', o.node), function(e) {
41
+ if (dom.hasClass(e, 'mceTmpl')) {
42
+ each(dom.select('*', e), function(e) {
43
+ if (dom.hasClass(e, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|')))
44
+ e.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format")));
45
+ });
46
+
47
+ t._replaceVals(e);
48
+ }
49
+ });
50
+ });
51
+ },
52
+
53
+ getInfo : function() {
54
+ return {
55
+ longname : 'Template plugin',
56
+ author : 'Moxiecode Systems AB',
57
+ authorurl : 'http://www.moxiecode.com',
58
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template',
59
+ version : tinymce.majorVersion + "." + tinymce.minorVersion
60
+ };
61
+ },
62
+
63
+ _insertTemplate : function(ui, v) {
64
+ var t = this, ed = t.editor, h, el, dom = ed.dom, sel = ed.selection.getContent();
65
+
66
+ h = v.content;
67
+
68
+ each(t.editor.getParam('template_replace_values'), function(v, k) {
69
+ if (typeof(v) != 'function')
70
+ h = h.replace(new RegExp('\\{\\$' + k + '\\}', 'g'), v);
71
+ });
72
+
73
+ el = dom.create('div', null, h);
74
+
75
+ // Find template element within div
76
+ n = dom.select('.mceTmpl', el);
77
+ if (n && n.length > 0) {
78
+ el = dom.create('div', null);
79
+ el.appendChild(n[0].cloneNode(true));
80
+ }
81
+
82
+ function hasClass(n, c) {
83
+ return new RegExp('\\b' + c + '\\b', 'g').test(n.className);
84
+ };
85
+
86
+ each(dom.select('*', el), function(n) {
87
+ // Replace cdate
88
+ if (hasClass(n, ed.getParam('template_cdate_classes', 'cdate').replace(/\s+/g, '|')))
89
+ n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_cdate_format", ed.getLang("template.cdate_format")));
90
+
91
+ // Replace mdate
92
+ if (hasClass(n, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|')))
93
+ n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format")));
94
+
95
+ // Replace selection
96
+ if (hasClass(n, ed.getParam('template_selected_content_classes', 'selcontent').replace(/\s+/g, '|')))
97
+ n.innerHTML = sel;
98
+ });
99
+
100
+ t._replaceVals(el);
101
+
102
+ ed.execCommand('mceInsertContent', false, el.innerHTML);
103
+ ed.addVisual();
104
+ },
105
+
106
+ _replaceVals : function(e) {
107
+ var dom = this.editor.dom, vl = this.editor.getParam('template_replace_values');
108
+
109
+ each(dom.select('*', e), function(e) {
110
+ each(vl, function(v, k) {
111
+ if (dom.hasClass(e, k)) {
112
+ if (typeof(vl[k]) == 'function')
113
+ vl[k](e);
114
+ }
115
+ });
116
+ });
117
+ },
118
+
119
+ _getDateTime : function(d, fmt) {
120
+ if (!fmt)
121
+ return "";
122
+
123
+ function addZeros(value, len) {
124
+ var i;
125
+
126
+ value = "" + value;
127
+
128
+ if (value.length < len) {
129
+ for (i=0; i<(len-value.length); i++)
130
+ value = "0" + value;
131
+ }
132
+
133
+ return value;
134
+ }
135
+
136
+ fmt = fmt.replace("%D", "%m/%d/%y");
137
+ fmt = fmt.replace("%r", "%I:%M:%S %p");
138
+ fmt = fmt.replace("%Y", "" + d.getFullYear());
139
+ fmt = fmt.replace("%y", "" + d.getYear());
140
+ fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));
141
+ fmt = fmt.replace("%d", addZeros(d.getDate(), 2));
142
+ fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));
143
+ fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));
144
+ fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));
145
+ fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));
146
+ fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));
147
+ fmt = fmt.replace("%B", "" + this.editor.getLang("template_months_long").split(',')[d.getMonth()]);
148
+ fmt = fmt.replace("%b", "" + this.editor.getLang("template_months_short").split(',')[d.getMonth()]);
149
+ fmt = fmt.replace("%A", "" + this.editor.getLang("template_day_long").split(',')[d.getDay()]);
150
+ fmt = fmt.replace("%a", "" + this.editor.getLang("template_day_short").split(',')[d.getDay()]);
151
+ fmt = fmt.replace("%%", "%");
152
+
153
+ return fmt;
154
+ }
155
+ });
156
+
157
+ // Register plugin
158
+ tinymce.PluginManager.add('template', tinymce.plugins.TemplatePlugin);
159
+ })();
@@ -1 +1,106 @@
1
- tinyMCEPopup.requireLangPack();var TemplateDialog={preInit:function(){var a=tinyMCEPopup.getParam("template_external_list_url");if(a!=null){document.write('<script language="javascript" type="text/javascript" src="'+tinyMCEPopup.editor.documentBaseURI.toAbsolute(a)+'"><\/script>')}},init:function(){var c=tinyMCEPopup.editor,b,e,a,d;b=c.getParam("template_templates",false);e=document.getElementById("tpath");if(!b&&typeof(tinyMCETemplateList)!="undefined"){for(a=0,b=[];a<tinyMCETemplateList.length;a++){b.push({title:tinyMCETemplateList[a][0],src:tinyMCETemplateList[a][1],description:tinyMCETemplateList[a][2]})}}for(a=0;a<b.length;a++){e.options[e.options.length]=new Option(b[a].title,tinyMCEPopup.editor.documentBaseURI.toAbsolute(b[a].src))}this.resize();this.tsrc=b},resize:function(){var a,b,c;if(!self.innerWidth){a=document.body.clientWidth-50;b=document.body.clientHeight-160}else{a=self.innerWidth-50;b=self.innerHeight-170}c=document.getElementById("templatesrc");if(c){c.style.height=Math.abs(b)+"px";c.style.width=Math.abs(a-5)+"px"}},loadCSSFiles:function(b){var a=tinyMCEPopup.editor;tinymce.each(a.getParam("content_css","").split(","),function(c){b.write('<link href="'+a.documentBaseURI.toAbsolute(c)+'" rel="stylesheet" type="text/css" />')})},selectTemplate:function(c,e){var f=window.frames.templatesrc.document,a,b=this.tsrc;if(!c){return}f.body.innerHTML=this.templateHTML=this.getFileContents(c);for(a=0;a<b.length;a++){if(b[a].title==e){document.getElementById("tmpldesc").innerHTML=b[a].description||""}}},insert:function(){tinyMCEPopup.execCommand("mceInsertTemplate",false,{content:this.templateHTML,selection:tinyMCEPopup.editor.selection.getContent()});tinyMCEPopup.close()},getFileContents:function(b){var a,f,c="text/plain";function e(d){a=0;try{a=new ActiveXObject(d)}catch(d){}return a}a=window.ActiveXObject?e("Msxml2.XMLHTTP")||e("Microsoft.XMLHTTP"):new XMLHttpRequest();a.overrideMimeType&&a.overrideMimeType(c);a.open("GET",b,false);a.send(null);return a.responseText}};TemplateDialog.preInit();tinyMCEPopup.onInit.add(TemplateDialog.init,TemplateDialog);
1
+ tinyMCEPopup.requireLangPack();
2
+
3
+ var TemplateDialog = {
4
+ preInit : function() {
5
+ var url = tinyMCEPopup.getParam("template_external_list_url");
6
+
7
+ if (url != null)
8
+ document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></sc'+'ript>');
9
+ },
10
+
11
+ init : function() {
12
+ var ed = tinyMCEPopup.editor, tsrc, sel, x, u;
13
+
14
+ tsrc = ed.getParam("template_templates", false);
15
+ sel = document.getElementById('tpath');
16
+
17
+ // Setup external template list
18
+ if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') {
19
+ for (x=0, tsrc = []; x<tinyMCETemplateList.length; x++)
20
+ tsrc.push({title : tinyMCETemplateList[x][0], src : tinyMCETemplateList[x][1], description : tinyMCETemplateList[x][2]});
21
+ }
22
+
23
+ for (x=0; x<tsrc.length; x++)
24
+ sel.options[sel.options.length] = new Option(tsrc[x].title, tinyMCEPopup.editor.documentBaseURI.toAbsolute(tsrc[x].src));
25
+
26
+ this.resize();
27
+ this.tsrc = tsrc;
28
+ },
29
+
30
+ resize : function() {
31
+ var w, h, e;
32
+
33
+ if (!self.innerWidth) {
34
+ w = document.body.clientWidth - 50;
35
+ h = document.body.clientHeight - 160;
36
+ } else {
37
+ w = self.innerWidth - 50;
38
+ h = self.innerHeight - 170;
39
+ }
40
+
41
+ e = document.getElementById('templatesrc');
42
+
43
+ if (e) {
44
+ e.style.height = Math.abs(h) + 'px';
45
+ e.style.width = Math.abs(w - 5) + 'px';
46
+ }
47
+ },
48
+
49
+ loadCSSFiles : function(d) {
50
+ var ed = tinyMCEPopup.editor;
51
+
52
+ tinymce.each(ed.getParam("content_css", '').split(','), function(u) {
53
+ d.write('<link href="' + ed.documentBaseURI.toAbsolute(u) + '" rel="stylesheet" type="text/css" />');
54
+ });
55
+ },
56
+
57
+ selectTemplate : function(u, ti) {
58
+ var d = window.frames['templatesrc'].document, x, tsrc = this.tsrc;
59
+
60
+ if (!u)
61
+ return;
62
+
63
+ d.body.innerHTML = this.templateHTML = this.getFileContents(u);
64
+
65
+ for (x=0; x<tsrc.length; x++) {
66
+ if (tsrc[x].title == ti)
67
+ document.getElementById('tmpldesc').innerHTML = tsrc[x].description || '';
68
+ }
69
+ },
70
+
71
+ insert : function() {
72
+ tinyMCEPopup.execCommand('mceInsertTemplate', false, {
73
+ content : this.templateHTML,
74
+ selection : tinyMCEPopup.editor.selection.getContent()
75
+ });
76
+
77
+ tinyMCEPopup.close();
78
+ },
79
+
80
+ getFileContents : function(u) {
81
+ var x, d, t = 'text/plain';
82
+
83
+ function g(s) {
84
+ x = 0;
85
+
86
+ try {
87
+ x = new ActiveXObject(s);
88
+ } catch (s) {
89
+ }
90
+
91
+ return x;
92
+ };
93
+
94
+ x = window.ActiveXObject ? g('Msxml2.XMLHTTP') || g('Microsoft.XMLHTTP') : new XMLHttpRequest();
95
+
96
+ // Synchronous AJAX load file
97
+ x.overrideMimeType && x.overrideMimeType(t);
98
+ x.open("GET", u, false);
99
+ x.send(null);
100
+
101
+ return x.responseText;
102
+ }
103
+ };
104
+
105
+ TemplateDialog.preInit();
106
+ tinyMCEPopup.onInit.add(TemplateDialog.init, TemplateDialog);
@@ -1 +1,15 @@
1
- tinyMCE.addI18n("en.template_dlg",{title:"Templates",label:"Template",desc_label:"Description",desc:"Insert predefined template content",select:"Select a template",preview:"Preview",warning:"Warning: Updating a template with a different one may cause data loss.",mdate_format:"%Y-%m-%d %H:%M:%S",cdate_format:"%Y-%m-%d %H:%M:%S",months_long:"January,February,March,April,May,June,July,August,September,October,November,December",months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",day_long:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday",day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun"});
1
+ tinyMCE.addI18n('en.template_dlg',{
2
+ title:"Templates",
3
+ label:"Template",
4
+ desc_label:"Description",
5
+ desc:"Insert predefined template content",
6
+ select:"Select a template",
7
+ preview:"Preview",
8
+ warning:"Warning: Updating a template with a different one may cause data loss.",
9
+ mdate_format:"%Y-%m-%d %H:%M:%S",
10
+ cdate_format:"%Y-%m-%d %H:%M:%S",
11
+ months_long:"January,February,March,April,May,June,July,August,September,October,November,December",
12
+ months_short:"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec",
13
+ day_long:"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday",
14
+ day_short:"Sun,Mon,Tue,Wed,Thu,Fri,Sat,Sun"
15
+ });
@@ -23,15 +23,8 @@
23
23
  </div>
24
24
 
25
25
  <div class="mceActionPanel">
26
- <div style="float: left">
27
- <input type="submit" id="insert" name="insert" value="{#insert}" />
28
- </div>
29
-
30
- <div style="float: right">
31
- <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
32
- </div>
33
-
34
- <br style="clear:both" />
26
+ <input type="submit" id="insert" name="insert" value="{#insert}" />
27
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
35
28
  </div>
36
29
  </form>
37
30
  </body>
@@ -0,0 +1 @@
1
+ (function(){tinymce.create("tinymce.plugins.WordCount",{block:0,id:null,countre:null,cleanre:null,init:function(a,b){var c=this,d=0;c.countre=a.getParam("wordcount_countregex",/\S\s+/g);c.cleanre=a.getParam("wordcount_cleanregex",/[0-9.(),;:!?%#$�'"_+=\\\/-]*/g);c.id=a.id+"-word-count";a.onPostRender.add(function(f,e){var g,h;h=f.getParam("wordcount_target_id");if(!h){g=tinymce.DOM.get(f.id+"_path_row");if(g){tinymce.DOM.add(g.parentNode,"div",{style:"float: right"},f.getLang("wordcount.words","Words: ")+'<span id="'+c.id+'">0</span>')}}else{tinymce.DOM.add(h,"span",{},'<span id="'+c.id+'">0</span>')}});a.onInit.add(function(e){e.selection.onSetContent.add(function(){c._count(e)});c._count(e)});a.onSetContent.add(function(e){c._count(e)});a.onKeyUp.add(function(f,g){if(g.keyCode==d){return}if(13==g.keyCode||8==d||46==d){c._count(f)}d=g.keyCode})},_count:function(b){var c=this,a=0;if(c.block){return}c.block=1;setTimeout(function(){var d=b.getContent({format:"raw"});if(d){d=d.replace(/<.[^<>]*?>/g," ").replace(/&nbsp;|&#160;/gi," ");d=d.replace(c.cleanre,"");d.replace(c.countre,function(){a++})}tinymce.DOM.setHTML(c.id,a.toString());setTimeout(function(){c.block=0},2000)},1)},getInfo:function(){return{longname:"Word Count plugin",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/wordcount",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("wordcount",tinymce.plugins.WordCount)})();
@@ -0,0 +1,98 @@
1
+ /**
2
+ * editor_plugin_src.js
3
+ *
4
+ * Copyright 2009, Moxiecode Systems AB
5
+ * Released under LGPL License.
6
+ *
7
+ * License: http://tinymce.moxiecode.com/license
8
+ * Contributing: http://tinymce.moxiecode.com/contributing
9
+ */
10
+
11
+ (function() {
12
+ tinymce.create('tinymce.plugins.WordCount', {
13
+ block : 0,
14
+ id : null,
15
+ countre : null,
16
+ cleanre : null,
17
+
18
+ init : function(ed, url) {
19
+ var t = this, last = 0;
20
+
21
+ t.countre = ed.getParam('wordcount_countregex', /\S\s+/g);
22
+ t.cleanre = ed.getParam('wordcount_cleanregex', /[0-9.(),;:!?%#$�'"_+=\\\/-]*/g);
23
+ t.id = ed.id + '-word-count';
24
+
25
+ ed.onPostRender.add(function(ed, cm) {
26
+ var row, id;
27
+
28
+ // Add it to the specified id or the theme advanced path
29
+ id = ed.getParam('wordcount_target_id');
30
+ if (!id) {
31
+ row = tinymce.DOM.get(ed.id + '_path_row');
32
+
33
+ if (row)
34
+ tinymce.DOM.add(row.parentNode, 'div', {'style': 'float: right'}, ed.getLang('wordcount.words', 'Words: ') + '<span id="' + t.id + '">0</span>');
35
+ } else
36
+ tinymce.DOM.add(id, 'span', {}, '<span id="' + t.id + '">0</span>');
37
+ });
38
+
39
+ ed.onInit.add(function(ed) {
40
+ ed.selection.onSetContent.add(function() {
41
+ t._count(ed);
42
+ });
43
+
44
+ t._count(ed);
45
+ });
46
+
47
+ ed.onSetContent.add(function(ed) {
48
+ t._count(ed);
49
+ });
50
+
51
+ ed.onKeyUp.add(function(ed, e) {
52
+ if (e.keyCode == last)
53
+ return;
54
+
55
+ if (13 == e.keyCode || 8 == last || 46 == last)
56
+ t._count(ed);
57
+
58
+ last = e.keyCode;
59
+ });
60
+ },
61
+
62
+ _count : function(ed) {
63
+ var t = this, tc = 0;
64
+
65
+ // Keep multiple calls from happening at the same time
66
+ if (t.block)
67
+ return;
68
+
69
+ t.block = 1;
70
+
71
+ setTimeout(function() {
72
+ var tx = ed.getContent({format : 'raw'});
73
+
74
+ if (tx) {
75
+ tx = tx.replace(/<.[^<>]*?>/g, ' ').replace(/&nbsp;|&#160;/gi, ' '); // remove html tags and space chars
76
+ tx = tx.replace(t.cleanre, ''); // remove numbers and punctuation
77
+ tx.replace(t.countre, function() {tc++;}); // count the words
78
+ }
79
+
80
+ tinymce.DOM.setHTML(t.id, tc.toString());
81
+
82
+ setTimeout(function() {t.block = 0;}, 2000);
83
+ }, 1);
84
+ },
85
+
86
+ getInfo: function() {
87
+ return {
88
+ longname : 'Word Count plugin',
89
+ author : 'Moxiecode Systems AB',
90
+ authorurl : 'http://tinymce.moxiecode.com',
91
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/wordcount',
92
+ version : tinymce.majorVersion + "." + tinymce.minorVersion
93
+ };
94
+ }
95
+ });
96
+
97
+ tinymce.PluginManager.add('wordcount', tinymce.plugins.WordCount);
98
+ })();