function __construct(&$db, $tproject_id) { $this->db = $db; $this->reqSpecMgr = new requirement_spec_mgr($db); $this->reqMgr = new requirement_mgr($db); $this->treeMgr = $this->reqMgr->tree_mgr; $req_spec_cfg = config_get('req_spec_cfg'); $this->reqSpecTypeDomain = init_labels($req_spec_cfg->type_labels); $this->commandMgr = new reqCommands($db); $this->submit_button_label = lang_get('btn_save'); $this->getRequirementsOptions = array('order_by' => " ORDER BY NH_REQ.node_order "); $tproject_mgr = new testproject($this->db); $info = $tproject_mgr->get_by_id($tproject_id); if ($info['reqmgr_integration_enabled']) { $sysmgr = new tlReqMgrSystem($this->db); $rms = $sysmgr->getInterfaceObject($tproject_id); $this->reqMgrSystem = $sysmgr->getLinkedTo($tproject_id); unset($sysmgr); } }
function doUpdate($argsObj, &$tprojectMgr, $sessionTprojectID) { $key2get = array('status_ok', 'msg'); $op = new stdClass(); $op->ui = new stdClass(); $op->status_ok = 0; $op->msg = ''; $op->template = null; $op->reloadType = 'none'; $oldObjData = $tprojectMgr->get_by_id($argsObj->tprojectID); $op->oldName = $oldObjData['name']; $check_op = crossChecks($argsObj, $tprojectMgr); foreach ($key2get as $key) { $op->{$key} = $check_op[$key]; } if ($op->status_ok) { $options = prepareOptions($argsObj); if ($tprojectMgr->update($argsObj->tprojectID, trim($argsObj->tprojectName), $argsObj->color, $argsObj->notes, $options, $argsObj->active, $argsObj->tcasePrefix, $argsObj->is_public)) { $op->msg = ''; $tprojectMgr->activate($argsObj->tprojectID, $argsObj->active); $tprojectMgr->setIssueTrackerEnabled($argsObj->tprojectID, $argsObj->issue_tracker_enabled); $itMgr = new tlIssueTracker($tprojectMgr->db); if ($doLink = $argsObj->issue_tracker_id > 0) { $itMgr->link($argsObj->issue_tracker_id, $argsObj->tprojectID); } else { $issueT = $itMgr->getLinkedTo($argsObj->tprojectID); if (!is_null($issueT)) { $itMgr->unlink($issueT['issuetracker_id'], $issueT['testproject_id']); } } $tprojectMgr->setReqMgrIntegrationEnabled($argsObj->tprojectID, $argsObj->reqmgr_integration_enabled); $mgr = new tlReqMgrSystem($tprojectMgr->db); if ($doLink = $argsObj->reqmgrsystem_id > 0) { $mgr->link($argsObj->reqmgrsystem_id, $argsObj->tprojectID); } else { $et = $mgr->getLinkedTo($argsObj->tprojectID); if (!is_null($et)) { $mgr->unlink($et['reqmgrsystem_id'], $et['testproject_id']); } } if (!$argsObj->is_public) { // does user have an SPECIFIC role on Test Project ? // if answer is yes => do nothing if (!tlUser::hasRoleOnTestProject($tprojectMgr->db, $argsObj->userID, $argsObj->tprojectID)) { $tprojectMgr->addUserRole($argsObj->userID, $argsObj->tprojectID, $argsObj->user->globalRole->dbID); } } $event = new stdClass(); $event->message = TLS("audit_testproject_saved", $argsObj->tprojectName); $event->logLevel = "AUDIT"; $event->source = "GUI"; $event->objectID = $argsObj->tprojectID; $event->objectType = "testprojects"; $event->code = "UPDATE"; logEvent($event); } else { $op->status_ok = 0; } } if ($op->status_ok) { if ($sessionTprojectID == $argsObj->tprojectID) { $op->reloadType = 'reloadNavBar'; } } else { $op->ui->doActionValue = 'doUpdate'; $op->ui->buttonValue = lang_get('btn_save'); $op->ui->caption = sprintf(lang_get('caption_edit_tproject'), $op->oldName); } return $op; }
* TestLink Open Source Project - http://testlink.sourceforge.net/ * This script is distributed under the GNU General Public License 2 or later. * * @filesource reqMgrSystemView.php * * @author francisco.mancardi@gmail.com * @internal revisions * * @since 1.9.6 * **/ require_once dirname(__FILE__) . "/../../config.inc.php"; require_once "common.php"; testlinkInitPage($db, false, false, "checkRights"); $templateCfg = templateConfiguration(); $mgr = new tlReqMgrSystem($db); $gui = new stdClass(); $args = init_args(); $gui->items = $mgr->getAll(array('output' => 'add_link_count', 'checkEnv' => true)); $gui->canManage = $args->currentUser->hasRight($db, "reqmgrsystem_management"); $gui->user_feedback = $args->user_feedback; if ($args->id > 0) { $gui->items[$args->id]['connection_status'] = $mgr->checkConnection($args->id) ? 'ok' : 'ko'; } $smarty = new TLSmarty(); $smarty->assign('gui', $gui); $smarty->display($templateCfg->template_dir . $templateCfg->default_template); /* <cfg> <user></user> <password></password>
* * @package TestLink * @filesource getreqmgrsystemcfgtemplate.php * @since 1.9.6 * @author Francisco Mancardi - francisco.mancardi@gmail.com * @copyright 2013, TestLink community * * @internal revisions * @since 1.9.6 **/ require_once '../../config.inc.php'; require_once 'common.php'; testlinkInitPage($db); $info = array('sucess' => true, 'cfg' => ''); $type = intval($_REQUEST['type']); $mgr = new tlReqMgrSystem($db); $itt = $mgr->getTypes(); if (isset($itt[$type])) { unset($itt); $iname = $mgr->getImplementationForType($type); $info['cfg'] = stream_resolve_include_path($iname . '.class.php'); // Notes for developers // Trying to use try/catch to manage missing interface file, results on nothing good. // This way worked. if (stream_resolve_include_path($iname . '.class.php') !== FALSE) { $info['cfg'] = '<pre><xmp>' . $iname::getCfgTemplate() . '</xmp></pre>'; } else { $info['cfg'] = sprintf(lang_get('reqmgrsystem_interface_not_implemented'), $iname); } } else { $info['cfg'] = sprintf(lang_get('reqmgrsystem_invalid_type'), $type);