Berkarar/plugins/rainlab/translate/controllers/Locales.php

93 lines
2.3 KiB
PHP

<?php namespace Rainlab\Translate\Controllers;
use BackendMenu;
use Backend\Classes\Controller;
use System\Classes\SettingsManager;
use RainLab\Translate\Models\Locale as LocaleModel;
/**
* Locales Backend Controller
*/
class Locales extends Controller
{
/**
* implement the TranslatableModel behavior softly
*/
public $implement = [
\Backend\Behaviors\ListController::class,
\Backend\Behaviors\FormController::class,
\Backend\Behaviors\ReorderController::class,
];
public $listConfig = 'config_list.yaml';
public $formConfig = 'config_form.yaml';
public $reorderConfig = 'config_reorder.yaml';
public $requiredPermissions = ['rainlab.translate.manage_locales'];
public function __construct()
{
parent::__construct();
BackendMenu::setContext('October.System', 'system', 'settings');
SettingsManager::setContext('RainLab.Translate', 'locales');
$this->addJs('/plugins/rainlab/translate/assets/js/locales.js');
}
/**
* {@inheritDoc}
*/
public function listInjectRowClass($record, $definition = null)
{
if (!$record->is_enabled) {
return 'safe disabled';
}
}
public function onCreateForm()
{
$this->asExtension('FormController')->create();
return $this->makePartial('create_form');
}
public function onCreate()
{
LocaleModel::clearCache();
$this->asExtension('FormController')->create_onSave();
return $this->listRefresh();
}
public function onUpdateForm()
{
$this->asExtension('FormController')->update(post('record_id'));
$this->vars['recordId'] = post('record_id');
return $this->makePartial('update_form');
}
public function onUpdate()
{
LocaleModel::clearCache();
$this->asExtension('FormController')->update_onSave(post('record_id'));
return $this->listRefresh();
}
public function onDelete()
{
LocaleModel::clearCache();
$this->asExtension('FormController')->update_onDelete(post('record_id'));
return $this->listRefresh();
}
public function onReorder()
{
LocaleModel::clearCache();
$this->asExtension('ReorderController')->onReorder();
}
}