app/assets/javascripts/binda/components/sortable.js in binda-0.1.3 vs app/assets/javascripts/binda/components/sortable.js in binda-0.1.4

- old
+ new

@@ -1,103 +1,108 @@ /** * SORTABLE */ - var sortableOptions = { - stop: function(event, ui){ ui.item.css('z-index', 0) }, - placeholder: "ui-state-highlight", - update: updateSortable - } + stop: function(event, ui) { + ui.item.css("z-index", 0); + }, + placeholder: "ui-state-highlight", + update: updateSortable +}; -export default function() -{ - if ( $('.sortable').length > 0 ) - { +export default function() { + if ($(".sortable").length > 0) { // Initialize sortable item - $('.sortable').sortable( sortableOptions ) + $(".sortable").sortable(sortableOptions); // 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").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') + $(".sortable--disabled").sortable("disable"); } // If there is a sortable toggle button prepare the sortable items accordingly - if ( $('.sortable--toggle').length > 0 ) { setupSortableToggle() } + if ($(".sortable--toggle").length > 0) { + setupSortableToggle(); + } // Add event to any sortable toggle button // TODO: make this event available to element which aren't standard form repeaters - $(document).on('click', '.standard-form--repeater .sortable--toggle', toggleSortable) + $(document).on( + "click", + ".standard-form--repeater .sortable--toggle", + toggleSortable + ); } - -function setupSortableToggle() -{ - $('.sortable--toggle').each(function() - { - let id = '#' + $( this ).data('repeater-id') - $( id ).find('.form-item--collapsable').addClass('form-item--collapsed') - $( id ).find('.form-item--repeater-fields').each(close) - }) +function setupSortableToggle() { + $(".sortable--toggle").each(function() { + let id = "#" + $(this).data("repeater-id"); + $(id) + .find(".form-item--collapsable") + .addClass("form-item--collapsed"); + $(id) + .find(".form-item--repeater-fields") + .each(close); + }); } -function close() -{ - this.style.maxHeight = '0px' +function close() { + this.style.maxHeight = "0px"; } -function open() -{ +function open() { this.style.maxHeight = this.scrollHeight + "px"; } -function toggleSortable(event) -{ - event.preventDefault() - let id = '#' + $( this ).data('repeater-id') +function toggleSortable(event) { + event.preventDefault(); + let id = "#" + $(this).data("repeater-id"); - if ( $( id ).hasClass('sortable--disabled') ) - { - $( id ).sortable('enable') - $( id ).find('.form-item--repeater-fields').each(close) - $( id ).find('.form-item--collapsable').addClass('form-item--collapsed') + if ($(id).hasClass("sortable--disabled")) { + $(id).sortable("enable"); + $(id) + .find(".form-item--repeater-fields") + .each(close); + $(id) + .find(".form-item--collapsable") + .addClass("form-item--collapsed"); + } else { + $(id).sortable("disable"); } - else - { - $( id ).sortable('disable') - } - $( id ).toggleClass('sortable--disabled') - $( id ).toggleClass('sortable--enabled') - $( this ).children('.sortable--toggle-text').toggle() + $(id).toggleClass("sortable--disabled"); + $(id).toggleClass("sortable--enabled"); + $(this) + .children(".sortable--toggle-text") + .toggle(); } -function updateSortable() -{ - if ( $('.popup-warning').length > 0 ) - { - $(this).addClass('sortable--disabled') - $('.popup-warning--message').text( $(this).data('message') ) - $('.popup-warning').removeClass('popup-warning--hidden') - $(this).sortable('option','disabled', true) +function updateSortable() { + if ($(".popup-warning").length > 0) { + $(this).addClass("sortable--disabled"); + $(".popup-warning--message").text($(this).data("message")); + $(".popup-warning").removeClass("popup-warning--hidden"); + $(this).sortable("option", "disabled", true); } - let url = $(this).data('update-url') - let data = $(this).sortable('serialize') + let url = $(this).data("update-url"); + let data = $(this).sortable("serialize"); // If there is a pagination update accordingly - data = data.concat(`&id=${$(this).attr('id')}`) - $.post( url, data ).done( function(doneData) - { - $(doneData.id).sortable('option', 'disabled', false) - $('.popup-warning').addClass('popup-warning--hidden') - $(doneData.id).removeClass('sortable--disabled') - }).fail(function(failData){ - $('.popup-warning').addClass('popup-warning--hidden') - alert('Error: ' + failData.message) - }) -} \ No newline at end of file + data = data.concat(`&id=${$(this).attr("id")}`); + $.post(url, data) + .done(function(doneData) { + $(doneData.id).sortable("option", "disabled", false); + $(".popup-warning").addClass("popup-warning--hidden"); + $(doneData.id).removeClass("sortable--disabled"); + }) + .fail(function(failData) { + $(".popup-warning").addClass("popup-warning--hidden"); + alert("Error: " + failData.message); + }); +}