diff --git a/common/lkt.js b/common/lkt.js index a87d535061139a4cc6ebd6a7a1ea56e0a7fa7f2f..ab909b19855b34e64d3ccbdc351698b647147ab9 100644 --- a/common/lkt.js +++ b/common/lkt.js @@ -264,7 +264,7 @@ class LktClient { logger.error('Unable to access lektor status:' + error); } - static queue_updated = false; + static queue_updated = true; static setQueueUpdated(state) { this.queue_updated = state; @@ -274,13 +274,13 @@ class LktClient { return this.queue_updated; } - static playlists_updated = false; + static playlists_updated = true; static setPlaylistsUpdated(state) { this.playlists_updated = state; } - static isPlaulistsUpdated() { + static isPlaylistsUpdated() { return this.playlists_updated; } diff --git a/instance/main.js b/instance/main.js index 244ee5a203754fd5ca9a10f54212e1d4bc8882d6..6a2e60424d6b49cf7a9d697a71f3acef2aa83f58 100644 --- a/instance/main.js +++ b/instance/main.js @@ -1,6 +1,6 @@ /* The main window instance */ -const { ipcRenderer } = require('electron'), +const { ipcRenderer, ipcMain } = require('electron'), logger = require('../common/logger.js'), ejs = require('ejs'), e = require('express'); @@ -90,7 +90,7 @@ window.onload = () => { setTimeout(() => ipcRenderer.send('reload-queue-request'), 1000); //setTimeout(() => ipcRenderer.send('reload-playlist-request'),1000); setInterval(() => ipcRenderer.send('verify-queue-reloaded-request'), 50); - //setInterval(() => ipcRenderer.send('verify-playlist-reloaded-request'),50); + setTimeout(()=>setInterval(() => ipcRenderer.send('verify-playlists-reloaded-request'),50),1500); setInterval(() => ipcRenderer.send('get-song-time-data'), 50); setInterval(() => ipcRenderer.send('get-runnings'), 10000); logger.debug('instance', 'Window loaded'); @@ -137,10 +137,11 @@ window.onload = () => { /* Autofill settings */ autoFillSettings(); + configureLeftPanel(); }; - +var currentPlaylist = ""; /* Create the button list */ -function createButtonList(list) { +function configureLeftPanel() { /* Setup queue/playlist tabls*/ var tabQueue = document.getElementById("queue-tab"); @@ -165,19 +166,11 @@ function createButtonList(list) { playlistPanel.classList.add("show","active"); queuePanel.classList.remove("show","active"); } - var playlistSelect = document.getElementById("playlist-select"); - if(playlistSelect) { - logger.info("cc","cc"); + var playlistSelect = document.getElementById("playlist-selector"); + + playlistSelect.onchange = () => { + currentPlaylist = playlistSelect.value; } - /*playlistSelect.onclick = ()=> {logger.info("cc");}; - playlistSelect.on("changed.bs.select", (e,clickedIndex, newValue, oldValue) => { - logger.info("cc","cc"); - });*/ - playlistSelect.on('changed.bs.select', (e, clickedIndex, newValue, oldValue) => { - logger.info("cc","cc"); - logger.info("cc",newValue); - logger.info("cc",oldValue); - }); } @@ -233,6 +226,21 @@ ipcRenderer.on('send-runnings', (event, arg) => { $('#running-klkt').prop('checked', arg.klkt); }); +ipcRenderer.on('playlists-updated', (event, playlists) => { + var selector = document.getElementById("playlist-selector") + selector.innerHTML = ''; + if(!selector.value) { + selector.innerHTML = '<option selected disabled hidden> Select a playlist</option>' + } + playlists.forEach(playlist => { + optionHtml = `<option value="${playlist}">${playlist}</option>` + selector.innerHTML = ` + ${selector.innerHTML} + ${optionHtml} + ` + }); +}); + function addDBKaraEventHandlers(element) { element.addEventListener('dragstart', onDragStartDB, false); element.addEventListener('dragend', onDragEnd, false); diff --git a/instance/views/panels.ejs b/instance/views/panels.ejs index 3c652594f9356cd61d5d6fc59a576097a81d4e09..c7fa4ec35d09f994c72718aab258d2571430cb8b 100644 --- a/instance/views/panels.ejs +++ b/instance/views/panels.ejs @@ -20,7 +20,7 @@ </li> <li class="playlistChoice ml-4 mt-1"> <select class="form-control bd-highlight" id="playlist-selector" aria-label="Default select example"> - <option selected>Select a playlist</option> + <option selected disabled hidden>Select a playlist</option> <option value="1">One</option> <option value="2">Two</option> <option value="3">Three</option> diff --git a/main.js b/main.js index c87dab7092d7f59d8e42b521b33e87c52c2f8c7e..6a6e2610ac3df5d085044ed887fc08c2132e2c84 100644 --- a/main.js +++ b/main.js @@ -181,9 +181,9 @@ app.on('ready', () => { setTimeout(() => { lkt.statusActualisation(); }, 1500); - setTimeout(() => { + /*setTimeout(() => { lkt.commandPlaylistList(); - }, 1500); + }, 1500);*/ }); /*************** @@ -347,3 +347,16 @@ ipcMain.on('set-settings', (event, arg) => { config.flush(); }); + +ipcMain.on('verify-playlists-reloaded-request',(event,arg) => { + if(lkt.isPlaylistsUpdated()) { + lkt.setPlaylistsUpdated(false); + lkt.commandPlaylistList().then((playlists) => { + event.reply('playlists-updated', playlists); + }); + } +}); + +ipcMain.on('update-playlist-request', (event, arg) => { + +}); \ No newline at end of file