protected function display() { if (Tools::isConnectedUser()) { $session_user = UserCache::getInstance()->getUser($_SESSION['userid']); // Admins only if ($session_user->isTeamMember(Config::getInstance()->getValue(Config::id_adminTeamId))) { $this->smartyHelper->assign('access', true); $is_modified = Tools::getSecurePOSTStringValue('is_modified', 'false'); // init // 'is_modified' is used because it's not possible to make a difference // between an unchecked checkBox and an unset checkbox variable if ("false" == $is_modified) { $isBackup = true; } else { $isBackup = $_POST['cb_backup']; } $filename = Tools::getSecurePOSTStringValue('backup_filename', "codevtt_backup_" . date("Ymd") . ".sql"); $this->smartyHelper->assign('isBackup', $isBackup); $this->smartyHelper->assign('filename', $filename); if (isset($_POST['cb_backup'])) { $result = true; if ($isBackup) { $result = SqlWrapper::getInstance()->sql_dump($filename) && $this->saveConfigFiles(); $this->smartyHelper->assign('backupResult', $result); } $this->smartyHelper->assign('stepOneResult', $result); if ($result) { $prjList = $this->displayProjectsToRemove(); $this->smartyHelper->assign('projects', $prjList); } $this->smartyHelper->assign('stepTwoResult', $result); if ($result) { $result = $this->removeCustomFields(); } $this->smartyHelper->assign('stepThreeResult', $result); if ($result) { $result = Tools::execSQLscript2("uninstall.sql"); } $this->smartyHelper->assign('stepFourResult', $result); if ($result) { $result = $this->deleteConfigFiles(); } $this->smartyHelper->assign('stepFiveResult', $result); if ($result) { $result = $this->removeCustomMenuItem('CodevTT'); } $this->smartyHelper->assign('stepSixResult', $result); } else { Config::setQuiet(true); $this->smartyHelper->assign('codevReportsDir', Constants::$codevOutputDir . DIRECTORY_SEPARATOR . 'reports'); Config::setQuiet(false); $this->smartyHelper->assign('is_modified', $is_modified); } } } }
/** * @static * @param string $projectName * @return int|string */ public static function createSideTaskProject($projectName) { $mgrEffortEstimCustomField = Config::getInstance()->getValue(Config::id_customField_MgrEffortEstim); $estimEffortCustomField = Config::getInstance()->getValue(Config::id_customField_effortEstim); $addEffortCustomField = Config::getInstance()->getValue(Config::id_customField_addEffort); $backlogCustomField = Config::getInstance()->getValue(Config::id_customField_backlog); $deadLineCustomField = Config::getInstance()->getValue(Config::id_customField_deadLine); $deliveryDateCustomField = Config::getInstance()->getValue(Config::id_customField_deliveryDate); // check if name exists $query = "SELECT id FROM `mantis_project_table` WHERE name='{$projectName}'"; $result = SqlWrapper::getInstance()->sql_query($query); if (!$result) { echo "<span style='color:red'>ERROR: Query FAILED</span>"; exit; } $projectid = 0 != SqlWrapper::getInstance()->sql_num_rows($result) ? SqlWrapper::getInstance()->sql_result($result, 0) : -1; if (-1 != $projectid) { echo "ERROR: Project name already exists ({$projectName})<br/>\n"; return -1; } // create new Project $query = "INSERT INTO `mantis_project_table` (`name`, `status`, `enabled`, `view_state`, `access_min`, `description`, `category_id`, `inherit_global`) " . "VALUES ('{$projectName}','50','1','50','10','{$projectDesc}','1','0');"; $result = SqlWrapper::getInstance()->sql_query($query); if (!$result) { echo "<span style='color:red'>ERROR: Query FAILED</span>"; exit; } $projectid = SqlWrapper::getInstance()->sql_insert_id(); // add custom fields BI,BS,RAE,DeadLine,DeliveryDate $query = "INSERT INTO `mantis_custom_field_project_table` (`field_id`, `project_id`, `sequence`) " . "VALUES ('{$mgrEffortEstimCustomField}', '{$projectid}','2'), " . "('{$estimEffortCustomField}', '{$projectid}','3'), " . "('{$addEffortCustomField}', '{$projectid}','4'), " . "('{$backlogCustomField}', '{$projectid}','5'), " . "('{$deadLineCustomField}', '{$projectid}','6'), " . "('{$deliveryDateCustomField}', '{$projectid}','7');"; $result = SqlWrapper::getInstance()->sql_query($query); if (!$result) { echo "<span style='color:red'>ERROR: Query FAILED</span>"; exit; } // when creating an new issue, the status is set to 'closed' (External Tasks have no workflow...) #REM first call to this function is in install step1, and $statusNames is set in step2. '90' is mantis default value for 'closed' Config::setQuiet(TRUE); $statusNames = Constants::$statusNames; Config::setQuiet(FALSE); $status_closed = NULL != $statusNames ? array_search('closed', $statusNames) : 90; $query = "INSERT INTO `mantis_config_table` (`config_id`,`project_id`,`user_id`,`access_reqd`,`type`,`value`) " . "VALUES ('bug_submit_status', '{$projectid}','0', '90', '1', '{$status_closed}');"; $result = SqlWrapper::getInstance()->sql_query($query); if (!$result) { echo "<span style='color:red'>ERROR: Query FAILED</span>"; exit; } // Status to set auto-assigned issues to 'closed' $query = "INSERT INTO `mantis_config_table` (`config_id`,`project_id`,`user_id`,`access_reqd`,`type`,`value`) " . "VALUES ('bug_assigned_status', '{$projectid}','0', '90', '1', '{$status_closed}');"; $result = SqlWrapper::getInstance()->sql_query($query); if (!$result) { echo "<span style='color:red'>ERROR: Query FAILED</span>"; exit; } return $projectid; }