diff --git a/html/webpage/assets/js/script.js b/html/webpage/assets/js/script.js
index 90e42a7..2d27e9d 100644
--- a/html/webpage/assets/js/script.js
+++ b/html/webpage/assets/js/script.js
@@ -592,6 +592,17 @@ $(document).ready(function () {
}
});
})
+ $('#ttsgenerator').click(() => {
+ sidemenu.hide();
+ $('#content').load('tts.html', function (response, status, xhr) {
+ if (status === "success") {
+ console.log("TTS Generator content loaded successfully");
+ // pindah ke ttsgenerator.js
+ } else {
+ console.error("Error loading TTS Generator content:", xhr.status, xhr.statusText);
+ }
+ });
+ });
$('#filemanagement').click(() => {
sidemenu.hide();
$('#content').load('filemanagement.html', function (response, status, xhr) {
diff --git a/html/webpage/assets/js/tts.js b/html/webpage/assets/js/tts.js
new file mode 100644
index 0000000..f09e112
--- /dev/null
+++ b/html/webpage/assets/js/tts.js
@@ -0,0 +1,78 @@
+function websocket_init() {
+ window.addEventListener('ws_connected', () => {
+ console.log("tts.js ws_connected event triggered");
+ });
+
+ window.addEventListener('ws_disconnected', () => {
+ console.log("tts.js ws_disconnected event triggered");
+
+ });
+ window.addEventListener('ws_message', (event) => {
+ let rep = event.detail;
+ let cmd = rep.reply;
+ let data = rep.data;
+ if (cmd && cmd.length > 0) {
+ switch (cmd) {
+ case "start_generate_tts":
+ if (data && data.length>0 && "ok"===data){
+ add_to_list("TTS generation started.");
+ $('#startstopgeneration').text("Stop Generating");
+ }
+ break;
+ case "stop_generate_tts":
+ if (data && data.length>0 && "ok"===data){
+ add_to_list("TTS generation stopped.");
+ $('#startstopgeneration').text("Start Generating");
+ }
+ break;
+ case "tts_generate_progress":
+ if (data && data.length>0){
+ let xx = JSON.parse(data);
+ if ("progress" in xx){
+ if ("message" in xx){
+ add_to_list(xx.message + "(" + xx.progress+" %)");
+ }
+ }
+ }
+ }
+ }
+ });
+}
+
+function add_to_list(message){
+ // add message to generatelogs list, with date time prefix
+ let li = document.createElement("li");
+ let now = new Date();
+ let datetime = now.toLocaleString();
+ li.appendChild(document.createTextNode("[" + datetime + "] " + message));
+ $('#generatelogs').append(li);
+}
+
+$(document).ready(function () {
+ console.log("TTS module loaded.");
+ websocket_init();
+
+ $('#uploadjson').on('click', function () {
+ // TODO upload JSON file and process it
+ });
+ $('#startstopgeneration').on('click', function () {
+ if ($('#startstopgeneration').text() === "Start Generating") {
+ // clear list generatelogs
+ $('#generatelogs').empty();
+ let data = {
+ voicetype: $('#voicetype').val(),
+ languagetogenerate: $('#languagetogenerate').val(),
+ databasesource: $('#databasesource').val(),
+ targetas: $('#targetas').val(),
+ fileoperation: $('input[name="fileoperation"]:checked').val(),
+ autoadd: $('input[name="autoadd"]:checked').val()
+ }
+ sendCommand("start_generate_tts", JSON.stringify(data));
+ } else {
+ sendCommand("stop_generate_tts", "");
+ }
+
+
+
+ });
+});
\ No newline at end of file
diff --git a/html/webpage/homeadmin.html b/html/webpage/homeadmin.html
index 9fdb09c..a34be78 100644
--- a/html/webpage/homeadmin.html
+++ b/html/webpage/homeadmin.html
@@ -88,6 +88,19 @@