let selected_language = null; let selected_category = null; let selected_voice = null; /** * Load setting language dropdown */ function load_setting_language(){ selected_language = null; $("#setting_language").empty().off('change'); getLanguages( () => { window.languages.forEach( (lang) => { let $option = $("").attr("value", lang).text(lang); $("#setting_language").append($option); }); $("#setting_language").on('change', function() { selected_language = $(this).val(); change_droparea_enable(); }); }); } /** * Load setting category dropdown */ function load_setting_category(){ selected_category = null; $("#setting_category").empty().off('change'); getCategories( () => { window.categories.forEach( (cat) => { let $option = $("").attr("value", cat).text(cat); $("#setting_category").append($option); }); $("#setting_category").on('change', function() { selected_category = $(this).val(); change_droparea_enable(); }); }); } /** * Load setting voice dropdown */ function load_setting_voice(){ selected_voice = null; $("#setting_voice").empty().off('change'); getVoiceTypes( () => { window.voiceTypes.forEach( (voice) => { let $option = $("").attr("value", voice).text(voice); $("#setting_voice").append($option); }); $("#setting_voice").on('change', function() { selected_voice = $(this).val(); change_droparea_enable(); }); }); } function get_soundbank_path(){ fetchAPI("Settings/SoundbankDirectory", "GET", {}, null, (okdata) => { console.log("Soundbank path : " + okdata); $("#setting_path").val(okdata); }, (errdata) => { alert("Error getting soundbank path : " + errdata.message); }); } /** * Enable or disable drop area based on selections */ function change_droparea_enable(){ if (selected_category && selected_language && selected_voice) { $("#drop-area").removeClass("disabled"); } else { $("#drop-area").addClass("disabled"); } } function load_messagebank(cbOK = null){ $("#input_GOP").empty(); $("#input_GBD").empty(); $("#input_GFC").empty(); $("#input_FLD").empty(); // get messagebank data from server reloadMessageBank(()=>{ console.log("Will load " + window.messagebankdata.length + " message bank items into selection."); window.messagebankdata.forEach((item)=>{ let opt = `${item.description} [${item.aNN_ID}]`; console.log("Adding option: " + opt); $("#input_GOP").append($("").attr("value", opt).text(opt)); $("#input_GBD").append($("").attr("value", opt).text(opt)); $("#input_GFC").append($("").attr("value", opt).text(opt)); $("#input_FLD").append($("").attr("value", opt).text(opt)); }); if (window.messagebankdata.length > 0) { if (cbOK) cbOK(); } }); } function load_remark_selection(){ fetchAPI("Settings/FISCode", "GET", {}, null, (okdata) => { $("#input_GOP").val(okdata.GOP); $("#input_GBD").val(okdata.GBD); $("#input_GFC").val(okdata.GFC); $("#input_FLD").val(okdata.FLD); }, (errdata) => { alert("Error getting FIS codes : " + errdata.message); }); } $(document).ready(function() { console.log("setting.js loaded"); $("#save_directory").off('click').on('click', function() { let new_path = $("#setting_path").val(); if (new_path && new_path.trim().length > 0) { fetchAPI("Settings/SoundbankDirectory", "POST", {}, { directory: new_path }, (okdata) => { alert("Soundbank directory path saved successfully."); }, (errdata) => { alert("Error saving soundbank directory path : " + errdata.message); }); } else { alert("Please enter a valid soundbank directory path."); } }); // get_soundbank_path(); load_setting_category(); load_setting_language(); load_setting_voice(); load_messagebank(()=> load_remark_selection()); $("#fiscodesave").off('click').on('click', function() { let gop = $("#input_GOP").val(); let gbd = $("#input_GBD").val(); let gfc = $("#input_GFC").val(); let fld = $("#input_FLD").val(); if (gop && gbd && gfc && fld) { let data = { GOP: gop, GBD: gbd, GFC: gfc, FLD: fld }; fetchAPI("Settings/FISCode", "POST", {}, data, (okdata) => { alert("FIS codes saved successfully."); }, (errdata) => { alert("Error saving FIS codes : " + errdata.message); }); } else { alert("Please select all FIS codes (GOP, GBD, GFC, FLD) before saving."); } }); });