2 * $Id: editor_plugin_src.js 609 2008-02-18 16:19:27Z spocke $
5 * @copyright Copyright © 2004-2008, Moxiecode Systems AB, All rights reserved.
9 tinymce
.create('tinymce.plugins.Save', {
10 init : function(ed
, url
) {
16 ed
.addCommand('mceSave', function() {
18 if (ed
.id
== 'mce_fullscreen') {
19 id
= ed
.settings
.fullscreen_editor_id
;
21 tinymce
.util
.XHR
.send({
22 url
: ed
.settings
.document_url
+ '/tinymce-save',
23 content_type
: "application/x-www-form-urlencoded",
25 data
: "text=" + encodeURIComponent(ed
.getContent()) + "&fieldname=" + id
,
26 success : function( data
, req
, o
) {
28 tinymce
.DOM
.addClass(tinymce
.DOM
.get(ed
.id
+ '_tbl'), 'mceEditorSave');
29 window
.setTimeout(function() {
30 tinymce
.DOM
.removeClass(tinymce
.DOM
.get(ed
.id
+ '_tbl'), 'mceEditorSave');
31 tinymce
.DOM
.removeClass(tinymce
.DOM
.get(ed
.id
+ '_tbl'), 'mceEditorFocus');
32 tinymce
.DOM
.addClass(tinymce
.DOM
.get(ed
.id
+ '_tbl'), 'mceEditorFocus');
35 tinymce
.DOM
.add(document
.body
, 'div', {id
: 'mceSaveMessage', 'class' : 'mceSaveMessage'}, 'Document saved.');
36 window
.setTimeout(function () {
37 tinymce
.DOM
.remove('mceSaveMessage');
43 ed
.addCommand('mceCancel', t
._cancel
);
46 ed
.addButton('save', {title
: 'save.save_desc', cmd
: 'mceSave'});
47 ed
.addButton('cancel', {title
: 'save.cancel_desc', cmd
: 'mceCancel'});
49 ed
.onNodeChange
.add(t
._nodeChange
, t
);
50 ed
.addShortcut('ctrl+s', ed
.getLang('save.save_desc'), 'mceSave');
53 getInfo : function() {
56 author
: 'Moxiecode Systems AB',
57 authorurl
: 'http://tinymce.moxiecode.com',
58 infourl
: 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',
59 version
: tinymce
.majorVersion
+ "." + tinymce
.minorVersion
64 _nodeChange : function(ed
, cm
, n
) {
67 if (ed
.getParam('save_enablewhendirty')) {
68 cm
.setDisabled('save', !ed
.isDirty());
69 cm
.setDisabled('cancel', !ed
.isDirty());
76 var ed
= this.editor
, formObj
, os
, i
, elementId
;
78 formObj
= tinymce
.DOM
.get(ed
.id
).form
|| tinymce
.DOM
.getParent(ed
.id
, 'form');
80 if (ed
.getParam("save_enablewhendirty") && !ed
.isDirty())
83 tinyMCE
.triggerSave();
85 // Use callback instead
86 if (os
= ed
.getParam("save_onsavecallback")) {
87 if (ed
.execCallback('save_onsavecallback', ed
)) {
88 ed
.startContent
= tinymce
.trim(ed
.getContent({format
: 'raw'}));
98 if (formObj
.onsubmit
== null || formObj
.onsubmit() != false)
103 ed
.windowManager
.alert("Error: No form element found.");
108 _cancel : function() {
109 var ed
= this.editor
, os
, h
= tinymce
.trim(ed
.startContent
);
111 // Use callback instead
112 if (os
= ed
.getParam("save_oncancelcallback")) {
113 ed
.execCallback('save_oncancelcallback', ed
);
118 ed
.undoManager
.clear();
124 tinymce
.PluginManager
.add('save', tinymce
.plugins
.Save
);