function showWorkspaceTabAction() { $tpl = DevblocksPlatform::getTemplateService(); $tpl->assign('path', $this->_TPL_PATH); $visit = CerberusApplication::getVisit(); $db = DevblocksPlatform::getDatabaseService(); $active_worker = CerberusApplication::getActiveWorker(); $current_workspace = DevblocksPlatform::importGPC($_REQUEST['workspace'], 'string', ''); $workspaces = DAO_WorkerWorkspaceList::getWorkspaces($active_worker->id); // Fix a bad/old cache if (!empty($current_workspace) && false === array_search($current_workspace, $workspaces)) { $current_workspace = ''; } $views = array(); if (empty($current_workspace) && !empty($workspaces)) { // custom dashboards $current_workspace = reset($workspaces); } if (!empty($current_workspace)) { // Remember the tab $visit->set(CerberusVisit::KEY_HOME_SELECTED_TAB, 'w_' . $current_workspace); $lists = DAO_WorkerWorkspaceList::getWhere(sprintf("%s = %d AND %s = %s", DAO_WorkerWorkspaceList::WORKER_ID, $active_worker->id, DAO_WorkerWorkspaceList::WORKSPACE, $db->qstr($current_workspace))); // Load the workspace sources to map to view renderer $source_manifests = DevblocksPlatform::getExtensions(Extension_WorkspaceSource::EXTENSION_POINT, false); // Loop through list schemas if (is_array($lists) && !empty($lists)) { foreach ($lists as $list) { /* @var $list Model_WorkerWorkspaceList */ $view_id = 'cust_' . $list->id; if (null == ($view = C4_AbstractViewLoader::getView('', $view_id))) { $list_view = $list->list_view; /* @var $list_view Model_WorkerWorkspaceListView */ // Make sure we can find the workspace source (plugin not disabled) if (!isset($source_manifests[$list->source_extension]) || null == ($workspace_source = $source_manifests[$list->source_extension]) || !isset($workspace_source->params['view_class'])) { continue; } // Make sure our workspace source has a valid renderer class $view_class = $workspace_source->params['view_class']; if (!class_exists($view_class)) { continue; } $view = new $view_class(); $view->id = $view_id; $view->name = $list_view->title; $view->renderLimit = $list_view->num_rows; $view->renderPage = 0; $view->view_columns = $list_view->columns; $view->params = $list_view->params; C4_AbstractViewLoader::setView($view_id, $view); } if (!empty($view)) { $views[] = $view; } } } $tpl->assign('current_workspace', $current_workspace); $tpl->assign('views', $views); } // Log activity DAO_Worker::logActivity($active_worker->id, new Model_Activity('activity.mail.workspaces', array('<i>' . $current_workspace . '</i>'))); $tpl->display('file:' . $this->_TPL_PATH . 'home/workspaces/index.tpl'); }
function viewShowCopyAction() { @($view_id = DevblocksPlatform::importGPC($_REQUEST['view_id'], 'string')); $active_worker = CerberusApplication::getActiveWorker(); $tpl = DevblocksPlatform::getTemplateService(); $tpl_path = $this->_TPL_PATH . ''; $tpl->assign('path', $tpl_path); $view = C4_AbstractViewLoader::getView($view_id); $workspaces = DAO_WorkerWorkspaceList::getWorkspaces($active_worker->id); $tpl->assign('workspaces', $workspaces); $tpl->assign('view_id', $view_id); $tpl->assign('view', $view); $tpl->display($tpl_path . 'internal/views/copy.tpl'); }