4 * Copyright 2009, Moxiecode Systems AB
5 * Released under LGPL License.
7 * License: http://tinymce.moxiecode.com/license
8 * Contributing: http://tinymce.moxiecode.com/contributing
12 tinymce
.create('tinymce.plugins.Save', {
13 init : function(ed
, url
) {
19 ed
.addCommand('mceSave', t
._save
, t
);
20 ed
.addCommand('mceCancel', t
._cancel
, t
);
23 ed
.addButton('save', {title
: 'save.save_desc', cmd
: 'mceSave'});
24 ed
.addButton('cancel', {title
: 'save.cancel_desc', cmd
: 'mceCancel'});
26 ed
.onNodeChange
.add(t
._nodeChange
, t
);
27 ed
.addShortcut('ctrl+s', ed
.getLang('save.save_desc'), 'mceSave');
30 getInfo : function() {
33 author
: 'Moxiecode Systems AB',
34 authorurl
: 'http://tinymce.moxiecode.com',
35 infourl
: 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',
36 version
: tinymce
.majorVersion
+ "." + tinymce
.minorVersion
42 _nodeChange : function(ed
, cm
, n
) {
45 if (ed
.getParam('save_enablewhendirty')) {
46 cm
.setDisabled('save', !ed
.isDirty());
47 cm
.setDisabled('cancel', !ed
.isDirty());
54 var ed
= this.editor
, formObj
, os
, i
, elementId
;
56 formObj
= tinymce
.DOM
.get(ed
.id
).form
|| tinymce
.DOM
.getParent(ed
.id
, 'form');
58 if (ed
.getParam("save_enablewhendirty") && !ed
.isDirty())
61 tinyMCE
.triggerSave();
63 // Use callback instead
64 if (os
= ed
.getParam("save_onsavecallback")) {
65 if (ed
.execCallback('save_onsavecallback', ed
)) {
66 ed
.startContent
= tinymce
.trim(ed
.getContent({format
: 'raw'}));
76 if (formObj
.onsubmit
== null || formObj
.onsubmit() != false)
81 ed
.windowManager
.alert("Error: No form element found.");
84 _cancel : function() {
85 var ed
= this.editor
, os
, h
= tinymce
.trim(ed
.startContent
);
87 // Use callback instead
88 if (os
= ed
.getParam("save_oncancelcallback")) {
89 ed
.execCallback('save_oncancelcallback', ed
);
94 ed
.undoManager
.clear();
100 tinymce
.PluginManager
.add('save', tinymce
.plugins
.Save
);