").text(filename);
// add button inside td to download and play the file
let $btndownload = $("").addClass("btn btn-primary").html("");
let $btnplay = $("").addClass("btn btn-success").html("");
let $tdbutton = $("
").append($btndownload).append($btnplay).addClass("text-center");
$btndownload.off('click').on('click', function () {
download("DownloadSoundbankResultFile", filename);
});
$btnplay.off('click').on('click', function () {
const $icon = $(this).find("svg");
if ($icon.hasClass("fa-stop")) {
// stop playback
const player = document.getElementById("audioplayer");
if (player) {
player.pause();
window.URL.revokeObjectURL(player.src);
}
} else {
// start playback
play("PlaySoundbankResultFile", filename, () => {
if (window.lastplaybutton){
if (window.lastplaybutton !== $(this)){
const $lasticon = window.lastplaybutton.find("svg");
$lasticon.removeClass("fa-stop").addClass("fa-play");
}
}
window.lastplaybutton = $(this);
});
}
$icon.toggleClass("fa-play fa-stop");
});
$tr.append($tdtitle);
$tr.append($tdbutton);
$("#tbody_resultsoundbank").append($tr);
});
}
}, (errdata) => {
alert("Error getting soundbank result files : " + errdata.message);
});
}
$(document).ready(function () {
console.log("filemanagement.js x3 loaded");
load_setting_category();
load_setting_language();
load_setting_voice();
get_soundbank_path();
setTimeout(() => {
change_droparea_enable();
}, 1000);
get_pagingresult_files();
get_soundbankresult_files();
$("#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.");
}
});
$("#drop-area").on('dragover', function (e) {
e.preventDefault();
e.stopPropagation();
$(this).addClass('dragover');
}).on('dragleave', function (e) {
e.preventDefault();
e.stopPropagation();
$(this).removeClass('dragover');
}).on('drop', function (e) {
e.preventDefault();
e.stopPropagation();
$(this).removeClass('dragover');
if ($(this).hasClass('disabled')) {
alert("Please select Category, Language, and Voice Type before uploading files.");
return;
}
let lang = $("#setting_language").val().trim();
let category = $("#setting_category").val().trim();
let voice = $("#setting_voice").val().trim();
let files = e.originalEvent.dataTransfer.files;
if (lang && lang.length > 0) {
if (category && category.length > 0) {
if (voice && voice.length > 0) {
if (files.length > 0) {
// check if each file have type audio/wav , size more than 0, and name ends with .wav
let allValid = true;
for (let i = 0; i < files.length; i++) {
let file = files[i];
if (file.type !== 'audio/wav' && !file.name.toLowerCase().endsWith('.wav')) {
allValid = false;
}
if (file.size <= 0) {
allValid = false;
}
}
if (allValid) {
if (confirm(`Are you sure want to upload ${files.length} file(s) to the soundbank directory for Category: ${$("#setting_category").val()}, Language: ${$("#setting_language").val()}, Voice Type: ${$("#setting_voice").val()}?`)) {
let url = `api/FileManager/UploadSoundbank/${lang}/${voice}/${category}`;
const formdata = new FormData();
for (let i = 0; i < files.length; i++) {
formdata.append('files', files[i]);
}
try {
fetch(url, {
method: 'POST',
body: formdata
})
.then(response => response.json())
.then(okdata => {
console.log("Upload result: ", JSON.stringify(okdata));
change_droparea_enable();
alert("Files uploaded successfully to soundbank directory.");
})
.catch(errdata => {
alert("Error uploading files to soundbank directory : " + errdata.message);
});
} catch (err) {
alert("Error preparing file upload: " + err.message);
}
}
} else alert("Please upload only valid WAV audio files. Type must be audio/wav and size must be more than 0 bytes.");
} else alert("No files detected for upload.");
} else alert("Please select Voice Type before uploading files.");
} else alert("Please select Category before uploading files.");
} else alert("Please select Language before uploading files.");
});
$("#clear_soundbank").off('click').on('click', function () {
if (confirm("Are you sure want to delete all soundbank result files from the server? This action cannot be undone.")) {
fetchAPI("FileManager/ClearSoundbankResultFiles","DELETE",{},null,(okdata)=>{
alert("All soundbank result files have been deleted from the server.");
get_soundbankresult_files();
},(errdata)=>{
alert("Error deleting soundbank result files : " + errdata.message);
});
}
});
$("#reload_soundbank").off('click').on('click', function () {
get_soundbankresult_files();
});
$("#search_soundbank").off('input').on('input', function () {
let searchTerm = $(this).val().toLowerCase();
// find inside tbody_resultsoundbank,
that have
with
containing the search term
$("#tbody_resultsoundbank tr").each(function () {
let fileName = $(this).find("td:first").text().toLowerCase();
if (fileName.includes(searchTerm)) {
$(this).show();
} else {
$(this).hide();
}
});
});
$("#clear_paging").off('click').on('click', function () {
if (confirm("Are you sure want to delete all paging result files from the server? This action cannot be undone.")) {
fetchAPI("FileManager/ClearPagingResultFiles","DELETE",{},null,(okdata)=>{
alert("All paging result files have been deleted from the server.");
get_pagingresult_files();
},(errdata)=>{
alert("Error deleting paging result files : " + errdata.message);
});
}
});
$("#reload_paging").off('click').on('click', function () {
get_pagingresult_files();
});
$("#search_paging").off('input').on('input', function () {
let searchTerm = $(this).val().toLowerCase();
// find inside tbody_resultpaging,
that have
with
containing the search term
$("#tbody_resultpaging tr").each(function () {
let fileName = $(this).find("td:first").text().toLowerCase();
if (fileName.includes(searchTerm)) {
$(this).show();
} else {
$(this).hide();
}
});
});
});