Skip to content

Instantly share code, notes, and snippets.

@mattheu
Created February 4, 2015 11:03
Show Gist options
  • Save mattheu/48b3d5e2728026a8cf82 to your computer and use it in GitHub Desktop.
Save mattheu/48b3d5e2728026a8cf82 to your computer and use it in GitHub Desktop.
var CMBAdmin = function() {
var self = this;
self.init = function() {
self.$contentFormatSelect = jQuery('.field#content-format select' ).first();
self.$metaboxes = self.$contentFormatSelecself.closest('.cmb_metabox');
self.$videoField = jQuery('.field#content-video' ).closest('.cmb-row');
self.$audioField = jQuery('.field#content-audio' ).closest('.cmb-row');
self.$playlistField = jQuery('.field#content-playlist' ).closest('.cmb-row');
self.$pdfField = jQuery('.field#content-pdf' ).closest('.cmb-row');
self.$specialDocField = jQuery('.field#content-special-doc' ).closest('.cmb-row');
if ( self.$specialDocField.length > 0 ) {
self.$specialDocField.find( '.select2-added' ).removeClass('select2-added').select2( 'destroy' );
}
self.toggleVisibleFields();
self.$contentFormatSelecself.change( self.toggleVisibleFields );
}
self.toggleVisibleFields = function() {
var currentType = self.$contentFormatSelecself.val();
if ( 'video' === currentType ) {
self.$videoField.appendTo( self.$metaboxes );
self.$audioField.remove();
self.$pdfField.remove();
self.$specialDocField.remove();
self.$playlistField.remove();
} else if ( 'audio' === currentType ) {
self.$audioField.appendTo( self.$metaboxes );
self.$videoField.remove();
self.$pdfField.remove();
self.$specialDocField.remove();
self.$playlistField.remove();
} else if ( 'pdf' === currentType ) {
self.$pdfField.appendTo( self.$metaboxes );
self.$audioField.remove();
self.$videoField.remove();
self.$specialDocField.remove();
self.$playlistField.remove();
} else if ( 'special_doc' === currentType ) {
self.$specialDocField.appendTo( self.$metaboxes );
self.$audioField.remove();
self.$videoField.remove();
self.$pdfField.remove();
self.$playlistField.remove();
cmbSelectInit();
} else if ( 'playlist' === currentType ) {
self.$playlistField.appendTo( self.$metaboxes );
self.$audioField.remove();
self.$videoField.remove();
self.$pdfField.remove();
self.$specialDocField.remove();
} else {
self.$videoField.remove();
self.$audioField.remove();
self.$pdfField.remove();
self.$specialDocField.remove();
self.$playlistField.remove();
}
}
}
jQuery(document).ready( function($) {
new CMBAdmin().init();
} );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment