Example #1
0
 protected function display()
 {
     if (Tools::isConnectedUser()) {
         if (0 == $this->teamid || $this->session_user->isTeamCustomer($this->teamid)) {
             $this->smartyHelper->assign('isEditGranted', FALSE);
         } else {
             // only managers can edit the SC
             $isManager = $this->session_user->isTeamManager($this->teamid);
             if (!$isManager) {
                 return;
             }
             $this->smartyHelper->assign('isEditGranted', true);
             // -------- CHECK  --------
             // this will check all existing commands (from all teams !) and remove issues that have been deleted from mantis
             Command::checkCommands();
             // use the cmdid set in the form, if not defined (first page call) use session cmdid
             $cmdid = 0;
             if (isset($_POST['cmdid'])) {
                 $cmdid = $_POST['cmdid'];
                 $_SESSION['cmdid'] = $cmdid;
             } else {
                 if (isset($_GET['cmdid'])) {
                     $cmdid = $_GET['cmdid'];
                     $_SESSION['cmdid'] = $cmdid;
                 } else {
                     if (isset($_SESSION['cmdid'])) {
                         $cmdid = $_SESSION['cmdid'];
                     }
                 }
             }
             // use the commandsetid set in the form, if not defined (first page call) use session commandsetid
             // Note: It is used for createEnv but will be overridden by the displayed command's commandsetid.
             $commandsetid = 0;
             if (isset($_POST['commandsetid'])) {
                 $commandsetid = $_POST['commandsetid'];
                 $_SESSION['commandsetid'] = $commandsetid;
             } else {
                 if (isset($_SESSION['commandsetid'])) {
                     $commandsetid = $_SESSION['commandsetid'];
                 }
             }
             $action = isset($_POST['action']) ? $_POST['action'] : '';
             if (0 == $cmdid) {
                 // -------- CREATE CMD -------
                 if ("createCmd" == $action) {
                     //$this->teamid = Tools::getSecurePOSTIntValue('teamid');
                     //$_SESSION['teamid'] = $this->teamid;
                     if (self::$logger->isDebugEnabled()) {
                         self::$logger->debug("create new Command for team {$this->teamid}<br>");
                     }
                     $cmdName = Tools::getSecurePOSTStringValue('cmdName');
                     // TODO UGLY WORKAROUND: command name cannot contain commas (,) because it is used as field separator in FilterManager
                     $cmdName = str_replace(",", ' ', $cmdName);
                     try {
                         $cmdid = Command::create($cmdName, $this->teamid);
                         $this->smartyHelper->assign('commandid', $cmdid);
                         $cmd = CommandCache::getInstance()->getCommand($cmdid);
                     } catch (Exception $e) {
                         // Smartify
                         echo "Can't create the command because the command name is already used";
                     }
                 }
                 // ------ Display Empty Command Form
                 // Note: this will be overridden by the 'update' section if the 'createCmd' action has been called.
                 $this->smartyHelper->assign('cmdInfoFormBtText', T_('Create'));
                 $this->smartyHelper->assign('cmdInfoFormAction', 'createCmd');
                 $this->smartyHelper->assign('cmdStateList', CommandTools::getCommandStateList());
                 $this->smartyHelper->assign('commandsetid', $commandsetid);
                 $this->smartyHelper->assign('commandsets', CommandSetTools::getCommandSets($this->teamid, $commandsetid));
             }
             if (0 != $cmdid) {
                 // -------- UPDATE CMD -------
                 $cmd = CommandCache::getInstance()->getCommand($cmdid);
                 // Actions
                 if ("addCmdIssue" == $action) {
                     $bugid = Tools::getSecurePOSTIntValue('bugid');
                     if (self::$logger->isDebugEnabled()) {
                         self::$logger->debug("add Issue {$bugid} on Command {$cmdid} team {$this->teamid}");
                     }
                     $cmd->addIssue($bugid, true);
                     // DBonly
                 } else {
                     if ("addCmdIssueList" == $action) {
                         $bugid_list = $_POST['bugid_list'];
                         if (self::$logger->isDebugEnabled()) {
                             self::$logger->debug("add Issues ({$bugid_list}) on Command {$cmdid} team {$this->teamid}");
                         }
                         $bugids = explode(',', $bugid_list);
                         //$cmd->addIssueList($bugids, true); // DBonly
                         foreach ($bugids as $id) {
                             if (is_numeric(trim($id))) {
                                 $cmd->addIssue(intval($id), true);
                                 // DBonly
                             } else {
                                 self::$logger->error('Attempt to set non_numeric value (' . $id . ')');
                                 die("<span style='color:red'>ERROR: Please contact your CodevTT administrator</span>");
                             }
                         }
                     } else {
                         if ("removeCmdIssue" == $action) {
                             $cmd->removeIssue($_POST['bugid']);
                         } else {
                             if ("addToCmdSet" == $action) {
                                 $commandsetid = $_POST['commandsetid'];
                                 if (self::$logger->isDebugEnabled()) {
                                     self::$logger->debug("add Command {$cmdid} to CommandSet {$commandsetid}");
                                 }
                                 $cmdset = CommandSetCache::getInstance()->getCommandSet($commandsetid);
                                 $cmdset->addCommand($cmdid, Command::type_general);
                             } else {
                                 if ("removeFromCmdSet" == $action) {
                                     $commandsetid = $_POST['commandsetid'];
                                     if (self::$logger->isDebugEnabled()) {
                                         self::$logger->debug("remove Command {$cmdid} from CommandSet {$commandsetid}");
                                     }
                                     $cmdset = CommandSetCache::getInstance()->getCommandSet($commandsetid);
                                     $cmdset->removeCommand($cmdid);
                                 } else {
                                     if ("updateCmdInfo" == $action) {
                                         $this->updateCmdInfo($cmd);
                                         header('Location:command_info.php');
                                     } else {
                                         if ("deleteCommand" == $action) {
                                             if (self::$logger->isDebugEnabled()) {
                                                 self::$logger->debug("delete Command {$cmdid}");
                                             }
                                             Command::delete($cmdid);
                                             unset($_SESSION['cmdid']);
                                             header('Location:command_info.php');
                                         } else {
                                             if ("addProvision" == $action) {
                                                 # TODO check injections
                                                 $prov_date = $_POST['date'];
                                                 $prov_type = $_POST['type'];
                                                 $prov_budget = $_POST['budget'];
                                                 $prov_budgetDays = $_POST['budgetDays'];
                                                 $prov_averageDailyRate = $_POST['averageDailyRate'];
                                                 $prov_summary = $_POST['summary'];
                                                 $isInCheckBudget = 0 == Tools::getSecurePOSTIntValue("isInCheckBudget") ? false : true;
                                                 $timestamp = Tools::date2timestamp($prov_date);
                                                 CommandProvision::create($cmd->getId(), $timestamp, $prov_type, $prov_summary, $prov_budgetDays, $prov_budget, $prov_averageDailyRate, $isInCheckBudget);
                                             } else {
                                                 if ("deleteProvision" == $action) {
                                                     # TODO check injections
                                                     $provid = $_POST['provid'];
                                                     $cmd->deleteProvision($provid);
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
                 // Display Command
                 $this->smartyHelper->assign('commandid', $cmdid);
                 $this->smartyHelper->assign('cmdInfoFormBtText', T_('Save'));
                 $this->smartyHelper->assign('cmdInfoFormAction', 'updateCmdInfo');
                 $this->smartyHelper->assign('isAddIssueForm', true);
                 $parentCmdSets = $this->getParentCmdSetCandidates($this->session_user);
                 $this->smartyHelper->assign('parentCmdSetCandidates', $parentCmdSets);
                 $this->smartyHelper->assign('isAddCmdSetForm', true);
                 $isManager = $this->session_user->isTeamManager($cmd->getTeamid());
                 CommandTools::displayCommand($this->smartyHelper, $cmd, $isManager);
                 $this->smartyHelper->assign('cmdProvisionType', SmartyTools::getSmartyArray(CommandProvision::$provisionNames, 1));
                 // WBS
                 $this->smartyHelper->assign('wbsRootId', $cmd->getWbsid());
                 // multiple selection dialogBox
                 $availableIssueList = $this->getChildIssuesCandidates($this->teamid);
                 $this->smartyHelper->assign('availableIssueList', $availableIssueList);
                 $this->smartyHelper->assign('sendSelectIssuesActionName', "addCmdIssueList");
                 $this->smartyHelper->assign('selectIssuesBoxTitle', T_('Add tasks to Command') . ' \'' . $cmd->getName() . '\'');
                 $this->smartyHelper->assign('openDialogLabel', T_("Add multiple tasks"));
                 $this->smartyHelper->assign('selectIssuesDoneBtText', T_("Add selection"));
                 $this->smartyHelper->assign('selectIssuesBoxDesc', T_("Note: Tasks already assigned to a Command are not displayed."));
                 $this->smartyHelper->assign('selectIssuesConfirmMsg', T_("Add the selected issues to the Command ?"));
             }
             // you can create a command OR move cmd only to managed teams
             $mTeamList = $this->session_user->getManagedTeamList();
             $this->smartyHelper->assign('grantedTeams', SmartyTools::getSmartyArray($mTeamList, $this->teamid));
         }
     }
 }
Example #2
0
 /**
  * delete a team (and all it's ServiceContracts,CommandSets,Commands)
  * @static
  * @param int $teamidToDelete
  * @return bool
  */
 public static function delete($teamidToDelete)
 {
     try {
         $team = TeamCache::getInstance()->getTeam($teamidToDelete);
         $idlist = array_keys($team->getCommands());
         foreach ($idlist as $id) {
             Command::delete($id);
         }
         $idlist = array_keys($team->getCommandSetList());
         foreach ($idlist as $id) {
             CommandSet::delete($id);
         }
         $idlist = array_keys($team->getServiceContractList());
         foreach ($idlist as $id) {
             ServiceContract::delete($id);
         }
         $query = "DELETE FROM `codev_team_project_table` WHERE team_id = {$teamidToDelete};";
         $result = SqlWrapper::getInstance()->sql_query($query);
         if (!$result) {
             echo "<span style='color:red'>ERROR: Query FAILED</span>\n";
             exit;
         }
         $query = "DELETE FROM `codev_team_user_table` WHERE team_id = {$teamidToDelete};";
         $result = SqlWrapper::getInstance()->sql_query($query);
         if (!$result) {
             echo "<span style='color:red'>ERROR: Query FAILED</span>\n";
             exit;
         }
         $query = "DELETE FROM `codev_team_table` WHERE id = {$teamidToDelete};";
         $result = SqlWrapper::getInstance()->sql_query($query);
         if (!$result) {
             echo "<span style='color:red'>ERROR: Query FAILED</span>\n";
             exit;
         }
     } catch (Exception $e) {
         return false;
     }
     return true;
 }
Example #3
0
 /**
  * 
  *
  * @param mixed 
  * @return 
  */
 public static function delete($condition = '', $params = [])
 {
     $command = new Command(get_called_class());
     return $command->delete($condition, $params);
 }