commit 28/10/2025

This commit is contained in:
2025-10-28 10:28:36 +07:00
parent cbd5ea59d3
commit 1f979fba9a
60 changed files with 3039 additions and 5 deletions

View File

@@ -1,4 +1,6 @@
window.lastplaybutton = null;
/**
* Load setting language dropdown
*/
@@ -146,6 +148,50 @@ function download(path, filename) {
alert("Error downloading paging result file: " + errdata.message);
});
}
function play(path, filename, cbplay = null) {
let playurl = `/api/FileManager/${path}`;
let reqdata = { filename: filename };
fetch(playurl, {
method: 'POST',
body: JSON.stringify(reqdata)
}).then(response => {
if (!response.ok) {
throw new Error("Network response was not ok");
}
return response.blob();
}).then(blob => {
const url = window.URL.createObjectURL(blob);
const player = document.getElementById("audioplayer");
if (player) {
player.pause();
if (window.lastplaybutton){
let $icon = $(window.lastplaybutton).find("i");
$icon.removeClass("fa-stop").addClass("fa-play");
}
player.src = url;
player.load();
$("#audioplayer").show();
player.play();
player.onplay = () => {
console.log("Playing audio file: " + filename);
if (cbplay && typeof cbplay === "function") {
cbplay();
}
}
player.onended = () => {
console.log("Finished playing audio file: " + filename);
window.URL.revokeObjectURL(url);
};
player.onerror = (e) => {
alert("Error playing audio file: " + filename);
};
}
}).catch(errdata => {
alert("Error playing soundbank result file: " + errdata.message);
});
}
function get_pagingresult_files() {
const url = `FileManager/PagingResultList`;
@@ -158,12 +204,32 @@ function get_pagingresult_files() {
let $tr = $("<tr></tr>");
let $tdtitle = $("<td></td>").text(filename);
// add button inside td to download the file
let $btndownload = $("<button></button>").text("Download").addClass("btn btn-primary");
let $btndownload = $("<button></button>").addClass("btn btn-primary").html("<i class='fa-solid fa-download'></i>");
let $btnplay = $("<button></button>").addClass("btn btn-primary").html("<i class='fa-solid fa-play'></i>");
$btndownload.on('click', function () {
download("DownloadPagingResultFile", filename);
});
$btnplay.on('click', function () {
let $icon = $(this).find("i");
if ($icon.hasClass("fa-stop")) {
// stop playback
const player = document.getElementById("audioplayer");
if (player) {
player.pause();
window.URL.revokeObjectURL(player.src);
window.lastplaybutton = null;
$icon.removeClass("fa-stop").addClass("fa-play");
}
} else {
// start playback
play("PlayPagingResultFile", filename, () => {
window.lastplaybutton = $btnplay;
$icon.removeClass("fa-play").addClass("fa-stop");
});
}
});
let $tdbutton = $("<td></td>").append($btndownload).addClass("text-center");
let $tdbutton = $("<td></td>").append($btndownload).append($btnplay).addClass("text-center");
$tr.append($tdtitle);
$tr.append($tdbutton);
$("#tbody_resultpaging").append($tr);
@@ -184,12 +250,33 @@ function get_soundbankresult_files() {
let filename = file.split(/[/\\]/).pop();
let $tr = $("<tr></tr>");
let $tdtitle = $("<td></td>").text(filename);
// add button inside td to download the file
let $btndownload = $("<button></button>").text("Download").addClass("btn btn-primary");
let $tdbutton = $("<td></td>").append($btndownload).addClass("text-center");
// add button inside td to download and play the file
let $btndownload = $("<button></button>").addClass("btn btn-primary").html("<i class='fa-solid fa-download'></i>");
let $btnplay = $("<button></button>").addClass("btn btn-primary").html("<i class='fa-solid fa-play'></i>");
let $tdbutton = $("<td></td>").append($btndownload).append($btnplay).addClass("text-center");
$btndownload.on('click', function () {
download("DownloadSoundbankResultFile", filename);
});
$btnplay.on('click', function () {
let $icon = $(this).find("i");
if ($icon.hasClass("fa-stop")) {
// stop playback
const player = document.getElementById("audioplayer");
if (player) {
player.pause();
window.URL.revokeObjectURL(player.src);
window.lastplaybutton = null;
$icon.removeClass("fa-stop").addClass("fa-play");
}
} else {
// start playback
play("PlaySoundbankResultFile", filename, () => {
window.lastplaybutton = $btnplay;
$icon.removeClass("fa-play").addClass("fa-stop");
});
}
});
$tr.append($tdtitle);
$tr.append($tdbutton);
$("#tbody_resultsoundbank").append($tr);
@@ -204,6 +291,7 @@ function get_soundbankresult_files() {
$(document).ready(function () {
console.log("filemanagement.js xx loaded");
load_setting_category();
load_setting_language();
load_setting_voice();