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\ProxmoxAddon\App\Models\VmModel; 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 ConsoleButton extends ButtonDataTableModalAction implements ClientArea { protected $icon = 'lu-zmdi lu-zmdi-desktop-windows'; public function initContent() { $this->initIds('consoleButton'); $this->setDisableByColumnValue("vmid", 0); } public function afterInitContent() { $query = VmModel::select("id") ->ofHostingId($this->getWhmcsParamByKey('serviceid')) ->notTemplate() ->getQuery(); $dataProv = new QueryDataProvider(); $dataProv->setData($query); $vmid = $dataProv->getData()->getRecords()->first()->id; $consoleUrl = isAdmin() ? BuildUrl::getUrl('console', 'novnc', ['vm'=> $vmid]) : 'clientarea.php?action=productdetails&id=' . $this->getWhmcsParamByKey('serviceid') . '&vm=' . $vmid . '&modop=custom&a=management&mg-page=console&mg-action=novnc'; $this->setConsoleUrl($consoleUrl); logModuleCall( 'proxmoxCloud', __FUNCTION__, $this->actionButtons, 'Debug', $dataProv->getData()->getRecords() ); } public function setConsoleUrl($url) { $this->addHtmlAttribute('onclick', "window.open('{$url}', '', 'width=900,height=700'); return false;"); return $this; } }