AddDeferredBlock(new DataTableConfig($this)); $this->aDisplayColumns = []; $this->aOptions = []; $this->aResultColumns = []; $this->sJsonData = ''; $this->sModalCreationHandler = ''; } /** * @return mixed */ public function GetAjaxUrl(): string { return $this->sAjaxUrl; } /** * @param mixed $sAjaxUrl * * @return $this */ public function SetAjaxUrl(string $sAjaxUrl) { if (strlen($sAjaxUrl) > 0) { $oAppContext = new ApplicationContext(); if (strpos($sAjaxUrl, '?')) { $this->sAjaxUrl = $sAjaxUrl.$oAppContext->GetForLink(true); } else { $this->sAjaxUrl = $sAjaxUrl."?".$oAppContext->GetForLink(); } } else { $this->sAjaxUrl = $sAjaxUrl; } return $this; } /** * @return mixed */ public function GetAjaxData(string $sName) { if (isset($this->aAjaxData[$sName])) { return $this->aAjaxData[$sName]; } return ''; } /** * Get $aAjaxData as a JSON * @return mixed */ public function GetJsonAjaxData(): string { return json_encode($this->aAjaxData); } /** * @param mixed $sAjaxData */ public function SetAjaxData(array $aAjaxData): void { $this->aAjaxData = $aAjaxData; } /** * @return mixed */ public function GetDisplayColumns(): array { return $this->aDisplayColumns; } /** * @param mixed $aColumns */ public function SetDisplayColumns($aColumns): void { $this->aDisplayColumns = $aColumns; } /** * @return mixed */ public function GetResultColumns(): array { return $this->aResultColumns; } /** * @return mixed */ public function GetResultColumnsAsJson(): string { return json_encode($this->aResultColumns); } /** * @param mixed $aColumns */ public function SetResultColumns($aColumns): void { $this->aResultColumns = $aColumns; } public function GetOption(string $sOption) { if (isset($this->aOptions[$sOption])) { return $this->aOptions[$sOption]; } return null; } /** * @return mixed */ public function GetOptions(): array { return $this->aOptions; } /** * @param mixed $aOptions */ public function SetOptions($aOptions): void { $this->aOptions = $aOptions; } /** * @param string $sName * @param mixed $sValue */ public function AddOption($sName, $sValue): void { $this->aOptions[$sName] = $sValue; } /** * Get $aInitDisplayData as a JSON This is data of first page * * @return string */ public function GetJsonInitDisplayData(): string { return json_encode($this->aInitDisplayData); } /** * Get $aInitDisplayData * @return array */ public function GetInitDisplayData(): array { return $this->aInitDisplayData; } /** * @param string $aData * * @return $this */ public function SetInitDisplayData(array $aData) { $this->aInitDisplayData = $aData; return $this; } public function GetJSRefresh(): string { return "$('#".$this->sId."').DataTable().clearPipeline(); $('#".$this->sId."').DataTable().ajax.reload(null, false);"; } public function GetDisabledSelect(): array { $aExtraParams = $this->aAjaxData['extra_params']; if (isset($aExtraParams['selection_enabled'])) { $aListDisabled = []; foreach ($aExtraParams['selection_enabled'] as $sKey => $bValue) { if ($bValue == false) { $aListDisabled[] = $sKey; } } return $aListDisabled; } return []; } /** * @return string */ public function GetModalCreationHandler(): string { return $this->sModalCreationHandler; } /** * @param string $sModalCreationHandler * @return $this */ public function SetModalCreationHandler(string $sModalCreationHandler) { $this->sModalCreationHandler = $sModalCreationHandler; return $this; } }