WordPress.org

Make WordPress Core

Opened 4 years ago

Last modified 4 months ago

#18518 new defect (bug)

suggest.js: don't store the URL in the options object

Reported by: scribu Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version:
Component: General Keywords: needs-refresh
Focuses: Cc:

Description

...because it prevents re-using the same instance for different URLs:

var suggest_args = {
	multiple     : true,
	delimiter    : ',',
	resultsClass : 'qc-suggest-results',
	selectClass  : 'qc-suggest-over',
	matchClass   : 'qc-suggest-match',
};

$( '#ticket-assign input' ).suggest( QC_L10N.ajaxurl + '?action=qc-user-search', suggest_args );

$( '#ticket-tags input' ).suggest( QC_L10N.ajaxurl + '?action=ajax-tag-search&tax=post_tag', suggest_args );

With the above code, both inputs will look for items in the same URL: the second one.

Attached patch fixes this.

Attachments (1)

18518.diff (1.4 KB) - added by scribu 4 years ago.

Download all attachments as: .zip

Change History (6)

@scribu4 years ago

comment:1 @scribu4 years ago

  • Summary changed from Don't store the URL in the options object to suggest.js: don't store the URL in the options object

comment:2 @GaryJ4 years ago

Will that extra argument be backwards compatible?

Could you add some code such that if source is an object rather than a string (i.e. only two arguments passed in), that source = options.source?

comment:3 @scribu4 years ago

That extra argument only affects the internal constructor function, which shouldn't be used directly.

If it's really necessary, sure, you could check if it's an object vs. a string or check the number of arguments passed.

comment:4 @sorich873 years ago

  • Type changed from defect (bug) to enhancement

comment:5 @chriscct74 months ago

  • Keywords needs-refresh added; has-patch removed
  • Type changed from enhancement to defect (bug)

Needs to be refreshed

Note: See TracTickets for help on using tickets.