function UM_Drag_and_Drop() { jQuery('.um-admin-drag-col,.um-admin-drag-group').sortable({ items: '.um-admin-drag-fld', connectWith: '.um-admin-drag-col,.um-admin-drag-group', placeholder: "um-fld-placeholder", forcePlaceholderSize:true, update: function(event, ui){ jQuery('#publish').attr('disabled','disabled'); if ( ui.item.hasClass('um-field-type-group') && ui.item.parents('.um-field-type-group').length > 0 ) { jQuery('.um-admin-drag-col,.um-admin-drag-group').sortable('cancel'); jQuery('#publish').prop('disabled', false); } else { UM_Change_Field_Col(); UM_Change_Field_Grp(); UM_Rows_Refresh(); } } }); jQuery('.um-admin-drag-rowsubs').sortable({ items: '.um-admin-drag-rowsub', placeholder: "um-rowsub-placeholder", forcePlaceholderSize:true, zIndex: 9999999999, update: function(){ jQuery('#publish').attr('disabled','disabled'); UM_update_subrows(); UM_Rows_Refresh(); } }).disableSelection(); jQuery('.um-admin-drag-rowsub').sortable({ items: '.um-admin-drag-col', zIndex: 9999999999, update: function(){ jQuery('#publish').attr('disabled','disabled'); row = jQuery(this); row.find('.um-admin-drag-col').removeClass('cols-1 cols-2 cols-3 cols-last cols-middle'); row.find('.um-admin-drag-col').addClass('cols-' + row.find('.um-admin-drag-col').length ); row.find('.um-admin-drag-col:last').addClass('cols-last'); if ( row.find('.um-admin-drag-col').length == 3 ) {row.find('.um-admin-drag-col:eq(1)').addClass('cols-middle');} UM_Change_Field_Col(); UM_Change_Field_Grp(); UM_Rows_Refresh(); } }).disableSelection(); jQuery('.um-admin-drag-ajax').sortable({ items: '.um-admin-drag-row', handle: ".um-admin-drag-row-start", zIndex: 9999999999, placeholder: "um-row-placeholder", forcePlaceholderSize:true, out: function(){ jQuery('.tipsy').remove(); }, update: function(){ jQuery('#publish').attr('disabled','disabled'); UM_update_rows(); UM_Change_Field_Col(); UM_Change_Field_Grp(); UM_Rows_Refresh(); } }).disableSelection(); } function UM_update_rows() { var c = 0; jQuery('a[data-remove_element="um-admin-drag-row"]').remove(); jQuery('.um-admin-drag-row').each(function(){ c++; row = jQuery(this); if ( c != 1 ) { row.find('.um-admin-drag-row-icons').append( '' ); } }); } function UM_update_subrows(){ jQuery('a[data-remove_element="um-admin-drag-rowsub"]').remove(); jQuery('.um-admin-drag-row').each(function(){ c = 0; jQuery(this).find('.um-admin-drag-rowsub').each(function(){ c++; row = jQuery(this); if ( c != 1 ) { row.find('.um-admin-drag-rowsub-icons').append(''); } }); }); } function UM_Change_Field_Col(){ jQuery('.um-admin-drag-col .um-admin-drag-fld').each(function(){ cols = jQuery(this).parents('.um-admin-drag-rowsub').find('.um-admin-drag-col').length; col = jQuery(this).parents('.um-admin-drag-col'); if ( col.hasClass('cols-last') ) { if ( cols == 1 ) { saved_col = 1; } if ( cols == 3 ) { saved_col = 3; } else if ( cols == 2 ) { saved_col = 2; } } else if ( col.hasClass('cols-middle') && cols == 3 ) { saved_col = 2; } else { saved_col = 1; } jQuery(this).data('column', saved_col); }); } function UM_Change_Field_Grp(){ jQuery('.um-admin-drag-col .um-admin-drag-fld:not(.um-field-type-group)').each(function(){ if ( jQuery(this).parents('.um-admin-drag-group').length == 0 ){ jQuery(this).data('group', ''); } else { jQuery(this).data('group', jQuery(this).parents('.um-admin-drag-fld.um-field-type-group').data('key') ); } }); } function UM_Rows_Refresh(){ jQuery('.um_update_order_fields').empty(); /* ROWS */ var c = 0; jQuery('.um-admin-drag-row').each(function(){ c++; row = jQuery(this); col_num = ''; row.find('.um-admin-drag-rowsub').each(function(){ subrow = jQuery(this); subrow.find('.um-admin-drag-col').removeClass('cols-1 cols-2 cols-3 cols-last cols-middle'); subrow.find('.um-admin-drag-col').addClass('cols-' + subrow.find('.um-admin-drag-col').length ); subrow.find('.um-admin-drag-col:last').addClass('cols-last'); if ( subrow.find('.um-admin-drag-col').length == 3 ) {subrow.find('.um-admin-drag-col:eq(1)').addClass('cols-middle');} if ( !col_num ) { col_num = subrow.find('.um-admin-drag-col').length; } else { col_num = col_num + ':' + subrow.find('.um-admin-drag-col').length; } }); jQuery('.um_update_order_fields').append(''); sub_rows_count = row.find('.um-admin-drag-rowsub').length; var origin_id = jQuery(this).attr('data-original'); jQuery('.um_update_order_fields').append(''); jQuery('.um_update_order_fields').append(''); jQuery('.um_update_order_fields').append(''); jQuery(this).attr('data-original', '_um_row_'+c ); }); /* FIELDS */ var order; order = 0; jQuery('.um-admin-drag-col .um-admin-drag-fld').each(function(){ if ( !jQuery(this).hasClass('group') ) { var group = jQuery(this).data('group'); if ( group != '' ) { if ( jQuery('.um-admin-drag-fld.um-field-type-group.' + group ).find('.um-admin-drag-group').find( jQuery(this) ).length == 0 ) { jQuery(this).appendTo( jQuery('.um-admin-drag-fld.um-field-type-group.' + group ).find('.um-admin-drag-group') ); } else { //jQuery(this).prependTo( jQuery('.um-admin-drag-fld.um-field-type-group.' + group ).find('.um-admin-drag-group') ); } jQuery('.um_update_order_fields').append(''); } else { jQuery('.um_update_order_fields').append(''); } } order++; row = jQuery(this).parents('.um-admin-drag-row').index()+1; row = '_um_row_'+row; saved_col = jQuery(this).data('column'); if ( saved_col == 3 ){ jQuery(this).appendTo( jQuery(this).parents('.um-admin-drag-rowsub').find('.um-admin-drag-col:eq(2)') ); } if ( saved_col == 2 ){ jQuery(this).appendTo( jQuery(this).parents('.um-admin-drag-rowsub').find('.um-admin-drag-col:eq(1)') ); } sub_row = jQuery(this).parents('.um-admin-drag-rowsub').index(); jQuery('.um_update_order_fields').append(''); jQuery('.um_update_order_fields').append(''); jQuery('.um_update_order_fields').append(''); jQuery('.um_update_order_fields').append(''); }); UM_Drag_and_Drop(); UM_Add_Icon(); jQuery.ajax({ url: wp.ajax.settings.url, type: 'POST', data: jQuery( '.um_update_order' ).serialize(), success: function(){ jQuery('#publish').prop('disabled', false); } }); } function UM_Add_Icon(){ var add_icon_html = ''; jQuery('.um-admin-drag-col').each(function(){ if ( jQuery(this).find('.um-admin-drag-add-field').length == 0 ) { jQuery(this).append(add_icon_html); } else { jQuery(this).find('.um-admin-drag-add-field').remove(); jQuery(this).append(add_icon_html); } }); jQuery('.um-admin-drag-group').each(function(){ if ( jQuery(this).find('.um-admin-drag-add-field').length == 0 ) { jQuery(this).append(add_icon_html); } else { jQuery(this).find('.um-admin-drag-add-field').remove(); jQuery(this).append(add_icon_html); } }); } jQuery(document).ready(function() { if ( !jQuery('.um-admin-drag').length ) { return false; } UM_Drag_and_Drop(); /* add field to respected area */ jQuery( document.body ).on('click', 'a.um-admin-drag-add-field', function() { in_row = jQuery(this).parents('.um-admin-drag-row').index(); in_sub_row = jQuery(this).parents('.um-admin-drag-rowsub').index(); if ( jQuery(this).parents('.um-admin-drag-rowsub').find('.um-admin-drag-col').length == 1 ) { in_column = 1; } else { if ( jQuery(this).parents('.um-admin-drag-col').hasClass('cols-middle')){ in_column = 2; } else if ( jQuery(this).parents('.um-admin-drag-col').hasClass('cols-last') ) { if ( jQuery(this).parents('.um-admin-drag-rowsub').find('.um-admin-drag-col').length == 3 ) { in_column = 3; } else { in_column = 2; } } else { in_column = 1; } } if ( jQuery(this).parents('.um-admin-drag-group').length ) { in_group = jQuery(this).parents('.um-admin-drag-fld.um-field-type-group').data('key'); } else { in_group = ''; } jQuery('.um-col-demon-settings').data('in_row', in_row); jQuery('.um-col-demon-settings').data('in_sub_row', in_sub_row); jQuery('.um-col-demon-settings').data('in_column', in_column); jQuery('.um-col-demon-settings').data('in_group', in_group); }); /* add row */ jQuery(document.body).on('click', '*[data-row_action="add_row"]', function(){ var dragg = jQuery('.um-admin-drag-ajax'); dragg.append( '