From 5e5c7d94a051213d3072690d69d5d274251fcdc1 Mon Sep 17 00:00:00 2001
From: Christoph Stahl
Date: Tue, 10 Oct 2023 15:02:58 +0200
Subject: [PATCH] Force to waiting room, but admin can lift to queue
---
src/App.vue | 7 +++++++
src/components/AlreadyQueued.vue | 14 ++++++--------
src/components/DesktopLayout.vue | 3 ++-
src/components/Entry.vue | 12 +++++++++---
src/components/MobileLayout.vue | 3 ++-
src/components/QueueDesktop.vue | 3 ++-
src/components/QueueInner.vue | 3 ++-
src/components/QueueTab.vue | 7 ++++---
src/main.js | 3 ++-
9 files changed, 36 insertions(+), 19 deletions(-)
diff --git a/src/App.vue b/src/App.vue
index 200ecd5..5bad1ac 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -77,6 +77,10 @@ function search() {
}
}
+function waitingRoomToQueue(uuid) {
+ state.socket.emit("waiting-room-to-queue", {"uuid": uuid})
+}
+
function append(entry) {
checked_append_with_name(entry, state.value.name)
}
@@ -265,6 +269,7 @@ function joinRoom() {
@skip="skip"
@skipCurrent="skipCurrent"
@moveUp="moveUp"
+ @waitingRoomToQueue="waitingRoomToQueue"
/>
diff --git a/src/components/AlreadyQueued.vue b/src/components/AlreadyQueued.vue
index b28eab2..9cc37cc 100644
--- a/src/components/AlreadyQueued.vue
+++ b/src/components/AlreadyQueued.vue
@@ -8,21 +8,19 @@ const props = defineProps(["double_entry"]);
{{double_entry.artist}} - {{double_entry.title}} ({{double_entry.performer}})
-You can
+
To give everyone a chance to sing, you are limited to one song in the active queue, but you can add yourself to the waiting room .
+Songs in the waiting room will be added to the queue, once your old song leaves the queue.
+If you think this is an error, you can
-append the song anyway, or
-add it to the waiting room .
+choose another name, or
+add it to the waiting room and talk to the organizers for manual insertion into the queue.
-Songs in the waiting room will be added to the queue, once the last song of the performer leaves the queue.
- Waiting room
+ Add to waiting room
- Append anyway
-
-
Cancel
diff --git a/src/components/DesktopLayout.vue b/src/components/DesktopLayout.vue
index 99098ef..004f160 100644
--- a/src/components/DesktopLayout.vue
+++ b/src/components/DesktopLayout.vue
@@ -4,7 +4,7 @@ import QueueDesktop from './QueueDesktop.vue'
import RecentDesktop from './RecentDesktop.vue'
const props = defineProps(['state']);
-const emit = defineEmits(['update:searchTerm', 'search', 'append', 'skip', 'skipCurrent', 'moveUp'])
+const emit = defineEmits(['update:searchTerm', 'search', 'append', 'skip', 'skipCurrent', 'moveUp', 'waitingRoomToQueue'])
@@ -18,6 +18,7 @@ const emit = defineEmits(['update:searchTerm', 'search', 'append', 'skip', 'skip
@skip="(uuid) => $emit('skip', uuid)"
@moveUp="(uuid) => $emit('moveUp', uuid)"
@skipCurrent="$emit('skipCurrent')"
+ @waitingRoomToQueue="(uuid) => $emit('waitingRoomToQueue', uuid)"
/>
diff --git a/src/components/Entry.vue b/src/components/Entry.vue
index fe5a7ce..c82c1f4 100644
--- a/src/components/Entry.vue
+++ b/src/components/Entry.vue
@@ -1,7 +1,7 @@
@@ -26,6 +26,7 @@ const emit = defineEmits(['update:searchTerm', 'search', 'append', 'skip', 'skip
@skip="(uuid) => $emit('skip', uuid)"
@moveUp="(uuid) => $emit('moveUp', uuid)"
@skipCurrent="$emit('skipCurrent')"
+ @waitingRoomToQueue="(uuid) => $emit('waitingRoomToQueue', uuid)"
/>
diff --git a/src/components/QueueDesktop.vue b/src/components/QueueDesktop.vue
index 16e581a..fafb28c 100644
--- a/src/components/QueueDesktop.vue
+++ b/src/components/QueueDesktop.vue
@@ -2,7 +2,7 @@
import QueueInner from './QueueInner.vue'
const props = defineProps(['queue', 'waiting_room', 'admin']);
-const emits = defineEmits(['skip', 'skipCurrent', 'moveUp'])
+const emits = defineEmits(['skip', 'skipCurrent', 'moveUp', 'waitingRoomToQueue'])
@@ -15,6 +15,7 @@ const emits = defineEmits(['skip', 'skipCurrent', 'moveUp'])
@skip="(uuid) => $emit('skip', uuid)"
@moveUp="(uuid) => $emit('moveUp', uuid)"
@skipCurrent="$emit('skipCurrent')"
+ @waitingRoomToQueue="(uuid) => $emit('waitingRoomToQueue', uuid)"
/>
diff --git a/src/components/QueueInner.vue b/src/components/QueueInner.vue
index ab7dee9..9f58589 100644
--- a/src/components/QueueInner.vue
+++ b/src/components/QueueInner.vue
@@ -3,7 +3,7 @@ import { onMounted, reactive } from 'vue'
import Entry from './Entry.vue'
const props = defineProps(['queue', 'waiting_room', 'admin']);
-const emits = defineEmits(['skip', 'skipCurrent', 'moveUp'])
+const emits = defineEmits(['skip', 'skipCurrent', 'moveUp', 'waitingRoomToQueue'])
let currentTime = reactive({time: Date.now()})
@@ -52,6 +52,7 @@ function offset(index) {
@skip="(uuid) => $emit('skip', uuid)"
@skipCurrent="$emit('skipCurrent')"
@moveUp="(uuid) => $emit('moveUp', uuid)"
+ @waitingRoomToQueue="(uuid) => $emit('waitingRoomToQueue', uuid)"
/>
diff --git a/src/components/QueueTab.vue b/src/components/QueueTab.vue
index ae25262..38b3b12 100644
--- a/src/components/QueueTab.vue
+++ b/src/components/QueueTab.vue
@@ -2,7 +2,7 @@
import QueueInner from './QueueInner.vue'
const props = defineProps(['queue', 'waiting_room', 'admin']);
-const emits = defineEmits(['skip', 'skipCurrent', 'moveUp'])
+const emits = defineEmits(['skip', 'skipCurrent', 'moveUp', 'waitingRoomToQueue'])
@@ -14,6 +14,7 @@ const emits = defineEmits(['skip', 'skipCurrent', 'moveUp'])
@skip="(uuid) => $emit('skip', uuid)"
@moveUp="(uuid) => $emit('moveUp', uuid)"
@skipCurrent="$emit('skipCurrent')"
- />
-
+ @waitingRoomToQueue="(uuid) => $emit('waitingRoomToQueue', uuid)"
+ />
+
diff --git a/src/main.js b/src/main.js
index d481db1..44df7bf 100644
--- a/src/main.js
+++ b/src/main.js
@@ -6,7 +6,7 @@ import App from './App.vue'
import Main from './Main.vue'
import { library } from '@fortawesome/fontawesome-svg-core'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
-import { faMagnifyingGlass, faList, faChair, faArrowUp, faHistory, faPlus, faStepForward, faTimes } from '@fortawesome/free-solid-svg-icons'
+import { faMagnifyingGlass, faList, faChair, faArrowUp, faHistory, faPlus, faStepForward, faTimes, faArrowsUpToLine } from '@fortawesome/free-solid-svg-icons'
import { faYoutube } from '@fortawesome/free-brands-svg-icons'
import 'foundation-sites/dist/css/foundation.min.css'
@@ -20,6 +20,7 @@ library.add(faYoutube)
library.add(faTimes)
library.add(faArrowUp)
library.add(faChair)
+library.add(faArrowsUpToLine)
window.jQuery = jquery;
window.$ = jquery;