|
108 | 108 | case 'getTicketAttachment': |
109 | 109 |
|
110 | 110 | $id_ticket = $_POST['idTicket']; |
| 111 | + $itemType = $_POST['itemType']; |
111 | 112 |
|
112 | | - $conf = new PluginMantisConfig(); |
113 | | - $conf->getFromDB(1); |
114 | | - |
115 | | - $ticket = new Ticket(); |
| 113 | + $ticket = new $itemType(); |
116 | 114 | $ticket->getFromDB($id_ticket); |
117 | 115 |
|
118 | | - if($conf->fields['doc_categorie'] == 0){ |
119 | | - $where = " tickets_id =".$id_ticket; |
120 | | - }else{ |
121 | | - $where = " tickets_id =".$id_ticket." and documentcategories_id = ".$conf->fields['doc_categorie']; |
122 | | - } |
123 | | - |
124 | | - $output .= getOutPutForticket($ticket,$where); |
125 | | - |
126 | | - |
127 | | - $tickets = Ticket_Ticket::getLinkedTicketsTo($id_ticket); |
128 | | - |
129 | | - if(count($tickets)){ |
130 | | - $output .= "<br/><DL><DT><STRONG>".__('If you fowllow linked tickets','mantis')."</STRONG><br>"; |
131 | | - foreach ($tickets as $link_ticket){ |
| 116 | + $output .= getOutPutForticket($ticket,$itemType); |
132 | 117 |
|
133 | | - $ticketLink = new Ticket(); |
134 | | - $ticketLink->getFromDB($link_ticket['tickets_id']); |
| 118 | + if($itemType != 'Problem'){ |
| 119 | + $tickets = Ticket_Ticket::getLinkedTicketsTo($id_ticket); |
135 | 120 |
|
136 | | - if($conf->fields['doc_categorie'] == 0){ |
137 | | - $where = " tickets_id =".$link_ticket['tickets_id']; |
138 | | - }else{ |
139 | | - $where = " tickets_id =".$link_ticket['tickets_id']." and documentcategories_id = ".$conf->fields['doc_categorie']; |
140 | | - } |
141 | | - |
142 | | - $output .= getOutPutForticket($ticketLink,$where); |
143 | | - |
144 | | - } |
145 | | - }else{ |
146 | | - $output .= "<DL><DT><STRONG>".__('No tickets linked','mantis'); |
147 | | - } |
| 121 | + if(count($tickets)){ |
| 122 | + $output .= "<br/><DL><DT><STRONG>".__('If you fowllow linked tickets','mantis')."</STRONG><br>"; |
| 123 | + foreach ($tickets as $link_ticket){ |
| 124 | + $ticketLink = new Ticket(); |
| 125 | + $ticketLink->getFromDB($link_ticket['tickets_id']); |
| 126 | + $output .= getOutPutForticket($ticketLink,$itemType); |
| 127 | + } |
| 128 | + }else{ |
| 129 | + $output .= "<DL><DT><STRONG>".__('No tickets linked','mantis'); |
| 130 | + } |
| 131 | + } |
148 | 132 |
|
149 | 133 | if($output == ""){ |
150 | | - echo __('No documents attached','mantis'); |
| 134 | + echo "<STRONG>".__('No documents attached','mantis')."<STRONG/>"; |
151 | 135 | }else{ |
152 | 136 | echo $output; |
153 | 137 | } |
|
174 | 158 |
|
175 | 159 | case 'getProjectName': |
176 | 160 |
|
177 | | - $id_ticket = $_POST['idTicket']; |
| 161 | + $idItem = $_POST['idTicket']; |
178 | 162 | $id_mantis_issue = $_POST['idMantis']; |
| 163 | + $itemType = $_POST['itemType']; |
179 | 164 |
|
180 | 165 | $ws = new PluginMantisMantisws(); |
181 | 166 | $ws->initializeConnection(); |
|
184 | 169 | echo "ERROR :". __("MantisBT issue does not exist","mantis"); |
185 | 170 | } else { |
186 | 171 |
|
187 | | - |
188 | | - |
189 | 172 | $mantis = new PluginMantisMantis(); |
190 | 173 | //on verifie si un lien est deja creé |
191 | | - if ($mantis->IfExistLink($id_ticket, $id_mantis_issue)) { |
192 | | - echo "ERROR :". __("This Glpi ticket is already linked to this MantisBT ticket","mantis"); |
| 174 | + if ($mantis->IfExistLink($idItem, $id_mantis_issue,$itemType)) { |
| 175 | + echo "ERROR :". __("This Glpi ".$itemType." is already linked to this MantisBT ticket","mantis"); |
193 | 176 | } else { |
194 | 177 |
|
195 | 178 | $result = $ws->getIssueById($id_mantis_issue); |
|
200 | 183 |
|
201 | 184 | break; |
202 | 185 |
|
203 | | - |
204 | | - |
205 | | - |
206 | 186 | case 'getCustomFieldByProjectname': |
207 | 187 |
|
208 | 188 | $ws = new PluginMantisMantisws(); |
|
215 | 195 | case 'LinkIssueGlpiToIssueMantis': |
216 | 196 |
|
217 | 197 | $id_ticket = $_POST['idTicket']; |
218 | | - $id_mantis_issue = $_POST['idMantis']; |
| 198 | + $id_mantis_issue = $_POST['idMantis']; |
| 199 | + $itemType = $_POST['itemType']; |
219 | 200 | $ws = new PluginMantisMantisws(); |
220 | 201 | $ws->initializeConnection(); |
221 | 202 |
|
|
225 | 206 | } else { |
226 | 207 | $mantis = new PluginMantisMantis(); |
227 | 208 | //on verifie si un lien est deja creé |
228 | | - if ($mantis->IfExistLink($id_ticket, $id_mantis_issue)) { |
229 | | - echo __("This Glpi ticket is already linked to this MantisBT ticket","mantis"); |
| 209 | + if ($mantis->IfExistLink($id_ticket, $id_mantis_issue,$itemType)) { |
| 210 | + echo __("This Glpi ".$itemType." is already linked to this MantisBT ticket","mantis"); |
230 | 211 | } else { |
231 | 212 |
|
232 | 213 | $issue = new PluginMantisIssue(); |
|
254 | 235 | $post['idTicket'] = $t->fields['id']; |
255 | 236 | $post['idMantis'] = $id_mantis_issue; |
256 | 237 | $post['dateEscalade'] = $_POST['dateEscalade']; |
| 238 | + $post['itemType'] = $_POST['itemType']; |
257 | 239 | $post['user'] = $_POST['user']; |
258 | 240 |
|
259 | 241 | $id_mantis[] = $mantis1->add($post); |
|
329 | 311 | } |
330 | 312 |
|
331 | 313 |
|
332 | | -function getOutPutForticket($ticket , $where){ |
| 314 | +function getOutPutForticket($ticket , $itemType){ |
333 | 315 |
|
| 316 | + global $DB; |
| 317 | + $conf = new PluginMantisConfig(); |
| 318 | + $conf->getFromDB(1); |
334 | 319 |
|
335 | | - $doc = new Document(); |
336 | | - $docs = $doc->find($where); |
337 | | - $output = ""; |
338 | | - if(count($docs)){ |
| 320 | + if($conf->fields['doc_categorie'] == 0){ |
| 321 | + $res = $DB->query("SELECT `glpi_documents_items`.* |
| 322 | + FROM `glpi_documents_items` WHERE `glpi_documents_items`.`itemtype` = '".$itemType."' |
| 323 | + AND `glpi_documents_items`.`items_id` = '" . Toolbox::cleanInteger($ticket->fields['id']) . "'"); |
| 324 | + }else{ |
| 325 | + $res = $DB->query("SELECT `glpi_documents_items`.* |
| 326 | + FROM `glpi_documents_items` ,`glpi_documents` WHERE `glpi_documents`.`id` =`glpi_documents_items`.`documents_id` and `glpi_documents`.`documentcategories_id` = '".Toolbox::cleanInteger($conf->fields['doc_categorie'])."' and`glpi_documents_items`.`itemtype` = '".$itemType."' |
| 327 | + AND `glpi_documents_items`.`items_id` = '" . Toolbox::cleanInteger($ticket->fields['id']) . "'"); |
| 328 | + } |
339 | 329 |
|
340 | | - $output .= "<DL><DT><STRONG>Ticket -> ".$ticket->fields['id']."</STRONG><br>"; |
341 | | - foreach($docs as $d){ |
342 | | - $output .= "<DD>Document -> ".$d['filename']."<br>"; |
| 330 | + |
| 331 | + |
| 332 | + $output = ""; |
| 333 | + if ($res->num_rows > 0) { |
| 334 | + $output .= "<DL><DT><STRONG>".$itemType." -> ".$ticket->fields['id']."</STRONG><br>"; |
| 335 | + while ($row = $res->fetch_assoc()) { |
| 336 | + $doc = new Document(); |
| 337 | + $doc->getFromDB($row["documents_id"]); |
| 338 | + $output .= "<DD>".$doc->getDownloadLink('',strlen($doc->fields['filename']))."<br>"; |
343 | 339 | } |
344 | 340 | $output .= "</DL>"; |
345 | 341 | }else{ |
|
0 commit comments