diff --git a/front/package.json b/front/package.json index 732fdb406..7cec50319 100644 --- a/front/package.json +++ b/front/package.json @@ -19,7 +19,8 @@ "semantic-ui-css": "^2.2.10", "vue": "^2.3.3", "vue-resource": "^1.3.4", - "vue-router": "^2.3.1" + "vue-router": "^2.3.1", + "vuedraggable": "^2.14.1" }, "devDependencies": { "autoprefixer": "^6.7.2", diff --git a/front/src/audio/queue.js b/front/src/audio/queue.js index ba0af486f..c91c1d2ac 100644 --- a/front/src/audio/queue.js +++ b/front/src/audio/queue.js @@ -92,6 +92,24 @@ class Queue { } cache.set('volume', newValue) } + + reorder (oldIndex, newIndex) { + // called when the user uses drag / drop to reorder + // tracks in queue + if (oldIndex === this.currentIndex) { + this.currentIndex = newIndex + return + } + if (oldIndex < this.currentIndex && newIndex >= this.currentIndex) { + // item before was moved after + this.currentIndex -= 1 + } + if (oldIndex > this.currentIndex && newIndex <= this.currentIndex) { + // item after was moved before + this.currentIndex += 1 + } + } + append (track, index) { this.previousQueue = null index = index || this.tracks.length diff --git a/front/src/components/Sidebar.vue b/front/src/components/Sidebar.vue index c98dc2f01..90e6d2d06 100644 --- a/front/src/components/Sidebar.vue +++ b/front/src/components/Sidebar.vue @@ -50,27 +50,27 @@
{{ index + 1}} | -
- ![]() |
-
- {{ track.title }} - {{ track.artist.name }} - |
- - - - - | - - | -|||
{{ index + 1}} | +
+ ![]() |
+
+ {{ track.title }} + {{ track.artist.name }} + |
+ + + + + | + + | +