Ticket #4773 (closed Bug: fixed)

Opened 4 years ago

Last modified 4 years ago

fileBrowser plugin overwrites any onClick function for a fileButton element

Reported by: alfonsoml Owned by: alfonsoml
Priority: Normal Milestone: CKEditor 3.2
Component: UI : Dialogs Version: 3.0.1
Keywords: Confirmed Review+ Cc:

Description

The fileBrowser plugin applies its own "fileUpload" function to the onClick handler of the fileButtons, without any regards to any such handler specified in the definition of the object.

Unfortunately, the big anonymous function makes quite hard to workaround this or other improvements from a plugin.

The solution here is to change

if ( url )
{					
	element.onClick = uploadFile ;
	element.filebrowser.url = url;
...

to a wrapper that includes the previous handler:

if ( url )
{					
	var onClick = element.onClick;
	element.onClick = function( evt )
	{
		// "element" here means the definition object, so we need to find the correct
		// button to scope the event call
		var sender = evt.sender
		if ( onClick && onClick.call( sender, evt ) === false )
			return false;
		return uploadFile.call( sender, evt );
	};

	element.filebrowser.url = url;
...

Attachments

4773.patch (992 bytes) - added by alfonsoml 4 years ago.
Proposed patch

Change History

comment:1 Changed 4 years ago by garry.yao

  • Keywords Confirmed added
  • Component changed from General to UI : Dialogs
  • Milestone set to CKEditor 3.2

Changed 4 years ago by alfonsoml

Proposed patch

comment:2 Changed 4 years ago by alfonsoml

  • Status changed from new to assigned
  • Keywords Review? added; HasPatch removed
  • Owner set to alfonsoml

comment:3 Changed 4 years ago by garry.yao

  • Keywords Review+ added; Review? removed

Please compensate the missing semicolon after L286 before commit.

comment:4 Changed 4 years ago by alfonsoml

  • Status changed from assigned to closed
  • Resolution set to fixed

Thanks for the tip
Fixed with [4923]

Note: See TracTickets for help on using tickets.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy