1
0
mirror of https://github.com/flarum/core.git synced 2025-08-18 14:22:02 +02:00

Update code to work with latest html5sortable (#62)

* Update code to work with latest html5sortable (0.9.16)

* Move forEach function callback to constant variable

* Extract inline function into method
This commit is contained in:
David Sevilla Martín
2019-06-03 05:46:48 -04:00
committed by Franz Liedke
parent 6d0de4b29c
commit c65aa52726
3 changed files with 67 additions and 63 deletions

View File

@@ -2779,9 +2779,9 @@
}
},
"html5sortable": {
"version": "0.9.8",
"resolved": "https://registry.npmjs.org/html5sortable/-/html5sortable-0.9.8.tgz",
"integrity": "sha512-QodBiv8LdTZHot3EMzNHTeKn/nHm66BlvmcFvMFMPVm4mYN5S0uKvDxFnzRltFvrIjvps7OVRrxBJQX8aLnxWg=="
"version": "0.9.16",
"resolved": "https://registry.npmjs.org/html5sortable/-/html5sortable-0.9.16.tgz",
"integrity": "sha512-GjCFl7w+Z6bQNs6lU5fhPqLoC5aRbFbQtL9rgqGR3Fs0GCRCrGjoRusZkhWaQpMr4eN25BlkviYA2nH+hFnDoA=="
},
"https-browserify": {
"version": "1.0.0",

View File

@@ -3,7 +3,7 @@
"name": "@flarum/tags",
"dependencies": {
"flarum-webpack-config": "0.1.0-beta.10",
"html5sortable": "^0.9.8",
"html5sortable": "^0.9.16",
"webpack": "^4.26.0",
"webpack-cli": "^3.1.2"
},

View File

@@ -1,4 +1,4 @@
import 'html5sortable';
import sortable from 'html5sortable/dist/html5sortable.es.js';
import Page from 'flarum/components/Page';
import Button from 'flarum/components/Button';
@@ -80,14 +80,18 @@ export default class TagsPage extends Page {
}
config() {
this.$('ol, ul')
.sortable({connectWith: 'primary'})
.on('sortupdate', (e, ui) => {
sortable(this.$('ol, ul'), {
acceptFrom: 'ol,ul'
}).forEach(this.onSortUpdate.bind(this));
}
onSortUpdate(el) {
el.addEventListener('sortupdate', (e) => {
// If we've moved a tag from 'primary' to 'secondary', then we'll update
// its attributes in our local store so that when we redraw the change
// will be made.
if (ui.startparent.is('ol') && ui.endparent.is('ul')) {
app.store.getById('tags', ui.item.data('id')).pushData({
if (e.detail.origin.container instanceof HTMLOListElement && e.detail.destination.container instanceof HTMLUListElement) {
app.store.getById('tags', e.detail.item.getAttribute('data-id')).pushData({
attributes: {
position: null,
isChild: false