00001 <?php 00002 /********************************************************************************* 00003 * Zurmo is a customer relationship management program developed by 00004 * Zurmo, Inc. Copyright (C) 2017 Zurmo Inc. 00005 * 00006 * Zurmo is free software; you can redistribute it and/or modify it under 00007 * the terms of the GNU Affero General Public License version 3 as published by the 00008 * Free Software Foundation with the addition of the following permission added 00009 * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK 00010 * IN WHICH THE COPYRIGHT IS OWNED BY ZURMO, ZURMO DISCLAIMS THE WARRANTY 00011 * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS. 00012 * 00013 * Zurmo is distributed in the hope that it will be useful, but WITHOUT 00014 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00015 * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 00016 * details. 00017 * 00018 * You should have received a copy of the GNU Affero General Public License along with 00019 * this program; if not, see http://www.gnu.org/licenses or write to the Free 00020 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 00021 * 02110-1301 USA. 00022 * 00023 * You can contact Zurmo, Inc. with a mailing address at 27 North Wacker Drive 00024 * Suite 370 Chicago, IL 60606. or at email address contact@zurmo.com. 00025 * 00026 * The interactive user interfaces in original and modified versions 00027 * of this program must display Appropriate Legal Notices, as required under 00028 * Section 5 of the GNU Affero General Public License version 3. 00029 * 00030 * In accordance with Section 7(b) of the GNU Affero General Public License version 3, 00031 * these Appropriate Legal Notices must retain the display of the Zurmo 00032 * logo and Zurmo copyright notice. If the display of the logo is not reasonably 00033 * feasible for technical reasons, the Appropriate Legal Notices must display the words 00034 * "Copyright Zurmo Inc. 2017. All rights reserved". 00035 ********************************************************************************/ 00036 00040 class AuditEventsListControllerUtil 00041 { 00045 public static function renderList(CController $controller, $dataProvider) 00046 { 00047 assert('$dataProvider instanceof RedBeanModelDataProvider'); 00048 $auditEventsListView = new AuditEventsModalListView( 00049 $controller->getId(), 00050 $controller->getModule()->getId(), 00051 'AuditEvent', 00052 $dataProvider, 00053 'modal' 00054 ); 00055 $view = new ModalView($controller, $auditEventsListView); 00056 return $view->render(); 00057 } 00058 00064 public static function makeModalSearchAttributeDataByAuditedModel($model) 00065 { 00066 assert('$model instanceof Item'); 00067 $searchAttributeData = array(); 00068 $searchAttributeData['clauses'] = array( 00069 1 => array( 00070 'attributeName' => 'modelClassName', 00071 'operatorType' => 'equals', 00072 'value' => get_class($model), 00073 ), 00074 2 => array( 00075 'attributeName' => 'modelId', 00076 'operatorType' => 'equals', 00077 'value' => $model->id, 00078 ), 00079 ); 00080 $searchAttributeData['structure'] = '1 and 2'; 00081 return $searchAttributeData; 00082 } 00083 00089 public static function makeDataProviderBySearchAttributeData($searchAttributeData) 00090 { 00091 assert('is_array($searchAttributeData)'); 00092 $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('subListPageSize'); 00093 return new RedBeanModelDataProvider( 'AuditEvent', 'dateTime', true, 00094 $searchAttributeData, array( 00095 'pagination' => array( 00096 'pageSize' => $pageSize, 00097 ) 00098 )); 00099 } 00100 } 00101 ?>