public function actionLeaderboard($type = null) { if ($type == null) { $type = GamePointUtil::LEADERBOARD_TYPE_WEEKLY; } if ($type == GamePointUtil::LEADERBOARD_TYPE_WEEKLY) { $activeActionElementType = 'LeaderboardWeeklyMenu'; } elseif ($type == GamePointUtil::LEADERBOARD_TYPE_MONTHLY) { $activeActionElementType = 'LeaderboardMonthlyMenu'; } elseif ($type == GamePointUtil::LEADERBOARD_TYPE_OVERALL) { $activeActionElementType = 'LeaderboardOverallMenu'; } else { throw new NotSupportedException(); } $metadata = array(); //can put the typing information here easily. from the type. $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('listPageSize', get_class($this->getModule())); $gameLevel = new GameLevel(false); $dataProvider = RedBeanModelDataProviderUtil::makeDataProvider($metadata, get_class($gameLevel), 'LeaderboardDataProvider', 'notUsed', true, $pageSize); $dataProvider->setType($type); if (isset($_GET['ajax']) && $_GET['ajax'] == 'list-view') { $listView = new LeaderboardListView($this->getId(), $this->getModule()->getId(), get_class($gameLevel), $dataProvider, array()); $view = new AccountsPageView($listView); } else { $mixedView = new LeaderboardActionBarAndListView($this->getId(), $this->getModule()->getId(), $gameLevel, 'GamificationModule', $dataProvider, $activeActionElementType); $view = new AccountsPageView(ZurmoDefaultViewUtil::makeStandardViewForCurrentUser($this, $mixedView)); } echo $view->render(); }
/** * Action for displaying a mass delete form and also action when that form is first submitted. * When the form is submitted, in the event that the quantity of models to delete is greater * than the pageSize, then once the pageSize quantity has been reached, the user will be * redirected to the makeMassDeleteProgressView. * In the mass delete progress view, a javascript refresh will take place that will call a refresh * action, usually makeMassDeleteProgressView. * If there is no need for a progress view, then a flash message will be added and the user will * be redirected to the list view for the model. A flash message will appear providing information * on the delete records. * @see Controller->makeMassDeleteProgressView * @see Controller->processMassDelete * @see */ public function actionMassDelete() { $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('massDeleteProgressPageSize'); $account = new Account(false); $activeAttributes = $this->resolveActiveAttributesFromMassDeletePost(); $dataProvider = $this->getDataProviderByResolvingSelectAllFromGet(new AccountsSearchForm($account), $pageSize, Yii::app()->user->userModel->id, null, 'AccountsSearchView'); $selectedRecordCount = static::getSelectedRecordCountByResolvingSelectAllFromGet($dataProvider); $account = $this->processMassDelete($pageSize, $activeAttributes, $selectedRecordCount, 'AccountsPageView', $account, AccountsModule::getModuleLabelByTypeAndLanguage('Plural'), $dataProvider); $massDeleteView = $this->makeMassDeleteView($account, $activeAttributes, $selectedRecordCount, AccountsModule::getModuleLabelByTypeAndLanguage('Plural')); $view = new AccountsPageView(ZurmoDefaultViewUtil::makeStandardViewForCurrentUser($this, $massDeleteView)); echo $view->render(); }
/** * Only supports saving 4 layoutTypes (max 2 column) * */ public function actionEditDashboard($id) { $id = intval($id); $dashboard = Dashboard::getById(intval($id)); ControllerSecurityUtil::resolveAccessCanCurrentUserWriteModel($dashboard); if (isset($_POST['Dashboard'])) { $oldLayoutType = $dashboard->layoutType; $_POST['Dashboard'] = PostUtil::sanitizePostByDesignerTypeForSavingModel($dashboard, $_POST['Dashboard']); $dashboard->setAttributes($_POST['Dashboard']); assert('in_array($dashboard->layoutType, array_keys(Dashboard::getLayoutTypesData()))'); if ($dashboard->save()) { if ($oldLayoutType != $dashboard->layoutType && $dashboard->layoutType == '100') { $uniqueLayoutId = 'HomeDashboard' . $dashboard->layoutId; $portletCollection = Portlet::getByLayoutIdAndUserSortedByColumnIdAndPosition($uniqueLayoutId, Yii::app()->user->userModel->id, array()); Portlet::shiftPositionsBasedOnColumnReduction($portletCollection, 1); } GeneralCache::forgetAll(); //Ensure menu refreshes $this->redirect(array('default/dashboardDetails', 'id' => $dashboard->id)); } } $editView = new DashboardEditView($this->getId(), $this->getModule()->getId(), $dashboard, strval($dashboard)); $view = new AccountsPageView(ZurmoDefaultViewUtil::makeStandardViewForCurrentUser($this, $editView)); echo $view->render(); }