--- /dev/null
+/**\r
+ * $Id: editor_plugin_src.js 251 2007-04-10 20:16:15Z spocke $\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+/* Import plugin specific language pack */\r
+tinyMCE.importPluginLanguagePack('save');\r
+\r
+var TinyMCE_SavePlugin = {\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
+ initInstance : function(inst) {\r
+ inst.addShortcut('ctrl', 's', 'lang_save_desc', 'mceSave');\r
+ },\r
+\r
+ /**\r
+ * Returns the HTML contents of the save control.\r
+ */\r
+ getControlHTML : function(cn) {\r
+ switch (cn) {\r
+ case "save":\r
+ return tinyMCE.getButtonHTML(cn, 'lang_save_desc', '{$pluginurl}/images/save.gif', 'mceSave');\r
+\r
+ case "cancel":\r
+ return tinyMCE.getButtonHTML(cn, 'lang_cancel_desc', '{$pluginurl}/images/cancel.gif', 'mceCancel');\r
+ }\r
+\r
+ return "";\r
+ },\r
+\r
+ /**\r
+ * Executes the save command.\r
+ */\r
+ execCommand : function(editor_id, element, command, user_interface, value) {\r
+ // Handle commands\r
+ switch (command) {\r
+ case "mceSave":\r
+ return this._save(editor_id, element, command, user_interface, value);\r
+\r
+ case "mceCancel":\r
+ return this._cancel(editor_id, element, command, user_interface, value);\r
+ }\r
+\r
+ // Pass to next handler in chain\r
+ return false;\r
+ },\r
+\r
+ _save : function(editor_id, element, command, user_interface, value) {\r
+ var inst, formObj, os, i, elementId;\r
+\r
+ if (tinyMCE.getParam("fullscreen_is_enabled"))\r
+ return true;\r
+\r
+ inst = tinyMCE.selectedInstance;\r
+ formObj = inst.formElement.form;\r
+\r
+ if (tinyMCE.getParam("save_enablewhendirty") && !inst.isDirty())\r
+ return true;\r
+\r
+ if (formObj) {\r
+ tinyMCE.triggerSave();\r
+\r
+ // Use callback instead\r
+ if ((os = tinyMCE.getParam("save_onsavecallback"))) {\r
+ if (eval(os + '(inst);')) {\r
+ inst.startContent = tinyMCE.trim(inst.getBody().innerHTML);\r
+ /*inst.undoLevels = new Array();\r
+ inst.undoIndex = 0;\r
+ inst.typingUndoIndex = -1;\r
+ inst.undoRedo = true;\r
+ inst.undoLevels[inst.undoLevels.length] = inst.startContent;*/\r
+ tinyMCE.triggerNodeChange(false, true);\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ // Disable all UI form elements that TinyMCE created\r
+ for (i=0; i<formObj.elements.length; i++) {\r
+ elementId = formObj.elements[i].name ? formObj.elements[i].name : formObj.elements[i].id;\r
+\r
+ if (elementId.indexOf('mce_editor_') == 0)\r
+ formObj.elements[i].disabled = true;\r
+ }\r
+\r
+ inst.isNotDirty = true;\r
+\r
+ if (formObj.onsubmit == null || formObj.onsubmit() != false)\r
+ inst.formElement.form.submit();\r
+\r
+ tinyMCE.triggerNodeChange(false, true);\r
+ } else\r
+ alert("Error: No form element found.");\r
+\r
+ return true;\r
+ },\r
+\r
+ _cancel : function(editor_id, element, command, user_interface, value) {\r
+ var inst = tinyMCE.getInstanceById(editor_id), os, h = tinyMCE.trim(inst.startContent);\r
+\r
+ // Use callback instead\r
+ if ((os = tinyMCE.getParam("save_oncancelcallback"))) {\r
+ if (eval(os + '(inst);'))\r
+ return true;\r
+ }\r
+\r
+ inst.setHTML(h);\r
+\r
+ inst.undoRedo.undoLevels = [];\r
+ inst.undoRedo.add({ content : h });\r
+ inst.undoRedo.undoIndex = 0;\r
+ inst.undoRedo.typingUndoIndex = -1;\r
+\r
+ tinyMCE.triggerNodeChange(false, true);\r
+\r
+ return true;\r
+ },\r
+\r
+ handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {\r
+ var inst;\r
+\r
+ if (tinyMCE.getParam("fullscreen_is_enabled")) {\r
+ tinyMCE.switchClass(editor_id + '_save', 'mceButtonDisabled');\r
+ return true;\r
+ }\r
+\r
+ if (tinyMCE.getParam("save_enablewhendirty")) {\r
+ inst = tinyMCE.getInstanceById(editor_id);\r
+\r
+ if (inst.isDirty()) {\r
+ tinyMCE.switchClass(editor_id + '_save', 'mceButtonNormal');\r
+ return true;\r
+ }\r
+\r
+ tinyMCE.switchClass(editor_id + '_save', 'mceButtonDisabled');\r
+ }\r
+\r
+ return true;\r
+ }\r
+};\r
+\r
+tinyMCE.addPlugin("save", TinyMCE_SavePlugin);\r