summaryrefslogtreecommitdiff
path: root/_source/plugins/showborders
diff options
context:
space:
mode:
Diffstat (limited to '_source/plugins/showborders')
-rw-r--r--_source/plugins/showborders/plugin.js337
1 files changed, 167 insertions, 170 deletions
diff --git a/_source/plugins/showborders/plugin.js b/_source/plugins/showborders/plugin.js
index 4fc46b6..dc13d24 100644
--- a/_source/plugins/showborders/plugin.js
+++ b/_source/plugins/showborders/plugin.js
@@ -1,170 +1,167 @@
-/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.html or http://ckeditor.com/license
-*/
-
-/**
- * @fileOverview The "show border" plugin. The command display visible outline
- * border line around all table elements if table doesn't have a none-zero 'border' attribute specified.
- */
-
-(function()
-{
- var showBorderClassName = 'cke_show_border',
- cssStyleText,
- cssTemplate =
- // TODO: For IE6, we don't have child selector support,
- // where nested table cells could be incorrect.
- ( CKEDITOR.env.ie6Compat ?
- [
- '.%1 table.%2,',
- '.%1 table.%2 td, .%1 table.%2 th,',
- '{',
- 'border : #d3d3d3 1px dotted',
- '}'
- ] :
- [
- '.%1 table.%2,',
- '.%1 table.%2 > tr > td, .%1 table.%2 > tr > th,',
- '.%1 table.%2 > tbody > tr > td, .%1 table.%2 > tbody > tr > th,',
- '.%1 table.%2 > thead > tr > td, .%1 table.%2 > thead > tr > th,',
- '.%1 table.%2 > tfoot > tr > td, .%1 table.%2 > tfoot > tr > th',
- '{',
- 'border : #d3d3d3 1px dotted',
- '}'
- ] ).join( '' );
-
- cssStyleText = cssTemplate.replace( /%2/g, showBorderClassName ).replace( /%1/g, 'cke_show_borders ' );
-
- var commandDefinition =
- {
- preserveState : true,
- editorFocus : false,
-
- exec : function ( editor )
- {
- this.toggleState();
- this.refresh( editor );
- },
-
- refresh : function( editor )
- {
- var funcName = ( this.state == CKEDITOR.TRISTATE_ON ) ? 'addClass' : 'removeClass';
- editor.document.getBody()[ funcName ]( 'cke_show_borders' );
- }
- };
-
- CKEDITOR.plugins.add( 'showborders',
- {
- requires : [ 'wysiwygarea' ],
- modes : { 'wysiwyg' : 1 },
-
- init : function( editor )
- {
-
- var command = editor.addCommand( 'showborders', commandDefinition );
- command.canUndo = false;
-
- if ( editor.config.startupShowBorders !== false )
- command.setState( CKEDITOR.TRISTATE_ON );
-
- editor.addCss( cssStyleText );
-
- // Refresh the command on setData.
- editor.on( 'mode', function()
- {
- if ( command.state != CKEDITOR.TRISTATE_DISABLED )
- command.refresh( editor );
- }, null, null, 100 );
-
- // Refresh the command on wysiwyg frame reloads.
- editor.on( 'contentDom', function()
- {
- if ( command.state != CKEDITOR.TRISTATE_DISABLED )
- command.refresh( editor );
- });
- },
-
- afterInit : function( editor )
- {
- var dataProcessor = editor.dataProcessor,
- dataFilter = dataProcessor && dataProcessor.dataFilter,
- htmlFilter = dataProcessor && dataProcessor.htmlFilter;
-
- if ( dataFilter )
- {
- dataFilter.addRules(
- {
- elements :
- {
- 'table' : function( element )
- {
- var attributes = element.attributes,
- cssClass = attributes[ 'class' ],
- border = parseInt( attributes.border, 10 );
-
- if ( !border || border <= 0 )
- attributes[ 'class' ] = ( cssClass || '' ) + ' ' + showBorderClassName;
- }
- }
- } );
- }
-
- if ( htmlFilter )
- {
- htmlFilter.addRules(
- {
- elements :
- {
- 'table' : function( table )
- {
- var attributes = table.attributes,
- cssClass = attributes[ 'class' ];
-
- cssClass && ( attributes[ 'class' ] =
- cssClass.replace( showBorderClassName, '' )
- .replace( /\s{2}/, ' ' )
- .replace( /^\s+|\s+$/, '' ) );
- }
- }
- } );
- }
-
- // Table dialog must be aware of it.
- CKEDITOR.on( 'dialogDefinition', function( ev )
- {
- if ( ev.editor != editor )
- return;
-
- var dialogName = ev.data.name;
-
- if ( dialogName == 'table' || dialogName == 'tableProperties' )
- {
- var dialogDefinition = ev.data.definition,
- infoTab = dialogDefinition.getContents( 'info' ),
- borderField = infoTab.get( 'txtBorder' ),
- originalCommit = borderField.commit;
-
- borderField.commit = CKEDITOR.tools.override( originalCommit, function( org )
- {
- return function( data, selectedTable )
- {
- org.apply( this, arguments );
- var value = parseInt( this.getValue(), 10 );
- selectedTable[ ( !value || value <= 0 ) ? 'addClass' : 'removeClass' ]( showBorderClassName );
- };
- } );
- }
- });
- }
-
- });
-} )();
-
-/**
- * Whether to automatically enable the "show borders" command when the editor loads.
- * @type Boolean
- * @default true
- * @example
- * config.startupShowBorders = false;
- */
+/*
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.html or http://ckeditor.com/license
+*/
+
+/**
+ * @fileOverview The "show border" plugin. The command display visible outline
+ * border line around all table elements if table doesn't have a none-zero 'border' attribute specified.
+ */
+
+(function()
+{
+ var showBorderClassName = 'cke_show_border',
+ cssStyleText,
+ cssTemplate =
+ // TODO: For IE6, we don't have child selector support,
+ // where nested table cells could be incorrect.
+ ( CKEDITOR.env.ie6Compat ?
+ [
+ '.%1 table.%2,',
+ '.%1 table.%2 td, .%1 table.%2 th,',
+ '{',
+ 'border : #d3d3d3 1px dotted',
+ '}'
+ ] :
+ [
+ '.%1 table.%2,',
+ '.%1 table.%2 > tr > td, .%1 table.%2 > tr > th,',
+ '.%1 table.%2 > tbody > tr > td, .%1 table.%2 > tbody > tr > th,',
+ '.%1 table.%2 > thead > tr > td, .%1 table.%2 > thead > tr > th,',
+ '.%1 table.%2 > tfoot > tr > td, .%1 table.%2 > tfoot > tr > th',
+ '{',
+ 'border : #d3d3d3 1px dotted',
+ '}'
+ ] ).join( '' );
+
+ cssStyleText = cssTemplate.replace( /%2/g, showBorderClassName ).replace( /%1/g, 'cke_show_borders ' );
+
+ var commandDefinition =
+ {
+ preserveState : true,
+ editorFocus : false,
+
+ exec : function ( editor )
+ {
+ this.toggleState();
+ this.refresh( editor );
+ },
+
+ refresh : function( editor )
+ {
+ var funcName = ( this.state == CKEDITOR.TRISTATE_ON ) ? 'addClass' : 'removeClass';
+ editor.document.getBody()[ funcName ]( 'cke_show_borders' );
+ }
+ };
+
+ CKEDITOR.plugins.add( 'showborders',
+ {
+ requires : [ 'wysiwygarea' ],
+ modes : { 'wysiwyg' : 1 },
+
+ init : function( editor )
+ {
+
+ var command = editor.addCommand( 'showborders', commandDefinition );
+ command.canUndo = false;
+
+ if ( editor.config.startupShowBorders !== false )
+ command.setState( CKEDITOR.TRISTATE_ON );
+
+ editor.addCss( cssStyleText );
+
+ // Refresh the command on setData.
+ editor.on( 'mode', function()
+ {
+ if ( command.state != CKEDITOR.TRISTATE_DISABLED )
+ command.refresh( editor );
+ }, null, null, 100 );
+
+ // Refresh the command on wysiwyg frame reloads.
+ editor.on( 'contentDom', function()
+ {
+ if ( command.state != CKEDITOR.TRISTATE_DISABLED )
+ command.refresh( editor );
+ });
+ },
+
+ afterInit : function( editor )
+ {
+ var dataProcessor = editor.dataProcessor,
+ dataFilter = dataProcessor && dataProcessor.dataFilter,
+ htmlFilter = dataProcessor && dataProcessor.htmlFilter;
+
+ if ( dataFilter )
+ {
+ dataFilter.addRules(
+ {
+ elements :
+ {
+ 'table' : function( element )
+ {
+ var attributes = element.attributes,
+ cssClass = attributes[ 'class' ],
+ border = parseInt( attributes.border, 10 );
+
+ if ( !border || border <= 0 )
+ attributes[ 'class' ] = ( cssClass || '' ) + ' ' + showBorderClassName;
+ }
+ }
+ } );
+ }
+
+ if ( htmlFilter )
+ {
+ htmlFilter.addRules(
+ {
+ elements :
+ {
+ 'table' : function( table )
+ {
+ var attributes = table.attributes,
+ cssClass = attributes[ 'class' ];
+
+ cssClass && ( attributes[ 'class' ] =
+ cssClass.replace( showBorderClassName, '' )
+ .replace( /\s{2}/, ' ' )
+ .replace( /^\s+|\s+$/, '' ) );
+ }
+ }
+ } );
+ }
+ }
+ });
+
+ // Table dialog must be aware of it.
+ CKEDITOR.on( 'dialogDefinition', function( ev )
+ {
+ var dialogName = ev.data.name;
+
+ if ( dialogName == 'table' || dialogName == 'tableProperties' )
+ {
+ var dialogDefinition = ev.data.definition,
+ infoTab = dialogDefinition.getContents( 'info' ),
+ borderField = infoTab.get( 'txtBorder' ),
+ originalCommit = borderField.commit;
+
+ borderField.commit = CKEDITOR.tools.override( originalCommit, function( org )
+ {
+ return function( data, selectedTable )
+ {
+ org.apply( this, arguments );
+ var value = parseInt( this.getValue(), 10 );
+ selectedTable[ ( !value || value <= 0 ) ? 'addClass' : 'removeClass' ]( showBorderClassName );
+ };
+ } );
+ }
+ });
+
+} )();
+
+/**
+ * Whether to automatically enable the "show borders" command when the editor loads.
+ * @type Boolean
+ * @default true
+ * @example
+ * config.startupShowBorders = false;
+ */