PageRenderTime 45ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/BlogEngine/BlogEngine.NET/editors/tiny_mce_3_4_3_1/plugins/pagebreak/editor_plugin_src.js

#
JavaScript | 74 lines | 53 code | 10 blank | 11 comment | 9 complexity | c2d432a5914f0095a859ff443700a5e9 MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0, BSD-3-Clause
  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. (function() {
  11. tinymce.create('tinymce.plugins.PageBreakPlugin', {
  12. init : function(ed, url) {
  13. var pb = '<img src="' + ed.theme.url + '/img/trans.gif" class="mcePageBreak mceItemNoResize" />', cls = 'mcePageBreak', sep = ed.getParam('pagebreak_separator', '<!-- pagebreak -->'), pbRE;
  14. pbRE = new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, function(a) {return '\\' + a;}), 'g');
  15. // Register commands
  16. ed.addCommand('mcePageBreak', function() {
  17. ed.execCommand('mceInsertContent', 0, pb);
  18. });
  19. // Register buttons
  20. ed.addButton('pagebreak', {title : 'pagebreak.desc', cmd : cls});
  21. ed.onInit.add(function() {
  22. if (ed.theme.onResolveName) {
  23. ed.theme.onResolveName.add(function(th, o) {
  24. if (o.node.nodeName == 'IMG' && ed.dom.hasClass(o.node, cls))
  25. o.name = 'pagebreak';
  26. });
  27. }
  28. });
  29. ed.onClick.add(function(ed, e) {
  30. e = e.target;
  31. if (e.nodeName === 'IMG' && ed.dom.hasClass(e, cls))
  32. ed.selection.select(e);
  33. });
  34. ed.onNodeChange.add(function(ed, cm, n) {
  35. cm.setActive('pagebreak', n.nodeName === 'IMG' && ed.dom.hasClass(n, cls));
  36. });
  37. ed.onBeforeSetContent.add(function(ed, o) {
  38. o.content = o.content.replace(pbRE, pb);
  39. });
  40. ed.onPostProcess.add(function(ed, o) {
  41. if (o.get)
  42. o.content = o.content.replace(/<img[^>]+>/g, function(im) {
  43. if (im.indexOf('class="mcePageBreak') !== -1)
  44. im = sep;
  45. return im;
  46. });
  47. });
  48. },
  49. getInfo : function() {
  50. return {
  51. longname : 'PageBreak',
  52. author : 'Moxiecode Systems AB',
  53. authorurl : 'http://tinymce.moxiecode.com',
  54. infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak',
  55. version : tinymce.majorVersion + "." + tinymce.minorVersion
  56. };
  57. }
  58. });
  59. // Register plugin
  60. tinymce.PluginManager.add('pagebreak', tinymce.plugins.PageBreakPlugin);
  61. })();