/** * @typedef {Object} MessageBank * @property {number} index * @property {string} description * @property {string} language * @property {number} aNN_ID * @property {string} voice_Type * @property {string} message_Detail * @property {string} message_TAGS */ /** * List of Messagebank data loaded from server * @type {MessageBank[]} */ window.messagebankdata ??= []; /** * Currently selected messagebank row in the table * @type {JQuery|null} */ window.selectedmessagerow = null; /** * Fill messagebank table body with values * @param {MessageBank[]} vv values to fill */ function fill_messagebanktablebody(vv) { $('#messagebanktablebody').empty(); if (!Array.isArray(vv) || vv.length === 0) return; vv.forEach(item => { const row = ` ${item.index} ${item.description} ${item.language} ${item.aNN_ID} ${item.voice_Type} ${item.message_Detail} ${item.message_TAGS} `; $('#messagebanktablebody').append(row); let $addedrow = $('#messagebanktablebody tr:last'); $addedrow.click(function () { if (window.selectedmessagerow) { window.selectedmessagerow.find('td').css('background-color', ''); if (window.selectedmessagerow.is($(this))) { window.selectedmessagerow = null; $('#btnRemove').prop('disabled', true); $('#btnEdit').prop('disabled', true); return; } } $addedrow.find('td').css('background-color', '#ffeeba'); window.selectedmessagerow = $addedrow; $('#btnRemove').prop('disabled', false); $('#btnEdit').prop('disabled', false); }); }); $('#tablesize').text("Table Size: " + vv.length); } /** * Reload message bank from server * @param {string} APIURL API URL endpoint, default "MessageBank/" */ function reloadMessageBank(APIURL = "MessageBank/") { window.messagebankdata ??= []; fetchAPI(APIURL + "List", "GET", {}, null, (okdata) => { if (Array.isArray(okdata)) { window.messagebankdata.push(...okdata); window.selectedmessagerow = null; fill_messagebanktablebody(window.messagebankdata); } }, (errdata) => { alert("Error loading messagebank : " + errdata.message); }); } $(document).ready(function () { console.log("messagebank.js loaded"); $('#messagebanktablebody').empty(); window.selectedmessagerow = null; let $btnClear = $('#btnClear'); let $btnAdd = $('#btnAdd'); let $btnRemove = $('#btnRemove'); let $btnEdit = $('#btnEdit'); let $btnExport = $('#btnExport'); let $btnImport = $('#btnImport'); $btnRemove.prop('disabled', true); $btnEdit.prop('disabled', true); let APIURL = "MessageBank/"; let $findmessage = $('#findmessage'); // modal for add / edit messagebank let $modal = $('#messagebankmodal'); // text input, disabled by default let $messageindex = $modal.find('#messageindex'); // text input let $messagedescription = $modal.find('#messagedescription'); // select input, options loaded from languages[] let $messagelanguage = $modal.find('#messagelanguage'); // number input from 1 to 100 let $messageannid = $modal.find('#messageannid'); // select input, options loaded from voiceTypes[] let $messagevoicetype = $modal.find('#messagevoicetype'); // list