diff --git a/.idea/misc.xml b/.idea/misc.xml index 62b543c..1c6a276 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,53 @@ + + + + diff --git a/html/webpage/assets/js/messagebank.js b/html/webpage/assets/js/messagebank.js index 2b2a10a..186fa17 100644 --- a/html/webpage/assets/js/messagebank.js +++ b/html/webpage/assets/js/messagebank.js @@ -54,67 +54,7 @@ function fill_messagebanktablebody(vv) { * @property {string} Message_TAGS - Tags associated with the message */ -/** - * Get data from modal inputs and return as MessageBank object - * @returns {MessageBank} messagebank object or null if validation fails - */ -function GetDataFromModal() { - let description = $messagedescription.val().trim(); - let language = $messagelanguage.val(); - let annid = parseInt($messageannid.val()); - let voicetype = $messagevoicetype.val(); - let messagedetail = ""; - let messagetags = ""; - // iterate messageselectedvariables children - $messageselectedvariables.children().each(function () { - let text = $(this).text().trim(); - let value = $(this).val().trim(); - console.log('selected text:' + text + ', value:' + value); - if (text.length > 0) { - k - if (value.length > 0) { - messagetags += (messagetags.length > 0 ? " " : "") + value; - messagedetail += (messagedetail.length > 0 ? " " : "") + text; - } - - } - }); - console.log(`Constructed Message_Detail: ${messagedetail}`); - console.log(`Constructed Message_TAGS: ${messagetags}`); - - if (description.length === 0) { - alert("Description cannot be empty"); - return null; - } - if (!language) { - alert("Language cannot be empty"); - return null; - } - if (isNaN(annid) || annid < 1 || annid > 100) { - alert("ANN_ID must be a number between 1 and 100"); - return null; - } - if (!voicetype) { - alert("Voice Type cannot be empty"); - return null; - } - if (messagedetail.length === 0 || messagetags.length === 0) { - alert("Message haven't been constructed, please add categories and phrases"); - return null; - } - - - let mb = { - Description: description, - Language: language, - ANN_ID: annid, - Voice_Type: voicetype, - Message_Detail: messagedetail, - Message_TAGS: messagetags - }; - return mb; -} $(document).ready(function () { @@ -158,39 +98,110 @@ $(document).ready(function () { /** * Refill messageavailablevariables options from categories[] * and soundbankdata with category "Phrase" if messagelanguage and messagevoicetype are selected + * @param {Function} cbLoaded - callback function when phrases are loaded */ - function refill_messageavailablevariables() { + function refill_messageavailablevariables(cbLoaded) { $messageavailablevariables.empty(); categories.forEach(cat => { if ("Phrase" === cat) return; // skip Phrase category + if ("Airline_Code" === cat) cat = "Flight_Number"; // revisi 15012026 karena inconsistensi penamaan tag let displayCat = `[${cat}]`; - $messageavailablevariables.append(new Option(displayCat, displayCat)); + $messageavailablevariables.append(new Option(text=displayCat.toUpperCase(), value=displayCat.toUpperCase())); }); + // tambah [ETAD], [BCB] revisi 19012026 + $messageavailablevariables.append(new Option(text='[ETAD]', value='[ETAD]')); + $messageavailablevariables.append(new Option(text='[BCB]', value='[BCB]')); + let lang = $messagelanguage.val(); let vt = $messagevoicetype.val(); - if (lang && lang.length > 0) { - //console.log("Selected Language:", lang); - if (vt && vt.length > 0) { - //console.log("Selected Voice Type:", vt); - - fetchAPI(`SoundBank/GetPhrases/${lang}/${vt}`, "GET", {}, null, (okdata) => { + if (lang && lang.length > 0 && vt && vt.length > 0) { + fetchAPI(`SoundBank/GetPhrases/${lang}/${vt}`, "GET", {}, null, (okdata) => { if (Array.isArray(okdata) && okdata.length > 0) { console.log(`Loaded ${okdata.length} phrases from soundbank for language=${lang} and voiceType=${vt}`); //console.log(JSON.stringify(okdata)); okdata.forEach(sb => { if (sb.description && sb.description.length > 0) { - $messageavailablevariables.append($('