5 * Copyright 2010-2011, Franck Villaume - Capgemini
6 * Copyright 2010, Antoine Mercadal - Capgemini
7 * http://fusionforge.org
9 * This file is part of FusionForge. FusionForge is free software;
10 * you can redistribute it and/or modify it under the terms of the
11 * GNU General Public License as published by the Free Software
12 * Foundation; either version 2 of the Licence, or (at your option)
15 * FusionForge is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
20 * You should have received a copy of the GNU General Public License along
21 * with FusionForge; if not, write to the Free Software Foundation, Inc.,
22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
34 $redirect_url = 'plugins/mantisbt/?type='.$type;
37 $redirect_url .= '&group_id='.$group_id;
41 $redirect_url .= '&user_id='.$user_id;
45 $error_msg = _('No type found.');
46 session_redirect('plugins/mantisbt/&error_msg='.urlencode($error_msg));
50 $clientSOAP = new SoapClient($mantisbtConf['url']."/api/soap/mantisconnect.php?wsdl", array('trace'=>true, 'exceptions'=>true));
51 $defect = $clientSOAP->__soapCall('mc_issue_get', array("username" => $username, "password" => $password, "issue_id" => $idBug));
52 if ($defect->category != getStringFromRequest('categorie')) {
53 $defect->category = getStringFromRequest('categorie');
56 if ($defect->severity->name != getStringFromRequest('severite')) {
57 $listSeverities = $clientSOAP->__soapCall('mc_enum_severities', array("username" => $username, "password" => $password));
58 foreach($listSeverities as $key => $severity) {
59 if (getStringFromRequest('severite') == $severity->name) {
60 $defect->severity->id = $severity->id;
61 $defect->severity->name = $severity->name;
67 if ($defect->reproducibility->name != getStringFromRequest('reproductibilite')) {
68 $listReproducibilities = $clientSOAP->__soapCall('mc_enum_reproducibilities', array("username" => $username, "password" => $password));
69 foreach($listReproducibilities as $key => $reproducibility) {
70 if (getStringFromRequest('reproductibilite') == $reproducibility->name) {
71 $defect->reproducibility->id = $reproducibility->id;
72 $defect->reproducibility->name = $reproducibility->name;
78 if ($defect->reporter->name != getStringFromRequest('reporter')) {
79 $listUsers = $clientSOAP->__soapCall('mc_project_get_users', array("username" => $username, "password" => $password, "project_id" => $defect->project->id, "acces" => 10));
80 foreach($listUsers as $key => $usermantis) {
81 if (getStringFromRequest('reporter') == $usermantis->name) {
82 $defect->reporter->id = $usermantis->id;
83 $defect->reporter->name = $usermantis->name;
84 $defect->reporter->real_name = $usermantis->real_name;
85 $defect->reporter->email = $usermantis->email;
91 if ($defect->view_state->name != getStringFromRequest('viewstate')) {
92 $listViewStates = $clientSOAP->__soapCall('mc_enum_view_states', array("username" => $username, "password" => $password));
93 foreach($listViewStates as $key => $viewState) {
94 if (getStringFromRequest('viewstate') == $viewState->name) {
95 $defect->view_state->id = $viewState->id;
96 $defect->view_state->name = $viewState->name;
102 if ($defect->handler->name != getStringFromRequest('handler')) {
103 if (getStringFromRequest('handler') != ""){
104 $listUsers = $clientSOAP->__soapCall('mc_project_get_users', array("username" => $username, "password" => $password, "project_id" => $defect->project->id, "acces" => 10));
105 foreach($listUsers as $key => $usermantis) {
106 if (getStringFromRequest('handler') == $usermantis->name) {
107 $defect->handler->id = $usermantis->id;
108 $defect->handler->name = $usermantis->name;
109 $defect->handler->real_name = $usermantis->real_name;
110 $defect->handler->email = $usermantis->email;
115 $defect->handler = null;
119 if ($defect->priority->name != getStringFromRequest('priorite')) {
120 $listPriorities = $clientSOAP->__soapCall('mc_enum_priorities', array("username" => $username, "password" => $password));
121 foreach($listPriorities as $key => $priority) {
122 if (getStringFromRequest('priorite') == $priority->name) {
123 $defect->priority->id = $priority->id;
124 $defect->priority->name = $priority->name;
130 if ($defect->resolution->name != getStringFromRequest('resolution')) {
131 $listResolutions= $clientSOAP->__soapCall('mc_enum_resolutions', array("username" => $username, "password" => $password));
132 foreach($listResolutions as $key => $resolution) {
133 if (getStringFromRequest('resolution') == $resolution->name) {
134 $defect->resolution->id = $resolution->id;
135 $defect->resolution->name = $resolution->name;
141 if ($defect->status->name != getStringFromRequest('etat')) {
142 $listStatus= $clientSOAP->__soapCall('mc_enum_status', array("username" => $username, "password" => $password));
143 foreach($listStatus as $key => $status) {
144 if (getStringFromRequest('etat') == $status->name) {
145 $defect->status->id = $status->id;
146 $defect->status->name = $status->name;
152 if ($defect->description != getStringFromRequest('description')) {
153 $defect->description = getStringFromRequest('description');
156 if ($defect->additional_information != getStringFromRequest('informations')) {
157 $defect->additional_information = getStringFromRequest('informations');
160 if ($defect->summary != getStringFromRequest('resume')){
161 $defect->summary = getStringFromRequest('resume');
164 if ($defect->version != getStringFromRequest('version')) {
165 $defect->version = getStringFromRequest('version');
168 if ($defect->fixed_in_version != getStringFromRequest('fixed_in_version')) {
169 $defect->fixed_in_version = getStringFromRequest('fixed_in_version');
172 if ($defect->target_version != getStringFromRequest('target_version')) {
173 $defect->target_version = getStringFromRequest('target_version');
177 $clientSOAP->__soapCall('mc_issue_update', array("username" => $username, "password" => $password, "issue_id" => $idBug, "issue" => $defect));
178 } catch (SoapFault $soapFault) {
179 $error_msg = _('Task failed')._(': ').$soapFault->faultstring;
180 session_redirect($redirect_url.'&pluginname='.$mantisbt->name.'&idBug='.$idBug.'&view=viewIssue&error_msg='.urlencode($feedback));
183 $feedback = _('Task succeeded.');
184 session_redirect($redirect_url.'&pluginname='.$mantisbt->name.'&idBug='.$idBug.'&view=viewIssue&feedback='.urlencode($feedback));