示例#1
0
 public static function dashboard_project()
 {
     SystemEvent::raise(SystemEvent::DEBUG, "Called.", __METHOD__);
     if (!isset($_REQUEST['pid'])) {
         $msg = 'Invalid request';
         SystemEvent::raise(SystemEvent::INFO, $msg, __METHOD__);
         echo json_encode(array('success' => false, 'error' => $msg));
         exit;
     }
     if (!($project = Project::getById($GLOBALS['user'], $_REQUEST['pid'], Access::READ)) instanceof Project) {
         $msg = 'Invalid request';
         SystemEvent::raise(SystemEvent::INFO, $msg, __METHOD__);
         echo json_encode(array('success' => false, 'error' => $msg));
         exit;
     }
     // The following is probably redundant because above the project is
     // already fetched with the Access constriction.
     if (!$project->userHasAccessLevel($GLOBALS['user'], Access::READ) && !$GLOBALS['user']->hasCos(UserCos::ROOT)) {
         $msg = 'Not authorized';
         SystemEvent::raise(SystemEvent::INFO, $msg, __METHOD__);
         echo json_encode(array('success' => false, 'error' => $msg));
         exit;
     }
     //
     // We need to process a Smarty file...
     // TODO: Centralize this
     //
     require_once CINTIENT_SMARTY_INCLUDE;
     $smarty = new Smarty();
     $smarty->setAllowPhpTag(true);
     $smarty->setCacheLifetime(0);
     $smarty->setDebugging(SMARTY_DEBUG);
     $smarty->setForceCompile(SMARTY_FORCE_COMPILE);
     $smarty->setCompileCheck(SMARTY_COMPILE_CHECK);
     $smarty->setTemplateDir(SMARTY_TEMPLATE_DIR);
     $smarty->setCompileDir(SMARTY_COMPILE_DIR);
     $smarty->error_reporting = error_reporting();
     Framework_SmartyPlugin::init($smarty);
     $smarty->assign('project_buildStats', Project_Build::getStats($project, $GLOBALS['user']));
     $smarty->assign('project_log', Project_Log::getList($project, $GLOBALS['user']));
     $smarty->assign('project_build', Project_Build::getLatest($project, $GLOBALS['user']));
     $smarty->assign('project_builds', Project_Build::getList($project, $GLOBALS['user'], Access::READ, array('buildStatus' => Project_Build::STATUS_OK_WITH_PACKAGE, 'pageLength' => 5)));
     $smarty->assign('project', $project);
     $smarty->display('includes/dashboardProject.inc.tpl');
     exit;
 }
示例#2
0
 public static function project_history()
 {
     if (!isset($GLOBALS['project']) || !$GLOBALS['project'] instanceof Project) {
         SystemEvent::raise(SystemEvent::ERROR, "Problems fetching requested project.", __METHOD__);
         //
         // TODO: Notification
         //
         //
         // TODO: this should really be a redirect to the previous page.
         //
         return false;
     }
     //
     // Viewing project build details
     //
     $build = null;
     // It's possible that no build was triggered yet.
     if (isset($_GET['bid']) && !empty($_GET['bid'])) {
         $build = Project_Build::getById($_GET['bid'], $GLOBALS['project'], $GLOBALS['user']);
     } else {
         $build = Project_Build::getLatest($GLOBALS['project'], $GLOBALS['user']);
     }
     //
     // TODO: don't let user access the build history of a still unfinished build!
     //
     if ($build instanceof Project_Build) {
         //
         // Special tasks. This is post build, so we're fetching an existing special task (never creating it)
         //
         $specialTasks = $build->getSpecialTasks();
         $GLOBALS['smarty']->assign('project_specialTasks', $specialTasks);
         if (!empty($specialTasks)) {
             foreach ($specialTasks as $task) {
                 if (!class_exists($task)) {
                     SystemEvent::raise(SystemEvent::ERROR, "Unexisting special task. [PID={$GLOBALS['project']->getId()}] [BUILD={$build->getId()}] [TASK={$task}]", __METHOD__);
                     continue;
                 }
                 $o = $task::getById($build, $GLOBALS['user'], Access::READ);
                 //$GLOBALS['smarty']->assign($task, $o); // Register for s
                 if (!$o instanceof Build_SpecialTaskInterface) {
                     SystemEvent::raise(SystemEvent::ERROR, "Unexisting special task ID. [PID={$GLOBALS['project']->getId()}] [BUILD={$build->getId()}] [TASK={$task}] [TASKID={$build->getId()}]", __METHOD__);
                     continue;
                 }
                 $viewData = $o->getViewData();
                 if (is_array($viewData)) {
                     foreach ($viewData as $key => $value) {
                         $GLOBALS['smarty']->assign($key, $value);
                     }
                 }
                 $o = null;
                 unset($o);
             }
         }
     }
     // Last assignments
     $GLOBALS['smarty']->assign('project_buildList', Project_Build::getList($GLOBALS['project'], $GLOBALS['user']));
     $GLOBALS['smarty']->assign('project_build', $build);
 }