http://modulesgarden.com
* CONTACT -> contact@modulesgarden.com
*
*
* This software is furnished under a license and may be used and copied
* only in accordance with the terms of such license and with the
* inclusion of the above copyright notice. This software or any other
* copies thereof may not be provided or otherwise made available to any
* other person. No title to and ownership of the software is hereby
* transferred.
*
*
* ******************************************************************** */
namespace ModulesGarden\Servers\ProxmoxVps\App\UI\FirewallOption\Pages;
use ModulesGarden\ProxmoxAddon\App\Services\ApiService;
use ModulesGarden\ProxmoxAddon\App\Services\Vps\ProductService;
use ModulesGarden\Servers\ProxmoxVps\App\UI\FirewallOption\Buttons\UpdateButton;
use ModulesGarden\Servers\ProxmoxVps\Core\UI\Builder\BaseContainer;
use ModulesGarden\Servers\ProxmoxVps\Core\UI\Interfaces\AjaxElementInterface;
use ModulesGarden\Servers\ProxmoxVps\Core\UI\Interfaces\ClientArea;
use ModulesGarden\Servers\ProxmoxVps\Core\UI\ResponseTemplates\RawDataJsonResponse;
use function ModulesGarden\Servers\ProxmoxVps\Core\Helper\sl;
/**
* Class FirewallOption
* @package ModulesGarden\Servers\ProxmoxVps\App\UI\FirewallOption\Pages
* @todo - move html code to new class - new Label(some text, Label::DANGER)
*/
class FirewallOption extends BaseContainer implements ClientArea, AjaxElementInterface
{
use ApiService;
use ProductService;
protected $id = 'firewallOption';
protected $title = 'firewallOption';
protected $vueComponent = true;
protected $defaultVueComponentName = 'mg-firewallOption';
public function initContent()
{
$this->addButton(new UpdateButton());
}
public function returnAjaxData()
{
$vars = ['enteries' => []];
$lang = sl("lang");
$allowed = ['log_level_in', 'log_level_out', 'policy_in', 'policy_out'];
foreach ($this->vm()->firewallOptions()->read()->toArray() as $key => $value)
{
if(!in_array($key, $allowed) && !$this->acl()->hasFirewallOption($key)){
continue;
}
if (is_numeric($value) && $value == 1)
{
$vars['enteries'][$lang->tr($key)] = '' . sl('lang')->tr($value) . '';
}
else
{
if (is_numeric($value) && $value == 0)
{
$vars['enteries'][$lang->tr($key)] = '' . sl('lang')->tr($value) . '';
}
else
{
$vars['enteries'][$lang->tr($key)] = $lang->tr($value);
}
}
}
return (new RawDataJsonResponse(['data' => $vars]));
}
}