commit 27/10/2025
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
@@ -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 Result</h4>
|
<h4 class="text-center pad-result">Soundbank 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>
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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")
|
||||||
}
|
}
|
||||||
@@ -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,16 +1875,32 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
path("Settings") {
|
path("Settings") {
|
||||||
get("SoundbankDirectory") {
|
path("OldResultDays"){
|
||||||
|
get {
|
||||||
|
it.result(objectmapper.writeValueAsString(resultMessage(_config.Get(configKeys.AUTO_DELETE_RESULT_DAYS.key))))
|
||||||
|
}
|
||||||
|
post {
|
||||||
|
val json : JsonNode = objectmapper.readTree(it.body())
|
||||||
|
val days = json.get("days").asInt(3)
|
||||||
|
_config.Set(configKeys.AUTO_DELETE_RESULT_DAYS.key, days.toString())
|
||||||
|
_config.Save()
|
||||||
|
Logger.info { "Changed Auto Delete Result Days to $days" }
|
||||||
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
path("SoundbankDirectory"){
|
||||||
|
get {
|
||||||
val dir = _config.Get(configKeys.SOUNDBANK_DIRECTORY.key)
|
val dir = _config.Get(configKeys.SOUNDBANK_DIRECTORY.key)
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage(dir)))
|
it.result(objectmapper.writeValueAsString(resultMessage(dir)))
|
||||||
}
|
}
|
||||||
post("SoundbankDirectory") {
|
post {
|
||||||
val json: JsonNode = objectmapper.readTree(it.body())
|
val json: JsonNode = objectmapper.readTree(it.body())
|
||||||
val newdir = json.get("directory").asText("")
|
val newdir = json.get("directory").asText("")
|
||||||
if (ValidString(newdir)) {
|
if (ValidDirectory(newdir)) {
|
||||||
_config.Set(configKeys.SOUNDBANK_DIRECTORY.key, newdir)
|
_config.Set(configKeys.SOUNDBANK_DIRECTORY.key, newdir)
|
||||||
_config.Save()
|
_config.Save()
|
||||||
|
Somecodes.Soundbank_directory = Path.of(newdir)
|
||||||
|
|
||||||
Logger.info { "Changed Soundbank Directory to $newdir" }
|
Logger.info { "Changed Soundbank Directory to $newdir" }
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
@@ -1890,8 +1908,9 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
|||||||
.result(objectmapper.writeValueAsString(resultMessage("Invalid directory value")))
|
.result(objectmapper.writeValueAsString(resultMessage("Invalid directory value")))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
get("FISCode") {
|
}
|
||||||
|
path("FISCode"){
|
||||||
|
get {
|
||||||
val value = object {
|
val value = object {
|
||||||
//get from config file
|
//get from config file
|
||||||
val GOP = _config.Get(configKeys.REMARK_GOP.key)
|
val GOP = _config.Get(configKeys.REMARK_GOP.key)
|
||||||
@@ -1899,20 +1918,17 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
|||||||
val GFC = _config.Get(configKeys.REMARK_GFC.key)
|
val GFC = _config.Get(configKeys.REMARK_GFC.key)
|
||||||
val FLD = _config.Get(configKeys.REMARK_FLD.key)
|
val FLD = _config.Get(configKeys.REMARK_FLD.key)
|
||||||
val defaultvoice = _config.Get(configKeys.DEFAULT_VOICE_TYPE.key)
|
val defaultvoice = _config.Get(configKeys.DEFAULT_VOICE_TYPE.key)
|
||||||
|
val autodeleteresult = _config.Get(configKeys.AUTO_DELETE_RESULT_DAYS.key)
|
||||||
}
|
}
|
||||||
//println("Serving FIS Code request: GOP=${value.GOP}, GBD=${value.GBD}, GFC=${value.GFC}, FLD=${value.FLD}, DefaultVoice=${value.defaultvoice}")
|
|
||||||
it.result(objectmapper.writeValueAsString(value))
|
it.result(objectmapper.writeValueAsString(value))
|
||||||
}
|
}
|
||||||
|
post {
|
||||||
post("FISCode") {
|
|
||||||
|
|
||||||
val json: JsonNode = objectmapper.readTree(it.body())
|
val json: JsonNode = objectmapper.readTree(it.body())
|
||||||
val _gop = json.get("GOP").asText("")
|
val _gop = json.get("GOP").asText("")
|
||||||
val _gbd = json.get("GBD").asText("")
|
val _gbd = json.get("GBD").asText("")
|
||||||
val _gfc = json.get("GFC").asText("")
|
val _gfc = json.get("GFC").asText("")
|
||||||
val _fld = json.get("FLD").asText("")
|
val _fld = json.get("FLD").asText("")
|
||||||
val defaultvoice = json.get("defaultvoice").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)) {
|
if (ValidString(_gop) && ValidString(_gbd) && ValidString(_gfc) && ValidString(_fld)) {
|
||||||
// save to config file
|
// save to config file
|
||||||
_config.Set(configKeys.REMARK_GOP.key, _gop)
|
_config.Set(configKeys.REMARK_GOP.key, _gop)
|
||||||
@@ -1924,7 +1940,7 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
|||||||
Logger.info { "Changed FIS Codes" }
|
Logger.info { "Changed FIS Codes" }
|
||||||
db.Add_Log(
|
db.Add_Log(
|
||||||
"AAS",
|
"AAS",
|
||||||
"Save FIS Codes Message: GOP=$_gop, GBD=$_gbd, GFC=$_gfc, FLD=$_fld"
|
"Save FIS Codes Message: GOP=$_gop, GBD=$_gbd, GFC=$_gfc, FLD=$_fld, DefaultVoice=$defaultvoice"
|
||||||
)
|
)
|
||||||
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
it.result(objectmapper.writeValueAsString(resultMessage("OK")))
|
||||||
} else {
|
} else {
|
||||||
@@ -1935,6 +1951,8 @@ class WebApp(val listenPort: Int, val userlist: List<Pair<String, String>>, val
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}.start(listenPort)
|
}.start(listenPort)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user