119 lines
4.8 KiB
PHP
119 lines
4.8 KiB
PHP
<?php
|
|
|
|
namespace Modules\Admin\App\Livewire\AdminSettings;
|
|
|
|
use Livewire\Component;
|
|
use Modules\Admin\App\Services\AdminTemplateService;
|
|
use Modules\Admin\App\Services\GlobalSettingsService;
|
|
|
|
class InterfaceSettings extends Component
|
|
{
|
|
private $targetNotify = "#interface-settings-card .notification-container";
|
|
|
|
public $vuexy_myLayout,
|
|
$vuexy_myTheme,
|
|
$vuexy_myStyle,
|
|
$vuexy_hasCustomizer,
|
|
$vuexy_displayCustomizer,
|
|
$vuexy_contentLayout,
|
|
$vuexy_navbarType,
|
|
$vuexy_footerFixed,
|
|
$vuexy_menuFixed,
|
|
$vuexy_menuCollapsed,
|
|
$vuexy_headerType,
|
|
$vuexy_showDropdownOnHover,
|
|
$vuexy_authViewMode,
|
|
$vuexy_maxQuickLinks;
|
|
|
|
public function mount()
|
|
{
|
|
$this->loadSettings();
|
|
}
|
|
|
|
|
|
public function loadSettings()
|
|
{
|
|
$adminTemplateService = app(AdminTemplateService::class);
|
|
|
|
// Obtener los valores de las configuraciones de la base de datos
|
|
$settings = $adminTemplateService->getVuexyCustomizerVars();
|
|
|
|
$this->vuexy_myLayout = $settings['myLayout'];
|
|
$this->vuexy_myTheme = $settings['myTheme'];
|
|
$this->vuexy_myStyle = $settings['myStyle'];
|
|
$this->vuexy_hasCustomizer = $settings['hasCustomizer'];
|
|
$this->vuexy_displayCustomizer = $settings['displayCustomizer'];
|
|
$this->vuexy_contentLayout = $settings['contentLayout'];
|
|
$this->vuexy_navbarType = $settings['navbarType'];
|
|
$this->vuexy_footerFixed = $settings['footerFixed'];
|
|
$this->vuexy_menuFixed = $settings['menuFixed'];
|
|
$this->vuexy_menuCollapsed = $settings['menuCollapsed'];
|
|
$this->vuexy_headerType = $settings['headerType'];
|
|
$this->vuexy_showDropdownOnHover = $settings['showDropdownOnHover'];
|
|
$this->vuexy_authViewMode = $settings['authViewMode'];
|
|
$this->vuexy_maxQuickLinks = $settings['maxQuickLinks'];
|
|
}
|
|
|
|
public function save()
|
|
{
|
|
$this->validate([
|
|
'vuexy_maxQuickLinks' => 'required|integer|min:2|max:20',
|
|
]);
|
|
|
|
$globalSettingsService = app(GlobalSettingsService::class);
|
|
|
|
// Guardar configuraciones
|
|
$globalSettingsService->updateSetting('config.custom.custom.myLayout', $this->vuexy_myLayout);
|
|
$globalSettingsService->updateSetting('config.custom.custom.myTheme', $this->vuexy_myTheme);
|
|
$globalSettingsService->updateSetting('config.custom.custom.myStyle', $this->vuexy_myStyle);
|
|
$globalSettingsService->updateSetting('config.custom.custom.hasCustomizer', $this->vuexy_hasCustomizer);
|
|
$globalSettingsService->updateSetting('config.custom.custom.displayCustomizer', $this->vuexy_displayCustomizer);
|
|
$globalSettingsService->updateSetting('config.custom.custom.contentLayout', $this->vuexy_contentLayout);
|
|
$globalSettingsService->updateSetting('config.custom.custom.navbarType', $this->vuexy_navbarType);
|
|
$globalSettingsService->updateSetting('config.custom.custom.footerFixed', $this->vuexy_footerFixed);
|
|
$globalSettingsService->updateSetting('config.custom.custom.menuFixed', $this->vuexy_menuFixed);
|
|
$globalSettingsService->updateSetting('config.custom.custom.menuCollapsed', $this->vuexy_menuCollapsed);
|
|
$globalSettingsService->updateSetting('config.custom.custom.headerType', $this->vuexy_headerType);
|
|
$globalSettingsService->updateSetting('config.custom.custom.showDropdownOnHover', $this->vuexy_showDropdownOnHover);
|
|
$globalSettingsService->updateSetting('config.custom.custom.authViewMode', $this->vuexy_authViewMode);
|
|
$globalSettingsService->updateSetting('config.custom.custom.maxQuickLinks', $this->vuexy_maxQuickLinks);
|
|
|
|
$globalSettingsService->clearSystemConfigCache();
|
|
|
|
// Refrescar el componente actual
|
|
$this->dispatch('clearLocalStoregeTemplateCustomizer');
|
|
|
|
$this->dispatch(
|
|
'notification',
|
|
target: $this->targetNotify,
|
|
type: 'success',
|
|
message: 'Se han guardado los cambios en las configuraciones.',
|
|
deferReload: true
|
|
);
|
|
}
|
|
|
|
public function clearCustomConfig()
|
|
{
|
|
$globalSettingsService = app(GlobalSettingsService::class);
|
|
|
|
$globalSettingsService->clearVuexyCustomConfig();
|
|
|
|
// Refrescar el componente actual
|
|
$this->dispatch('clearLocalStoregeTemplateCustomizer');
|
|
|
|
$this->dispatch(
|
|
'notification',
|
|
target: $this->targetNotify,
|
|
type: 'success',
|
|
message: 'Se han guardado los cambios en las configuraciones.',
|
|
deferReload: true
|
|
);
|
|
}
|
|
|
|
|
|
public function render()
|
|
{
|
|
return view('admin::livewire.admin-settings.interface-settings');
|
|
}
|
|
}
|