/**
  *
  *
  * @param IssueSelection $inputIssueSel
  * @param array $params
  */
 public function execute(IssueSelection $inputIssueSel, array $params = NULL)
 {
     $this->checkParams($inputIssueSel, $params);
     $this->inputIssueSel = $inputIssueSel;
     // do the work ...
     $filterMgr = new FilterManager($inputIssueSel, $this->filterList);
     $resultList = $filterMgr->execute();
     $this->execData = $filterMgr->explodeResults($resultList);
 }
Пример #2
0
 protected function display()
 {
     if (Tools::isConnectedUser()) {
         $user = UserCache::getInstance()->getUser($_SESSION['userid']);
         $teamList = $user->getTeamList();
         if (0 != count($teamList)) {
             // ---- select project
             // define the list of tasks the user can display
             // All projects from teams where I'm a Developper or Manager AND Observers
             $dTeamList = $user->getDevTeamList();
             $devProjList = 0 == count($dTeamList) ? array() : $user->getProjectList($dTeamList);
             $managedTeamList = $user->getManagedTeamList();
             $managedProjList = 0 == count($managedTeamList) ? array() : $user->getProjectList($managedTeamList);
             $oTeamList = $user->getObservedTeamList();
             $observedProjList = 0 == count($oTeamList) ? array() : $user->getProjectList($oTeamList);
             $projList = $devProjList + $managedProjList + $observedProjList;
             if (isset($_GET['projectid'])) {
                 $projectid = Tools::getSecureGETIntValue('projectid');
                 $_SESSION['projectid'] = $projectid;
             } else {
                 if (isset($_SESSION['projectid'])) {
                     $projectid = $_SESSION['projectid'];
                 } else {
                     $projectsid = array_keys($projList);
                     $projectid = $projectsid[0];
                 }
             }
             // get selected filters
             if (isset($_GET['selectedFilters']) && NULL != $_GET['selectedFilters']) {
                 $selectedFilters = Tools::getSecureGETStringValue('selectedFilters');
                 #echo "last = ".$selectedFilters[strlen($selectedFilters)-1];
                 if (',' == $selectedFilters[strlen($selectedFilters) - 1]) {
                     $selectedFilters = substr($selectedFilters, 0, -1);
                     // last char is a ','
                 }
                 $filterList = explode(',', $selectedFilters);
             } else {
                 $selectedFilters = "";
                 $filterList = array();
             }
             $this->smartyHelper->assign('projects', SmartyTools::getSmartyArray($projList, $projectid));
             $project = ProjectCache::getInstance()->getProject($projectid);
             // ----
             $availFilterList = array("ProjectVersionFilter" => "Project Version", "ProjectCategoryFilter" => "Project Category", "IssueExtIdFilter" => "Issue External ID", "IssuePublicPrivateFilter" => "Issue Public / Private", "IssueTagFilter" => "Issue Tags");
             $selectedFilterList = array();
             foreach ($filterList as $id) {
                 $selectedFilterList[$id] = $availFilterList[$id];
                 unset($availFilterList[$id]);
             }
             // do the work ...
             $projectIssueSel = $project->getIssueSelection();
             $filterMgr = new FilterManager($projectIssueSel, $filterList);
             $resultList = $filterMgr->execute();
             $issueSelList = $filterMgr->explodeResults($resultList);
             $smatyObj = $this->getDetailedMgr($issueSelList, $filterList);
             $totalLine = array_shift($smatyObj);
             // first line is rootElem (TOTAL)
             $titleLine = array_pop($smatyObj);
             // last line is the table titles
             $this->smartyHelper->assign('availFilterList', $availFilterList);
             $this->smartyHelper->assign('selectedFilterList', $selectedFilterList);
             $this->smartyHelper->assign('selectedFilters', $selectedFilters);
             $this->smartyHelper->assign('nbFilters', count($filterList));
             $this->smartyHelper->assign('filterResultsTitles', $titleLine);
             $this->smartyHelper->assign('filterResults', $smatyObj);
             $this->smartyHelper->assign('filterResultsTotal', $totalLine);
         }
     }
 }