'success', 'locked' => 'default', 'maintenance' => 'warning', 'closed' => 'default', 'lockout' => 'info', 'pending' => 'warning', 'default' => 'default' ]; protected $id = 'ressources'; protected $name = 'ressources'; protected $title = null; /** * load columns */ protected function loadHtml() { $this ->addColumn((new Column('ressource')) ->setOrderable(DataProvider::SORT_ASC) ->setSearchable(true, Column::TYPE_STRING)) ->addColumn((new Column('date_created')) ->setOrderable() ->setSearchable(true)) ->addColumn((new Column('capacity')) ->setOrderable() ->setSearchable(true)) ->addColumn((new Column('type')) ->setOrderable() ->setSearchable(true, Column::TYPE_INT)) ->addColumn((new Column('status')) ->setOrderable() ->setSearchable(true)); } /** * @param $key * @param $row * @return mixed */ public function replaceFieldStatus($key, $row) { $status = self::STATUS_LABEL[$row[$key]] ? self::STATUS_LABEL[$row[$key]] : self::STATUS_LABEL['default']; $label = di('lang')->absoluteT('kerio','account','status',$row[$key]); $field = new EnabledField(); $field->setRawType($status); $field->setRawTitle($label); return $field->getHtml(); } /** * @param $key * @param $row * @return mixed */ public function replaceFieldLast_login($key, $row) { return $row[$key] ? $row[$key] : '-'; } /** * @param $key * @param $row * @return mixed */ public function replaceFieldType($key, $row) { return $row[$key] == 'Location' ? di('lang')->absoluteT('kerio','ressource','type','location') : di('lang')->absoluteT('kerio','ressource','type','equipment'); } /** * load buttons */ public function initContent() { $productManager = new ProductManager(); $productManager->loadByHostingId($this->getRequestValue('id')); $this->addMassActionButton(new MassChangeStatusButton()); $this->addMassActionButton(new MassDeleteRessourceButton()); $this->addButton(new AddRessourceButton()); $this->addActionButton(new EditRessourceButton()); $this->addActionButton(new DeleteRessourceButton()); $mailBox = new LoginToPanelButton(); $mailBox ->setRawUrl(BuildUrlExtended::getProvisioningUrl('webmail', true, true,'clientSso')) ->setRedirectParams(['actionElementId' => 'true']); $actions = new SpanDropdownButton('actions'); $actions->addButton(new ChangeStatusButton()); $actions->addButton(new ChangePasswordButton()); if ($productManager->get('ca_logInToMailboxButton') === 'on') { $actions->addButton($mailBox); } $this->addActionButton($actions); } /** * load data */ public function loadData() { /** * load hosting */ $hosting = Hosting::where('id', $this->getRequestValue('id'))->first(); $ressources = (new KerioManager()) ->getApiByServer($hosting->server) ->soap ->repository() ->ressources ->getByDomainName($hosting->domain); /** * format model to array */ $data = []; foreach ($ressources as $ressource) { /* @var $account Ressource */ $ressourceArray = [ 'id' => $ressource->getId(), 'ressource' => $ressource->getDataResourceA('displayName'), 'date_created' => RessourceHelper::getFormattedData($ressource->getDataResourceA('kerioCreateTimestamp')), // 'last_login' => RessourceHelper::getFormattedData($ressource->getDataResourceA('kerioLastLogonTimestamp'), 'd/m/Y H:i'), 'capacity' => $ressource->getDataResourceA('kerioCalResCapacity'), 'type' => $ressource->getDataResourceA('kerioCalResType'), 'status' => $ressource->getDataResourceA('kerioAccountStatus') ]; $data[] = $ressourceArray; } $dataProv = new ArrayDataProvider(); $dataProv->setDefaultSorting('ressource', 'ASC')->setData($data); $this->setDataProvider($dataProv); } }