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.

- +
- -
-
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']) 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']) 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;