2 * $RCSfile: editor_plugin_src.js,v $
\r
4 * $Date: 2006/02/13 15:09:28 $
\r
7 * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.
\r
10 /* Import plugin specific language pack */
\r
11 tinyMCE.importPluginLanguagePack('save', 'en,tr,sv,zh_cn,cs,fa,fr_ca,fr,de,pl,pt_br,nl,he,nb,hu,ru,ru_KOI8-R,ru_UTF-8,nn,fi,da,es,cy,is,zh_tw,zh_tw_utf8,sk');
\r
13 var TinyMCE_SavePlugin = {
\r
14 getInfo : function() {
\r
17 author : 'Moxiecode Systems',
\r
18 authorurl : 'http://tinymce.moxiecode.com',
\r
19 infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_save.html',
\r
20 version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
\r
24 initInstance : function(inst) {
\r
25 inst.addShortcut('ctrl', 's', 'lang_save_desc', 'mceSave');
\r
29 * Returns the HTML contents of the save control.
\r
31 getControlHTML : function(cn) {
\r
34 return tinyMCE.getButtonHTML(cn, 'lang_save_desc', '{$pluginurl}/images/save.gif', 'mceSave');
\r
41 * Executes the save command.
\r
43 execCommand : function(editor_id, element, command, user_interface, value) {
\r
47 if (tinyMCE.getParam("fullscreen_is_enabled"))
\r
50 var inst = tinyMCE.selectedInstance;
\r
51 var formObj = inst.formElement.form;
\r
53 if (tinyMCE.getParam("save_enablewhendirty") && !inst.isDirty())
\r
57 tinyMCE.triggerSave();
\r
59 // Use callback instead
\r
61 if ((os = tinyMCE.getParam("save_onsavecallback"))) {
\r
62 if (eval(os + '(inst);')) {
\r
63 inst.startContent = tinyMCE.trim(inst.getBody().innerHTML);
\r
64 /*inst.undoLevels = new Array();
\r
66 inst.typingUndoIndex = -1;
\r
67 inst.undoRedo = true;
\r
68 inst.undoLevels[inst.undoLevels.length] = inst.startContent;*/
\r
69 tinyMCE.triggerNodeChange(false, true);
\r
75 // Disable all UI form elements that TinyMCE created
\r
76 for (var i=0; i<formObj.elements.length; i++) {
\r
77 var elementId = formObj.elements[i].name ? formObj.elements[i].name : formObj.elements[i].id;
\r
79 if (elementId.indexOf('mce_editor_') == 0)
\r
80 formObj.elements[i].disabled = true;
\r
83 tinyMCE.isNotDirty = true;
\r
85 if (formObj.onsubmit == null || formObj.onsubmit() != false)
\r
86 inst.formElement.form.submit();
\r
88 alert("Error: No form element found.");
\r
92 // Pass to next handler in chain
\r
96 handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
\r
97 if (tinyMCE.getParam("fullscreen_is_enabled")) {
\r
98 tinyMCE.switchClass(editor_id + '_save', 'mceButtonDisabled');
\r
102 if (tinyMCE.getParam("save_enablewhendirty")) {
\r
103 var inst = tinyMCE.getInstanceById(editor_id);
\r
105 if (inst.isDirty()) {
\r
106 tinyMCE.switchClass(editor_id + '_save', 'mceButtonNormal');
\r
110 tinyMCE.switchClass(editor_id + '_save', 'mceButtonDisabled');
\r
117 tinyMCE.addPlugin("save", TinyMCE_SavePlugin);
\r