jQuery( function( $ ){ // Show & Hide Custom Meta Link $(document).on( 'change', '.a3-portfolio-meta-tag-link', function(){ if ( $(this).val() != '0' ) { $(this).parents('tr').siblings('tr').find('.portfolio_meta_link_url_row').slideUp(); } else { $(this).parents('tr').siblings('tr').find('.portfolio_meta_link_url_row').slideDown(); } }); // Product gallery file uploads var portfolio_gallery_frame; var $image_gallery_ids = $('#portfolio_image_gallery'); var $portfolio_images = $('#portfolio_images_container ul.portfolio_images'); $('.add_portfolio_images').on( 'click', 'a', function( event ) { var $el = $(this); var attachment_ids = $image_gallery_ids.val(); event.preventDefault(); // If the media frame already exists, reopen it. if ( portfolio_gallery_frame ) { portfolio_gallery_frame.open(); return; } // Create the media frame. portfolio_gallery_frame = wp.media.frames.portfolio_gallery = wp.media({ // Set the title of the modal. title: $el.data('choose'), button: { text: $el.data('update'), }, states : [ new wp.media.controller.Library({ title: $el.data('choose'), filterable : 'all', multiple: true, }) ] }); // When an image is selected, run a callback. portfolio_gallery_frame.on( 'select', function() { var selection = portfolio_gallery_frame.state().get('selection'); selection.map( function( attachment ) { attachment = attachment.toJSON(); if ( attachment.id ) { attachment_ids = attachment_ids ? attachment_ids + "," + attachment.id : attachment.id; $portfolio_images.append('\
  • \ \ \
  • '); } }); $image_gallery_ids.val( attachment_ids ); }); // Finally, open the modal. portfolio_gallery_frame.open(); }); // Image ordering $portfolio_images.sortable({ items: 'li.image', cursor: 'move', scrollSensitivity:40, forcePlaceholderSize: true, forceHelperSize: false, helper: 'clone', opacity: 0.65, placeholder: 'metabox-sortable-placeholder', start:function(event,ui){ ui.item.css('background-color','#f6f6f6'); }, stop:function(event,ui){ ui.item.removeAttr('style'); }, update: function(event, ui) { var attachment_ids = ''; $('#portfolio_images_container ul li.image').css('cursor','default').each(function() { var attachment_id = $(this).attr( 'data-attachment_id' ); attachment_ids = attachment_ids + attachment_id + ','; }); $image_gallery_ids.val( attachment_ids ); } }); // Remove images $('#portfolio_images_container').on( 'click', 'a.delete', function() { $(this).closest('li.image').remove(); var attachment_ids = ''; $('#portfolio_images_container ul li.image').css('cursor','default').each(function() { var attachment_id = $(this).attr( 'data-attachment_id' ); attachment_ids = attachment_ids + attachment_id + ','; }); $image_gallery_ids.val( attachment_ids ); //runTipTip(); return false; }); // Show & Hide the Single Layout Container $(document).ready(function() { if ( $("input.a3_portfolio_meta_layout_column:checked").val() == '1') { $(".portfolio_single_2_column_container").hide(); } else { $(".portfolio_single_2_column_container").show(); } $(document).on( "a3rev-ui-onoff_checkbox-switch", '.a3_portfolio_meta_layout_column', function( event, value, status ) { if ( status == 'true' ) { $(".portfolio_single_2_column_container").hide(); } else { $(".portfolio_single_2_column_container").show(); } }); }); // ATTRIBUTE TABLES $( document.body ) .on( 'a3-portfolio-enhanced-select-init', function() { // Regular select boxes $( ':input.a3-portfolio-enhanced-select, :input.chosen_select' ).filter( ':not(.enhanced)' ).each( function() { $( this ).addClass( 'enhanced' ).chosen(); }); }); // Initial order var portfolio_attribute_items = $('.portfolio_attributes').find('.portfolio_attribute').get(); portfolio_attribute_items.sort(function(a, b) { var compA = parseInt( $( a ).attr( 'rel' ), 10 ); var compB = parseInt( $( b ).attr( 'rel' ), 10 ); return (compA < compB) ? -1 : (compA > compB) ? 1 : 0; }); $( portfolio_attribute_items ).each( function( idx, itm ) { $( '.portfolio_attributes' ).append(itm); }); $( '.portfolio_attributes .portfolio_attribute' ).each( function( index, el ) { if ( $( el ).css( 'display' ) !== 'none' && $( el ).is( '.taxonomy' ) ) { $( 'select.attribute_taxonomy' ).find( 'option[value="' + $( el ).data( 'attribute-id' ) + '"]' ).attr( 'disabled', 'disabled' ); } }); // Add rows $( 'button.add_attribute' ).on( 'click', function() { var attribute_id = $( 'select.attribute_taxonomy' ).val(); if ( '' == attribute_id ) { window.alert( a3_portfolio_admin_meta_boxes.select_attribute_message ); return false; } var $wrapper = $( this ).closest( '#portfolio_attributes_panel' ); var $attributes = $wrapper.find( '.portfolio_attributes' ); var data = { action: 'a3_portfolio_add_attribute', attribute_id: parseInt( attribute_id ), security: a3_portfolio_admin_meta_boxes.add_attribute_nonce }; $wrapper.block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); $.post( a3_portfolio_admin_meta_boxes.ajax_url, data, function( response ) { $attributes.append( response ); $( document.body ).trigger( 'a3-portfolio-enhanced-select-init' ); $wrapper.unblock(); $( document.body ).trigger( 'a3_portfolio_added_attribute' ); }); if ( attribute_id ) { $( 'select.attribute_taxonomy' ).find( 'option[value="' + attribute_id + '"]' ).attr( 'disabled','disabled' ); $( 'select.attribute_taxonomy' ).val( '' ); } return false; }); $( '.portfolio_attributes' ).on( 'click', 'button.select_all_attributes', function() { $( this ).closest( 'td' ).find( 'select option' ).attr( 'selected', 'selected' ); $( this ).closest( 'td' ).find( 'select' ).trigger("chosen:updated"); return false; }); $( '.portfolio_attributes' ).on( 'click', 'button.select_no_attributes', function() { $( this ).closest( 'td' ).find( 'select option' ).removeAttr( 'selected' ); $( this ).closest( 'td' ).find( 'select').trigger("chosen:updated"); return false; }); $( '.portfolio_attributes' ).on( 'click', '.remove_row', function() { if ( window.confirm( a3_portfolio_admin_meta_boxes.remove_attribute ) ) { var $parent = $( this ).parent().parent(); $parent.remove(); $( 'select.attribute_taxonomy' ).find( 'option[value="' + $parent.data( 'attribute-id' ) + '"]' ).removeAttr( 'disabled' ); } return false; }); // Attribute ordering $( '.portfolio_attributes' ).sortable({ items: '.portfolio_attribute', cursor: 'move', axis: 'y', handle: 'h3', scrollSensitivity: 40, forcePlaceholderSize: true, helper: 'clone', opacity: 0.65, placeholder: 'a3-metabox-item-sortable-placeholder', start: function( event, ui ) { ui.item.css( 'background-color', '#f6f6f6' ); }, stop: function( event, ui ) { ui.item.removeAttr( 'style' ); } }); // Add a new attribute (via ajax) $( '.portfolio_attributes' ).on( 'click', 'button.add_new_attribute', function() { $( '.portfolio_attributes' ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); var $wrapper = $( this ).closest( '.portfolio_attribute' ); var attribute_id = $wrapper.data( 'attribute-id' ); var new_attribute_name = window.prompt( a3_portfolio_admin_meta_boxes.new_attribute_prompt ); if ( new_attribute_name ) { var data = { action: 'a3_portfolio_add_new_attribute', attribute_id: attribute_id, term: new_attribute_name, security: a3_portfolio_admin_meta_boxes.add_attribute_nonce }; $.post( a3_portfolio_admin_meta_boxes.ajax_url, data, function( response ) { if ( response.error ) { // Error window.alert( response.error ); } else if ( response.slug ) { // Success $wrapper.find( 'select.attribute_values' ).append( '' ); $wrapper.find( 'select.attribute_values' ).trigger("chosen:updated"); } $( '.portfolio_attributes' ).unblock(); }); } else { $( '.portfolio_attributes' ).unblock(); } return false; }); // Save attributes $( '.save_attributes' ).on( 'click', function() { $( '#a3_portfolio_data_meta_box' ).block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); var data = { post_id: a3_portfolio_admin_meta_boxes.post_id, data: $( '.portfolio_attributes' ).find( 'input, select, textarea' ).serialize(), action: 'a3_portfolio_save_attributes', security: a3_portfolio_admin_meta_boxes.save_attributes_nonce }; $.post( a3_portfolio_admin_meta_boxes.ajax_url, data, function() { $( '#a3_portfolio_data_meta_box' ).unblock(); var this_page = window.location.toString(); this_page = this_page.replace( 'post-new.php?', 'post.php?post=' + a3_portfolio_admin_meta_boxes.post_id + '&action=edit&' ); }); }); });