Beispiel #1
0
 protected function display()
 {
     if (Tools::isConnectedUser()) {
         $user = UserCache::getInstance()->getUser($_SESSION['userid']);
         $teamid = $_SESSION['teamid'];
         $teamList = $user->getTeamList();
         if (count($teamList) > 0) {
             // --- define the list of tasks the user can display
             // All projects from teams where I'm a Developper or Manager AND Observer
             $allProject[0] = T_('(all)');
             $dTeamList = $user->getDevTeamList();
             $devProjList = count($dTeamList) > 0 ? $user->getProjectList($dTeamList, true, false) : array();
             $managedTeamList = $user->getManagedTeamList();
             $managedProjList = count($managedTeamList) > 0 ? $user->getProjectList($managedTeamList, true, false) : array();
             $oTeamList = $user->getObservedTeamList();
             $observedProjList = count($oTeamList) > 0 ? $user->getProjectList($oTeamList, true, false) : array();
             $projList = $allProject + $devProjList + $managedProjList + $observedProjList;
             // if 'support' is set in the URL, display graphs for 'with/without Support'
             $displaySupport = filter_input(INPUT_GET, 'support') ? true : false;
             if ($displaySupport) {
                 $this->smartyHelper->assign('support', $displaySupport);
             }
             if (filter_input(INPUT_GET, 'bugid')) {
                 $bug_id = Tools::getSecureGETIntValue('bugid', 0);
             } else {
                 if (isset($_SESSION['bugid'])) {
                     $bug_id = $_SESSION['bugid'];
                 } else {
                     $bug_id = 0;
                     unset($_SESSION['bugid']);
                 }
             }
             $bugs = NULL;
             $projects = NULL;
             if ($bug_id != 0) {
                 try {
                     $issue = IssueCache::getInstance()->getIssue($bug_id);
                     $defaultProjectid = $issue->getProjectId();
                     $bugs = SmartyTools::getBugs($defaultProjectid, $bug_id);
                     if (array_key_exists($defaultProjectid, $projList) && array_key_exists($bug_id, $bugs)) {
                         $consistencyErrors = NULL;
                         $ccheck = new ConsistencyCheck2(array($issue));
                         $cerrList = $ccheck->check();
                         if (0 != count($cerrList)) {
                             foreach ($cerrList as $cerr) {
                                 $consistencyErrors[] = array('severity' => $cerr->getLiteralSeverity(), 'severityColor' => $cerr->getSeverityColor(), 'desc' => $cerr->desc);
                             }
                             $this->smartyHelper->assign('ccheckButtonTitle', count($consistencyErrors) . ' ' . T_("Errors"));
                             $this->smartyHelper->assign('ccheckBoxTitle', count($consistencyErrors) . ' ' . T_("Errors"));
                             $this->smartyHelper->assign('ccheckErrList', $consistencyErrors);
                         }
                         $this->smartyHelper->assign('isManager', $user->isTeamManager($teamid));
                         $this->smartyHelper->assign('isObserver', $user->isTeamObserver($teamid));
                         $isManagerView = array_key_exists($issue->getProjectId(), $managedProjList) ? true : false;
                         $isObserverView = array_key_exists($issue->getProjectId(), $observedProjList) ? true : false;
                         $this->smartyHelper->assign('issueGeneralInfo', IssueInfoTools::getIssueGeneralInfo($issue, $isManagerView || $isObserverView, $displaySupport));
                         $timeTracks = $issue->getTimeTracks();
                         $this->smartyHelper->assign('jobDetails', $this->getJobDetails($timeTracks));
                         $this->smartyHelper->assign('timeDrift', $this->getTimeDrift($issue));
                         $this->smartyHelper->assign('months', $this->getCalendar($issue, $timeTracks));
                         // set Commands I belong to
                         $parentCmds = $this->getParentCommands($issue);
                         $this->smartyHelper->assign('parentCommands', $parentCmds);
                         $this->smartyHelper->assign('nbParentCommands', count($parentCmds));
                     }
                     $projects = SmartyTools::getSmartyArray($projList, $defaultProjectid);
                     $_SESSION['projectid'] = $defaultProjectid;
                     $_SESSION['bugid'] = $bug_id;
                     // Dashboard
                     IssueInfoTools::dashboardSettings($this->smartyHelper, $issue, $this->session_userid, $this->teamid);
                 } catch (Exception $e) {
                     self::$logger->warn("issue {$bug_id} not found in mantis DB !");
                     unset($_SESSION['bugid']);
                 }
             } else {
                 try {
                     $defaultProjectid = 0;
                     if (isset($_SESSION['projectid']) && 0 != $_SESSION['projectid']) {
                         $defaultProjectid = $_SESSION['projectid'];
                         $bugs = SmartyTools::getBugs($defaultProjectid, $bug_id);
                     } else {
                         $bugs = SmartyTools::getBugs($defaultProjectid, $bug_id, $projList);
                     }
                     $projects = SmartyTools::getSmartyArray($projList, $defaultProjectid);
                 } catch (Exception $e) {
                     self::$logger->warn("issue {$bug_id} not found in mantis DB !");
                     unset($_SESSION['bugid']);
                 }
             }
             $this->smartyHelper->assign('bugs', $bugs);
             $this->smartyHelper->assign('projects', $projects);
         }
     }
 }
