/* global redux_change */ /*global redux_change, redux*/ (function( $ ) { "use strict"; $.redux.group = $.group || {}; $( document ).ready( function() { //Group functionality //$.redux.group(); } ); $.redux.group = function() { $( "#redux-groups-accordion" ) .accordion( { header: "> div > h3", collapsible: true, active: false, heightStyle: "content", icons: { "header": "ui-icon-plus", "activeHeader": "ui-icon-minus" } } ) .sortable( { axis: "y", handle: "h3", stop: function( event, ui ) { // IE doesn't register the blur when sorting // so trigger focusout handlers to remove .ui-state-focus ui.item.children( "h3" ).triggerHandler( "focusout" ); var inputs = $( 'input.slide-sort' ); inputs.each( function( idx ) { $( this ).val( idx ); } ); } } ); $( '.redux-groups-accordion-group input[data-title="true"]' ).on( 'keyup', function( event ) { $( this ).closest( '.redux-groups-accordion-group' ).find( '.redux-groups-header' ).text( event.target.value ); $( this ).closest( '.redux-groups-accordion-group' ).find( '.slide-title' ).val( event.target.value ); } ); $( '.redux-groups-remove' ).live( 'click', function() { redux_change( $( this ) ); $( this ).parent().find( 'input[type="text"]' ).val( '' ); $( this ).parent().find( 'input[type="hidden"]' ).val( '' ); $( this ).parent().parent().slideUp( 'medium', function() { $( this ).remove(); } ); } ); $( '.redux-groups-add' ).click( function() { var newSlide = $( this ).prev().find( '.redux-dummy' ).clone( true ).show(); var slideCounter = $( this ).parent().find( '.redux-dummy-slide-count' ); // Count # of slides var slideCount = slideCounter.val(); // Update the slideCounter slideCounter.val( parseInt( slideCount ) + 1 ); // REMOVE var slideCount1 = slideCount*1 + 1; //$(newSlide).find('h3').text('').append('New Group'); $( this ).prev().append( newSlide ); // Remove dummy classes from newSlide $( newSlide ).removeClass( "redux-dummy" ); $( newSlide ).find( 'input[type="text"], input[type="hidden"], textarea , select' ).each( function() { var attr_name = $( this ).data( 'name' ); var attr_id = $( this ).attr( 'id' ); // For some browsers, `attr` is undefined; for others, // `attr` is false. Check for both. if ( typeof attr_id !== 'undefined' && attr_id !== false ) { $( this ).attr( "id", $( this ).attr( "id" ).replace( "@", slideCount ) ); } if ( typeof attr_name !== 'undefined' && attr_name !== false ) { $( this ).attr( "name", $( this ).data( "name" ).replace( "@", slideCount ) ); } if ( $( this ).prop( "tagName" ) == 'SELECT' ) { //we clean select2 first $( newSlide ).find( '.select2-container' ).remove(); $( newSlide ).find( 'select' ).removeClass( 'select2-offscreen' ); } $( this ).val( '' ); if ( $( this ).hasClass( 'slide-sort' ) ) { $( this ).val( slideCount ); } } ); } ); }; })( jQuery );