UpRuleButton.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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 UpRuleButton extends ButtonDataTableModalAction implements ClientArea
  12. {
  13. use ProductService;
  14. use ApiService;
  15. protected $icon = 'lu-btn__icon lu-zmdi lu-zmdi-long-arrow-up';//zmdi-long-arrow-down
  16. public function initContent()
  17. {
  18. $this->initIds('upRuleButton');
  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. if($data['pos']==0){
  28. return (new DataJsonResponse())->setMessageAndTranslate('changesSaved')->setCallBackFunction($this->callBackFunction)->addRefreshTargetId($this->refreshActionIds);
  29. }
  30. $firewallRule = new FirewallRule();
  31. $firewallRule->setApi($this->api());
  32. $pos = $data['pos'];
  33. $firewallRule->setPath($vm->getPath() . "/firewall/rules/{$pos}");
  34. $firewallRule->moveto( $pos-1);
  35. }
  36. catch (\Exception $exc)
  37. {
  38. return (new DataJsonResponse())->setStatusError()->setMessage($exc->getMessage())->setCallBackFunction($this->callBackFunction)->addRefreshTargetId($this->refreshActionIds);
  39. }
  40. return (new DataJsonResponse())->setMessageAndTranslate('changesSaved')->addRefreshTargetId('firewallDataTable');
  41. }
  42. }