/*globals wp, Backbone */ /** * wp.media.view.MediaFrame.Manage.Router * * A router for handling the browser history and application state. * * @class * @augments Backbone.Router */ var Router = Backbone.Router.extend({ routes: { 'upload.php?item=:slug': 'showItem', 'upload.php?search=:query': 'search' }, // Map routes against the page URL baseUrl: function( url ) { return 'upload.php' + url; }, // Respond to the search route by filling the search field and trigggering the input event search: function( query ) { jQuery( '#media-search-input' ).val( query ).trigger( 'input' ); }, // Show the modal with a specific item showItem: function( query ) { var media = wp.media, library = media.frame.state().get('library'), item; // Trigger the media frame to open the correct item item = library.findWhere( { id: parseInt( query, 10 ) } ); if ( item ) { media.frame.trigger( 'edit:attachment', item ); } else { item = media.attachment( query ); media.frame.listenTo( item, 'change', function( model ) { media.frame.stopListening( item ); media.frame.trigger( 'edit:attachment', model ); } ); item.fetch(); } } }); module.exports = Router;