| +--------------------------------------------------------------------------+ | Author: Aleksander Machniak | +--------------------------------------------------------------------------+ */ class kolab_client_task_main extends kolab_client_task { protected $_menu = array( 'user' => 'users', 'group' => 'groups', 'domain' => 'domains', 'role' => 'roles', 'resource' => 'resources', 'sharedfolder' => 'sharedfolders', 'settings' => 'settings', 'about' => 'about', ); public function action_default() { // handle domain change if ($domain = $this->get_input('domain', 'GET')) { $result = $this->api_get('system.select_domain', array('domain' => $domain)); if (!$result->get_error_code()) { $_SESSION['user']['domain'] = $domain; } else { $this->output->command('display_message', $this->translate('error.domainselect'), 'error'); } } // assign token $this->output->set_env('token', $_SESSION['user']['token']); // add watermark content $this->output->set_env('watermark', $this->output->get_template('watermark')); // assign default set of translations $this->output->add_translation('loading', 'saving', 'deleting', 'servererror', 'search', 'search.loading', 'search.acchars'); // Create list of tasks for dashboard $capabilities = $this->capabilities(); $this->menu = array(); foreach ($this->_menu as $task => $api_task) { if ($task != 'about' && !array_key_exists($api_task . '.list', (array)$capabilities['actions'])) { $task_class = 'kolab_client_task_' . $task; if (!method_exists($task_class, 'is_enabled') || !$task_class::is_enabled($capabilities['actions'])) { continue; } } $this->menu[$task . '.default'] = 'menu.' . ($api_task ? $api_task : $task); } $this->output->assign('tasks', $this->menu); $this->output->assign('main_menu', $this->menu()); $this->output->assign('user', $_SESSION['user']); // Domains list if ($domains = $this->get_domains()) { sort($domains, SORT_LOCALE_STRING); $this->output->set_env('domains', $domains); } } }