Пример #1
0
 function showWorkspaceTabAction()
 {
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl->assign('path', $this->_TPL_PATH);
     $visit = PortSensorApplication::getVisit();
     $db = DevblocksPlatform::getDatabaseService();
     $active_worker = PortSensorApplication::getActiveWorker();
     $current_workspace = DevblocksPlatform::importGPC($_REQUEST['workspace'], 'string', '');
     $workspaces = DAO_Worklist::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(PortSensorVisit::KEY_HOME_SELECTED_TAB, 'w_' . $current_workspace);
         $lists = DAO_Worklist::getWhere(sprintf("%s = %d AND %s = %s", DAO_Worklist::WORKER_ID, $active_worker->id, DAO_Worklist::WORKSPACE, $db->qstr($current_workspace)));
         // Load the workspace sources to map to view renderer
         $source_manifests = DevblocksPlatform::getExtensions(Extension_WorklistSource::EXTENSION_POINT, false);
         // Loop through list schemas
         if (is_array($lists) && !empty($lists)) {
             foreach ($lists as $list) {
                 /* @var $list Model_Worklist */
                 $view_id = 'cust_' . $list->id;
                 if (null == ($view = Ps_AbstractViewLoader::getView($view_id))) {
                     $list_view = $list->view;
                     // 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;
                     $view->renderSortBy = $list_view->sort_by;
                     $view->renderSortAsc = $list_view->sort_asc;
                     Ps_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');
 }
Пример #2
0
 function viewShowCopyAction()
 {
     @($view_id = DevblocksPlatform::importGPC($_REQUEST['view_id'], 'string'));
     $active_worker = PortSensorApplication::getActiveWorker();
     $tpl = DevblocksPlatform::getTemplateService();
     $tpl_path = $this->_TPL_PATH . '';
     $tpl->assign('path', $tpl_path);
     $view = Ps_AbstractViewLoader::getView($view_id);
     $workspaces = DAO_Worklist::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');
 }