rilwis/meta-box

View on GitHub
js/image-advanced.js

Summary

Maintainability
B
4 hrs
Test Coverage
( function ( $, rwmb ) {
    'use strict';

    var views = rwmb.views = rwmb.views || {},
        MediaField = views.MediaField,
        MediaItem = views.MediaItem,
        MediaList = views.MediaList,
        ImageField;

    ImageField = views.ImageField = MediaField.extend( {
        createList: function () {
            this.list = new MediaList( {
                controller: this.controller,
                itemView: MediaItem.extend( {
                    className: 'rwmb-image-item',
                    template: wp.template( 'rwmb-image-item' )
                } )
            } );
        }
    } );

    /**
     * Initialize image fields
     */
    function initImageField() {
        var $this = $( this ),
            view = $this.data( 'view' );

        if ( view ) {
            return;
        }

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

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

    function init( e ) {
        $( e.target ).find( '.rwmb-image_advanced' ).each( initImageField );
    }

    rwmb.$document
        .on( 'mb_ready', init )
        .on( 'clone', '.rwmb-image_advanced', initImageField );
} )( jQuery, rwmb );