Вход Регистрация
Файл: mailist/wys/jscripts/tiny_mce/plugins/save/editor_plugin_src.js
Строк: 241
<?php
/**
 * $Id: editor_plugin_src.js 251 2007-04-10 20:16:15Z spocke $
 *
 * @author Moxiecode
 * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
 */

/* Import plugin specific language pack */
tinyMCE.importPluginLanguagePack('save');

var 
TinyMCE_SavePlugin = {
    
getInfo : function() {
        return {
            
longname : 'Save',
            
author : 'Moxiecode Systems AB',
            
authorurl : 'http://tinymce.moxiecode.com',
            
infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',
            
version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
        
};
    },

    
initInstance : function(inst) {
        
inst.addShortcut('ctrl', 's', 'lang_save_desc', 'mceSave');
    },

    
/**
     * Returns the HTML contents of the save control.
     */
    
getControlHTML : function(cn) {
        switch (
cn) {
            case 
"save":
                return 
tinyMCE.getButtonHTML(cn, 'lang_save_desc', '{$pluginurl}/images/save.gif', 'mceSave');

            case 
"cancel":
                return 
tinyMCE.getButtonHTML(cn, 'lang_cancel_desc', '{$pluginurl}/images/cancel.gif', 'mceCancel');
        }

        return 
"";
    },

    
/**
     * Executes the save command.
     */
    
execCommand : function(editor_id, element, command, user_interface, value) {
        
// Handle commands
        
switch (command) {
            case 
"mceSave":
                return 
this._save(editor_id, element, command, user_interface, value);

            case 
"mceCancel":
                return 
this._cancel(editor_id, element, command, user_interface, value);
        }

        
// Pass to next handler in chain
        
return false;
    },

    
_save : function(editor_id, element, command, user_interface, value) {
        var 
inst, formObj, os, i, elementId;

        if (
tinyMCE.getParam("fullscreen_is_enabled"))
            return 
true;

        
inst = tinyMCE.selectedInstance;
        
formObj = inst.formElement.form;

        if (
tinyMCE.getParam("save_enablewhendirty") && !inst.isDirty())
            return 
true;

        if (
formObj) {
            
tinyMCE.triggerSave();

            
// Use callback instead
            
if ((os = tinyMCE.getParam("save_onsavecallback"))) {
                if (eval(
os + '(inst);')) {
                    
inst.startContent = tinyMCE.trim(inst.getBody().innerHTML);
                    
/*inst.undoLevels = new Array();
                    inst.undoIndex = 0;
                    inst.typingUndoIndex = -1;
                    inst.undoRedo = true;
                    inst.undoLevels[inst.undoLevels.length] = inst.startContent;*/
                    
tinyMCE.triggerNodeChange(false, true);
                }

                return 
true;
            }

            
// Disable all UI form elements that TinyMCE created
            
for (i=0; i<formObj.elements.length; i++) {
                
elementId = formObj.elements[i].name ? formObj.elements[i].name : formObj.elements[i].id;

                if (
elementId.indexOf('mce_editor_') == 0)
                    
formObj.elements[i].disabled = true;
            }

            
inst.isNotDirty = true;

            if (
formObj.onsubmit == null || formObj.onsubmit() != false)
                
inst.formElement.form.submit();

            
tinyMCE.triggerNodeChange(false, true);
        } else
            
alert("Error: No form element found.");

        return 
true;
    },

    
_cancel : function(editor_id, element, command, user_interface, value) {
        var 
inst = tinyMCE.getInstanceById(editor_id), os, h = tinyMCE.trim(inst.startContent);

        
// Use callback instead
        
if ((os = tinyMCE.getParam("save_oncancelcallback"))) {
            if (eval(
os + '(inst);'))
                return 
true;
        }

        
inst.setHTML(h);

        
inst.undoRedo.undoLevels = [];
        
inst.undoRedo.add({ content : h });
        
inst.undoRedo.undoIndex = 0;
        
inst.undoRedo.typingUndoIndex = -1;

        
tinyMCE.triggerNodeChange(false, true);

        return 
true;
    },

    
handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
        var 
inst;

        if (
tinyMCE.getParam("fullscreen_is_enabled")) {
            
tinyMCE.switchClass(editor_id + '_save', 'mceButtonDisabled');
            return 
true;
        }

        if (
tinyMCE.getParam("save_enablewhendirty")) {
            
inst = tinyMCE.getInstanceById(editor_id);

            if (
inst.isDirty()) {
                
tinyMCE.switchClass(editor_id + '_save', 'mceButtonNormal');
                return 
true;
            }

            
tinyMCE.switchClass(editor_id + '_save', 'mceButtonDisabled');
        }

        return 
true;
    }
};

tinyMCE.addPlugin("save", TinyMCE_SavePlugin);
?>
Онлайн: 1
Реклама