--- /dev/null
+/**\r
+ * editor_plugin_src.js\r
+ *\r
+ * Copyright 2009, Moxiecode Systems AB\r
+ * Released under LGPL License.\r
+ *\r
+ * License: http://tinymce.moxiecode.com/license\r
+ * Contributing: http://tinymce.moxiecode.com/contributing\r
+ */\r
+\r
+(function() {\r
+ tinymce.create('tinymce.plugins.Save', {\r
+ init : function(ed, url) {\r
+ var t = this;\r
+\r
+ t.editor = ed;\r
+\r
+ // Register commands\r
+ ed.addCommand('mceSave', t._save, t);\r
+ ed.addCommand('mceCancel', t._cancel, t);\r
+\r
+ // Register buttons\r
+ ed.addButton('save', {title : 'save.save_desc', cmd : 'mceSave'});\r
+ ed.addButton('cancel', {title : 'save.cancel_desc', cmd : 'mceCancel'});\r
+\r
+ ed.onNodeChange.add(t._nodeChange, t);\r
+ ed.addShortcut('ctrl+s', ed.getLang('save.save_desc'), 'mceSave');\r
+ },\r
+\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Save',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',\r
+ version : tinymce.majorVersion + "." + tinymce.minorVersion\r
+ };\r
+ },\r
+\r
+ // Private methods\r
+\r
+ _nodeChange : function(ed, cm, n) {\r
+ var ed = this.editor;\r
+\r
+ if (ed.getParam('save_enablewhendirty')) {\r
+ cm.setDisabled('save', !ed.isDirty());\r
+ cm.setDisabled('cancel', !ed.isDirty());\r
+ }\r
+ },\r
+\r
+ // Private methods\r
+\r
+ _save : function() {\r
+ var ed = this.editor, formObj, os, i, elementId;\r
+\r
+ formObj = tinymce.DOM.get(ed.id).form || tinymce.DOM.getParent(ed.id, 'form');\r
+\r
+ if (ed.getParam("save_enablewhendirty") && !ed.isDirty())\r
+ return;\r
+\r
+ tinyMCE.triggerSave();\r
+\r
+ // Use callback instead\r
+ if (os = ed.getParam("save_onsavecallback")) {\r
+ if (ed.execCallback('save_onsavecallback', ed)) {\r
+ ed.startContent = tinymce.trim(ed.getContent({format : 'raw'}));\r
+ ed.nodeChanged();\r
+ }\r
+\r
+ return;\r
+ }\r
+\r
+ if (formObj) {\r
+ ed.isNotDirty = true;\r
+\r
+ if (formObj.onsubmit == null || formObj.onsubmit() != false)\r
+ formObj.submit();\r
+\r
+ ed.nodeChanged();\r
+ } else\r
+ ed.windowManager.alert("Error: No form element found.");\r
+ },\r
+\r
+ _cancel : function() {\r
+ var ed = this.editor, os, h = tinymce.trim(ed.startContent);\r
+\r
+ // Use callback instead\r
+ if (os = ed.getParam("save_oncancelcallback")) {\r
+ ed.execCallback('save_oncancelcallback', ed);\r
+ return;\r
+ }\r
+\r
+ ed.setContent(h);\r
+ ed.undoManager.clear();\r
+ ed.nodeChanged();\r
+ }\r
+ });\r
+\r
+ // Register plugin\r
+ tinymce.PluginManager.add('save', tinymce.plugins.Save);\r
+})();
\ No newline at end of file