/**
  * Ensure the rendering of the dashboard works properly
  */
 public function testRender()
 {
     /** @var modManagerController $controller Fake running the welcome controller */
     $controller = new WelcomeManagerController($this->modx, array('namespace' => 'core', 'namespace_name' => 'core', 'namespace_path' => MODX_MANAGER_PATH, 'lang_topics' => 'dashboards', 'controller' => 'system/dashboards'));
     /** @var modDashboard $dashboard */
     $dashboard = modDashboard::getDefaultDashboard($this->modx);
     $output = $dashboard->render($controller);
     $this->assertNotEmpty($output);
 }
Example #2
0
 /**
  * Get the active Dashboard for the User
  * @return modDashboard|null
  */
 public function getDashboard()
 {
     $this->modx->loadClass('modDashboard');
     /** @var modUserGroup $userGroup */
     $userGroup = $this->modx->user->getOne('PrimaryGroup');
     if ($userGroup) {
         /** @var modDashboard $dashboard */
         $dashboard = $userGroup->getOne('Dashboard');
         if (empty($dashboard)) {
             $dashboard = modDashboard::getDefaultDashboard($this->modx);
         }
     } else {
         $dashboard = modDashboard::getDefaultDashboard($this->modx);
     }
     return $dashboard;
 }
Example #3
0
 /**
  * Override xPDOObject::remove() to revert to the default dashboard any user groups using this Dashboard
  *
  * @see xPDOObject::remove()
  * @param array $ancestors
  * @return boolean
  */
 public function remove(array $ancestors = array())
 {
     $dashboardId = $this->get('id');
     $removed = parent::remove($ancestors);
     if ($removed) {
         $defaultDashboard = modDashboard::getDefaultDashboard($this->xpdo);
         if (empty($defaultDashboard)) {
             /** @var modDashboard $defaultDashboard */
             $defaultDashboard = $this->xpdo->newObject('modDashboard');
             $defaultDashboard->set('id', 0);
         }
         $userGroups = $this->xpdo->getCollection('modUserGroup', array('dashboard' => $dashboardId));
         /** @var modUserGroup $userGroup */
         foreach ($userGroups as $userGroup) {
             $userGroup->set('dashboard', $defaultDashboard->get('id'));
             $userGroup->save();
         }
     }
     return $removed;
 }