You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2009-03-09 12:38:51

regissounet
Member
Registered: 2009-02-12
Posts: 6

Patch pour permettre la réouverture d'un ticket par les post-only

Bonjour,

J'ai fait un petit patch pour permettre aux post-only de rouvrir un ticket qui a été fermé depuis moins de 7 jours. Le voilà si ça en intéresse certains:

diff -urN --exclude='*config_db.php*' --exclude='*.swp' --exclude='*cache*' ./front/askReopen.php /var/www/glpi/front/askReopen.php
--- ./front/askReopen.php    1970-01-01 01:00:00.000000000 +0100
+++ /var/www/glpi/front/askReopen.php    2009-03-05 09:39:28.000000000 +0100
@@ -0,0 +1,54 @@
+<?php
+
+define('GLPI_ROOT', '..');
+include (GLPI_ROOT . "/inc/includes.php");
+include (GLPI_ROOT . "/inc/tracking.class.php");
+
+checkRight("create_ticket","1");
+
+//print_r($_POST);
+
+echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=helpdesk.public.php?show=user&ID=$_POST[id]\">";
+
+if(isset($_POST['id'])) {
+  $ID=$_POST['id'];
+  //exec("echo aaaaaa > /tmp/redam.log");
+  global $DB,$CFG_GLPI,$LANG;
+  $job=new Job();
+
+  if ($job->getFromDB($ID)&&haveAccessToEntity($job->fields["FK_entities"])) {
+    if (ereg("old_",$job->fields["status"])){
+      echo "Réouverture en cours<br>";
+      $job=new Job();
+      $job->getFromDB($ID);
+
+      //check that the ticket was closed in less than 7 days
+      $query="SELECT DATEDIFF(NOW(), '$job->fields[closedate]') as dif";
+      $result=$DB->query($query);
+      $data=$DB->fetch_assoc($result);
+      if($data['dif'] > 7 ) {
+        echo "Ticket fermé il y a plus de 7 jours, il n'est pas possible de le rouvrir";
+      } else {
+        $updates[]="status";
+        $updates[]="closedate";
+        $job->fields["status"]="assign";
+        $job->fields["closedate"] = $_SESSION["glpi_currenttime"];
+        $job->updateInDB($updates);
+        //print_r($job->fields);

+        $fup=new Followup();
+        //$tkt=$job->fields;
+        $tkt['tracking']=$ID;
+        $tkt['contents']="Réouverture du ticket à la demande de l'utilisateur";

+        $tkt['contents']=clean_cross_side_scripting_deep(html_clean($tkt['contents']));
+        $tkt=addslashes_deep($tkt);
+        $fup->add($tkt);
+      }     
+    } else {
+      echo "le job déjà ouvert<br>";
+    }
+  }
+}
+
+?>
diff -urN --exclude='*config_db.php*' --exclude='*.swp' --exclude='*cache*' ./inc/tracking.function.php /var/www/glpi/inc/tracking.function.php
--- ./inc/tracking.function.php    2009-01-26 21:46:38.000000000 +0100
+++ /var/www/glpi/inc/tracking.function.php    2009-03-05 09:39:30.000000000 +0100
@@ -2174,6 +2174,19 @@

        echo "</script>";

+        //added by redam@smile.fr
+        if ((! $canupdate) && ereg("old_",$job->fields["status"])) {
+                  //check that the ticket was closed in less than 7 days
+          //print_r($job->fields);
+                  $query="SELECT DATEDIFF(NOW(), '".$job->fields['closedate']."') as dif";
+                  $result=$DB->query($query);
+                  $data=$DB->fetch_assoc($result);
+          //echo $data['dif'];
+                  if($data['dif'] < 7 ) {
+                    echo " <form action=\"askReopen.php\" method=\"post\"><input type=\"hidden\" name=\"id\" value=\"".$job->fields['ID']."\"><input type=\"submit\" value=\"Rouvrir le ticket\" class='submit'></form>";
+                  }
+                } //end added by redam@smile.Fr
+
        echo "<div id='viewfollowup'>\n";
        echo "</div>\n";   


À appliquer avec un "patch -p1 < fichier.patch" en étant dans le dossier glpi.

Ça rajoute un bouton dans le descriptif du ticket si celui-ci est fermé pour le repasser en statut "en cours" et un suivi est ajouté indiquant la réouverture du ticket à la demande de l'utilisateur.

Cordialement

Offline

#2 2009-03-09 12:52:43

ddurieux
Plugins Dev
From: Propières, France
Registered: 2005-06-17
Posts: 7,521

Re: Patch pour permettre la réouverture d'un ticket par les post-only

ça pourrait être intéressant à rajouter dans le coeur avec une durée à définir dans la config de glpi.

Beau travail wink

Offline

Board footer

Powered by FluxBB