mailiverse/web/WebContent/ckeditor/_source/plugins/templates/plugin.js

101 lines
2.4 KiB
JavaScript

/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
(function()
{
CKEDITOR.plugins.add( 'templates',
{
requires : [ 'dialog' ],
init : function( editor )
{
CKEDITOR.dialog.add( 'templates', CKEDITOR.getUrl( this.path + 'dialogs/templates.js' ) );
editor.addCommand( 'templates', new CKEDITOR.dialogCommand( 'templates' ) );
editor.ui.addButton( 'Templates',
{
label : editor.lang.templates.button,
command : 'templates'
});
}
});
var templates = {},
loadedTemplatesFiles = {};
CKEDITOR.addTemplates = function( name, definition )
{
templates[ name ] = definition;
};
CKEDITOR.getTemplates = function( name )
{
return templates[ name ];
};
CKEDITOR.loadTemplates = function( templateFiles, callback )
{
// Holds the templates files to be loaded.
var toLoad = [];
// Look for pending template files to get loaded.
for ( var i = 0, count = templateFiles.length ; i < count ; i++ )
{
if ( !loadedTemplatesFiles[ templateFiles[ i ] ] )
{
toLoad.push( templateFiles[ i ] );
loadedTemplatesFiles[ templateFiles[ i ] ] = 1;
}
}
if ( toLoad.length )
CKEDITOR.scriptLoader.load( toLoad, callback );
else
setTimeout( callback, 0 );
};
})();
/**
* The templates definition set to use. It accepts a list of names separated by
* comma. It must match definitions loaded with the templates_files setting.
* @type String
* @default 'default'
* @name CKEDITOR.config.templates
* @example
* config.templates = 'my_templates';
*/
/**
* The list of templates definition files to load.
* @type (String) Array
* @default [ 'plugins/templates/templates/default.js' ]
* @example
* config.templates_files =
* [
* '/editor_templates/site_default.js',
* 'http://www.example.com/user_templates.js
* ];
*
*/
CKEDITOR.config.templates_files =
[
CKEDITOR.getUrl(
'_source/' + // @Packager.RemoveLine
'plugins/templates/templates/default.js' )
];
/**
* Whether the "Replace actual contents" checkbox is checked by default in the
* Templates dialog.
* @type Boolean
* @default true
* @example
* config.templates_replaceContent = false;
*/
CKEDITOR.config.templates_replaceContent = true;