diff --git a/html/webpage/assets/js/broadcastzones.js b/html/webpage/assets/js/broadcastzones.js index f3bf763..adb4a0f 100644 --- a/html/webpage/assets/js/broadcastzones.js +++ b/html/webpage/assets/js/broadcastzones.js @@ -19,6 +19,12 @@ window.BroadcastZoneList ??= []; */ window.selectedBroadcastZoneRow = null; +/** + * List of sound channels available + * @type {String[]} + */ +window.SoundChannelList = [] + /** * Fill broadcast zone table body with values * @param {BroadcastZone[]} vv values to fill @@ -36,7 +42,7 @@ function fill_broadcastzonetablebody(vv) { `; $('#broadcastzonetablebody').append(row); let $addedrow = $('#broadcastzonetablebody tr:last'); - $addedrow.click(function () { + $addedrow.off('click').on('click', function () { if (window.selectedBroadcastZoneRow) { window.selectedBroadcastZoneRow.find('td').css('background-color', ''); if (window.selectedBroadcastZoneRow.is($(this))) { @@ -72,6 +78,18 @@ function reloadBroadcastZones(APIURL = "BroadcastZones/") { }); } +function fetchSoundChannels(APIURL = "SoundChannel/") { + window.SoundChannelList = []; + fetchAPI(APIURL + "SoundChannelDescriptions", "GET", {}, null, (okdata) => { + if (Array.isArray(okdata)) { + //console.log("fetchSoundChannels : ", okdata) + window.SoundChannelList.push(...okdata); + } else console.log("fetchSoundChannels: okdata is not array"); + }, (errdata) => { + alert("Error loading sound channels : " + errdata.message); + }); +} + $(document).ready(function () { console.log("broadcastzones.js loaded successfully"); window.selectedBroadcastZoneRow = null; @@ -95,7 +113,7 @@ $(document).ready(function () { let $findzone = $('#findzone'); - $findzone.on('input', function () { + $findzone.off('input').on('input', function () { let searchTerm = $findzone.val().trim().toLowerCase(); if (searchTerm.length > 0) { window.selectedBroadcastZoneRow = null; @@ -125,24 +143,26 @@ $(document).ready(function () { $broadcastzonedescription.val(''); // fill broadcastzonesoundchannel from SoundChannelList $broadcastzonesoundchannel.empty(); - if (Array.isArray(SoundChannelList) && SoundChannelList.length > 0) { + console.log("SoundChannelList:", window.SoundChannelList); + if (Array.isArray(window.SoundChannelList) && window.SoundChannelList.length > 0) { // SoundChannelList ada isinya - SoundChannelList.forEach(ch => { - if (ch.channel && ch.channel.length > 0){ - // hanya yang punya channel saja - $broadcastzonesoundchannel.append($('