WIP: Implement CRUD, improve menu configuration

This commit is contained in:
Björn Fromme
2023-09-27 17:50:42 +02:00
parent c55fd85314
commit c528156959
43 changed files with 2187 additions and 3475 deletions
+34
View File
@@ -0,0 +1,34 @@
import { Controller } from '@hotwired/stimulus'
import Sortable from 'sortablejs'
export default class extends Controller {
static values = { endpoint: String }
static targets = ['item', 'handle']
connect() {
new Sortable(this.element, {
item: '[data-sortable-target="item"]',
handle: '[data-sortable-target="handle"]',
onEnd: e => {
this.updateOrdering()
}
})
}
updateOrdering() {
let ordering = {}
this.itemTargets.forEach((item, index) => {
let projectId = parseInt(item.dataset.itemId)
ordering[projectId] = index + 1
})
fetch(this.endpointValue, {
method: 'POST',
credentials: 'include',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ ordering: ordering })
})
}
}