( function ( $ ) { "use strict"; $( function() { /** * WordPress 3.5 Media Uploader Script/Tutorial - http://mikejolley.com/2012/12/using-the-new-wordpress-3-5-media-uploader-in-plugins/ * License: None (public domain) * Copyright: Mike Jolley, http://mikejolley.com/ * * We've modified this to suit our needs. */ var sds_media_frame; jQuery( '.sds-theme-options-upload' ).on( 'click', function( e ) { var _this = $( this ); e.preventDefault(); // If the media frame already exists, reopen it if ( sds_media_frame ) { sds_media_frame.open(); return; } // Create the media frame sds_media_frame = wp.media.frames.sds_media_frame = wp.media( { title: _this.attr( 'data-media-title' ), button: { text: _this.attr( 'data-media-button-text' ) }, multiple: false } ); // When an image is selected, run a callback sds_media_frame.on( 'select', function() { // We set multiple to false so only get one image from the uploader var attachment = sds_media_frame.state().get( 'selection' ).first().toJSON(); if ( attachment.hasOwnProperty( 'type' ) && attachment.type === 'image' ) { _this.parent().find( '.sds-theme-options-upload-value' ).val( attachment.id ); _this.parent().find( '.sds-theme-options-preview' ).html( 'Logo' ); var remove_logo_btn = _this.parent().find( '.button-remove-logo' ); if ( remove_logo_btn.attr( 'data-init-empty' ) ) { remove_logo_btn.attr( 'disabled', false ); remove_logo_btn.on( 'click', function ( e ) { e.preventDefault(); _this.parent().find( '.sds-theme-options-upload-value' ).val( '' ); _this.parent().find( '.sds-theme-options-preview' ).html( '
No logo selected.
' ); remove_logo_btn.attr( 'disabled', true ); } ); } } else _this.parent().find( '.sds-theme-options-preview' ).html( '
Please choose an image from the Media Library for the logo.
' ); } ); // Open the modal sds_media_frame.open(); } ); /** * Social Media - RSS (hide custom feed url box when default is used) */ $( '#sds_theme_options_social_media_rss_url_use_site_feed' ).on( 'change', function( e ) { var _this = $( this ), _this_parent = _this.parents( 'td' ); if ( _this.is( ':checked' ) ) _this_parent.find( '#sds_theme_options_social_media_rss_url_custom' ).slideUp(); else _this_parent.find( '#sds_theme_options_social_media_rss_url_custom' ).slideDown(); } ); if ( $( '#sds_theme_options_social_media_rss_url_use_site_feed' ).is( ':checked' ) ) $( '#sds_theme_options_social_media_rss_url_use_site_feed' ).parents( 'td' ).find( '#sds_theme_options_social_media_rss_url_custom' ).hide(); /** * Navigation Tabs */ $( '.sds-theme-options-tab-wrap a' ).on( 'click', function ( e ) { var _this = $( this ), tab_id_prefix = _this.attr( 'href' ); // Remove active classes $( '.sds-theme-options-tab-content' ).removeClass( 'sds-theme-options-tab-content-active' ); $( '.sds-theme-options-tab' ).removeClass( 'nav-tab-active' ); // Activate new tab $( tab_id_prefix + '-tab-content' ).addClass( 'sds-theme-options-tab-content-active' ); _this.addClass( 'nav-tab-active' ); $( '#sds_theme_options_tab' ).val( tab_id_prefix ); // Hide submit buttons on Help/Support tab if ( tab_id_prefix === '#help-support' ) $( '.submit' ).hide(); else if ( ! $( '.submit' ).is( ':visible' ) ) $( '.submit' ).show(); } ); /** * Window Hash */ if ( window.location.hash && $( window.location.hash + '-tab-content' ).length ) { var tab_id_prefix = window.location.hash; // Remove active classes $( '.sds-theme-options-tab-content' ).removeClass( 'sds-theme-options-tab-content-active' ); $( '.sds-theme-options-tab' ).removeClass( 'nav-tab-active' ); // Activate tab $( tab_id_prefix + '-tab-content' ).addClass( 'sds-theme-options-tab-content-active' ); $( tab_id_prefix + '-tab').addClass( 'nav-tab-active' ); $( '#sds_theme_options_tab' ).val( tab_id_prefix ); // Hide submit buttons on Help/Support tab if ( tab_id_prefix === '#help-support' ) $( '.submit' ).hide(); else if ( ! $( '.submit' ).is( ':visible' ) ) $( '.submit' ).show(); } /** * Settings errors * * This functionality taken from /wp-admin/js/common.js and modified for H3s (smaller nav tabs). */ // Move .updated and .error alert boxes, don't move boxes designed to be inline, hide all boxes $( 'div.wrap h3:first' ).nextAll( 'div.updated, div.error' ).addClass( 'below-h3' ); $( 'div.updated, div.error' ).not( '.below-h3, .inline' ).insertAfter( $( 'div.wrap h3:first' ) ); $( 'div.updated, div.error' ).not( '.below-h3, .inline' ).attr( 'style', function( index, value ) { return ( value ) ? value + ' display: none !important;' : 'display: none !important;' } ); // Only show errors associated with the Theme Options panel $( 'div.updated[id*="settings_updated"], div.updated[id*="sds_theme_options"], div.error[id*="sds_theme_options"]' ).not( '.below-h3, .inline' ).show(); } ); }( jQuery ) );