rilwis/meta-box

View on GitHub
js/image-upload.js

Summary

Maintainability
A
1 hr
Test Coverage
( function ( $, rwmb ) {
    'use strict';

    var views = rwmb.views = rwmb.views || {},
        ImageField = views.ImageField,
        ImageUploadField,
        UploadButton = views.UploadButton;

    ImageUploadField = views.ImageUploadField = ImageField.extend( {
        createAddButton: function () {
            this.addButton = new UploadButton( {controller: this.controller} );
        }
    } );

    function initImageUpload() {
        var $this = $( this ),
            view = $this.data( 'view' );

        if ( view ) {
            return;
        }

        view = new ImageUploadField( { input: this } );

        $this.siblings( '.rwmb-media-view' ).remove();
        $this.after( view.el );

        // Init uploader after view is inserted to make wp.Uploader works.
        view.addButton.initUploader( $this );

        $this.data( 'view', view );
    }

    function init( e ) {
        $( e.target ).find( '.rwmb-image_upload, .rwmb-plupload_image' ).each( initImageUpload );
    }

    rwmb.$document
        .on( 'mb_ready', init )
        .on( 'clone', '.rwmb-image_upload, .rwmb-plupload_image', initImageUpload )
} )( jQuery, rwmb );