/** * 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); } /** * @typedef {Object} MessageBank * @property {string} Description - Description of the messagebank entry * @property {string} Language - Language code * @property {number} ANN_ID - ANN ID (1-100) * @property {string} Voice_Type - Voice type * @property {string} Message_Detail - Detailed message constructed from categories and phrases * @property {string} Message_TAGS - Tags associated with the 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