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.");
}
});
});