Media: Make the upload state a dedicated screen, instead of including its own library view. see #21390.

git-svn-id: http://core.svn.wordpress.org/trunk@22781 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Daryl Koopersmith 2012-11-21 18:29:53 +00:00
parent 5ee8582b7a
commit b5335a5d24
1 changed files with 63 additions and 59 deletions

View File

@ -444,29 +444,37 @@
// wp.media.controller.Upload
// ---------------------------
media.controller.Upload = media.controller.Library.extend({
media.controller.Upload = media.controller.State.extend({
defaults: _.defaults({
id: 'upload',
upload: { text: l10n.uploadMoreFiles },
searchable: false,
sortable: true
}, media.controller.Library.prototype.defaults ),
content: 'upload',
sidebar: 'empty',
toolbar: 'empty',
// The state to navigate to when files are uploading.
libraryState: 'library'
}, media.controller.State.prototype.defaults ),
initialize: function() {
var library = this.get('library');
media.controller.State.prototype.initialize.apply( this, arguments );
},
// If a `library` attribute isn't provided, create a new
// `Attachments` collection that observes (and thereby receives
// all uploading) attachments.
if ( ! library ) {
library = new Attachments();
library.observe( wp.Uploader.queue );
this.set( 'library', library );
activate: function() {
wp.Uploader.queue.on( 'add', this.uploading, this );
media.controller.State.prototype.activate.apply( this, arguments );
},
deactivate: function() {
wp.Uploader.queue.off( null, null, this );
media.controller.State.prototype.deactivate.apply( this, arguments );
},
uploading: function( attachment ) {
var library = this.get('libraryState');
this.frame.get( library ).get('selection').add( attachment );
this.frame.state( library );
}
media.controller.Library.prototype.initialize.apply( this, arguments );
}
});
// wp.media.controller.Gallery
@ -1175,24 +1183,22 @@
},
createStates: function() {
var options = this.options,
attributes;
attributes = {
multiple: this.options.multiple,
menu: 'main',
toolbar: 'select'
};
var options = this.options;
// Add the default states.
this.states.add([
// Main states.
new media.controller.Library( _.defaults({
selection: options.selection,
library: media.query( options.library )
library: media.query( options.library ),
multiple: this.options.multiple,
menu: 'main',
toolbar: 'select'
}, attributes ) ),
new media.controller.Upload( attributes )
new media.controller.Upload({
menu: 'main'
})
]);
},
@ -1245,7 +1251,8 @@
},
uploadContent: function() {
// In the meantime, render an inline uploader.
this.$el.addClass('hide-sidebar hide-toolbar');
this.content.view( new media.view.UploaderInline({
controller: this
}) );
@ -1342,10 +1349,16 @@
},
createStates: function() {
var options = this.options,
main, gallery;
var options = this.options;
main = {
// Add the default states.
this.states.add([
// Main states.
new media.controller.Library({
selection: options.selection,
library: media.query( options.library ),
editable: true,
filterable: 'all',
multiple: this.options.multiple,
menu: 'main',
sidebar: 'attachment-settings',
@ -1353,26 +1366,11 @@
// Update user settings when users adjust the
// attachment display settings.
displayUserSettings: true
};
}),
gallery = {
multiple: true,
menu: 'gallery',
toolbar: 'gallery-add',
excludeState: 'gallery-edit'
};
// Add the default states.
this.states.add([
// Main states.
new media.controller.Library( _.defaults({
selection: options.selection,
library: media.query( options.library ),
editable: true,
filterable: 'all'
}, main ) ),
new media.controller.Upload( main ),
new media.controller.Upload({
menu: 'main'
}),
// Embed states.
new media.controller.Embed(),
@ -1384,15 +1382,21 @@
menu: 'gallery'
}),
new media.controller.Library( _.defaults({
new media.controller.Library({
id: 'gallery-library',
library: media.query({ type: 'image' }),
filterable: 'uploaded'
}, gallery ) ),
filterable: 'uploaded',
multiple: true,
menu: 'gallery',
toolbar: 'gallery-add',
excludeState: 'gallery-edit'
}),
new media.controller.Upload( _.defaults({
id: 'gallery-upload'
}, gallery ) )
new media.controller.Upload({
id: 'gallery-upload',
menu: 'gallery',
libraryState: 'gallery-edit'
})
]);
},