Beispiel #2
0
            $startT = min(array($issue->getDateSubmission(), $firstTT->getDate()));
        }
        // end date is last_timetrack or now if none
        $eTs = NULL == $firstTT ? time() : $issue->getLatestTimetrack()->getDate();
        $endT = mktime(23, 59, 59, date('m', $eTs), date('d', $eTs), date('Y', $eTs));
        //echo "start $startT end $endT<br>";
        // Calculate a nice day interval
        $nbWeeks = ($endT - $startT) / 60 / 60 / 24;
        $interval = ceil($nbWeeks / 20);
        $pluginDataProvider->setParam(PluginDataProviderInterface::PARAM_START_TIMESTAMP, $startT);
        $pluginDataProvider->setParam(PluginDataProviderInterface::PARAM_END_TIMESTAMP, $endT);
        $pluginDataProvider->setParam(PluginDataProviderInterface::PARAM_INTERVAL, $interval);
        $dashboardName = 'Tasks_prj' . $issue->getProjectId();
        // save the DataProvider for Ajax calls
        $_SESSION[PluginDataProviderInterface::SESSION_ID . $dashboardName] = serialize($pluginDataProvider);
        // create the Dashboard
        $dashboard = new Dashboard($dashboardName);
        // settings are common all tasks of a project
        $dashboard->setDomain(IndicatorPluginInterface::DOMAIN_TASK);
        $dashboard->setCategories(array(IndicatorPluginInterface::CATEGORY_QUALITY, IndicatorPluginInterface::CATEGORY_ACTIVITY, IndicatorPluginInterface::CATEGORY_ROADMAP, IndicatorPluginInterface::CATEGORY_PLANNING, IndicatorPluginInterface::CATEGORY_RISK));
        $dashboard->setTeamid($teamid);
        $dashboard->setUserid($userid);
        $data = $dashboard->getSmartyVariables($smartyHelper);
        foreach ($data as $smartyKey => $smartyVariable) {
            $smartyHelper->assign($smartyKey, $smartyVariable);
        }
    }
}
// Initialize complex static variables
IssueInfoTools::staticInit();
Beispiel #3
0
 $action = Tools::getSecureGETStringValue('action', 'none');
 $logger = Logger::getLogger("IssueInfo_ajax");
 $smartyHelper = new SmartyHelper();
 if ('getGeneralInfo' == $action) {
     $issue = IssueCache::getInstance()->getIssue(Tools::getSecureGETIntValue('bugid'));
     $user = UserCache::getInstance()->getUser($_SESSION['userid']);
     $managedTeamList = $user->getManagedTeamList();
     $managedProjList = count($managedTeamList) > 0 ? $user->getProjectList($managedTeamList, true, false) : array();
     $oTeamList = $user->getObservedTeamList();
     $observedProjList = count($oTeamList) > 0 ? $user->getProjectList($oTeamList, true, false) : array();
     $teamid = $_SESSION['teamid'];
     $smartyHelper->assign('isManager', $user->isTeamManager($teamid));
     $smartyHelper->assign('isObserver', $user->isTeamObserver($teamid));
     $isManagerView = array_key_exists($issue->getProjectId(), $managedProjList) ? true : false;
     $isObserverView = array_key_exists($issue->getProjectId(), $observedProjList) ? true : false;
     $smartyHelper->assign('issueGeneralInfo', IssueInfoTools::getIssueGeneralInfo($issue, $isManagerView || $isObserverView));
     $smartyHelper->display('ajax/issueGeneralInfo');
 } else {
     if ('removeFromCmd' == $action) {
         $cmdid = Tools::getSecureGETIntValue('cmdid');
         $bugid = Tools::getSecureGETIntValue('bugid');
         $userid = $_SESSION['userid'];
         try {
             // cmd,user,issue must exist
             // user must be manager in the cmd's team
             $user = UserCache::getInstance()->getUser($userid);
             $cmd = CommandCache::getInstance()->getCommand($cmdid);
             $cmdTeamid = $cmd->getTeamid();
             if ($user->isTeamManager($cmdTeamid)) {
                 $cmd->removeIssue($bugid);
                 $jsonData = json_encode(array('statusMsg' => 'SUCCESS', 'cmdid' => $cmdid));