From 40f8c9f8998db47e3b45e66ff2abf96186f0bf87 Mon Sep 17 00:00:00 2001 From: Corban-Lee Jones Date: Wed, 2 Oct 2024 23:35:01 +0100 Subject: [PATCH] show channels as options --- apps/home/static/home/js/tabs/subs.js | 33 ++++++++++++++++++-- apps/home/templates/home/modals/editSub.html | 2 +- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/apps/home/static/home/js/tabs/subs.js b/apps/home/static/home/js/tabs/subs.js index ca0976f..8fb55a4 100644 --- a/apps/home/static/home/js/tabs/subs.js +++ b/apps/home/static/home/js/tabs/subs.js @@ -154,14 +154,19 @@ getTableFiltersComponent(subTableId).find(".table-del-btn").on("click", async fu // region New/Edit Modal $(subTableId).closest('.js-tableBody').siblings('.js-tableFilters').on("click", ".table-new-btn", async function() { - await openDataModal(subModalId, -1); + await openSubModal(-1); }); $(subTableId).on("click", ".edit-modal", async function() { const id = $(subTableId).DataTable().row($(this).closest("tr")).data().id; - await openDataModal(subModalId, id, `/api/subscriptions/${id}/`); + await openSubModal(id); }) +async function openSubModal(id) { + await loadChannelOptions(); + await openDataModal(subModalId, id, id !== -1 ? `/api/subscriptions/${id}/`: null); +} + $(subModalId).on("submit", async function(event) { event.preventDefault(); await onModalSubmit( @@ -217,3 +222,27 @@ async function loadSubModalOptions($input, url) { // Re-enable input $input.prop("disabled", false); } + +// Channel options aren't loaded from an API, like other options. +function loadChannelOptions() { + $input = $(subModalId).find('[data-field="channels"]'); + + $input.val("").change(); + $input.prop("disabled", true); + + $input.find("option").each(function() { + if ($(this).val()) { + $(this).remove(); + } + }); + + const data = loadedChannels(selectedServer.id); + data.forEach(item => { + $input.append($( + "