54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
import $ from 'jquery';
|
|
import Sortable from 'sortablejs';
|
|
import PageFilters, { Instance as PageFiltersInstance } from './filter';
|
|
import Page from './page';
|
|
|
|
const pad = (n, s) => (`000${n}`).substr(-s);
|
|
|
|
// Pages Ordering
|
|
let Ordering = null;
|
|
let orderingElement = $('#ordering');
|
|
if (orderingElement.length) {
|
|
Ordering = new Sortable(orderingElement.get(0), {
|
|
filter: '.ignore',
|
|
onUpdate: function() {
|
|
/* Old single page index behavior
|
|
|
|
let item = $(event.item);
|
|
let index = orderingElement.children().index(item) + 1;
|
|
$('[data-order]').val(index);
|
|
*/
|
|
|
|
let indexes = [];
|
|
const children = orderingElement.children();
|
|
const padZero = (children.length + '').split('').length;
|
|
children.each((index, item) => {
|
|
item = $(item);
|
|
indexes.push(item.data('id'));
|
|
item.find('.page-order').text(`${pad(index + 1, padZero)}.`);
|
|
});
|
|
|
|
$('[data-order]').val(indexes.join(','));
|
|
}
|
|
});
|
|
|
|
$(document).on('input', '[name="data[folder]"]', (event) => {
|
|
const target = $(event.currentTarget);
|
|
const activeOrder = $('[data-id][data-active-id]');
|
|
|
|
activeOrder.data('id', target.val());
|
|
|
|
Ordering.options.onUpdate();
|
|
});
|
|
|
|
}
|
|
|
|
export default {
|
|
Ordering,
|
|
Page,
|
|
PageFilters: {
|
|
PageFilters,
|
|
Instance: PageFiltersInstance
|
|
}
|
|
};
|