PageRenderTime 44ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

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

#
JavaScript | 101 lines | 62 code | 23 blank | 16 comment | 12 complexity | 4dcbdaab64f06550a2db2b650f99d411 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.Save', {
  12. init : function(ed, url) {
  13. var t = this;
  14. t.editor = ed;
  15. // Register commands
  16. ed.addCommand('mceSave', t._save, t);
  17. ed.addCommand('mceCancel', t._cancel, t);
  18. // Register buttons
  19. ed.addButton('save', {title : 'save.save_desc', cmd : 'mceSave'});
  20. ed.addButton('cancel', {title : 'save.cancel_desc', cmd : 'mceCancel'});
  21. ed.onNodeChange.add(t._nodeChange, t);
  22. ed.addShortcut('ctrl+s', ed.getLang('save.save_desc'), 'mceSave');
  23. },
  24. getInfo : function() {
  25. return {
  26. longname : 'Save',
  27. author : 'Moxiecode Systems AB',
  28. authorurl : 'http://tinymce.moxiecode.com',
  29. infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',
  30. version : tinymce.majorVersion + "." + tinymce.minorVersion
  31. };
  32. },
  33. // Private methods
  34. _nodeChange : function(ed, cm, n) {
  35. var ed = this.editor;
  36. if (ed.getParam('save_enablewhendirty')) {
  37. cm.setDisabled('save', !ed.isDirty());
  38. cm.setDisabled('cancel', !ed.isDirty());
  39. }
  40. },
  41. // Private methods
  42. _save : function() {
  43. var ed = this.editor, formObj, os, i, elementId;
  44. formObj = tinymce.DOM.get(ed.id).form || tinymce.DOM.getParent(ed.id, 'form');
  45. if (ed.getParam("save_enablewhendirty") && !ed.isDirty())
  46. return;
  47. tinyMCE.triggerSave();
  48. // Use callback instead
  49. if (os = ed.getParam("save_onsavecallback")) {
  50. if (ed.execCallback('save_onsavecallback', ed)) {
  51. ed.startContent = tinymce.trim(ed.getContent({format : 'raw'}));
  52. ed.nodeChanged();
  53. }
  54. return;
  55. }
  56. if (formObj) {
  57. ed.isNotDirty = true;
  58. if (formObj.onsubmit == null || formObj.onsubmit() != false)
  59. formObj.submit();
  60. ed.nodeChanged();
  61. } else
  62. ed.windowManager.alert("Error: No form element found.");
  63. },
  64. _cancel : function() {
  65. var ed = this.editor, os, h = tinymce.trim(ed.startContent);
  66. // Use callback instead
  67. if (os = ed.getParam("save_oncancelcallback")) {
  68. ed.execCallback('save_oncancelcallback', ed);
  69. return;
  70. }
  71. ed.setContent(h);
  72. ed.undoManager.clear();
  73. ed.nodeChanged();
  74. }
  75. });
  76. // Register plugin
  77. tinymce.PluginManager.add('save', tinymce.plugins.Save);
  78. })();