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);
+ });
+}