bug 2509: fix file permissions
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / js / tinymce / jscripts / tiny_mce / plugins / save / editor_plugin_src.js
1 /**\r
2  * $Id: editor_plugin_src.js 251 2007-04-10 20:16:15Z spocke $\r
3  *\r
4  * @author Moxiecode\r
5  * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.\r
6  */\r
7 \r
8 /* Import plugin specific language pack */\r
9 tinyMCE.importPluginLanguagePack('save');\r
10 \r
11 var TinyMCE_SavePlugin = {\r
12         getInfo : function() {\r
13                 return {\r
14                         longname : 'Save',\r
15                         author : 'Moxiecode Systems AB',\r
16                         authorurl : 'http://tinymce.moxiecode.com',\r
17                         infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',\r
18                         version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion\r
19                 };\r
20         },\r
21 \r
22         initInstance : function(inst) {\r
23                 inst.addShortcut('ctrl', 's', 'lang_save_desc', 'mceSave');\r
24         },\r
25 \r
26         /**\r
27          * Returns the HTML contents of the save control.\r
28          */\r
29         getControlHTML : function(cn) {\r
30                 switch (cn) {\r
31                         case "save":\r
32                                 return tinyMCE.getButtonHTML(cn, 'lang_save_desc', '{$pluginurl}/images/save.gif', 'mceSave');\r
33 \r
34                         case "cancel":\r
35                                 return tinyMCE.getButtonHTML(cn, 'lang_cancel_desc', '{$pluginurl}/images/cancel.gif', 'mceCancel');\r
36                 }\r
37 \r
38                 return "";\r
39         },\r
40 \r
41         /**\r
42          * Executes the save command.\r
43          */\r
44         execCommand : function(editor_id, element, command, user_interface, value) {\r
45                 // Handle commands\r
46                 switch (command) {\r
47                         case "mceSave":\r
48                                 return this._save(editor_id, element, command, user_interface, value);\r
49 \r
50                         case "mceCancel":\r
51                                 return this._cancel(editor_id, element, command, user_interface, value);\r
52                 }\r
53 \r
54                 // Pass to next handler in chain\r
55                 return false;\r
56         },\r
57 \r
58         _save : function(editor_id, element, command, user_interface, value) {\r
59                 var inst, formObj, os, i, elementId;\r
60 \r
61                 if (tinyMCE.getParam("fullscreen_is_enabled"))\r
62                         return true;\r
63 \r
64                 inst = tinyMCE.selectedInstance;\r
65                 formObj = inst.formElement.form;\r
66 \r
67                 if (tinyMCE.getParam("save_enablewhendirty") && !inst.isDirty())\r
68                         return true;\r
69 \r
70                 if (formObj) {\r
71                         tinyMCE.triggerSave();\r
72 \r
73                         // Use callback instead\r
74                         if ((os = tinyMCE.getParam("save_onsavecallback"))) {\r
75                                 if (eval(os + '(inst);')) {\r
76                                         inst.startContent = tinyMCE.trim(inst.getBody().innerHTML);\r
77                                         /*inst.undoLevels = new Array();\r
78                                         inst.undoIndex = 0;\r
79                                         inst.typingUndoIndex = -1;\r
80                                         inst.undoRedo = true;\r
81                                         inst.undoLevels[inst.undoLevels.length] = inst.startContent;*/\r
82                                         tinyMCE.triggerNodeChange(false, true);\r
83                                 }\r
84 \r
85                                 return true;\r
86                         }\r
87 \r
88                         // Disable all UI form elements that TinyMCE created\r
89                         for (i=0; i<formObj.elements.length; i++) {\r
90                                 elementId = formObj.elements[i].name ? formObj.elements[i].name : formObj.elements[i].id;\r
91 \r
92                                 if (elementId.indexOf('mce_editor_') == 0)\r
93                                         formObj.elements[i].disabled = true;\r
94                         }\r
95 \r
96                         inst.isNotDirty = true;\r
97 \r
98                         if (formObj.onsubmit == null || formObj.onsubmit() != false)\r
99                                 inst.formElement.form.submit();\r
100 \r
101                         tinyMCE.triggerNodeChange(false, true);\r
102                 } else\r
103                         alert("Error: No form element found.");\r
104 \r
105                 return true;\r
106         },\r
107 \r
108         _cancel : function(editor_id, element, command, user_interface, value) {\r
109                 var inst = tinyMCE.getInstanceById(editor_id), os, h = tinyMCE.trim(inst.startContent);\r
110 \r
111                 // Use callback instead\r
112                 if ((os = tinyMCE.getParam("save_oncancelcallback"))) {\r
113                         if (eval(os + '(inst);'))\r
114                                 return true;\r
115                 }\r
116 \r
117                 inst.setHTML(h);\r
118 \r
119                 inst.undoRedo.undoLevels = [];\r
120                 inst.undoRedo.add({ content : h });\r
121                 inst.undoRedo.undoIndex = 0;\r
122                 inst.undoRedo.typingUndoIndex = -1;\r
123 \r
124                 tinyMCE.triggerNodeChange(false, true);\r
125 \r
126                 return true;\r
127         },\r
128 \r
129         handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {\r
130                 var inst;\r
131 \r
132                 if (tinyMCE.getParam("fullscreen_is_enabled")) {\r
133                         tinyMCE.switchClass(editor_id + '_save', 'mceButtonDisabled');\r
134                         return true;\r
135                 }\r
136 \r
137                 if (tinyMCE.getParam("save_enablewhendirty")) {\r
138                         inst = tinyMCE.getInstanceById(editor_id);\r
139 \r
140                         if (inst.isDirty()) {\r
141                                 tinyMCE.switchClass(editor_id + '_save', 'mceButtonNormal');\r
142                                 return true;\r
143                         }\r
144 \r
145                         tinyMCE.switchClass(editor_id + '_save', 'mceButtonDisabled');\r
146                 }\r
147 \r
148                 return true;\r
149         }\r
150 };\r
151 \r
152 tinyMCE.addPlugin("save", TinyMCE_SavePlugin);\r