deblan.io-murph/assets/js/admin/modules/sortable.js

34 lines
784 B
JavaScript
Raw Normal View History

2021-05-27 16:48:03 +02:00
const $ = require('jquery')
const Sortable = require('sortablejs').Sortable
module.exports = () => {
2021-06-15 14:26:20 +02:00
$('*[data-sortable]').each((i, list) => {
const element = $(list)
const route = element.attr('data-sortable-route')
2021-05-27 16:48:03 +02:00
2021-06-23 10:19:49 +02:00
return new Sortable(list, {
2021-06-15 14:26:20 +02:00
handle: '*[data-sortable-item]',
sort: true,
animation: 150,
fallbackTolerance: 3,
onEnd: (e) => {
if (!route) {
return
}
2021-05-27 16:48:03 +02:00
2021-06-15 14:26:20 +02:00
const items = element.find('*[data-sortable-item]')
const datas = { items: [] }
2021-05-27 16:48:03 +02:00
2021-06-15 14:26:20 +02:00
items.each((order, v) => {
datas.items[$(v).attr('data-sortable-item')] = order + 1
})
2021-05-27 16:48:03 +02:00
2021-06-15 14:26:20 +02:00
$.post(route, datas)
.always((data) => {
2021-06-23 10:19:49 +02:00
document.location.reload()
2021-06-15 14:26:20 +02:00
})
}
})
})
2021-05-27 16:48:03 +02:00
}