Index: branches/5.2.x/core/editor/editor/dialog/fck_image/fck_image.js =================================================================== diff -u -N --- branches/5.2.x/core/editor/editor/dialog/fck_image/fck_image.js (revision 14244) +++ branches/5.2.x/core/editor/editor/dialog/fck_image/fck_image.js (revision 0) @@ -1,512 +0,0 @@ -/* - * FCKeditor - The text editor for Internet - http://www.fckeditor.net - * Copyright (C) 2003-2009 Frederico Caldeira Knabben - * - * == BEGIN LICENSE == - * - * Licensed under the terms of any of the following licenses at your - * choice: - * - * - GNU General Public License Version 2 or later (the "GPL") - * http://www.gnu.org/licenses/gpl.html - * - * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") - * http://www.gnu.org/licenses/lgpl.html - * - * - Mozilla Public License Version 1.1 or later (the "MPL") - * http://www.mozilla.org/MPL/MPL-1.1.html - * - * == END LICENSE == - * - * Scripts related to the Image dialog window (see fck_image.html). - */ - -var dialog = window.parent ; -var oEditor = dialog.InnerDialogLoaded() ; -var FCK = oEditor.FCK ; -var FCKLang = oEditor.FCKLang ; -var FCKConfig = oEditor.FCKConfig ; -var FCKDebug = oEditor.FCKDebug ; -var FCKTools = oEditor.FCKTools ; - -var bImageButton = ( document.location.search.length > 0 && document.location.search.substr(1) == 'ImageButton' ) ; - -//#### Dialog Tabs - -// Set the dialog tabs. -dialog.AddTab( 'Info', FCKLang.DlgImgInfoTab ) ; - -if ( !bImageButton && !FCKConfig.ImageDlgHideLink ) - dialog.AddTab( 'Link', FCKLang.DlgImgLinkTab ) ; - -if ( FCKConfig.ImageUpload ) - dialog.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ; - -if ( !FCKConfig.ImageDlgHideAdvanced ) - dialog.AddTab( 'Advanced', FCKLang.DlgAdvancedTag ) ; - -// Function called when a dialog tag is selected. -function OnDialogTabChange( tabCode ) -{ - ShowE('divInfo' , ( tabCode == 'Info' ) ) ; - ShowE('divLink' , ( tabCode == 'Link' ) ) ; - ShowE('divUpload' , ( tabCode == 'Upload' ) ) ; - ShowE('divAdvanced' , ( tabCode == 'Advanced' ) ) ; -} - -// Get the selected image (if available). -var oImage = dialog.Selection.GetSelectedElement() ; - -if ( oImage && oImage.tagName != 'IMG' && !( oImage.tagName == 'INPUT' && oImage.type == 'image' ) ) - oImage = null ; - -// Get the active link. -var oLink = dialog.Selection.GetSelection().MoveToAncestorNode( 'A' ) ; - -var oImageOriginal ; - -function UpdateOriginal( resetSize ) -{ - if ( !eImgPreview ) - return ; - - if ( GetE('txtUrl').value.length == 0 ) - { - oImageOriginal = null ; - return ; - } - - oImageOriginal = document.createElement( 'IMG' ) ; // new Image() ; - - if ( resetSize ) - { - oImageOriginal.onload = function() - { - this.onload = null ; - ResetSizes() ; - } - } - - oImageOriginal.src = eImgPreview.src ; -} - -var bPreviewInitialized ; - -window.onload = function() -{ - // Translate the dialog box texts. - oEditor.FCKLanguageManager.TranslatePage(document) ; - - GetE('btnLockSizes').title = FCKLang.DlgImgLockRatio ; - GetE('btnResetSize').title = FCKLang.DlgBtnResetSize ; - - // Load the selected element information (if any). - LoadSelection() ; - - // Show/Hide the "Browse Server" button. - GetE('tdBrowse').style.display = FCKConfig.ImageBrowser ? '' : 'none' ; - GetE('divLnkBrowseServer').style.display = FCKConfig.LinkBrowser ? '' : 'none' ; - - UpdateOriginal() ; - - // Set the actual uploader URL. - if ( FCKConfig.ImageUpload ) - GetE('frmUpload').action = FCKConfig.ImageUploadURL ; - - dialog.SetAutoSize( true ) ; - - // Activate the "OK" button. - dialog.SetOkButton( true ) ; - - SelectField( 'txtUrl' ) ; -} - -function LoadSelection() -{ - if ( ! oImage ) return ; - - var sUrl = oImage.getAttribute( '_fcksavedurl' ) ; - if ( sUrl == null ) - sUrl = GetAttribute( oImage, 'src', '' ) ; - - GetE('txtUrl').value = sUrl ; - GetE('txtAlt').value = GetAttribute( oImage, 'alt', '' ) ; - GetE('txtVSpace').value = GetAttribute( oImage, 'vspace', '' ) ; - GetE('txtHSpace').value = GetAttribute( oImage, 'hspace', '' ) ; - GetE('txtBorder').value = GetAttribute( oImage, 'border', '' ) ; - GetE('cmbAlign').value = GetAttribute( oImage, 'align', '' ) ; - - var iWidth, iHeight ; - - var regexSize = /^\s*(\d+)px\s*$/i ; - - if ( oImage.style.width ) - { - var aMatchW = oImage.style.width.match( regexSize ) ; - if ( aMatchW ) - { - iWidth = aMatchW[1] ; - oImage.style.width = '' ; - SetAttribute( oImage, 'width' , iWidth ) ; - } - } - - if ( oImage.style.height ) - { - var aMatchH = oImage.style.height.match( regexSize ) ; - if ( aMatchH ) - { - iHeight = aMatchH[1] ; - oImage.style.height = '' ; - SetAttribute( oImage, 'height', iHeight ) ; - } - } - - GetE('txtWidth').value = iWidth ? iWidth : GetAttribute( oImage, "width", '' ) ; - GetE('txtHeight').value = iHeight ? iHeight : GetAttribute( oImage, "height", '' ) ; - - // Get Advances Attributes - GetE('txtAttId').value = oImage.id ; - GetE('cmbAttLangDir').value = oImage.dir ; - GetE('txtAttLangCode').value = oImage.lang ; - GetE('txtAttTitle').value = oImage.title ; - GetE('txtLongDesc').value = oImage.longDesc ; - - if ( oEditor.FCKBrowserInfo.IsIE ) - { - GetE('txtAttClasses').value = oImage.className || '' ; - GetE('txtAttStyle').value = oImage.style.cssText ; - } - else - { - GetE('txtAttClasses').value = oImage.getAttribute('class',2) || '' ; - GetE('txtAttStyle').value = oImage.getAttribute('style',2) ; - } - - if ( oLink ) - { - var sLinkUrl = oLink.getAttribute( '_fcksavedurl' ) ; - if ( sLinkUrl == null ) - sLinkUrl = oLink.getAttribute('href',2) ; - - GetE('txtLnkUrl').value = sLinkUrl ; - GetE('cmbLnkTarget').value = oLink.target ; - } - - UpdatePreview() ; -} - -//#### The OK button was hit. -function Ok() -{ - if ( GetE('txtUrl').value.length == 0 ) - { - dialog.SetSelectedTab( 'Info' ) ; - GetE('txtUrl').focus() ; - - alert( FCKLang.DlgImgAlertUrl ) ; - - return false ; - } - - var bHasImage = ( oImage != null ) ; - - if ( bHasImage && bImageButton && oImage.tagName == 'IMG' ) - { - if ( confirm( 'Do you want to transform the selected image on a image button?' ) ) - oImage = null ; - } - else if ( bHasImage && !bImageButton && oImage.tagName == 'INPUT' ) - { - if ( confirm( 'Do you want to transform the selected image button on a simple image?' ) ) - oImage = null ; - } - - oEditor.FCKUndo.SaveUndoStep() ; - if ( !bHasImage ) - { - if ( bImageButton ) - { - oImage = FCK.EditorDocument.createElement( 'input' ) ; - oImage.type = 'image' ; - oImage = FCK.InsertElement( oImage ) ; - } - else - oImage = FCK.InsertElement( 'img' ) ; - } - - UpdateImage( oImage ) ; - - var sLnkUrl = GetE('txtLnkUrl').value.Trim() ; - - if ( sLnkUrl.length == 0 ) - { - if ( oLink ) - FCK.ExecuteNamedCommand( 'Unlink' ) ; - } - else - { - if ( oLink ) // Modifying an existent link. - oLink.href = sLnkUrl ; - else // Creating a new link. - { - if ( !bHasImage ) - oEditor.FCKSelection.SelectNode( oImage ) ; - - oLink = oEditor.FCK.CreateLink( sLnkUrl )[0] ; - - if ( !bHasImage ) - { - oEditor.FCKSelection.SelectNode( oLink ) ; - oEditor.FCKSelection.Collapse( false ) ; - } - } - - SetAttribute( oLink, '_fcksavedurl', sLnkUrl ) ; - SetAttribute( oLink, 'target', GetE('cmbLnkTarget').value ) ; - } - - return true ; -} - -function UpdateImage( e, skipId ) -{ - e.src = GetE('txtUrl').value ; - SetAttribute( e, "_fcksavedurl", GetE('txtUrl').value ) ; - SetAttribute( e, "alt" , GetE('txtAlt').value ) ; - SetAttribute( e, "width" , GetE('txtWidth').value ) ; - SetAttribute( e, "height", GetE('txtHeight').value ) ; - SetAttribute( e, "vspace", GetE('txtVSpace').value ) ; - SetAttribute( e, "hspace", GetE('txtHSpace').value ) ; - SetAttribute( e, "border", GetE('txtBorder').value ) ; - SetAttribute( e, "align" , GetE('cmbAlign').value ) ; - - // Advances Attributes - - if ( ! skipId ) - SetAttribute( e, 'id', GetE('txtAttId').value ) ; - - SetAttribute( e, 'dir' , GetE('cmbAttLangDir').value ) ; - SetAttribute( e, 'lang' , GetE('txtAttLangCode').value ) ; - SetAttribute( e, 'title' , GetE('txtAttTitle').value ) ; - SetAttribute( e, 'longDesc' , GetE('txtLongDesc').value ) ; - - if ( oEditor.FCKBrowserInfo.IsIE ) - { - e.className = GetE('txtAttClasses').value ; - e.style.cssText = GetE('txtAttStyle').value ; - } - else - { - SetAttribute( e, 'class' , GetE('txtAttClasses').value ) ; - SetAttribute( e, 'style', GetE('txtAttStyle').value ) ; - } -} - -var eImgPreview ; -var eImgPreviewLink ; - -function SetPreviewElements( imageElement, linkElement ) -{ - eImgPreview = imageElement ; - eImgPreviewLink = linkElement ; - - UpdatePreview() ; - UpdateOriginal() ; - - bPreviewInitialized = true ; -} - -function UpdatePreview() -{ - if ( !eImgPreview || !eImgPreviewLink ) - return ; - - if ( GetE('txtUrl').value.length == 0 ) - eImgPreviewLink.style.display = 'none' ; - else - { - UpdateImage( eImgPreview, true ) ; - - if ( GetE('txtLnkUrl').value.Trim().length > 0 ) - eImgPreviewLink.href = 'javascript:void(null);' ; - else - SetAttribute( eImgPreviewLink, 'href', '' ) ; - - eImgPreviewLink.style.display = '' ; - } -} - -var bLockRatio = true ; - -function SwitchLock( lockButton ) -{ - bLockRatio = !bLockRatio ; - lockButton.className = bLockRatio ? 'BtnLocked' : 'BtnUnlocked' ; - lockButton.title = bLockRatio ? 'Lock sizes' : 'Unlock sizes' ; - - if ( bLockRatio ) - { - if ( GetE('txtWidth').value.length > 0 ) - OnSizeChanged( 'Width', GetE('txtWidth').value ) ; - else - OnSizeChanged( 'Height', GetE('txtHeight').value ) ; - } -} - -// Fired when the width or height input texts change -function OnSizeChanged( dimension, value ) -{ - // Verifies if the aspect ration has to be maintained - if ( oImageOriginal && bLockRatio ) - { - var e = dimension == 'Width' ? GetE('txtHeight') : GetE('txtWidth') ; - - if ( value.length == 0 || isNaN( value ) ) - { - e.value = '' ; - return ; - } - - if ( dimension == 'Width' ) - value = value == 0 ? 0 : Math.round( oImageOriginal.height * ( value / oImageOriginal.width ) ) ; - else - value = value == 0 ? 0 : Math.round( oImageOriginal.width * ( value / oImageOriginal.height ) ) ; - - if ( !isNaN( value ) ) - e.value = value ; - } - - UpdatePreview() ; -} - -// Fired when the Reset Size button is clicked -function ResetSizes() -{ - if ( ! oImageOriginal ) return ; - if ( oEditor.FCKBrowserInfo.IsGecko && !oImageOriginal.complete ) - { - setTimeout( ResetSizes, 50 ) ; - return ; - } - - GetE('txtWidth').value = oImageOriginal.width ; - GetE('txtHeight').value = oImageOriginal.height ; - - UpdatePreview() ; -} - -function BrowseServer() -{ - OpenServerBrowser( - 'Image', - FCKConfig.ImageBrowserURL, - FCKConfig.ImageBrowserWindowWidth, - FCKConfig.ImageBrowserWindowHeight ) ; -} - -function LnkBrowseServer() -{ - OpenServerBrowser( - 'Link', - FCKConfig.LinkBrowserURL, - FCKConfig.LinkBrowserWindowWidth, - FCKConfig.LinkBrowserWindowHeight ) ; -} - -function OpenServerBrowser( type, url, width, height ) -{ - sActualBrowser = type ; - OpenFileBrowser( url, width, height ) ; -} - -var sActualBrowser ; - -function SetUrl( url, width, height, alt ) -{ - if ( sActualBrowser == 'Link' ) - { - GetE('txtLnkUrl').value = url ; - UpdatePreview() ; - } - else - { - GetE('txtUrl').value = url ; - GetE('txtWidth').value = width ? width : '' ; - GetE('txtHeight').value = height ? height : '' ; - - if ( alt ) - GetE('txtAlt').value = alt; - - UpdatePreview() ; - UpdateOriginal( true ) ; - } - - dialog.SetSelectedTab( 'Info' ) ; -} - -function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg ) -{ - // Remove animation - window.parent.Throbber.Hide() ; - GetE( 'divUpload' ).style.display = '' ; - - switch ( errorNumber ) - { - case 0 : // No errors - alert( 'Your file has been successfully uploaded' ) ; - break ; - case 1 : // Custom error - alert( customMsg ) ; - return ; - case 101 : // Custom warning - alert( customMsg ) ; - break ; - case 201 : - alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ; - break ; - case 202 : - alert( 'Invalid file type' ) ; - return ; - case 203 : - alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ; - return ; - case 500 : - alert( 'The connector is disabled' ) ; - break ; - default : - alert( 'Error on file upload. Error number: ' + errorNumber ) ; - return ; - } - - sActualBrowser = '' ; - SetUrl( fileUrl ) ; - GetE('frmUpload').reset() ; -} - -var oUploadAllowedExtRegex = new RegExp( FCKConfig.ImageUploadAllowedExtensions, 'i' ) ; -var oUploadDeniedExtRegex = new RegExp( FCKConfig.ImageUploadDeniedExtensions, 'i' ) ; - -function CheckUpload() -{ - var sFile = GetE('txtUploadFile').value ; - - if ( sFile.length == 0 ) - { - alert( 'Please select a file to upload' ) ; - return false ; - } - - if ( ( FCKConfig.ImageUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) || - ( FCKConfig.ImageUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) ) - { - OnUploadCompleted( 202 ) ; - return false ; - } - - // Show animation - window.parent.Throbber.Show( 100 ) ; - GetE( 'divUpload' ).style.display = 'none' ; - - return true ; -}