DownRuleButton.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Firewall\Buttons;
  3. use MGProvision\Proxmox\v2\models\FirewallRule;
  4. use ModulesGarden\ProxmoxAddon\App\Services\ApiService;
  5. use ModulesGarden\ProxmoxAddon\App\Services\Vps\ProductService;
  6. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Firewall\Modals\UpdateGroupModal;
  7. use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Firewall\Modals\UpdateRuleModal;
  8. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Interfaces\ClientArea;
  9. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\ResponseTemplates\DataJsonResponse;
  10. use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Buttons\ButtonDataTableModalAction;
  11. class DownRuleButton extends ButtonDataTableModalAction implements ClientArea
  12. {
  13. use ProductService;
  14. use ApiService;
  15. protected $icon = 'lu-btn__icon lu-zmdi lu-zmdi-long-arrow-down';
  16. public function initContent()
  17. {
  18. $this->initIds('downRuleButton');
  19. $this->htmlAttributes['@click'] = 'buttonAction($event, \'' . $this->id . '\')';
  20. }
  21. public function returnAjaxData()
  22. {
  23. try
  24. {
  25. $data = json_decode(base64_decode($this->getRequestValue('actionElementId')), true);
  26. $vm = \ModulesGarden\ProxmoxAddon\Core\Helper\sl('Vm')->getVm();
  27. $firewallRule = new FirewallRule();
  28. $firewallRule->setApi($this->api());
  29. $pos = $data['pos'];
  30. $firewallRule->setPath($vm->getPath() . "/firewall/rules/{$pos}");
  31. $firewallRule->moveto( $pos+2);
  32. }
  33. catch (\Exception $exc)
  34. {
  35. return (new DataJsonResponse())->setStatusError()->setMessage($exc->getMessage())->setCallBackFunction($this->callBackFunction)->addRefreshTargetId($this->refreshActionIds);
  36. }
  37. return (new DataJsonResponse())->setMessageAndTranslate('changesSaved')->addRefreshTargetId('firewallDataTable');
  38. }
  39. }