commit 23/10/2025
This commit is contained in:
@@ -60,6 +60,7 @@ window.messagebankdata ??= [];
|
||||
function reloadMessageBank(APIURL = "MessageBank/", cbOK = null) {
|
||||
window.messagebankdata ??= [];
|
||||
fetchAPI(APIURL + "List", "GET", {}, null, (okdata) => {
|
||||
//console.log("Message bank data loaded : ", okdata);
|
||||
if (Array.isArray(okdata)) {
|
||||
window.messagebankdata.push(...okdata);
|
||||
window.selectedmessagerow = null;
|
||||
@@ -67,6 +68,7 @@ function reloadMessageBank(APIURL = "MessageBank/", cbOK = null) {
|
||||
if (cbOK) cbOK();
|
||||
}
|
||||
}, (errdata) => {
|
||||
//console.error("Error loading messagebank : ", errdata);
|
||||
alert("Error loading messagebank : " + errdata.message);
|
||||
});
|
||||
}
|
||||
@@ -186,14 +188,16 @@ function fetchImg(url, cbOK, cbError) {
|
||||
|
||||
/**
|
||||
* Reload voice types from server
|
||||
* @param {Function|null} cbOK callback on success, default null
|
||||
*/
|
||||
function getVoiceTypes() {
|
||||
function getVoiceTypes(cbOK = null) {
|
||||
window.voiceTypes = [];
|
||||
fetchAPI("VoiceType", "GET", {}, null, (okdata) => {
|
||||
// okdata is a string contains elements separated by semicolon ;
|
||||
if (Array.isArray(okdata)) {
|
||||
window.voiceTypes = okdata.filter(item => item.trim().length > 0);
|
||||
//console.log("Loaded " + voiceTypes.length + " voice types : " + voiceTypes.join(", "));
|
||||
if (cbOK) cbOK();
|
||||
} else console.log("getVoiceTypes: okdata is not array");
|
||||
}, (errdata) => {
|
||||
alert("Error loading voice types : " + errdata.message);
|
||||
@@ -202,14 +206,16 @@ function getVoiceTypes() {
|
||||
|
||||
/**
|
||||
* Reload categories from server
|
||||
* @param {Function|null} cbOK callback on success, default null
|
||||
*/
|
||||
function getCategories() {
|
||||
function getCategories(cbOK = null) {
|
||||
window.categories = [];
|
||||
fetchAPI("Category", "GET", {}, null, (okdata) => {
|
||||
// okdata is a string contains elements separated by semicolon ;
|
||||
if (Array.isArray(okdata)) {
|
||||
window.categories = okdata.filter(item => item.trim().length > 0);
|
||||
//console.log("Loaded " + categories.length + " categories : " + categories.join(", "));
|
||||
if (cbOK) cbOK();
|
||||
} else console.log("getCategories: okdata is not array");
|
||||
}, (errdata) => {
|
||||
alert("Error loading categories : " + errdata.message);
|
||||
@@ -218,14 +224,16 @@ function getCategories() {
|
||||
|
||||
/**
|
||||
* Reload languages from server
|
||||
* @param {Function|null} cbOK callback on success, default null
|
||||
*/
|
||||
function getLanguages() {
|
||||
function getLanguages(cbOK = null) {
|
||||
window.languages = [];
|
||||
fetchAPI("Language", "GET", {}, null, (okdata) => {
|
||||
// okdata is a string contains elements separated by semicolon ;
|
||||
if (Array.isArray(okdata)) {
|
||||
window.languages = okdata.filter(item => item.trim().length > 0);
|
||||
//console.log("Loaded " + languages.length + " languages : " + languages.join(", ") );
|
||||
if (cbOK) cbOK();
|
||||
} else console.log("getLanguages: okdata is not array");
|
||||
}, (errdata) => {
|
||||
alert("Error loading languages : " + errdata.message);
|
||||
|
||||
160
html/webpage/assets/js/setting.js
Normal file
160
html/webpage/assets/js/setting.js
Normal file
@@ -0,0 +1,160 @@
|
||||
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 = $("<option></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 = $("<option></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 = $("<option></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($("<option></option>").attr("value", opt).text(opt));
|
||||
$("#input_GBD").append($("<option></option>").attr("value", opt).text(opt));
|
||||
$("#input_GFC").append($("<option></option>").attr("value", opt).text(opt));
|
||||
$("#input_FLD").append($("<option></option>").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.");
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user