commit 27/10/2025

This commit is contained in:
2025-10-27 17:27:19 +07:00
parent 0ef35b2b0c
commit cbd5ea59d3
19 changed files with 187 additions and 98 deletions

View File

@@ -1,5 +1,6 @@
#Configuration file #Configuration file
#Mon Oct 27 15:51:50 WIB 2025 #Mon Oct 27 17:19:33 WIB 2025
auto.delete.result.days=10
database.host=localhost database.host=localhost
database.name=aas database.name=aas
database.password=admin database.password=admin

View File

@@ -401,7 +401,7 @@ table {
} }
.div-file-list { .div-file-list {
height: 20vh; height: 150px;
overflow-y: auto; overflow-y: auto;
overflow-x: hidden; overflow-x: hidden;
padding: 10px; padding: 10px;
@@ -433,3 +433,12 @@ table {
border-bottom: 1px dashed #000000; border-bottom: 1px dashed #000000;
} }
.pad-left {
margin-left: 1rem;
}
.btn-download {
background-color: #2d3578;
color: white;
}

View File

@@ -262,7 +262,7 @@ $(document).ready(function () {
} }
if (allValid) { 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()}?`)) { 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/Settings/UploadSoundbank/${lang}/${voice}/${category}`; let url = `api/FileManager/UploadSoundbank/${lang}/${voice}/${category}`;
const formdata = new FormData(); const formdata = new FormData();
for (let i = 0; i < files.length; i++) { for (let i = 0; i < files.length; i++) {
formdata.append('files', files[i]); formdata.append('files', files[i]);
@@ -275,6 +275,8 @@ $(document).ready(function () {
.then(response => response.json()) .then(response => response.json())
.then(okdata => { .then(okdata => {
console.log("Upload result: ", JSON.stringify(okdata)); console.log("Upload result: ", JSON.stringify(okdata));
change_droparea_enable();
alert("Files uploaded successfully to soundbank directory.");
}) })
.catch(errdata => { .catch(errdata => {
alert("Error uploading files to soundbank directory : " + errdata.message); alert("Error uploading files to soundbank directory : " + errdata.message);

View File

@@ -1,8 +1,3 @@
/** /**
* Load message bank data into selection dropdowns * Load message bank data into selection dropdowns
* @param {Function || null} cbOK callback when complete * @param {Function || null} cbOK callback when complete
@@ -39,6 +34,32 @@ function load_remark_selection() {
}); });
} }
function Get_OldResultDays(){
fetchAPI("Settings/OldResultDays", "GET", {}, null, (okdata) => {
let days = parseInt(okdata.message);
if(isNaN(days) || days < 0){
days = 3;
}
$("#oldresultdays").val(days);
}, (errdata) => {
alert("Error getting Old Result Days : " + errdata.message);
});
}
function Set_OldResultDays(){
let days = parseInt($("#oldresultdays").val());
if(isNaN(days) || days < 0){
alert("Please enter a valid number of days (0 or more).");
return;
}
fetchAPI("Settings/OldResultDays", "POST", {}, { days: days }, (okdata) => {
alert("Old Result Days updated successfully.");
}, (errdata) => {
alert("Error updating Old Result Days : " + errdata.message);
});
}
function load_default_voice(){ function load_default_voice(){
$("#input_defaultvoice").empty(); $("#input_defaultvoice").empty();
window.voiceTypes.forEach((voice) => { window.voiceTypes.forEach((voice) => {
@@ -49,8 +70,10 @@ function load_default_voice(){
$(document).ready(function () { $(document).ready(function () {
console.log("setting.js loaded"); console.log("setting.js loaded");
load_default_voice(); load_default_voice();
Get_OldResultDays();
load_messagebank(() => load_remark_selection()); load_messagebank(() => load_remark_selection());
$("#fiscodesave").off('click').on('click', function () { $("#fiscodesave").off('click').on('click', function () {
Set_OldResultDays();
let gop = $("#input_GOP").val(); let gop = $("#input_GOP").val();
let gbd = $("#input_GBD").val(); let gbd = $("#input_GBD").val();
let gfc = $("#input_GFC").val(); let gfc = $("#input_GFC").val();

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>AAS_NewGen_27OKT25</title> <title>AAS_NewGen_27OKT25rev1</title>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/bss-overrides.css"> <link rel="stylesheet" href="assets/css/bss-overrides.css">
<link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css"> <link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css">

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>AAS_NewGen_27OKT25</title> <title>AAS_NewGen_27OKT25rev1</title>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/bss-overrides.css"> <link rel="stylesheet" href="assets/css/bss-overrides.css">
<link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css"> <link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css">
@@ -68,6 +68,14 @@
<div class="py-2"> <div class="py-2">
<h4 class="text-center pad-result">Soundbank&nbsp;Result</h4> <h4 class="text-center pad-result">Soundbank&nbsp;Result</h4>
<hr> <hr>
<div class="row pad-result">
<div class="col-6 col-sm-6 col-md-3 col-lg-2 col-xl-2"><button class="btn w-100 pad-button btn-round-basic color-import" id="reload_soundbank" type="button">Reload Table</button></div>
<div class="col-6 col-sm-6 col-md-3 col-lg-2 col-xl-2"><button class="btn w-100 pad-button btn-round-basic color-remove" id="clear_soundbank" type="button">Clear Directory</button></div>
<div class="col-6 col-sm-6 col-md-2 col-lg-6 col-xl-6">
<p class="text-end text-add">Search</p>
</div>
<div class="col-6 col-sm-6 col-md-4 col-lg-2 col-xl-2"><input class="w-100 form-control" type="search" id="search_soundbank"></div>
</div>
<div class="table-responsive pad-result"> <div class="table-responsive pad-result">
<table class="table table-hover"> <table class="table table-hover">
<thead> <thead>
@@ -79,14 +87,7 @@
<tbody id="tbody_resultsoundbank"> <tbody id="tbody_resultsoundbank">
<tr> <tr>
<td>Result Soundbank 001</td> <td>Result Soundbank 001</td>
<td class="text-center"><button class="btn btn-primary" data-bs-toggle="tooltip" data-bss-tooltip="" data-bs-placement="right" type="button" title="Download"><svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="1em" viewBox="0 0 24 24" width="1em" fill="currentColor"> <td class="text-center"><button class="btn btn-download" data-bs-toggle="tooltip" data-bss-tooltip="" data-bs-placement="right" type="button" title="Download">Download</button></td>
<g>
<rect fill="none" height="24" width="24"></rect>
</g>
<g>
<path d="M5,20h14v-2H5V20z M19,9h-4V3H9v6H5l7,7L19,9z"></path>
</g>
</svg></button></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@@ -95,6 +96,14 @@
<div class="py-2"> <div class="py-2">
<h4 class="text-center pad-result">Paging Result</h4> <h4 class="text-center pad-result">Paging Result</h4>
<hr> <hr>
<div class="row pad-result">
<div class="col-6 col-sm-6 col-md-3 col-lg-2 col-xl-2"><button class="btn w-100 pad-button btn-round-basic color-import" id="reload_paging" type="button">Reload Table</button></div>
<div class="col-6 col-sm-6 col-md-3 col-lg-2 col-xl-2"><button class="btn w-100 pad-button btn-round-basic color-remove" id="clear_paging" type="button">Clear Directory</button></div>
<div class="col-6 col-sm-6 col-md-2 col-lg-6 col-xl-6">
<p class="text-end text-add">Search</p>
</div>
<div class="col-6 col-sm-6 col-md-4 col-lg-2 col-xl-2"><input class="w-100 form-control" type="search" id="search_paging"></div>
</div>
<div class="table-responsive pad-result"> <div class="table-responsive pad-result">
<table class="table table-hover table-responsive pad-result"> <table class="table table-hover table-responsive pad-result">
<thead> <thead>
@@ -106,14 +115,7 @@
<tbody id="tbody_resultpaging"> <tbody id="tbody_resultpaging">
<tr> <tr>
<td>Result Paging 001</td> <td>Result Paging 001</td>
<td class="text-center"><button class="btn btn-primary" data-bs-toggle="tooltip" data-bss-tooltip="" data-bs-placement="right" type="button" title="Download"><svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="1em" viewBox="0 0 24 24" width="1em" fill="currentColor"> <td class="text-center"><button class="btn btn-download" data-bs-toggle="tooltip" data-bss-tooltip="" data-bs-placement="right" type="button" title="Download">Download</button></td>
<g>
<rect fill="none" height="24" width="24"></rect>
</g>
<g>
<path d="M5,20h14v-2H5V20z M19,9h-4V3H9v6H5l7,7L19,9z"></path>
</g>
</svg></button></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>AAS_NewGen_27OKT25</title> <title>AAS_NewGen_27OKT25rev1</title>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/bss-overrides.css"> <link rel="stylesheet" href="assets/css/bss-overrides.css">
<link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css"> <link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css">

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>AAS_NewGen_27OKT25</title> <title>AAS_NewGen_27OKT25rev1</title>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/bss-overrides.css"> <link rel="stylesheet" href="assets/css/bss-overrides.css">
<link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css"> <link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css">

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>AAS_NewGen_27OKT25</title> <title>AAS_NewGen_27OKT25rev1</title>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/bss-overrides.css"> <link rel="stylesheet" href="assets/css/bss-overrides.css">
<link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css"> <link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css">

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>AAS_NewGen_27OKT25</title> <title>AAS_NewGen_27OKT25rev1</title>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/bss-overrides.css"> <link rel="stylesheet" href="assets/css/bss-overrides.css">
<link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css"> <link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css">

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>AAS_NewGen_27OKT25</title> <title>AAS_NewGen_27OKT25rev1</title>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/bss-overrides.css"> <link rel="stylesheet" href="assets/css/bss-overrides.css">
<link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css"> <link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css">
@@ -31,24 +31,57 @@
<div class="row"> <div class="row">
<div class="col-8 col-sm-9 col-md-10 col-lg-10 col-xl-10"> <div class="col-8 col-sm-9 col-md-10 col-lg-10 col-xl-10">
<div class="row"> <div class="row">
<div class="col-2 col-sm-2 col-md-2 col-lg-2 col-xl-2"><label class="col-form-label">GOP</label></div> <div class="col-6 col-sm-6 col-md-6 col-lg-4 col-xl-3"><label class="col-form-label">GOP</label></div>
<div class="col-10 col-sm-10 col-md-10 col-lg-10 col-xl-10"><select id="input_GOP" class="input-add form-select"></select></div> <div class="col-6 col-sm-6 col-md-6 col-lg-8 col-xl-9"><select id="input_GOP" class="input-add form-select"></select></div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-2 col-sm-2 col-md-2 col-lg-2 col-xl-2"><label class="col-form-label">GBD</label></div> <div class="col-6 col-sm-6 col-md-6 col-lg-4 col-xl-3"><label class="col-form-label">GBD</label></div>
<div class="col-10 col-sm-10 col-md-10 col-lg-10 col-xl-10"><select id="input_GBD" class="input-add form-select"></select></div> <div class="col-6 col-sm-6 col-md-6 col-lg-8 col-xl-9"><select id="input_GBD" class="input-add form-select"></select></div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-2 col-sm-2 col-md-2 col-lg-2 col-xl-2"><label class="col-form-label">GFC</label></div> <div class="col-6 col-sm-6 col-md-6 col-lg-4 col-xl-3"><label class="col-form-label">GFC</label></div>
<div class="col-10 col-sm-10 col-md-10 col-lg-10 col-xl-10"><select id="input_GFC" class="input-add form-select"></select></div> <div class="col-6 col-sm-6 col-md-6 col-lg-8 col-xl-9"><select id="input_GFC" class="input-add form-select"></select></div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-2 col-sm-2 col-md-2 col-lg-2 col-xl-2"><label class="col-form-label">FLD</label></div> <div class="col-6 col-sm-6 col-md-6 col-lg-4 col-xl-3"><label class="col-form-label">FLD</label></div>
<div class="col-10 col-sm-10 col-md-10 col-lg-10 col-xl-10"><select id="input_FLD" class="input-add form-select"></select></div> <div class="col-6 col-sm-6 col-md-6 col-lg-8 col-xl-9"><select id="input_FLD" class="input-add form-select"></select></div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-2 col-sm-2 col-md-2 col-lg-2 col-xl-2"><label class="col-form-label">Default Voice</label></div> <div class="col-6 col-sm-6 col-md-6 col-lg-4 col-xl-3"><label class="col-form-label">Default Voice</label></div>
<div class="col-10 col-sm-10 col-md-10 col-lg-10 col-xl-10"><select id="input_defaultvoice" class="input-add form-select"></select></div> <div class="col-6 col-sm-6 col-md-6 col-lg-8 col-xl-9"><select id="input_defaultvoice" class="input-add form-select"></select></div>
</div>
<div class="row">
<div class="col-6 col-sm-6 col-md-6 col-lg-4 col-xl-3"><label class="col-form-label">Automatic Delete File After (Days)</label></div>
<div class="col-6 col-sm-6 col-md-6 col-lg-8 col-xl-9"><select id="oldresultdays" class="input-add form-select">
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25 days">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
</select></div>
</div> </div>
</div> </div>
<div class="col-4 col-sm-3 col-md-2 col-lg-2 col-xl-2"><button class="btn w-100 h-100 pad-button btn-round-basic color-add" id="fiscodesave" type="button">Save</button></div> <div class="col-4 col-sm-3 col-md-2 col-lg-2 col-xl-2"><button class="btn w-100 h-100 pad-button btn-round-basic color-add" id="fiscodesave" type="button">Save</button></div>

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>AAS_NewGen_27OKT25</title> <title>AAS_NewGen_27OKT25rev1</title>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/bss-overrides.css"> <link rel="stylesheet" href="assets/css/bss-overrides.css">
<link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css"> <link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css">

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>AAS_NewGen_27OKT25</title> <title>AAS_NewGen_27OKT25rev1</title>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/bss-overrides.css"> <link rel="stylesheet" href="assets/css/bss-overrides.css">
<link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css"> <link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css">

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>AAS_NewGen_27OKT25</title> <title>AAS_NewGen_27OKT25rev1</title>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/bss-overrides.css"> <link rel="stylesheet" href="assets/css/bss-overrides.css">
<link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css"> <link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css">

View File

@@ -4,7 +4,7 @@
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no"> <meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>AAS_NewGen_27OKT25</title> <title>AAS_NewGen_27OKT25rev1</title>
<link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/bss-overrides.css"> <link rel="stylesheet" href="assets/css/bss-overrides.css">
<link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css"> <link rel="stylesheet" href="assets/css/Login-Form-Basic-icons.css">

View File

@@ -815,7 +815,6 @@ class MainExtension01 {
db.queuetableDB.Resort() db.queuetableDB.Resort()
db.Add_Log("AAS", result.message) db.Add_Log("AAS", result.message)
} }
} }
} else { } else {

View File

@@ -68,6 +68,7 @@ class configFile {
config[configKeys.WEBAPP_VIEWER_PASSWORD.key] = "password" config[configKeys.WEBAPP_VIEWER_PASSWORD.key] = "password"
config[configKeys.WEBAPP_PORT.key] = "3030" config[configKeys.WEBAPP_PORT.key] = "3030"
config[configKeys.DEFAULT_VOICE_TYPE.key] = VoiceType.VOICE_1.name config[configKeys.DEFAULT_VOICE_TYPE.key] = VoiceType.VOICE_1.name
config[configKeys.AUTO_DELETE_RESULT_DAYS.key] = "7"
Save() Save()
} }
} }

View File

@@ -16,5 +16,6 @@ enum class configKeys(val key: String) {
WEBAPP_ADMIN_PASSWORD("webapp.admin.password"), WEBAPP_ADMIN_PASSWORD("webapp.admin.password"),
WEBAPP_VIEWER_USERNAME("webapp.viewer.username"), WEBAPP_VIEWER_USERNAME("webapp.viewer.username"),
WEBAPP_VIEWER_PASSWORD("webapp.viewer.password"), WEBAPP_VIEWER_PASSWORD("webapp.viewer.password"),
WEBAPP_PORT("webapp.port") WEBAPP_PORT("webapp.port"),
AUTO_DELETE_RESULT_DAYS("auto.delete.result.days")
} }

View File

@@ -6,6 +6,7 @@ import codes.Somecodes.Companion.GetSensorsInfo
import codes.Somecodes.Companion.GetUptime import codes.Somecodes.Companion.GetUptime
import codes.Somecodes.Companion.ListAudioFiles import codes.Somecodes.Companion.ListAudioFiles
import codes.Somecodes.Companion.ValiDateForLogHtml import codes.Somecodes.Companion.ValiDateForLogHtml
import codes.Somecodes.Companion.ValidDirectory
import codes.Somecodes.Companion.ValidFile import codes.Somecodes.Companion.ValidFile
import codes.Somecodes.Companion.ValidIPV4 import codes.Somecodes.Companion.ValidIPV4
import codes.Somecodes.Companion.ValidScheduleDay import codes.Somecodes.Companion.ValidScheduleDay
@@ -1793,6 +1794,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
val category = it.pathParam("category") val category = it.pathParam("category")
val uploaded = it.uploadedFiles() val uploaded = it.uploadedFiles()
println("UploadSoundbank called with language=$language, voice=$voice, category=$category, uploaded files count=${uploaded.size}")
if (ValidString(language) && Language.entries.any { lang -> lang.name == language }) { if (ValidString(language) && Language.entries.any { lang -> lang.name == language }) {
if (ValidString(voice) && VoiceType.entries.any { vtype -> vtype.name == voice }) { if (ValidString(voice) && VoiceType.entries.any { vtype -> vtype.name == voice }) {
if (ValidString(category) && Category.entries.any { cat -> cat.name == category }) { if (ValidString(category) && Category.entries.any { cat -> cat.name == category }) {
@@ -1873,65 +1875,81 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
} }
} }
path("Settings") { path("Settings") {
get("SoundbankDirectory") { path("OldResultDays"){
val dir = _config.Get(configKeys.SOUNDBANK_DIRECTORY.key) get {
it.result(objectmapper.writeValueAsString(resultMessage(dir))) it.result(objectmapper.writeValueAsString(resultMessage(_config.Get(configKeys.AUTO_DELETE_RESULT_DAYS.key))))
} }
post("SoundbankDirectory") { post {
val json: JsonNode = objectmapper.readTree(it.body()) val json : JsonNode = objectmapper.readTree(it.body())
val newdir = json.get("directory").asText("") val days = json.get("days").asInt(3)
if (ValidString(newdir)) { _config.Set(configKeys.AUTO_DELETE_RESULT_DAYS.key, days.toString())
_config.Set(configKeys.SOUNDBANK_DIRECTORY.key, newdir)
_config.Save() _config.Save()
Logger.info { "Changed Soundbank Directory to $newdir" } Logger.info { "Changed Auto Delete Result Days to $days" }
it.result(objectmapper.writeValueAsString(resultMessage("OK"))) it.result(objectmapper.writeValueAsString(resultMessage("OK")))
} else {
it.status(400)
.result(objectmapper.writeValueAsString(resultMessage("Invalid directory value")))
} }
} }
get("FISCode") { path("SoundbankDirectory"){
get {
val value = object { val dir = _config.Get(configKeys.SOUNDBANK_DIRECTORY.key)
//get from config file it.result(objectmapper.writeValueAsString(resultMessage(dir)))
val GOP = _config.Get(configKeys.REMARK_GOP.key)
val GBD = _config.Get(configKeys.REMARK_GBD.key)
val GFC = _config.Get(configKeys.REMARK_GFC.key)
val FLD = _config.Get(configKeys.REMARK_FLD.key)
val defaultvoice = _config.Get(configKeys.DEFAULT_VOICE_TYPE.key)
} }
//println("Serving FIS Code request: GOP=${value.GOP}, GBD=${value.GBD}, GFC=${value.GFC}, FLD=${value.FLD}, DefaultVoice=${value.defaultvoice}") post {
it.result(objectmapper.writeValueAsString(value)) val json: JsonNode = objectmapper.readTree(it.body())
} val newdir = json.get("directory").asText("")
if (ValidDirectory(newdir)) {
_config.Set(configKeys.SOUNDBANK_DIRECTORY.key, newdir)
_config.Save()
Somecodes.Soundbank_directory = Path.of(newdir)
post("FISCode") { Logger.info { "Changed Soundbank Directory to $newdir" }
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
val json: JsonNode = objectmapper.readTree(it.body()) } else {
val _gop = json.get("GOP").asText("") it.status(400)
val _gbd = json.get("GBD").asText("") .result(objectmapper.writeValueAsString(resultMessage("Invalid directory value")))
val _gfc = json.get("GFC").asText("") }
val _fld = json.get("FLD").asText("")
val defaultvoice = json.get("defaultvoice").asText("")
//println("Received FIS Code update: GOP=$_gop, GBD=$_gbd, GFC=$_gfc, FLD=$_fld, DefaultVoice=$defaultvoice")
if (ValidString(_gop) && ValidString(_gbd) && ValidString(_gfc) && ValidString(_fld)) {
// save to config file
_config.Set(configKeys.REMARK_GOP.key, _gop)
_config.Set(configKeys.REMARK_GBD.key, _gbd)
_config.Set(configKeys.REMARK_GFC.key, _gfc)
_config.Set(configKeys.REMARK_FLD.key, _fld)
_config.Set(configKeys.DEFAULT_VOICE_TYPE.key, defaultvoice)
_config.Save()
Logger.info { "Changed FIS Codes" }
db.Add_Log(
"AAS",
"Save FIS Codes Message: GOP=$_gop, GBD=$_gbd, GFC=$_gfc, FLD=$_fld"
)
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
} else {
it.status(400)
.result(objectmapper.writeValueAsString(resultMessage("Invalid FIS code value")))
} }
} }
path("FISCode"){
get {
val value = object {
//get from config file
val GOP = _config.Get(configKeys.REMARK_GOP.key)
val GBD = _config.Get(configKeys.REMARK_GBD.key)
val GFC = _config.Get(configKeys.REMARK_GFC.key)
val FLD = _config.Get(configKeys.REMARK_FLD.key)
val defaultvoice = _config.Get(configKeys.DEFAULT_VOICE_TYPE.key)
val autodeleteresult = _config.Get(configKeys.AUTO_DELETE_RESULT_DAYS.key)
}
it.result(objectmapper.writeValueAsString(value))
}
post {
val json: JsonNode = objectmapper.readTree(it.body())
val _gop = json.get("GOP").asText("")
val _gbd = json.get("GBD").asText("")
val _gfc = json.get("GFC").asText("")
val _fld = json.get("FLD").asText("")
val defaultvoice = json.get("defaultvoice").asText("")
if (ValidString(_gop) && ValidString(_gbd) && ValidString(_gfc) && ValidString(_fld)) {
// save to config file
_config.Set(configKeys.REMARK_GOP.key, _gop)
_config.Set(configKeys.REMARK_GBD.key, _gbd)
_config.Set(configKeys.REMARK_GFC.key, _gfc)
_config.Set(configKeys.REMARK_FLD.key, _fld)
_config.Set(configKeys.DEFAULT_VOICE_TYPE.key, defaultvoice)
_config.Save()
Logger.info { "Changed FIS Codes" }
db.Add_Log(
"AAS",
"Save FIS Codes Message: GOP=$_gop, GBD=$_gbd, GFC=$_gfc, FLD=$_fld, DefaultVoice=$defaultvoice"
)
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
} else {
it.status(400)
.result(objectmapper.writeValueAsString(resultMessage("Invalid FIS code value")))
}
}
}
} }
} }