X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=_source%2Fplugins%2Fimage%2Fdialogs%2Fimage.js;h=496827bc190d4646e14620450d789e60c6d47be5;hb=fb481ba0a7d298e3e7b9034fcb9f2afdc6e8e796;hp=72a4c4570e62d298076990f1e93b5a1eaf5bde91;hpb=c9fdde67e6384bd5a66adc2b3bba5c4ce9db56c7;p=ckeditor.git
diff --git a/_source/plugins/image/dialogs/image.js b/_source/plugins/image/dialogs/image.js
index 72a4c45..496827b 100644
--- a/_source/plugins/image/dialogs/image.js
+++ b/_source/plugins/image/dialogs/image.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
*/
@@ -115,17 +115,19 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var switchLockRatio = function( dialog, value )
{
+ if ( !dialog.getContentElement( 'info', 'ratioLock' ) )
+ return null;
+
var oImageOriginal = dialog.originalElement;
// Dialog may already closed. (#5505)
if( !oImageOriginal )
return null;
- var ratioButton = CKEDITOR.document.getById( btnLockSizesId );
-
- if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' )
+ // Check image ratio and original image ratio, but respecting user's preference.
+ if ( value == 'check' )
{
- if ( value == 'check' ) // Check image ratio and original image ratio.
+ if ( !dialog.userlockRatio && oImageOriginal.getCustomData( 'isReady' ) == 'true' )
{
var width = dialog.getValueOf( 'info', 'txtWidth' ),
height = dialog.getValueOf( 'info', 'txtHeight' ),
@@ -141,24 +143,29 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
dialog.lockRatio = true;
}
}
- else if ( value != undefined )
- dialog.lockRatio = value;
- else
- dialog.lockRatio = !dialog.lockRatio;
}
- else if ( value != 'check' ) // I can't lock ratio if ratio is unknown.
- dialog.lockRatio = false;
+ else if ( value != undefined )
+ dialog.lockRatio = value;
+ else
+ {
+ dialog.userlockRatio = 1;
+ dialog.lockRatio = !dialog.lockRatio;
+ }
+ var ratioButton = CKEDITOR.document.getById( btnLockSizesId );
if ( dialog.lockRatio )
ratioButton.removeClass( 'cke_btn_unlocked' );
else
ratioButton.addClass( 'cke_btn_unlocked' );
- var lang = dialog._.editor.lang.image,
- label = lang[ dialog.lockRatio ? 'unlockRatio' : 'lockRatio' ];
+ ratioButton.setAttribute( 'aria-checked', dialog.lockRatio );
- ratioButton.setAttribute( 'title', label );
- ratioButton.getFirst().setText( label );
+ // Ratio button hc presentation - WHITE SQUARE / BLACK SQUARE
+ if ( CKEDITOR.env.hc )
+ {
+ var icon = ratioButton.getChild( 0 );
+ icon.setHtml( dialog.lockRatio ? CKEDITOR.env.ie ? '\u25A0': '\u25A3' : CKEDITOR.env.ie ? '\u25A1' : '\u25A2' );
+ }
return dialog.lockRatio;
};
@@ -168,8 +175,10 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var oImageOriginal = dialog.originalElement;
if ( oImageOriginal.getCustomData( 'isReady' ) == 'true' )
{
- dialog.setValueOf( 'info', 'txtWidth', oImageOriginal.$.width );
- dialog.setValueOf( 'info', 'txtHeight', oImageOriginal.$.height );
+ var widthField = dialog.getContentElement( 'info', 'txtWidth' ),
+ heightField = dialog.getContentElement( 'info', 'txtHeight' );
+ widthField && widthField.setValue( oImageOriginal.$.width );
+ heightField && heightField.setValue( oImageOriginal.$.height );
}
updatePreview( dialog );
};
@@ -196,7 +205,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
var dialog = this.getDialog(),
value = '',
- dimension = (( this.id == 'txtWidth' )? 'width' : 'height' ),
+ dimension = this.id == 'txtWidth' ? 'width' : 'height',
size = element.getAttribute( dimension );
if ( size )
@@ -257,14 +266,13 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
btnLockSizesId = numbering( 'btnLockSizes' ),
btnResetSizeId = numbering( 'btnResetSize' ),
imagePreviewLoaderId = numbering( 'ImagePreviewLoader' ),
- imagePreviewBoxId = numbering( 'ImagePreviewBox' ),
previewLinkId = numbering( 'previewLink' ),
previewImageId = numbering( 'previewImage' );
return {
- title : ( dialogType == 'image' ) ? editor.lang.image.title : editor.lang.image.titleButton,
+ title : editor.lang.image[ dialogType == 'image' ? 'title' : 'titleButton' ],
minWidth : 420,
- minHeight : 310,
+ minHeight : 360,
onShow : function()
{
this.imageElement = false;
@@ -275,13 +283,14 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
this.linkEditMode = false;
this.lockRatio = true;
+ this.userlockRatio = 0;
this.dontResetSize = false;
this.firstLoad = true;
this.addLink = false;
var editor = this.getParentEditor(),
- sel = this.getParentEditor().getSelection(),
- element = sel.getSelectedElement(),
+ sel = editor.getSelection(),
+ element = sel && sel.getSelectedElement(),
link = element && element.getAscendant( 'a' );
//Hide loader.
@@ -319,7 +328,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
this.setupContent( LINK, link );
}
- if ( element && element.getName() == 'img' && !element.getAttribute( '_cke_realelement' )
+ if ( element && element.getName() == 'img' && !element.data( 'cke-realelement' )
|| element && element.getName() == 'input' && element.getAttribute( 'type' ) == 'image' )
{
this.imageEditMode = element.getName();
@@ -335,13 +344,13 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
// Fill out all fields.
this.setupContent( IMAGE, this.imageElement );
-
- // Refresh LockRatio button
- switchLockRatio ( this, true );
}
else
this.imageElement = editor.document.createElement( 'img' );
+ // Refresh LockRatio button
+ switchLockRatio ( this, true );
+
// Dont show preview if no URL given.
if ( !CKEDITOR.tools.trim( this.getValueOf( 'info', 'txtUrl' ) ) )
{
@@ -419,11 +428,11 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
//Insert a new Link.
if ( !this.linkEditMode )
{
- editor.insertElement(this.linkElement);
- this.linkElement.append(this.imageElement, false);
+ editor.insertElement( this.linkElement );
+ this.linkElement.append( this.imageElement, false );
}
else //Link already exists, image not.
- editor.insertElement(this.imageElement );
+ editor.insertElement( this.imageElement );
}
else
editor.insertElement( this.imageElement );
@@ -449,8 +458,12 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
if ( dialogType != 'image' )
this.hidePage( 'Link' ); //Hide Link tab.
var doc = this._.element.getDocument();
- this.addFocusable( doc.getById( btnResetSizeId ), 5 );
- this.addFocusable( doc.getById( btnLockSizesId ), 5 );
+
+ if ( this.getContentElement( 'info', 'ratioLock' ) )
+ {
+ this.addFocusable( doc.getById( btnResetSizeId ), 5 );
+ this.addFocusable( doc.getById( btnLockSizesId ), 5 );
+ }
this.commitContent = commitContent;
},
@@ -533,7 +546,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
{
if ( type == IMAGE )
{
- var url = element.getAttribute( '_cke_saved_src' ) || element.getAttribute( 'src' );
+ var url = element.data( 'cke-saved-src' ) || element.getAttribute( 'src' );
var field = this;
this.getDialog().dontResetSize = true;
@@ -547,8 +560,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
{
if ( type == IMAGE && ( this.getValue() || this.isChanged() ) )
{
- element.setAttribute( '_cke_saved_src', decodeURI( this.getValue() ) );
- element.setAttribute( 'src', decodeURI( this.getValue() ) );
+ element.data( 'cke-saved-src', this.getValue() );
+ element.setAttribute( 'src', this.getValue() );
}
else if ( type == CLEANUP )
{
@@ -607,17 +620,16 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
},
{
type : 'hbox',
- widths : [ '140px', '240px' ],
children :
[
{
+ id : 'basic',
type : 'vbox',
- padding : 10,
children :
[
{
type : 'hbox',
- widths : [ '70%', '30%' ],
+ widths : [ '50%', '50%' ],
children :
[
{
@@ -629,8 +641,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
type : 'text',
width: '40px',
id : 'txtWidth',
- labelLayout : 'horizontal',
- label : editor.lang.image.width,
+ label : editor.lang.common.width,
onKeyUp : onSizeChange,
onChange : function()
{
@@ -638,10 +649,11 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
},
validate : function()
{
- var aMatch = this.getValue().match( regexGetSizeOrEmpty );
- if ( !aMatch )
- alert( editor.lang.image.validateWidth );
- return !!aMatch;
+ var aMatch = this.getValue().match( regexGetSizeOrEmpty ),
+ isValid = !!( aMatch && parseInt( aMatch[1], 10 ) !== 0 );
+ if ( !isValid )
+ alert( editor.lang.common.invalidWidth );
+ return isValid;
},
setup : setupDimension,
commit : function( type, element, internalCommit )
@@ -651,7 +663,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
{
if ( value )
element.setStyle( 'width', CKEDITOR.tools.cssLength( value ) );
- else if ( !value && this.isChanged( ) )
+ else
element.removeStyle( 'width' );
!internalCommit && element.removeAttribute( 'width' );
@@ -679,8 +691,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
type : 'text',
id : 'txtHeight',
width: '40px',
- labelLayout : 'horizontal',
- label : editor.lang.image.height,
+ label : editor.lang.common.height,
onKeyUp : onSizeChange,
onChange : function()
{
@@ -688,10 +699,11 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
},
validate : function()
{
- var aMatch = this.getValue().match( regexGetSizeOrEmpty );
- if ( !aMatch )
- alert( editor.lang.image.validateHeight );
- return !!aMatch;
+ var aMatch = this.getValue().match( regexGetSizeOrEmpty ),
+ isValid = !!( aMatch && parseInt( aMatch[1], 10 ) !== 0 );
+ if ( !isValid )
+ alert( editor.lang.common.invalidHeight );
+ return isValid;
},
setup : setupDimension,
commit : function( type, element, internalCommit )
@@ -701,11 +713,10 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
{
if ( value )
element.setStyle( 'height', CKEDITOR.tools.cssLength( value ) );
- else if ( !value && this.isChanged( ) )
+ else
element.removeStyle( 'height' );
- if ( !internalCommit && type == IMAGE )
- element.removeAttribute( 'height' );
+ !internalCommit && element.removeAttribute( 'height' );
}
else if ( type == PREVIEW )
{
@@ -729,8 +740,9 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
]
},
{
+ id : 'ratioLock',
type : 'html',
- style : 'margin-top:10px;width:40px;height:40px;',
+ style : 'margin-top:30px;width:40px;height:40px;',
onLoad : function()
{
// Activate Reset button
@@ -738,10 +750,10 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
ratioButton = CKEDITOR.document.getById( btnLockSizesId );
if ( resetButton )
{
- resetButton.on( 'click', function(evt)
+ resetButton.on( 'click', function( evt )
{
resetSize( this );
- evt.data.preventDefault();
+ evt.data && evt.data.preventDefault();
}, this.getDialog() );
resetButton.on( 'mouseover', function()
{
@@ -770,7 +782,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
updatePreview( this );
}
}
- evt.data.preventDefault();
+ evt.data && evt.data.preventDefault();
}, this.getDialog() );
ratioButton.on( 'mouseover', function()
{
@@ -783,8 +795,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
}
},
html : '
'
@@ -800,7 +812,6 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
type : 'text',
id : 'txtBorder',
width: '60px',
- labelLayout : 'horizontal',
label : editor.lang.image.border,
'default' : '',
onKeyUp : function()
@@ -835,11 +846,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
element.setStyle( 'border-style', 'solid' );
}
else if ( !value && this.isChanged() )
- {
- element.removeStyle( 'border-width' );
- element.removeStyle( 'border-style' );
- element.removeStyle( 'border-color' );
- }
+ element.removeStyle( 'border' );
if ( !internalCommit && type == IMAGE )
element.removeAttribute( 'border' );
@@ -857,7 +864,6 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
type : 'text',
id : 'txtHSpace',
width: '60px',
- labelLayout : 'horizontal',
label : editor.lang.image.hSpace,
'default' : '',
onKeyUp : function()
@@ -921,7 +927,6 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
type : 'text',
id : 'txtVSpace',
width : '60px',
- labelLayout : 'horizontal',
label : editor.lang.image.vSpace,
'default' : '',
onKeyUp : function()
@@ -983,16 +988,15 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
{
id : 'cmbAlign',
type : 'select',
- labelLayout : 'horizontal',
widths : [ '35%','65%' ],
style : 'width:90px',
- label : editor.lang.image.align,
+ label : editor.lang.common.align,
'default' : '',
items :
[
[ editor.lang.common.notSet , ''],
- [ editor.lang.image.alignLeft , 'left'],
- [ editor.lang.image.alignRight , 'right']
+ [ editor.lang.common.alignLeft , 'left'],
+ [ editor.lang.common.alignRight , 'right']
// Backward compatible with v2 on setup when specified as attribute value,
// while these values are no more available as select options.
// [ editor.lang.image.alignAbsBottom , 'absBottom'],
@@ -1064,10 +1068,11 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
[
{
type : 'html',
+ id : 'htmlPreview',
style : 'width:95%;',
html : '' + CKEDITOR.tools.htmlEncode( editor.lang.common.preview ) +'
'+
'
'+
- '
'+
+ ''+
''+
'' +
( editor.config.image_previewText ||
@@ -1098,7 +1103,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
{
if ( type == LINK )
{
- var href = element.getAttribute( '_cke_saved_href' );
+ var href = element.data( 'cke-saved-href' );
if ( !href )
href = element.getAttribute( 'href' );
this.setValue( href );
@@ -1110,9 +1115,9 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
{
if ( this.getValue() || this.isChanged() )
{
- element.setAttribute( '_cke_saved_href', decodeURI( this.getValue() ) );
- element.setAttribute( 'href', 'javascript:void(0)/*' +
- CKEDITOR.tools.getNextNumber() + '*/' );
+ var url = decodeURI( this.getValue() );
+ element.data( 'cke-saved-href', url );
+ element.setAttribute( 'href', url );
if ( this.getValue() || !editor.config.image_removeLinkByEmptyURL )
this.getDialog().addLink = true;
@@ -1127,7 +1132,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
{
action : 'Browse',
target: 'Link:txtUrl',
- url: editor.config.filebrowserImageBrowseLinkUrl || editor.config.filebrowserBrowseUrl
+ url: editor.config.filebrowserImageBrowseLinkUrl
},
style : 'float:right',
hidden : true,
@@ -1149,7 +1154,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
setup : function( type, element )
{
if ( type == LINK )
- this.setValue( element.getAttribute( 'target' ) );
+ this.setValue( element.getAttribute( 'target' ) || '' );
},
commit : function( type, element )
{
@@ -1339,6 +1344,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
type : 'text',
id : 'txtdlgGenStyle',
label : editor.lang.common.cssStyle,
+ validate : CKEDITOR.dialog.validate.inlineStyle( editor.lang.common.invalidInlineStyle ),
'default' : '',
setup : function( type, element )
{
|
|