<?php
declare(strict_types=1);
/**************************************************************************************
*
* Catalyst PHP Framework
* PHP Version 8.3 (Required).
*
* @package Catalyst
* @subpackage Assets
* @see https://github.com/arcanisgk/catalyst
*
* @author Walter Nuñez (arcanisgk/original founder) <[email protected]>
* @copyright 2023 - 2025
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*
* @note This program is distributed in the hope that it will be useful
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE.
*
* @category Framework
* @filesource
*
* @link https://catalyst.dock Local development URL
*
*/
?>
use Catalyst\Helpers\Security\CsrfProtection;
$csrfProtection = CsrfProtection::getInstance();
?>
<div class="row">
<div class="col-lg-12">
<div class="ibox">
<div class="ibox-title">
<h5>Developer Tools & Settings</h5>
<div class="ibox-tools">
<a class="collapse-link">
<i class="fa fa-chevron-up"></i>
</a>
</div>
</div>
<div class="ibox-content">
<form id="tools-config-form" class="form-horizontal">
<?= $csrfProtection->getTokenField('mail_config'); ?>
<div class="row">
<div class="col-md-6">
<div class="mb-1">
<div class="form-check">
<input type="checkbox" class="form-check-input" id="app_setting" name="app_setting"
<?= isset($configData['app_setting']) && $configData['app_setting'] ? 'checked' : '' ?>>
<label class="form-check-label" for="app_setting">Enable Application Settings Panel</label>
</div>
<small class="form-text text-muted">Allows access to this configuration interface.</small>
</div>
</div>
<div class="col-md-6">
<div class="mb-1">
<div class="form-check">
<input type="checkbox" class="form-check-input" id="dev_tool" name="dev_tool"
<?= isset($configData['dev_tool']) && $configData['dev_tool'] ? 'checked' : '' ?>>
<label class="form-check-label" for="dev_tool">Enable Developer Tools</label>
</div>
<small class="form-text text-muted">Enables debugging and development tools</small>
</div>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label for="translate_tool">Translation Tool</label>
<select class="form-control" id="translate_tool" name="translate_tool">
<option value="" <?= empty($configData['translate_tool']) ? 'selected' : '' ?>>None</option>
<option value="basic" <?= ($configData['translate_tool'] ?? '') === 'basic' ? 'selected' : '' ?>>Basic Translation Editor</option>
<option value="advanced" <?= ($configData['translate_tool'] ?? '') === 'advanced' ? 'selected' : '' ?>>Advanced Translation Suite</option>
</select>
<small class="text-muted">Select which translation tool to enable for content management</small>
</div>
</div>
</div>
<div class="hr-line-dashed"></div>
<!-- Security Config Change Password -->
<div class="row">
<div class="col-md-12">
<h4>Configuración de Seguridad</h4>
</div>
<div class="col-md-6">
<div class="form-group mb-3">
<label for="config_username">Nombre de Usuario para Configuración</label>
<input type="text" class="form-control" id="config_username" name="config_username"
value="<?= $configData['config']['username'] ?? 'admin' ?>">
<small class="form-text text-muted">Usuario para acceder al panel de configuración</small>
</div>
</div>
<div class="col-md-6">
<div class="form-group mb-3">
<label for="config_password">Contraseña para Configuración</label>
<div class="input-group">
<input type="password" class="form-control" id="config_password" name="config_password"
value="<?= $configData['config']['password'] ?? 'admin' ?>">
<button class="btn btn-outline-secondary toggle-password" type="button">
<i class="bi bi-eye"></i>
</button>
</div>
<small class="form-text text-muted">Contraseña para acceder al panel de configuración</small>
</div>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="row">
<div class="col-md-12 text-center">
<button type="submit" class="btn btn-primary btn-lg">
<i class="fa fa-save"></i> Save Configuration
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<script>
'use strict';
/**
* Tools Configuration Manager
* Modern ES6+ implementation for developer tools configuration
*/
document.addEventListener('DOMContentLoaded', () => {
// DOM Elements
const configForm = document.getElementById('tools-config-form');
// Initialize iCheck
if ($.fn.iCheck) {
$('.i-checks input').iCheck({
checkboxClass: 'icheckbox_square-green',
radioClass: 'iradio_square-green',
});
}
// Form submission handler
configForm.addEventListener('submit', async (event) => {
event.preventDefault();
// Verifica que el token CSRF esté presente
const csrfToken = document.querySelector('input[name="csrf_token"]');
console.log('CSRF Token:', csrfToken?.value); // Para depuración
await handleConfigSubmit(configForm, '/configure/tools/save');
});
});
</script>
|