var configData = {}
$(document).ready(function () {
$.ajax({
url: '/admin/get_config',
type: 'POST',
dataType: 'json',
contentType: 'application/json',
headers: {
'X-CSRFToken': $('meta[name="csrf-token"]').attr('content')
},
success: function (response) {
configData = response;
show_config(response);
},
error: function (response) {
}
});
$(".config-save").click(function () {
set_config();
});
// Add new API key
$('#add-api-key').click(function () {
var newKey = {
key: generateRandomKey(),
enabled: true
};
configData.system.api_keys.push(newKey);
addApiKeyHtml(newKey, configData.system.api_keys.length - 1);
});
// Remove API key
$('#api-keys').on('click', '.btn-remove-key', function () {
var index = $(this).closest('.input-group').data('index');
configData.system.api_keys.splice(index, 1);
$(this).closest('.input-group').remove();
$('#api-keys .input-group').each(function (i) {
$(this).attr('data-index', i);
$(this).find('.input-group-text').text(`API Key ${i + 1}`);
});
});
// Toggle API Key Enabled status
$('#api-key-enabled').change(function () {
configData.system.api_key_enabled = $(this).prop('checked');
});
}
);
function renderApiKeys() {
var container = $('#api-keys');
container.empty(); // Clear previous keys
configData.system.api_keys.forEach(function (apiKey, index) {
addApiKeyHtml(apiKey, index);
});
}
function addApiKeyHtml(apiKey, index) {
var container = $('#api-keys');
var apiKeyHtml = `
API Key ${index + 1}
`;
container.append(apiKeyHtml);
}
function generateRandomKey() {
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var keyLength = 24;
var result = '';
for (var i = 0; i < keyLength; i++) {
var randomIndex = Math.floor(Math.random() * characters.length);
result += characters[randomIndex];
}
return result;
}
function show_config() {
$.each(configData.vits_config, function (key, value) {
var formattedKey = key.replace(/_/g, '-');
//为了避免id冲突,组合key作为id
var itemId = 'vits-config-' + formattedKey;
$('#vits-config').append(`
${key}
`);
})
$.each(configData.w2v2_vits_config, function (key, value) {
var formattedKey = key.replace(/_/g, '-');
var itemId = 'w2v2-vits-config-' + formattedKey;
$('#w2v2-vits-config').append(`
${key}
`);
})
$.each(configData.hubert_vits_config, function (key, value) {
var formattedKey = key.replace(/_/g, '-');
var itemId = 'hubert-vits-config-' + formattedKey;
$('#hubert-vits-config').append(`
${key}
`);
})
$.each(configData.bert_vits2_config, function (key, value) {
var formattedKey = key.replace(/_/g, '-');
var itemId = 'bert-vits2-config-' + formattedKey;
var inputValue = (value === null) ? '' : value;
$('#bert-vits2-config').append(`
${key}
`);
})
$.each(configData.log_config, function (key, value) {
var formattedKey = key.replace(/_/g, '-');
if (key != 'logging_level') {
$('#log-config').append(`
${key}
`);
}
});
$.each(configData.tts_model_config, function (key, value) {
var formattedKey = key.replace(/_/g, '-');
if (formattedKey !== "tts-models") {
$('#tts-model-config').append(`