| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <?php
- /* * ********************************************************************
- * ProxmoxVPS Product developed. (27.03.19)
- * *
- *
- * CREATED BY MODULESGARDEN -> 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\ProxmoxCloudVps\App\UI\Vms\Buttons;
- use ModulesGarden\Servers\ProxmoxCloudVps\App\UI\Vms\Modals\MigrateModal;
- use ModulesGarden\Servers\ProxmoxCloudVps\Core\Helper\BuildUrl;
- use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Interfaces\AdminArea;
- use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Interfaces\ClientArea;
- use ModulesGarden\Servers\ProxmoxCloudVps\Core\UI\Widget\Buttons\ButtonDataTableModalAction;
- class EditButton extends ButtonDataTableModalAction implements ClientArea
- {
- protected $icon = 'lu-zmdi lu-zmdi-edit';
- public function initContent()
- {
- $this->initIds('redirectButton');
- $this->setDisableByColumnValue("vmid", 0);
- $url ="clientarea.php?action=productdetails&id={$this->getWhmcsParamByKey('serviceid')}&modop=custom&a=management&mg-page=vm";
- $this->setRawUrl($url)
- ->setRedirectParams(['vm' => ':id']);
- }
- public function afterInitContent()
- {
- $this->htmlAttributes['@click.middle'] = 'redirect($event, ' . $this->parseCustomParams() . ', true)';
- $this->htmlAttributes['@click'] = 'redirect($event, ' . $this->parseCustomParams() . ')';
- }
- public function setRawUrl($url)
- {
- $this->rawUrl = $url;
- return $this;
- }
- protected function parseCustomParams()
- {
- if (count($this->redirectParams) === 0 && $this->rawUrl === null)
- {
- return '{}';
- }
- return $this->parseListTOJsString($this->redirectParams);
- }
- protected function parseListTOJsString($params)
- {
- $jsString = '{';
- if ($this->rawUrl !== null)
- {
- $params['rawUrl'] = $this->rawUrl;
- }
- foreach ($params as $key => $value)
- {
- $jsString .= ' ' . str_replace('-', '__', $key) . ': ' . (is_array($value) ? ($this->parseListTOJsString($value) . ',') : ("'" . (string) $value) . "',");
- }
- $jsString = trim($jsString, ',') . ' } ';
- return $jsString;
- }
- public function setRedirectParams($paramsList)
- {
- $this->redirectParams = $paramsList;
- $this->updateHtmlAttributesByRedirectParams();
- return $this;
- }
- protected function updateHtmlAttributesByRedirectParams()
- {
- foreach ($this->redirectParams as $key => $value)
- {
- $this->updateHtmlAttribute($key, $value);
- }
- }
- protected function updateHtmlAttribute($key, $value)
- {
- if (strpos($value, ':') === 0)
- {
- $this->addHtmlAttribute(':data-' . $key , 'dataRow.' . trim($value, ':'));
- }
- }
- }
|