Exemplo n.º 1
0
 public function Display(WebPage $oPage, DataTableSettings $oSettings, $bActionsMenu, $sSelectMode, $bViewLink, $aExtraParams)
 {
     $this->oDefaultSettings = $oSettings;
     // Identified tables can have their own specific settings
     $oCustomSettings = DataTableSettings::GetTableSettings($this->aClassAliases, $this->sTableId);
     if ($oCustomSettings != null) {
         // Custom settings overload the default ones
         $this->bUseCustomSettings = true;
         if ($this->oDefaultSettings->iDefaultPageSize == 0) {
             $oCustomSettings->iDefaultPageSize = 0;
         }
     } else {
         $oCustomSettings = $oSettings;
     }
     if ($oCustomSettings->iDefaultPageSize > 0) {
         $this->oSet->SetLimit($oCustomSettings->iDefaultPageSize);
     }
     $this->oSet->SetOrderBy($oCustomSettings->GetSortOrder());
     // Load only the requested columns
     $aColumnsToLoad = array();
     foreach ($oCustomSettings->aColumns as $sAlias => $aColumnsInfo) {
         foreach ($aColumnsInfo as $sAttCode => $aData) {
             if ($sAttCode != '_key_') {
                 if ($aData['checked']) {
                     $aColumnsToLoad[$sAlias][] = $sAttCode;
                 } else {
                     // See if this column is a must to load
                     $sClass = $this->aClassAliases[$sAlias];
                     $oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode);
                     if ($oAttDef->alwaysLoadInTables()) {
                         $aColumnsToLoad[$sAlias][] = $sAttCode;
                     }
                 }
             }
         }
     }
     $this->oSet->OptimizeColumnLoad($aColumnsToLoad);
     $bToolkitMenu = true;
     if (isset($aExtraParams['toolkit_menu'])) {
         $bToolkitMenu = (bool) $aExtraParams['toolkit_menu'];
     }
     if (UserRights::IsPortalUser()) {
         // Portal users have a limited access to data, for now they can only see what's configured for them
         $bToolkitMenu = false;
     }
     return $this->GetAsHTML($oPage, $oCustomSettings->iDefaultPageSize, $oCustomSettings->iDefaultPageSize, 0, $oCustomSettings->aColumns, $bActionsMenu, $bToolkitMenu, $sSelectMode, $bViewLink, $aExtraParams);
 }
Exemplo n.º 2
0
     $bSaveAsDefaults = utils::ReadParam('defaults', 'true') == 'true';
     $aClassAliases = utils::ReadParam('class_aliases', array(), false, 'raw_data');
     $aColumns = utils::ReadParam('columns', array(), false, 'raw_data');
     foreach ($aColumns as $sAlias => $aList) {
         foreach ($aList as $sAttCode => $aData) {
             $aColumns[$sAlias][$sAttCode]['checked'] = $aData['checked'] == 'true';
             $aColumns[$sAlias][$sAttCode]['disabled'] = $aData['disabled'] == 'true';
             $aColumns[$sAlias][$sAttCode]['sort'] = $aData['sort'];
         }
     }
     $oSettings = new DataTableSettings($aClassAliases, $sTableId);
     $oSettings->iDefaultPageSize = $iPageSize;
     $oSettings->aColumns = $aColumns;
     if ($bSaveAsDefaults) {
         if ($sTableId != null) {
             $oCurrSettings = DataTableSettings::GetTableSettings($aClassAliases, $sTableId, true);
             if ($oCurrSettings) {
                 $oCurrSettings->ResetToDefault(false);
                 // Reset this table to the defaults
             }
         }
         $bRet = $oSettings->SaveAsDefault();
     } else {
         $bRet = $oSettings->Save();
     }
     $oPage->add($bRet ? 'Ok' : 'KO');
     break;
 case 'datatable_reset_settings':
     $oPage->SetContentType('text/plain');
     $sTableId = utils::ReadParam('table_id', null, false, 'raw_data');
     $aClassAliases = utils::ReadParam('class_aliases', array(), false, 'raw_data');