public static function resolveRowHtmlOptionsExpression($grid, $row, $data) { $mashableUtilRules = MashableUtil::createMashableInboxRulesByModel(get_class($data)); $hasReadLatest = $mashableUtilRules->hasCurrentUserReadLatest($data->id); $unread = null; if (!$hasReadLatest) { $unread = 'unread'; } $params = array("class" => $unread); return $params; }
protected function getMenuItems() { if ($this->getModelClassName() === null) { return null; } $mashableUtilRules = MashableUtil::createMashableInboxRulesByModel($this->getModelClassName()); if ($mashableUtilRules->shouldRenderCreateAction) { $label = Zurmo::t('Core', 'Create'); $modelClassName = $this->getModelClassName(); $moduleClassName = $modelClassName::getModuleClassName(); $label .= ' ' . $moduleClassName::getModuleLabelByTypeAndLanguage('Singular'); return array(array('label' => $label, 'url' => $this->getRouteForItem($this->getModelClassName()))); } }
public function render() { $mashableInboxModels = MashableUtil::getModelDataForCurrentUserByInterfaceName('MashableInboxInterface'); $items = array(); foreach ($mashableInboxModels as $modelClassName => $modelLabel) { $mashableUtilRules = MashableUtil::createMashableInboxRulesByModel($modelClassName); if ($mashableUtilRules->shouldRenderCreateAction) { $items[] = array('label' => $modelClassName, 'url' => $this->getRouteForItem($modelClassName)); } } $menuItems = array('label' => $this->getDefaultLabel(), 'url' => null, 'items' => $items); if (!empty($items)) { $cClipWidget = new CClipWidget(); $cClipWidget->beginClip("ActionMenu"); $cClipWidget->widget('application.core.widgets.MbMenu', array('htmlOptions' => array('id' => 'MashableInboxCreateDropdown'), 'items' => array($menuItems))); $cClipWidget->endClip(); return $cClipWidget->getController()->clips['ActionMenu']; } return null; }
protected function preFilter($filterChain) { $getData = GetUtil::getData(); $modelClassName = ArrayUtil::getArrayValue($getData, 'modelClassName'); if ($modelClassName == null) { return true; } if ($modelClassName::getCount() != 0) { return true; } $moduleClassName = $modelClassName::getModuleClassName(); $mashableRules = MashableUtil::createMashableInboxRulesByModel($modelClassName); if ($mashableRules->getZeroModelViewClassName() == null) { return true; } $messageViewClassName = $mashableRules->getZeroModelViewClassName(); $messageView = new $messageViewClassName($this->controller->getId(), $moduleClassName::getDirectoryName(), $modelClassName); $pageViewClassName = $this->controller->getModule()->getPluralCamelCasedName() . 'PageView'; $view = new $pageViewClassName(ZurmoDefaultViewUtil::makeStandardViewForCurrentUser($this->controller, $messageView)); echo $view->render(); return false; }
public function testCreateMashableInboxRulesByModel() { $mashableInboxRules = MashableUtil::createMashableInboxRulesByModel('conversation'); $this->assertEquals('ConversationMashableInboxRules', get_class($mashableInboxRules)); }
public function testModuleSecurityAccess() { $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super'); $nobody = UserTestHelper::createBasicUser('nobody'); $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('nobody'); $content = $this->runControllerWithNoExceptionsAndGetContent('mashableInbox/default'); foreach ($this->modelsWithMashableInboxInterface as $modelClassName) { $this->setGetArray(array('modelClassName' => $modelClassName)); $moduleClassName = $modelClassName::getModuleClassName(); if (is_subclass_of($moduleClassName, 'SecurableModule')) { $this->runControllerShouldResultInAccessFailureAndGetContent('mashableInbox/default/list'); } else { $this->runControllerWithNoExceptionsAndGetContent('mashableInbox/default/list'); } $mashableRules = MashableUtil::createMashableInboxRulesByModel($modelClassName); } }
protected function makeANewUnreadMissionOwnedByCurrentUser() { $mission = new Mission(); $mission->owner = $this->user; $mission->dueDateTime = DateTimeUtil::convertTimestampToDbFormatDateTime(time()); $mission->description = 'My test description'; $mission->reward = 'My test reward'; $mission->status = Mission::STATUS_AVAILABLE; $this->assertTrue($mission->save()); $rules = MashableUtil::createMashableInboxRulesByModel('Mission'); $rules->markUserAsHavingUnreadLatestModel($mission, $this->user); return $mission; }
/** * @param Mission $mission * @param User $user * @return bool */ public static function hasUserReadMissionLatest(Mission $mission, User $user) { $mashableUtilRules = MashableUtil::createMashableInboxRulesByModel('Mission'); $hasReadLatest = $mashableUtilRules->hasUserReadLatest($mission, $user); return $hasReadLatest; }
/** * Resolves the mass action triggered by ajax based on the modelClassName * @param string $massAction * @param string $modelClassName * @param integer $modelId */ private function resolveMassActionByModel($massAction, $modelClassName, $modelId) { $method = 'resolve' . ucfirst($massAction); $mashableUtilRules = MashableUtil::createMashableInboxRulesByModel($modelClassName); $mashableUtilRules->{$method}((int) $modelId); }
private function addModelMassOptions() { $mashableUtilRules = MashableUtil::createMashableInboxRulesByModel($this->getModelClassName()); $this->massOptions = array_merge($this->massOptions, $mashableUtilRules->getMassOptions()); }