Media Grid, for audio files:
* Show `artist` and `album` fields in the Edit Attachment modal * Sync their values on `change` See #28839. git-svn-id: https://develop.svn.wordpress.org/trunk@29104 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
0e2dafc159
commit
d1f4b3a800
@ -2218,6 +2218,25 @@ function wp_ajax_save_attachment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( 0 === strpos( $post['post_mime_type'], 'audio/' ) ) {
|
||||||
|
$changed = false;
|
||||||
|
$id3data = wp_get_attachment_metadata( $post['ID'] );
|
||||||
|
if ( ! is_array( $id3data ) ) {
|
||||||
|
$changed = true;
|
||||||
|
$id3data = array();
|
||||||
|
}
|
||||||
|
foreach ( wp_get_attachment_id3_keys( (object) $post, 'edit' ) as $key => $label ) {
|
||||||
|
if ( isset( $changes[ $key ] ) ) {
|
||||||
|
$changed = true;
|
||||||
|
$id3data[ $key ] = sanitize_text_field( wp_unslash( $changes[ $key ] ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( $changed ) {
|
||||||
|
wp_update_attachment_metadata( $id, $id3data );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
wp_update_post( $post );
|
wp_update_post( $post );
|
||||||
wp_send_json_success();
|
wp_send_json_success();
|
||||||
}
|
}
|
||||||
|
@ -298,10 +298,11 @@
|
|||||||
|
|
||||||
this.$el.attr('aria-label', this.model.get( 'title' ) ).attr( 'aria-checked', false );
|
this.$el.attr('aria-label', this.model.get( 'title' ) ).attr( 'aria-checked', false );
|
||||||
|
|
||||||
this.model.on( 'change:sizes change:uploading', this.render, this );
|
this.model.on( 'change:title', this._syncTitle, this );
|
||||||
this.model.on( 'change:title', this._syncTitle, this );
|
|
||||||
this.model.on( 'change:caption', this._syncCaption, this );
|
this.model.on( 'change:caption', this._syncCaption, this );
|
||||||
this.model.on( 'change:percent', this.progress, this );
|
this.model.on( 'change:percent', this.progress, this );
|
||||||
|
this.model.on( 'change:album', this._syncAlbum, this );
|
||||||
|
this.model.on( 'change:artist', this._syncArtist, this );
|
||||||
|
|
||||||
// Update the selection.
|
// Update the selection.
|
||||||
this.model.on( 'add', this.select, this );
|
this.model.on( 'add', this.select, this );
|
||||||
@ -443,6 +444,7 @@
|
|||||||
|
|
||||||
this.on( 'content:render:edit-metadata', this.editMetadataContent, this );
|
this.on( 'content:render:edit-metadata', this.editMetadataContent, this );
|
||||||
this.on( 'content:render:edit-image', this.editImageContentUgh, this );
|
this.on( 'content:render:edit-image', this.editImageContentUgh, this );
|
||||||
|
this.on( 'close', this.detach );
|
||||||
|
|
||||||
// Only need a tab to Edit Image for images.
|
// Only need a tab to Edit Image for images.
|
||||||
if ( 'undefined' !== typeof this.model && this.model.get( 'type' ) === 'image' ) {
|
if ( 'undefined' !== typeof this.model && this.model.get( 'type' ) === 'image' ) {
|
||||||
@ -465,12 +467,12 @@
|
|||||||
} );
|
} );
|
||||||
|
|
||||||
// Completely destroy the modal DOM element when closing it.
|
// Completely destroy the modal DOM element when closing it.
|
||||||
this.modal.close = function() {
|
this.modal.on( 'close', function() {
|
||||||
self.modal.remove();
|
self.modal.remove();
|
||||||
$( 'body' ).off( 'keydown.media-modal' ); /* remove the keydown event */
|
$( 'body' ).off( 'keydown.media-modal' ); /* remove the keydown event */
|
||||||
|
|
||||||
self.resetRoute();
|
self.resetRoute();
|
||||||
};
|
} );
|
||||||
|
|
||||||
this.modal.content( this );
|
this.modal.content( this );
|
||||||
this.modal.open();
|
this.modal.open();
|
||||||
|
@ -5032,7 +5032,9 @@
|
|||||||
// Ensure settings remain in sync between attachment views.
|
// Ensure settings remain in sync between attachment views.
|
||||||
_.each({
|
_.each({
|
||||||
caption: '_syncCaption',
|
caption: '_syncCaption',
|
||||||
title: '_syncTitle'
|
title: '_syncTitle',
|
||||||
|
artist: '_syncArtist',
|
||||||
|
album: '_syncAlbum'
|
||||||
}, function( method, setting ) {
|
}, function( method, setting ) {
|
||||||
/**
|
/**
|
||||||
* @param {Backbone.Model} model
|
* @param {Backbone.Model} model
|
||||||
|
@ -337,6 +337,17 @@ function wp_print_media_templates() {
|
|||||||
<span class="name"><?php _e('Title'); ?></span>
|
<span class="name"><?php _e('Title'); ?></span>
|
||||||
<input type="text" value="{{ data.title }}" {{ maybeReadOnly }} />
|
<input type="text" value="{{ data.title }}" {{ maybeReadOnly }} />
|
||||||
</label>
|
</label>
|
||||||
|
<# if ( 'audio' === data.type ) { #>
|
||||||
|
<?php foreach ( array(
|
||||||
|
'artist' => __( 'Artist' ),
|
||||||
|
'album' => __( 'Album' ),
|
||||||
|
) as $key => $label ) : ?>
|
||||||
|
<label class="setting" data-setting="<?php echo esc_attr( $key ) ?>">
|
||||||
|
<span class="name"><?php echo $label ?></span>
|
||||||
|
<input type="text" value="{{ data.<?php echo $key ?> || data.meta.<?php echo $key ?> || '' }}" />
|
||||||
|
</label>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
<# } #>
|
||||||
<label class="setting" data-setting="caption">
|
<label class="setting" data-setting="caption">
|
||||||
<span class="name"><?php _e('Caption'); ?></span>
|
<span class="name"><?php _e('Caption'); ?></span>
|
||||||
<textarea {{ maybeReadOnly }}>{{ data.caption }}</textarea>
|
<textarea {{ maybeReadOnly }}>{{ data.caption }}</textarea>
|
||||||
@ -352,15 +363,16 @@ function wp_print_media_templates() {
|
|||||||
<textarea {{ maybeReadOnly }}>{{ data.description }}</textarea>
|
<textarea {{ maybeReadOnly }}>{{ data.description }}</textarea>
|
||||||
</label>
|
</label>
|
||||||
<label class="setting">
|
<label class="setting">
|
||||||
<span class="name"><?php _e( 'Uploaded By' ); ?></span>
|
<span class="name"><?php _e( 'Uploaded By' ); ?></span>
|
||||||
<span class="value">{{ data.authorName }}</span>
|
<span class="value">{{ data.authorName }}</span>
|
||||||
</label>
|
</label>
|
||||||
<# if ( data.uploadedTo ) { #>
|
<# if ( data.uploadedTo ) { #>
|
||||||
<label class="setting">
|
<label class="setting">
|
||||||
<span class="name"><?php _e('Uploaded To'); ?></span>
|
<span class="name"><?php _e('Uploaded To'); ?></span>
|
||||||
<span class="value"><a href="{{ data.uploadedToLink }}">{{ data.uploadedToTitle }}</a></span>
|
<span class="value"><a href="{{ data.uploadedToLink }}">{{ data.uploadedToTitle }}</a></span>
|
||||||
</label>
|
</label>
|
||||||
<# } #>
|
<# } #>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user