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);
     }
 }
Example #2
0
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);