Sha256: 9c01a01ddc7d3beb768f75b38733412ee7c33833fae270739b5fc547619e98fd

Contents?: true

Size: 1.04 KB

Versions: 2

Compression:

Stored size: 1.04 KB

Contents

export default function() 
{
	if ( $('.sortable').length > 0 ) 
	{
		// Initialize sortable item
		$('.sortable')
			.sortable({
		  	placeholder: "ui-state-highlight",
		  	update: function () {
					$.post(
						$(this).data('update-url'),
						$(this).sortable('serialize')
					)
		  	}
		  })
		  .disableSelection()

		// Check if sortable item needs handles
		$('.sortable').each( function()
		{			
			if ( $(this).find('.sortable--handle').length > 0 ) 
				{ $(this).sortable('option', 'handle', '.sortable--handle') }
			else
				{ $(this).addClass('sortable--no-handle') }
		})

	  $('.sortable--disabled').sortable('disable')
	}

	$(document).on( 'click', '.sortable--toggle', function( event )
	{
		event.preventDefault()
		let id = '#' + $( this ).data( 'repeater-id' )

		if ( $( id ).hasClass('sortable--disabled') )
			{ $( id ).sortable('enable') }
		else
			{ $( id ).sortable('disable') }

	 	$( id ).toggleClass('sortable--disabled')
	 	$( id ).toggleClass('sortable--enabled')
	 	$( this ).children('.sortable--toggle-text').toggle()
	})
}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
binda-0.0.3 app/assets/javascripts/binda/components/sortable.js
binda-0.0.2 app/assets/javascripts/binda/components/sortable.js