public function addVersion($projID, $version) { if (MANTIS_LOCAL) { if (version_add($projID, $version, true, $version)) { $t_version_id = version_get_id($version, $projID); if (!is_blank($v_date_order)) { $t_version = version_get($t_version_id); $t_version->date_order = date("Y-m-d H:i:s", strtotime($v_date_order)); version_update($t_version); } } } else { $this->client->mc_project_version_add(MANTIS_USER, MANTIS_PWD, array('name' => $version, 'project_id' => $projID, 'description' => $version, 'released' => true)); } }
/** * Submit the specified version details. * * @param string $p_username The name of the user trying to update the issue. * @param string $p_password The password of the user. * @param integer $p_version_id A version's id * @param Array $p_version A ProjectVersionData structure containing information about the new verison. * @return bool returns true or false depending on the success of the update action */ function mc_project_version_update($p_username, $p_password, $p_version_id, $p_version) { $t_user_id = mci_check_login($p_username, $p_password); if ($t_user_id === false) { return mci_soap_fault_login_failed(); } if (is_blank($p_version_id)) { return new soap_fault('Client', '', 'Mandatory field "version_id" was missing'); } if (!version_exists($p_version_id)) { return new soap_fault('Client', '', "Version '{$p_version_id}' does not exist."); } $t_project_id = $p_version['project_id']; $t_name = $p_version['name']; $t_released = $p_version['released']; $t_description = $p_version['description']; $t_date_order = $p_version['date_order']; if (is_blank($t_project_id)) { return new soap_fault('Client', '', 'Mandatory field "project_id" was missing'); } if (!project_exists($t_project_id)) { return new soap_fault('Client', '', "Project '{$t_project_id}' does not exist."); } if (!mci_has_readwrite_access($t_user_id, $t_project_id)) { return mci_soap_fault_access_denied($t_user_id); } if (!mci_has_access(config_get('manage_project_threshold'), $t_user_id, $t_project_id)) { return mci_soap_fault_access_denied($t_user_id); } if (is_blank($t_name)) { return new soap_fault('Client', '', 'Mandatory field "name" was missing'); } # check for duplicates $t_old_version_name = version_get_field($p_version_id, 'version'); if (strtolower($t_old_version_name) != strtolower($t_name) && !version_is_unique($t_name, $t_project_id)) { return new soap_fault('Client', '', 'Version exists for project', 'The version you attempted to update already exists for this project'); } if ($t_released === false) { $t_released = VERSION_FUTURE; } else { $t_released = VERSION_RELEASED; } $t_version_data = new VersionData(); $t_version_data->id = $p_version_id; $t_version_data->project_id = $t_project_id; $t_version_data->version = $t_name; $t_version_data->description = $t_description; $t_version_data->released = $t_released; $t_version_data->date_order = date("Y-m-d H:i:s", strtotime($t_date_order)); return version_update($t_version_data); }
/** * Submit the specified version details. * * @param string $p_username The name of the user trying to update the issue. * @param string $p_password The password of the user. * @param integer $p_version_id A version's id * @param Array $p_version A ProjectVersionData structure containing information about the new verison. * @return bool returns true or false depending on the success of the update action */ function mc_project_version_update($p_username, $p_password, $p_version_id, $p_version) { $t_user_id = mci_check_login($p_username, $p_password); if ($t_user_id === false) { return new soap_fault('Client', '', 'Access Denied', 'Username/password combination was incorrect'); } if (!mci_has_administrator_access($t_user_id)) { return new soap_fault('Client', '', 'Access Denied', 'User does not have administrator access'); } if (is_blank($p_version_id)) { return new soap_fault('Client', '', 'Mandatory field "version_id" was missing'); } if (!version_exists($p_version_id)) { return new soap_fault('Client', '', "Version '{$p_version_id}' does not exist."); } extract($p_version, EXTR_PREFIX_ALL, 'v'); if (is_blank($v_project_id)) { return new soap_fault('Client', '', 'Mandatory field "project_id" was missing'); } if (!project_exists($v_project_id)) { return new soap_fault('Client', '', "Version '{$v_project_id}' does not exist."); } if (is_blank($v_name)) { return new soap_fault('Client', '', 'Mandatory field "name" was missing'); } # check for duplicates $t_old_version_name = version_get_field($p_version_id, 'version'); if (strtolower($t_old_version_name) != strtolower($v_name) && !version_is_unique($v_name, $v_project_id)) { return new soap_fault('Client', '', 'Version exists for project', 'The version you attempted to update already exists for this project'); } if ($v_released === false) { $v_released = VERSION_FUTURE; } else { $v_released = VERSION_RELEASED; } $t_version_data = new VersionData(); $t_version_data->id = $p_version_id; $t_version_data->project_id = $v_project_id; $t_version_data->version = $v_name; $t_version_data->description = $v_description; $t_version_data->released = $v_released; $t_version_data->date_order = date("Y-m-d H:i:s", strtotime($v_date_order)); return version_update($t_version_data); }
} if (is_null($obsolete)) { $version->obsolete = false; } else { if ($obsolete == 'on') { $version->obsolete = true; } } if (!is_null($date_order)) { $new_date_order = $date_order[$version_index]; $version->date_order = $new_date_order; } if (!is_null($type)) { $new_type = $type[$version_index]; if (strlen($new_type) > 0) { $new_type_id = $specmanagement_database_api->get_type_id($new_type); $specmanagement_database_api->update_version_associated_type($project_id, $version_ids[$version_index], $new_type_id); } else { $specmanagement_database_api->update_version_associated_type($project_id, $version_ids[$version_index], 9999); } } if (!is_null($description)) { $new_description = $description[$version_index]; $version->description = $new_description; } version_update($version); event_signal('EVENT_MANAGE_VERSION_UPDATE', array($version_id)); } } form_security_purge('plugin_SpecManagement_manage_versions_update'); print_successful_redirect(plugin_page('manage_versions', true));
$f_date_order = gpc_get_string('date_order'); $f_new_version = gpc_get_string('new_version'); $f_description = gpc_get_string('description'); $f_released = gpc_get_bool('released'); $f_obsolete = gpc_get_bool('obsolete'); access_ensure_project_level(config_get('manage_project_threshold'), $t_version->project_id); if (is_blank($f_new_version)) { trigger_error(ERROR_EMPTY_FIELD, ERROR); } $f_new_version = trim($f_new_version); $t_version->version = $f_new_version; $t_version->description = $f_description; $t_version->released = $f_released ? VERSION_RELEASED : VERSION_FUTURE; $t_version->obsolete = $f_obsolete; $t_version->date_order = $f_date_order; version_update($t_version); event_signal('EVENT_MANAGE_VERSION_UPDATE', array($t_version->id)); form_security_purge('manage_proj_ver_update'); $t_redirect_url = 'manage_proj_edit_page.php?project_id=' . $t_version->project_id; html_page_top(null, $t_redirect_url); ?> <br /> <div align="center"> <?php echo lang_get('operation_successful') . '<br />'; print_bracket_link($t_redirect_url, lang_get('proceed')); ?> </div> <?php
/** * Submit the specified version details. * * @param string $p_username The name of the user trying to update the issue. * @param string $p_password The password of the user. * @param integer $p_version_id A version's id. * @param stdClass $p_version A ProjectVersionData structure containing information about the new version. * @return boolean returns true or false depending on the success of the update action */ function mc_project_version_update($p_username, $p_password, $p_version_id, stdClass $p_version) { global $g_project_override; $t_user_id = mci_check_login($p_username, $p_password); if ($t_user_id === false) { return mci_soap_fault_login_failed(); } if (is_blank($p_version_id)) { return SoapObjectsFactory::newSoapFault('Client', 'Mandatory field "version_id" was missing'); } if (!version_exists($p_version_id)) { return SoapObjectsFactory::newSoapFault('Client', 'Version \'' . $p_version_id . '\' does not exist.'); } $p_version = SoapObjectsFactory::unwrapObject($p_version); $t_project_id = $p_version['project_id']; $g_project_override = $t_project_id; $t_name = $p_version['name']; $t_released = $p_version['released']; $t_description = $p_version['description']; $t_date_order = isset($p_version['date_order']) ? SoapObjectsFactory::parseDateTimeString($p_version['date_order']) : null; $t_obsolete = isset($p_version['obsolete']) ? $p_version['obsolete'] : false; if (is_blank($t_project_id)) { return SoapObjectsFactory::newSoapFault('Client', 'Mandatory field "project_id" was missing'); } if (!project_exists($t_project_id)) { return SoapObjectsFactory::newSoapFault('Client', 'Project \'' . $t_project_id . '\' does not exist.'); } if (!mci_has_readwrite_access($t_user_id, $t_project_id)) { return mci_soap_fault_access_denied($t_user_id); } if (!mci_has_access(config_get('manage_project_threshold'), $t_user_id, $t_project_id)) { return mci_soap_fault_access_denied($t_user_id); } if (is_blank($t_name)) { return SoapObjectsFactory::newSoapFault('Client', 'Mandatory field "name" was missing'); } # check for duplicates $t_old_version_name = version_get_field($p_version_id, 'version'); if (strtolower($t_old_version_name) != strtolower($t_name) && !version_is_unique($t_name, $t_project_id)) { return SoapObjectsFactory::newSoapFault('Client', 'Version exists for project'); } if ($t_released === false) { $t_released = VERSION_FUTURE; } else { $t_released = VERSION_RELEASED; } $t_version_data = new VersionData(); $t_version_data->id = $p_version_id; $t_version_data->project_id = $t_project_id; $t_version_data->version = $t_name; $t_version_data->description = $t_description; $t_version_data->released = $t_released; $t_version_data->date_order = $t_date_order; $t_version_data->obsolete = $t_obsolete; return version_update($t_version_data); }
if ($f_copy_from) { $t_src_project_id = $f_other_project_id; $t_dst_project_id = $f_project_id; } else { if ($f_copy_to) { $t_src_project_id = $f_project_id; $t_dst_project_id = $f_other_project_id; } else { trigger_error(ERROR_VERSION_NO_ACTION, ERROR); } } # Get all active versions (i.e. exclude obsolete ones) $t_rows = version_get_all_rows($t_src_project_id); foreach ($t_rows as $t_row) { $t_dst_version_id = version_get_id($t_row['version'], $t_dst_project_id); if ($t_dst_version_id === false) { # Version does not exist in target project version_add($t_dst_project_id, $t_row['version'], $t_row['released'], $t_row['description'], $t_row['date_order']); } else { # Update existing version # Since we're ignoring obsolete versions, those marked as such in the # source project after an earlier copy operation will not be updated # in the target project. $t_version_data = new VersionData($t_row); $t_version_data->id = $t_dst_version_id; $t_version_data->project_id = $t_dst_project_id; version_update($t_version_data); } } form_security_purge('manage_proj_ver_copy'); print_header_redirect('manage_proj_edit_page.php?project_id=' . $f_project_id);