summaryrefslogtreecommitdiff
path: root/_source/plugins/templates
diff options
context:
space:
mode:
authorlsces <lester@lsces.co.uk>2012-06-10 19:03:48 +0100
committerlsces <lester@lsces.co.uk>2012-06-10 19:03:48 +0100
commitf3ce03a71d3dd1c7dcbe474197fb1588949735db (patch)
tree7c31cd62ef0e2790966f96498e553f22fa4e08d3 /_source/plugins/templates
parent23b8cf2a890c7de389616702fd23c9c465311a59 (diff)
downloadckeditor-f3ce03a71d3dd1c7dcbe474197fb1588949735db.tar.gz
ckeditor-f3ce03a71d3dd1c7dcbe474197fb1588949735db.tar.bz2
ckeditor-f3ce03a71d3dd1c7dcbe474197fb1588949735db.zip
Update to CKEditor version 3.6.3
Diffstat (limited to '_source/plugins/templates')
-rw-r--r--_source/plugins/templates/dialogs/templates.js465
-rw-r--r--_source/plugins/templates/plugin.js8
-rw-r--r--_source/plugins/templates/templates/default.js188
3 files changed, 332 insertions, 329 deletions
diff --git a/_source/plugins/templates/dialogs/templates.js b/_source/plugins/templates/dialogs/templates.js
index 6f26a44..1fed05c 100644
--- a/_source/plugins/templates/dialogs/templates.js
+++ b/_source/plugins/templates/dialogs/templates.js
@@ -1,231 +1,234 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-(function()
-{
- var doc = CKEDITOR.document;
-
- CKEDITOR.dialog.add( 'templates', function( editor )
- {
- // Constructs the HTML view of the specified templates data.
- function renderTemplatesList( container, templatesDefinitions )
- {
- // clear loading wait text.
- container.setHtml( '' );
-
- for ( var i = 0 ; i < templatesDefinitions.length ; i++ )
- {
- var definition = CKEDITOR.getTemplates( templatesDefinitions[ i ] ),
- imagesPath = definition.imagesPath,
- templates = definition.templates,
- count = templates.length;
-
- for ( var j = 0 ; j < count ; j++ )
- {
- var template = templates[ j ],
- item = createTemplateItem( template, imagesPath );
- item.setAttribute( 'aria-posinset', j + 1 );
- item.setAttribute( 'aria-setsize', count );
- container.append( item );
- }
- }
- }
-
- function createTemplateItem( template, imagesPath )
- {
- var item = CKEDITOR.dom.element.createFromHtml(
- '<a href="javascript:void(0)" tabIndex="-1" role="option" >' +
- '<div class="cke_tpl_item"></div>' +
- '</a>' );
-
- // Build the inner HTML of our new item DIV.
- var html = '<table style="width:350px;" class="cke_tpl_preview" role="presentation"><tr>';
-
- if ( template.image && imagesPath )
- html += '<td class="cke_tpl_preview_img"><img src="' + CKEDITOR.getUrl( imagesPath + template.image ) + '"' + ( CKEDITOR.env.ie6Compat? ' onload="this.width=this.width"' : '' ) + ' alt="" title=""></td>';
-
- html += '<td style="white-space:normal;"><span class="cke_tpl_title">' + template.title + '</span><br/>';
-
- if ( template.description )
- html += '<span>' + template.description + '</span>';
-
- html += '</td></tr></table>';
-
- item.getFirst().setHtml( html );
-
- item.on( 'click', function() { insertTemplate( template.html ); } );
-
- return item;
- }
-
- /**
- * Insert the specified template content into editor.
- * @param {Number} index
- */
- function insertTemplate( html )
- {
- var dialog = CKEDITOR.dialog.getCurrent(),
- isInsert = dialog.getValueOf( 'selectTpl', 'chkInsertOpt' );
-
- if ( isInsert )
- {
- // Everything should happen after the document is loaded (#4073).
- editor.on( 'contentDom', function( evt )
- {
- evt.removeListener();
- dialog.hide();
-
- // Place the cursor at the first editable place.
- var range = new CKEDITOR.dom.range( editor.document );
- range.moveToElementEditStart( editor.document.getBody() );
- range.select( true );
- setTimeout( function ()
- {
- editor.fire( 'saveSnapshot' );
- }, 0 );
- } );
-
- editor.fire( 'saveSnapshot' );
- editor.setData( html );
- }
- else
- {
- editor.insertHtml( html );
- dialog.hide();
- }
- }
-
- function keyNavigation( evt )
- {
- var target = evt.data.getTarget(),
- onList = listContainer.equals( target );
-
- // Keyboard navigation for template list.
- if ( onList || listContainer.contains( target ) )
- {
- var keystroke = evt.data.getKeystroke(),
- items = listContainer.getElementsByTag( 'a' ),
- focusItem;
-
- if ( items )
- {
- // Focus not yet onto list items?
- if ( onList )
- focusItem = items.getItem( 0 );
- else
- {
- switch ( keystroke )
- {
- case 40 : // ARROW-DOWN
- focusItem = target.getNext();
- break;
-
- case 38 : // ARROW-UP
- focusItem = target.getPrevious();
- break;
-
- case 13 : // ENTER
- case 32 : // SPACE
- target.fire( 'click' );
- }
- }
-
- if ( focusItem )
- {
- focusItem.focus();
- evt.data.preventDefault();
- }
- }
- }
- }
-
- // Load skin at first.
- CKEDITOR.skins.load( editor, 'templates' );
-
- var listContainer;
-
- var templateListLabelId = 'cke_tpl_list_label_' + CKEDITOR.tools.getNextNumber();
- return {
- title :editor.lang.templates.title,
-
- minWidth : CKEDITOR.env.ie ? 440 : 400,
- minHeight : 340,
-
- contents :
- [
- {
- id :'selectTpl',
- label : editor.lang.templates.title,
- elements :
- [
- {
- type : 'vbox',
- padding : 5,
- children :
- [
- {
- type : 'html',
- html :
- '<span>' +
- editor.lang.templates.selectPromptMsg +
- '</span>'
- },
- {
- id : "templatesList",
- type : 'html',
- focus: true,
- html :
- '<div class="cke_tpl_list" tabIndex="-1" role="listbox" aria-labelledby="' + templateListLabelId+ '">' +
- '<div class="cke_tpl_loading"><span></span></div>' +
- '</div>' +
- '<span class="cke_voice_label" id="' + templateListLabelId + '">' + editor.lang.templates.options+ '</span>'
- },
- {
- id : 'chkInsertOpt',
- type : 'checkbox',
- label : editor.lang.templates.insertOption,
- 'default' : editor.config.templates_replaceContent
- }
- ]
- }
- ]
- }
- ],
-
- buttons : [ CKEDITOR.dialog.cancelButton ],
-
- onShow : function()
- {
- var templatesListField = this.getContentElement( 'selectTpl' , 'templatesList' );
- listContainer = templatesListField.getElement();
-
- CKEDITOR.loadTemplates( editor.config.templates_files, function()
- {
- var templates = editor.config.templates.split( ',' );
-
- if ( templates.length )
- {
- renderTemplatesList( listContainer, templates );
- templatesListField.focus();
- }
- else
- {
- listContainer.setHtml(
- '<div class="cke_tpl_empty">' +
- '<span>' + editor.lang.templates.emptyListMsg + '</span>' +
- '</div>' );
- }
- });
-
- this._.element.on( 'keydown', keyNavigation );
- },
-
- onHide : function ()
- {
- this._.element.removeListener( 'keydown', keyNavigation );
- }
- };
- });
-})();
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+(function()
+{
+ var doc = CKEDITOR.document;
+
+ CKEDITOR.dialog.add( 'templates', function( editor )
+ {
+ // Constructs the HTML view of the specified templates data.
+ function renderTemplatesList( container, templatesDefinitions )
+ {
+ // clear loading wait text.
+ container.setHtml( '' );
+
+ for ( var i = 0, totalDefs = templatesDefinitions.length ; i < totalDefs ; i++ )
+ {
+ var definition = CKEDITOR.getTemplates( templatesDefinitions[ i ] ),
+ imagesPath = definition.imagesPath,
+ templates = definition.templates,
+ count = templates.length;
+
+ for ( var j = 0 ; j < count ; j++ )
+ {
+ var template = templates[ j ],
+ item = createTemplateItem( template, imagesPath );
+ item.setAttribute( 'aria-posinset', j + 1 );
+ item.setAttribute( 'aria-setsize', count );
+ container.append( item );
+ }
+ }
+ }
+
+ function createTemplateItem( template, imagesPath )
+ {
+ var item = CKEDITOR.dom.element.createFromHtml(
+ '<a href="javascript:void(0)" tabIndex="-1" role="option" >' +
+ '<div class="cke_tpl_item"></div>' +
+ '</a>' );
+
+ // Build the inner HTML of our new item DIV.
+ var html = '<table style="width:350px;" class="cke_tpl_preview" role="presentation"><tr>';
+
+ if ( template.image && imagesPath )
+ html += '<td class="cke_tpl_preview_img"><img src="' + CKEDITOR.getUrl( imagesPath + template.image ) + '"' + ( CKEDITOR.env.ie6Compat ? ' onload="this.width=this.width"' : '' ) + ' alt="" title=""></td>';
+
+ html += '<td style="white-space:normal;"><span class="cke_tpl_title">' + template.title + '</span><br/>';
+
+ if ( template.description )
+ html += '<span>' + template.description + '</span>';
+
+ html += '</td></tr></table>';
+
+ item.getFirst().setHtml( html );
+
+ item.on( 'click', function() { insertTemplate( template.html ); } );
+
+ return item;
+ }
+
+ /**
+ * Insert the specified template content into editor.
+ * @param {Number} index
+ */
+ function insertTemplate( html )
+ {
+ var dialog = CKEDITOR.dialog.getCurrent(),
+ isInsert = dialog.getValueOf( 'selectTpl', 'chkInsertOpt' );
+
+ if ( isInsert )
+ {
+ // Everything should happen after the document is loaded (#4073).
+ editor.on( 'contentDom', function( evt )
+ {
+ evt.removeListener();
+ dialog.hide();
+
+ // Place the cursor at the first editable place.
+ var range = new CKEDITOR.dom.range( editor.document );
+ range.moveToElementEditStart( editor.document.getBody() );
+ range.select( 1 );
+ setTimeout( function()
+ {
+ editor.fire( 'saveSnapshot' );
+ }, 0 );
+ });
+
+ editor.fire( 'saveSnapshot' );
+ editor.setData( html );
+ }
+ else
+ {
+ editor.insertHtml( html );
+ dialog.hide();
+ }
+ }
+
+ function keyNavigation( evt )
+ {
+ var target = evt.data.getTarget(),
+ onList = listContainer.equals( target );
+
+ // Keyboard navigation for template list.
+ if ( onList || listContainer.contains( target ) )
+ {
+ var keystroke = evt.data.getKeystroke(),
+ items = listContainer.getElementsByTag( 'a' ),
+ focusItem;
+
+ if ( items )
+ {
+ // Focus not yet onto list items?
+ if ( onList )
+ focusItem = items.getItem( 0 );
+ else
+ {
+ switch ( keystroke )
+ {
+ case 40 : // ARROW-DOWN
+ focusItem = target.getNext();
+ break;
+
+ case 38 : // ARROW-UP
+ focusItem = target.getPrevious();
+ break;
+
+ case 13 : // ENTER
+ case 32 : // SPACE
+ target.fire( 'click' );
+ }
+ }
+
+ if ( focusItem )
+ {
+ focusItem.focus();
+ evt.data.preventDefault();
+ }
+ }
+ }
+ }
+
+ // Load skin at first.
+ CKEDITOR.skins.load( editor, 'templates' );
+
+ var listContainer;
+
+ var templateListLabelId = 'cke_tpl_list_label_' + CKEDITOR.tools.getNextNumber(),
+ lang = editor.lang.templates,
+ config = editor.config;
+ return {
+ title :editor.lang.templates.title,
+
+ minWidth : CKEDITOR.env.ie ? 440 : 400,
+ minHeight : 340,
+
+ contents :
+ [
+ {
+ id :'selectTpl',
+ label : lang.title,
+ elements :
+ [
+ {
+ type : 'vbox',
+ padding : 5,
+ children :
+ [
+ {
+ id : 'selectTplText',
+ type : 'html',
+ html :
+ '<span>' +
+ lang.selectPromptMsg +
+ '</span>'
+ },
+ {
+ id : 'templatesList',
+ type : 'html',
+ focus: true,
+ html :
+ '<div class="cke_tpl_list" tabIndex="-1" role="listbox" aria-labelledby="' + templateListLabelId+ '">' +
+ '<div class="cke_tpl_loading"><span></span></div>' +
+ '</div>' +
+ '<span class="cke_voice_label" id="' + templateListLabelId + '">' + lang.options+ '</span>'
+ },
+ {
+ id : 'chkInsertOpt',
+ type : 'checkbox',
+ label : lang.insertOption,
+ 'default' : config.templates_replaceContent
+ }
+ ]
+ }
+ ]
+ }
+ ],
+
+ buttons : [ CKEDITOR.dialog.cancelButton ],
+
+ onShow : function()
+ {
+ var templatesListField = this.getContentElement( 'selectTpl' , 'templatesList' );
+ listContainer = templatesListField.getElement();
+
+ CKEDITOR.loadTemplates( config.templates_files, function()
+ {
+ var templates = ( config.templates || 'default' ).split( ',' );
+
+ if ( templates.length )
+ {
+ renderTemplatesList( listContainer, templates );
+ templatesListField.focus();
+ }
+ else
+ {
+ listContainer.setHtml(
+ '<div class="cke_tpl_empty">' +
+ '<span>' + lang.emptyListMsg + '</span>' +
+ '</div>' );
+ }
+ });
+
+ this._.element.on( 'keydown', keyNavigation );
+ },
+
+ onHide : function()
+ {
+ this._.element.removeListener( 'keydown', keyNavigation );
+ }
+ };
+ });
+})();
diff --git a/_source/plugins/templates/plugin.js b/_source/plugins/templates/plugin.js
index 64d70e0..6226159 100644
--- a/_source/plugins/templates/plugin.js
+++ b/_source/plugins/templates/plugin.js
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
@@ -42,7 +42,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var toLoad = [];
// Look for pending template files to get loaded.
- for ( var i = 0 ; i < templateFiles.length ; i++ )
+ for ( var i = 0, count = templateFiles.length ; i < count ; i++ )
{
if ( !loadedTemplatesFiles[ templateFiles[ i ] ] )
{
@@ -51,7 +51,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
}
- if ( toLoad.length > 0 )
+ if ( toLoad.length )
CKEDITOR.scriptLoader.load( toLoad, callback );
else
setTimeout( callback, 0 );
@@ -65,10 +65,10 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
* comma. It must match definitions loaded with the templates_files setting.
* @type String
* @default 'default'
+ * @name CKEDITOR.config.templates
* @example
* config.templates = 'my_templates';
*/
-CKEDITOR.config.templates = 'default';
/**
* The list of templates definition files to load.
diff --git a/_source/plugins/templates/templates/default.js b/_source/plugins/templates/templates/default.js
index 69f8ec5..495b948 100644
--- a/_source/plugins/templates/templates/default.js
+++ b/_source/plugins/templates/templates/default.js
@@ -1,94 +1,94 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-// Register a templates definition set named "default".
-CKEDITOR.addTemplates( 'default',
-{
- // The name of sub folder which hold the shortcut preview images of the
- // templates.
- imagesPath : CKEDITOR.getUrl( CKEDITOR.plugins.getPath( 'templates' ) + 'templates/images/' ),
-
- // The templates definitions.
- templates :
- [
- {
- title: 'Image and Title',
- image: 'template1.gif',
- description: 'One main image with a title and text that surround the image.',
- html:
- '<h3>' +
- '<img style="margin-right: 10px" height="100" width="100" align="left"/>' +
- 'Type the title here'+
- '</h3>' +
- '<p>' +
- 'Type the text here' +
- '</p>'
- },
- {
- title: 'Strange Template',
- image: 'template2.gif',
- description: 'A template that defines two colums, each one with a title, and some text.',
- html:
- '<table cellspacing="0" cellpadding="0" style="width:100%" border="0">' +
- '<tr>' +
- '<td style="width:50%">' +
- '<h3>Title 1</h3>' +
- '</td>' +
- '<td></td>' +
- '<td style="width:50%">' +
- '<h3>Title 2</h3>' +
- '</td>' +
- '</tr>' +
- '<tr>' +
- '<td>' +
- 'Text 1' +
- '</td>' +
- '<td></td>' +
- '<td>' +
- 'Text 2' +
- '</td>' +
- '</tr>' +
- '</table>' +
- '<p>' +
- 'More text goes here.' +
- '</p>'
- },
- {
- title: 'Text and Table',
- image: 'template3.gif',
- description: 'A title with some text and a table.',
- html:
- '<div style="width: 80%">' +
- '<h3>' +
- 'Title goes here' +
- '</h3>' +
- '<table style="width:150px;float: right" cellspacing="0" cellpadding="0" border="1">' +
- '<caption style="border:solid 1px black">' +
- '<strong>Table title</strong>' +
- '</caption>' +
- '</tr>' +
- '<tr>' +
- '<td>&nbsp;</td>' +
- '<td>&nbsp;</td>' +
- '<td>&nbsp;</td>' +
- '</tr>' +
- '<tr>' +
- '<td>&nbsp;</td>' +
- '<td>&nbsp;</td>' +
- '<td>&nbsp;</td>' +
- '</tr>' +
- '<tr>' +
- '<td>&nbsp;</td>' +
- '<td>&nbsp;</td>' +
- '<td>&nbsp;</td>' +
- '</tr>' +
- '</table>' +
- '<p>' +
- 'Type the text here' +
- '</p>' +
- '</div>'
- }
- ]
-});
+/*
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+// Register a templates definition set named "default".
+CKEDITOR.addTemplates( 'default',
+{
+ // The name of sub folder which hold the shortcut preview images of the
+ // templates.
+ imagesPath : CKEDITOR.getUrl( CKEDITOR.plugins.getPath( 'templates' ) + 'templates/images/' ),
+
+ // The templates definitions.
+ templates :
+ [
+ {
+ title: 'Image and Title',
+ image: 'template1.gif',
+ description: 'One main image with a title and text that surround the image.',
+ html:
+ '<h3>' +
+ '<img style="margin-right: 10px" height="100" width="100" align="left"/>' +
+ 'Type the title here'+
+ '</h3>' +
+ '<p>' +
+ 'Type the text here' +
+ '</p>'
+ },
+ {
+ title: 'Strange Template',
+ image: 'template2.gif',
+ description: 'A template that defines two colums, each one with a title, and some text.',
+ html:
+ '<table cellspacing="0" cellpadding="0" style="width:100%" border="0">' +
+ '<tr>' +
+ '<td style="width:50%">' +
+ '<h3>Title 1</h3>' +
+ '</td>' +
+ '<td></td>' +
+ '<td style="width:50%">' +
+ '<h3>Title 2</h3>' +
+ '</td>' +
+ '</tr>' +
+ '<tr>' +
+ '<td>' +
+ 'Text 1' +
+ '</td>' +
+ '<td></td>' +
+ '<td>' +
+ 'Text 2' +
+ '</td>' +
+ '</tr>' +
+ '</table>' +
+ '<p>' +
+ 'More text goes here.' +
+ '</p>'
+ },
+ {
+ title: 'Text and Table',
+ image: 'template3.gif',
+ description: 'A title with some text and a table.',
+ html:
+ '<div style="width: 80%">' +
+ '<h3>' +
+ 'Title goes here' +
+ '</h3>' +
+ '<table style="width:150px;float: right" cellspacing="0" cellpadding="0" border="1">' +
+ '<caption style="border:solid 1px black">' +
+ '<strong>Table title</strong>' +
+ '</caption>' +
+ '</tr>' +
+ '<tr>' +
+ '<td>&nbsp;</td>' +
+ '<td>&nbsp;</td>' +
+ '<td>&nbsp;</td>' +
+ '</tr>' +
+ '<tr>' +
+ '<td>&nbsp;</td>' +
+ '<td>&nbsp;</td>' +
+ '<td>&nbsp;</td>' +
+ '</tr>' +
+ '<tr>' +
+ '<td>&nbsp;</td>' +
+ '<td>&nbsp;</td>' +
+ '<td>&nbsp;</td>' +
+ '</tr>' +
+ '</table>' +
+ '<p>' +
+ 'Type the text here' +
+ '</p>' +
+ '</div>'
+ }
+ ]
+});