commit 01/10/2025
This commit is contained in:
@@ -19,38 +19,38 @@
|
||||
* List of Soundbank data loaded from server
|
||||
* @type {SoundBank[]}
|
||||
*/
|
||||
let soundbankdata = [];
|
||||
window.soundbankdata = [];
|
||||
/**
|
||||
* Currently selected soundbank row in the table
|
||||
* @type {JQuery<HTMLElement>|null}
|
||||
*/
|
||||
let selectedsoundrow = null;
|
||||
window.selectedsoundrow = null;
|
||||
|
||||
/**
|
||||
* List of sound files in the soundbank directory, that ends with .wav or .mp3
|
||||
* @type {string[]}
|
||||
*/
|
||||
let soundbankfiles = [];
|
||||
window.soundbankfiles = [];
|
||||
|
||||
/**
|
||||
* Select2 data source
|
||||
* See https://select2.org/data-sources/formats
|
||||
* @type {Select2item[]}
|
||||
*/
|
||||
let select2data = [];
|
||||
window.select2data = [];
|
||||
|
||||
/**
|
||||
* Reload sound bank from server
|
||||
* @param {String} APIURL API URL endpoint, default "SoundBank/"
|
||||
*/
|
||||
function reloadSoundBank(APIURL = "SoundBank/") {
|
||||
soundbankdata = [];
|
||||
window.soundbankdata = [];
|
||||
fetchAPI(APIURL + "List", "GET", {}, null, (okdata) => {
|
||||
|
||||
if (Array.isArray(okdata)) {
|
||||
soundbankdata = okdata;
|
||||
selectedsoundrow = null;
|
||||
fill_soundbanktablebody(soundbankdata);
|
||||
window.soundbankdata.push(...okdata);
|
||||
window.selectedsoundrow = null;
|
||||
fill_soundbanktablebody(window.soundbankdata);
|
||||
}
|
||||
}, (errdata) => {
|
||||
alert("Error loading soundbank : " + errdata.message);
|
||||
@@ -77,17 +77,17 @@ function fill_soundbanktablebody(vv) {
|
||||
$('#soundbanktablebody').append(row);
|
||||
let $addedrow = $('#soundbanktablebody tr:last');
|
||||
$addedrow.on('click', function () {
|
||||
if (selectedsoundrow) {
|
||||
selectedsoundrow.find('td').css('background-color', '');
|
||||
if (selectedsoundrow.is($(this))) {
|
||||
selectedsoundrow = null;
|
||||
if (window.selectedsoundrow) {
|
||||
window.selectedsoundrow.find('td').css('background-color', '');
|
||||
if (window.selectedsoundrow.is($(this))) {
|
||||
window.selectedsoundrow = null;
|
||||
$('#btnRemove').prop('disabled', true);
|
||||
$('#btnEdit').prop('disabled', true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
$(this).find('td').css('background-color', '#ffeeba');
|
||||
selectedsoundrow = $(this);
|
||||
window.selectedsoundrow = $(this);
|
||||
$('#btnRemove').prop('disabled', false);
|
||||
$('#btnEdit').prop('disabled', false);
|
||||
});
|
||||
@@ -103,13 +103,13 @@ function fill_soundbanktablebody(vv) {
|
||||
* @param {String} APIURL API URL endpoint (default "SoundBank/")
|
||||
*/
|
||||
function reloadSoundbankFiles(APIURL = "SoundBank/") {
|
||||
soundbankfiles = [];
|
||||
window.soundbankfiles = [];
|
||||
fetchAPI(APIURL + "ListFiles", "GET", {}, null, (okdata) => {
|
||||
// okdata is a string contains elements separated by semicolon ;
|
||||
if (Array.isArray(okdata)) {
|
||||
soundbankfiles = okdata.filter(item => item.trim().length > 0);
|
||||
window.soundbankfiles = okdata.filter(item => item.trim().length > 0);
|
||||
// refill select2data
|
||||
select2data = soundbankfiles.map((item, index) => ({ id: index + 1, text: item }));
|
||||
window.select2data = window.soundbankfiles.map((item, index) => ({ id: index + 1, text: item }));
|
||||
} else console.log("reloadSoundbankFiles: okdata is not array");
|
||||
}, (errdata) => {
|
||||
alert("Error loading soundbank files : " + errdata.message);
|
||||
@@ -120,7 +120,7 @@ $(document).ready(function () {
|
||||
console.log("soundbank.js loaded successfully");
|
||||
reloadSoundbankFiles();
|
||||
$('#soundbanktablebody').empty();
|
||||
selectedsoundrow = null;
|
||||
window.selectedsoundrow = null;
|
||||
let $btnClear = $('#btnClear');
|
||||
let $btnAdd = $('#btnAdd');
|
||||
let $btnRemove = $('#btnRemove');
|
||||
@@ -166,9 +166,9 @@ $(document).ready(function () {
|
||||
$modalvoicetype.val(null);
|
||||
// fill modalpath options from soundbankfiles[]
|
||||
// TODO read https://jeesite.com/front/jquery-select2/4.0/index.htm
|
||||
console.log("select2data has " + select2data.length + " items");
|
||||
console.log("window.select2data has " + window.select2data.length + " items");
|
||||
$('#modalpath').select2({
|
||||
data: select2data
|
||||
data: window.select2data
|
||||
})
|
||||
}
|
||||
|
||||
@@ -176,12 +176,12 @@ $(document).ready(function () {
|
||||
$('#findsoundbank').on('input', function () {
|
||||
let searchTerm = $(this).val().trim().toLowerCase();
|
||||
if (searchTerm.length > 0) {
|
||||
selectedsoundrow = null;
|
||||
let filtered = soundbankdata.filter(item => item.description.toLowerCase().includes(searchTerm) || item.tag.toLowerCase().includes(searchTerm) || item.path.toLowerCase().includes(searchTerm));
|
||||
window.selectedsoundrow = null;
|
||||
let filtered = window.soundbankdata.filter(item => item.description.toLowerCase().includes(searchTerm) || item.tag.toLowerCase().includes(searchTerm) || item.path.toLowerCase().includes(searchTerm));
|
||||
fill_soundbanktablebody(filtered);
|
||||
} else {
|
||||
selectedsoundrow = null;
|
||||
fill_soundbanktablebody(soundbankdata);
|
||||
window.selectedsoundrow = null;
|
||||
fill_soundbanktablebody(window.soundbankdata);
|
||||
}
|
||||
});
|
||||
$btnClear.click(() => {
|
||||
@@ -208,8 +208,8 @@ $(document).ready(function () {
|
||||
});
|
||||
});
|
||||
$btnRemove.click(() => {
|
||||
if (selectedsoundrow) {
|
||||
let cells = selectedsoundrow.find('td');
|
||||
if (window.selectedsoundrow) {
|
||||
let cells = window.selectedsoundrow.find('td');
|
||||
/** @type {SoundBank} */
|
||||
let sb = {
|
||||
index: cells.eq(0).text(),
|
||||
@@ -231,8 +231,8 @@ $(document).ready(function () {
|
||||
}
|
||||
});
|
||||
$btnEdit.click(() => {
|
||||
if (selectedsoundrow) {
|
||||
let cells = selectedsoundrow.find('td');
|
||||
if (window.selectedsoundrow) {
|
||||
let cells = window.selectedsoundrow.find('td');
|
||||
/** @type {SoundBank} */
|
||||
let sb = {
|
||||
index: cells.eq(0).text(),
|
||||
|
||||
Reference in New Issue
Block a user