balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

file-input.js (1155B)


      1 ( function ( $, rwmb ) {
      2 	'use strict';
      3 
      4 	var frame;
      5 
      6 	function openSelectPopup( e ) {
      7 		e.preventDefault();
      8 		var $el = $( this );
      9 
     10 		// Create a frame only if needed
     11 		if ( ! frame ) {
     12 			frame = wp.media( {
     13 				className: 'media-frame rwmb-file-frame',
     14 				multiple: false,
     15 				title: rwmbFileInput.frameTitle
     16 			} );
     17 		}
     18 
     19 		// Open media uploader
     20 		frame.open();
     21 
     22 		// Remove all attached 'select' event
     23 		frame.off( 'select' );
     24 
     25 		// Handle selection
     26 		frame.on( 'select', function () {
     27 			var url = frame.state().get( 'selection' ).first().toJSON().url;
     28 			$el.siblings( 'input' ).val( url ).trigger( 'change' ).siblings( 'a' ).removeClass( 'hidden' );
     29 		} );
     30 	}
     31 
     32 	function clearSelection( e ) {
     33 		e.preventDefault();
     34 		$( this ).addClass( 'hidden' ).siblings( 'input' ).val( '' ).trigger( 'change' );
     35 	}
     36 
     37 	function hideRemoveButtonWhenCloning() {
     38 		$( this ).siblings( '.rwmb-file-input-remove' ).addClass( 'hidden' );
     39 	}
     40 
     41 	rwmb.$document
     42 		.on( 'click', '.rwmb-file-input-select', openSelectPopup )
     43 		.on( 'click', '.rwmb-file-input-remove', clearSelection )
     44 		.on( 'clone', '.rwmb-file_input', hideRemoveButtonWhenCloning );
     45 } )( jQuery, rwmb );