Le patch avec tout corrigé (version complète du patch)

Le Sun, 6 Sep 2009 17:35:14 +0200
David DURIEUX <d.duri...@siprossii.com> a écrit:

>Voilà le fichier corrigé, y avait une erreur
>
>Le Sun, 6 Sep 2009 17:13:00 +0200
>David DURIEUX <d.duri...@siprossii.com> a écrit:
>
>>Bonjour,
>>
>>
>>Voici le patch d'uniformisation des 2 formulaires Helpdesk (création +
>>édition).
>>
>>j'ai enlevé le cadre coût, je renverai un patch pour l'onglet "coût"
>>dans la semaine.
>>
>>Il restera à ajuster des petites choses suivant les chantiers
>>(document => dans un onglet et SLA (champ "date d'échéance" à ajouter
>>dans ce form)
>>
>>
>>Cordialement,
>>
>>David DURIEUX
>>Tel : +33 (0)4.74.04.81.34
>>Port : +33 (0)6.34.99.45.18
>>Mail : d.duri...@siprossii.com
>>Site Web : http://www.siprossii.com/
>>
>>SIPROSSII
>>847 route de Frans (Créacité)
>>69400 Villefranche sur Saône
>>FRANCE
# This patch file was generated by NetBeans IDE
# Following Index: paths are relative to: /usr/local/www/data-dist/glpi080
# This patch can be applied using context Tools: Patch action on respective folder.
# It uses platform neutral UTF-8 encoding and \n newlines.
# Above lines and this line are ignored by the patching process.
Index: front/helpdesk.php
--- front/helpdesk.php Base (BASE)
+++ front/helpdesk.php Locally Modified (Based On LOCAL)
@@ -171,7 +171,25 @@
 	}
 	glpi_header($_SERVER['HTTP_REFERER']);
 } else {
-	addFormTracking($itemtype,$computer,$_SERVER['PHP_SELF'],$users_id,$group,$users_id_assign,$groups_id_assign,$name,$content,$ticketscategories_id,$priority,$request_type,$hour,$minute,$date,$entity_restrict,$status,$followup);
+   $array = array(
+                  "users_id" => $users_id,
+                  "group" => $group,
+                  "users_id_assign" => $users_id_assign,
+                  "groups_id_assign" => $groups_id_assign,
+                  "name" => $name,
+                  "content" => $content,
+                  "ticketscategories_id" => $ticketscategories_id,
+                  "priority" => $priority,
+                  "request_type" => $request_type,
+                  "hour" => $hour,
+                  "minute" => $minute,
+                  "date" => $date,
+                  "entity_restrict" => $entity_restrict,
+                  "status" => $status,
+                  "followup" => $followup);
+	showJobDetails($_SERVER['PHP_SELF'], 0,$array);
+   //addFormTracking($itemtype,$computer,$_SERVER['PHP_SELF'],$users_id,$group,$users_id_assign,$groups_id_assign,$name,$content,$ticketscategories_id,$priority,$request_type,$hour,$minute,$date,$entity_restrict,$status,$followup);
+   //showJobDetails($_SERVER['PHP_SELF'],0);
 }
 
 commonFooter();
Index: inc/tracking.function.php
--- inc/tracking.function.php Base (BASE)
+++ inc/tracking.function.php Locally Modified (Based On LOCAL)
@@ -808,7 +808,8 @@
 
 	$users_id_rand=0;
 	if (haveRight("update_ticket","1")){
-		echo "<tr class='tab_bg_2' align='center'><td>".$LANG['job'][4].":</td>";
+		echo "<tr class='tab_bg_2' alig
+	$users_id_rand=0;n='center'><td>".$LANG['job'][4].":</td>";
 		echo "<td colspan='3' align='center'>";
 		
 		///Check if the user have access to this entity only, or subentities too
@@ -1878,248 +1879,370 @@
 
 
 
-function showJobDetails ($target,$ID){
+function showJobDetails($target, $ID,$array=array()) {
 	global $DB,$CFG_GLPI,$LANG;
 	$job=new Job();
 
-	$canupdate=haveRight("update_ticket","1");
+	$canupdate=haveRight('update_ticket','1');
 	$showuserlink=0;
 	if (haveRight('user','r')){
 		$showuserlink=1;	
 	}
-	if ($job->getFromDB($ID)&&haveAccessToEntity($job->fields["entities_id"])) {
+	if ($job->getFromDB($ID)&&haveAccessToEntity($job->fields['entities_id'])) {
 
+   } else {
+      $job->getEmpty();
+      $job->fields["users_id"] = $array["users_id"];
+      $job->fields["group"] = $array["group"];
+      $job->fields["users_id_assign"] = $array["users_id_assign"];
+      $job->fields["groups_id_assign"] = $array["groups_id_assign"];
+      $job->fields["name"] = $array["name"];
+      $job->fields["content"] = $array["content"];
+      $job->fields["ticketscategories_id"] = $array["ticketscategories_id"];
+      $job->fields["priority"] = $array["priority"];
+      $job->fields["request_type"] = $array["request_type"];
+      $job->fields["hour"] = $array["hour"];
+      $job->fields["minute"] = $array["minute"];
+      $job->fields["date"] = $array["date"];
+      $job->fields["entity_restrict"] = $array["entity_restrict"];
+      $job->fields["status"] = $array["status"];
+      $job->fields["followup"] = $array["followup"];
+   }
 		if (!$job->canView()){
 			return false;
 		}
 		
-		$canupdate_descr=$canupdate||($job->numberOfFollowups()==0&&$job->fields["users_id"]==$_SESSION["glpiID"]);
+   $canupdate_descr=$canupdate||($job->numberOfFollowups()==0&&$job->fields['users_id']==$_SESSION['glpiID']);
 		$item=new CommonItem();
-		$item->getFromDB($job->fields["itemtype"],$job->fields["items_id"]);
+   $item->getFromDB($job->fields['itemtype'],$job->fields['items_id']);
 
-		//echo "<div class='center'>";
-		echo "<form method='post' name='form_ticket' action='$target'  enctype=\"multipart/form-data\">\n";
-		echo "<div class='center' id='tabsbody'>";
+   echo '<form method="post" name="form_ticket" action="'.$target.'" enctype="multipart/form-data">';
+   echo '<div class="center" id="tabsbody">';
 		echo "<table class='tab_cadre_fixe' cellpadding='5'>";
 
+   if ($ID == '0') {
+      echo '<tr>';
+      echo '<th colspan="4">';
+      echo $LANG['job'][13];
+      echo '</th>';
+      echo '</tr>';
+   }
 		// OPtional line 
 		if (isMultiEntitiesMode()){
-			echo "<tr><th colspan='3'>";
-			echo getDropdownName("glpi_entities",$job->fields["entities_id"]);
-			echo "</th></tr>";
+      echo '<tr>';
+      echo '<th colspan="4">';
+      if ($ID == 0) {
+         echo $LANG['job'][46].":&nbsp;".getDropdownName("glpi_entities",$job->fields['entity_restrict']);
+      } else {
+         echo getDropdownName('glpi_entities',$job->fields['entities_id']);
 		}
+      echo '</th>';
+      echo '</tr>';
+   }
 
-		// First line
-		echo "<tr><th colspan='2' style='text-align:left;'><table><tr><td><span class='tracking_small'>";
+   echo "<tr>";
+   echo "<th style='text-align:left;' colspan='2' width='50%'>";
+      echo "<table>";
+
+      echo "<tr>";
+      echo "<td>";
+      echo "<span class='tracking_small'>";
 		echo $LANG['joblist'][11].": </span></td><td>";
+      if ($ID == "0") {
+         showDateTimeFormItem("date",date("Y-m-d H:i:s"),1);
+      } else {
 		showDateTimeFormItem("date",$job->fields["date"],1,false,$canupdate);
+      }
+      echo "</td>";
+      if ($ID > 0) {
+         echo "<td>";
+         echo "<span class='tracking_small'>&nbsp;&nbsp; ".$LANG['job'][2]." &nbsp; </span>";
+         echo "</td>";
 
-		echo "</td><td><span class='tracking_small'>&nbsp;&nbsp; ".$LANG['job'][2]." &nbsp; </span></td><td>";
+         echo "<td>";
 		if ($canupdate){
 			dropdownAllUsers("users_id_recipient",$job->fields["users_id_recipient"],1,$job->fields["entities_id"]);
 		} else {
 			echo getUserName($job->fields["users_id_recipient"],$showuserlink);
 		}
+         echo "</td>";
+      }
+      echo "</tr>";
+      echo "</table>";
 
-		echo "</td></tr></table>";
-
 		if (strstr($job->fields["status"],"old_")){
-			echo "<table><tr><td>";
-			echo "<span class='tracking_small'>".$LANG['joblist'][12].": </td><td>";
+      echo "<table>";
 			
+      echo "<tr>";
+      echo "<td>";
+      echo "<span class='tracking_small'>".$LANG['joblist'][12].": ";
+      echo "</td>";
+      echo "<td>";
 			showDateTimeFormItem("closedate",$job->fields["closedate"],1,false,$canupdate);
-			echo "</span></td></tr></table>\n";
-		}
+      echo "</span>";
+      echo "</td>";
+      echo "</tr>";
 
+      echo "</table>\n";
+   }
 		echo "</th>";
-		echo "<th><span class='tracking_small'>".$LANG['common'][26].":<br>";
 		
+   echo "<th colspan='2' width='50%'>";
+   if ($ID > 0 ) {
+      echo "<span class='tracking_small'>".$LANG['common'][26].":<br>";
 		echo convDateTime($job->fields["date_mod"])."\n";
+      echo "</span>";
+   }
+   echo "</th>";
+   echo "</tr>";
 	
-		echo "</span></th></tr>";
-		echo "<tr class='tab_bg_2'>";
-		// Premier Colonne
-		echo "<td class='top' width='27%'>";
-		echo "<table cellpadding='3'>";
-		echo "<tr class='tab_bg_2'><td class='left'>";
-		echo $LANG['joblist'][0].":</td><td>";
+   echo "<tr class='tab_bg_1'>";
+   echo "<td class='left' width='60'>";
+   echo $LANG['joblist'][0].":";
+   echo "</td>";
+   echo "<td>";
 		if ($canupdate){
 			dropdownStatus("status",$job->fields["status"]);
 		} else {
 			echo getStatusName($job->fields["status"]);
 		}
-		echo "</td></tr>";
+   echo "</td>";
+   echo "<th class='center' colspan='2'><strong>";
+   echo $LANG['job'][4].":";
+   echo "</strong></th>";
+   echo "</tr>";
 
+   echo "<tr class='tab_bg_1'>";
+   echo "<td class='left'>";
+   echo $LANG['joblist'][29].":";
+   echo "</td>";
+   echo "<td>";
+   // TODO : PUT Urgence
+   echo "</td>";
+   echo "<td class='left'>";
+   if (($ID == "0") AND (haveRight("update_ticket","1"))) {
+      echo $LANG['job'][4].":";
+      echo "</td>";
+		echo "<td>";
 
-		echo "<tr><td class='left'>";
-		echo $LANG['joblist'][2].":</td><td>";
-		if ($canupdate)
-			dropdownPriority("priority",$job->fields["priority"]);
-		else echo getPriorityName($job->fields["priority"]);
-		echo "</td></tr>";
+		///Check if the user have access to this entity only, or subentities too
+		if (haveAccessToEntity($_SESSION["glpiactive_entity"],true)){
+            $entities = getSonsOf("glpi_entities",$_SESSION["glpiactive_entity"]);
+      } else {
+			$entities = $_SESSION["glpiactive_entity"];
+      }
 
-		echo "<tr><td class='left'>";
-		echo $LANG['common'][36].":</td><td >";
-		if ($canupdate)
-			dropdownValue("glpi_ticketscategories","ticketscategories_id",$job->fields["ticketscategories_id"]);
-		else echo getDropdownName("glpi_ticketscategories",$job->fields["ticketscategories_id"]);
-		echo "</td></tr>";
+		//List all users in the active entity (and all it's sub-entities if needed)
+		$users_id_rand=dropdownAllUsers("users_id",$array["users_id"],1,$entities,1);
 
-		echo "<tr><td class='center' colspan='2'><strong>";
-		echo $LANG['job'][4].":</strong></td></tr>";
+		//Get all the user's entities
+		$all_entities = getUserEntities($array["users_id"], true);
+		$values = array();
 
-		echo "<tr><td class='left'>";
-		echo $LANG['common'][34].":</td><td>";
-		if ($canupdate){
+		//For each user's entity, check if the technician which creates the ticket have access to it
+		foreach ($all_entities as $tmp => $ID_entity) {
+			if (haveAccessToEntity($ID_entity)) {
+				$values[]=$ID_entity;
+         }
+      }
+
+		$count = count($values);
+
+		if ($count>0 && !in_array($array["entity_restrict"],$values)) {
+			// If entity is not in the list of user's entities,
+			// then use as default value the first value of the user's entites list
+			$entity_restrict = $values[0];
+		}
+
+		//If user have access to more than one entity, then display a combobox
+		if ($count > 1) {
+			$rand = dropdownValue("glpi_entities", "entities_id", $array["entity_restrict"], 1, $values,'',array(),1);
+		} else {
+			echo "<input type='hidden' name='entities_id' value='".$array["entity_restrict"]."'>";
+		}
+   } else if ($canupdate){
+      echo $LANG['common'][34].":";
+      echo "</td>";
+      echo "<td>";
 			dropdownAllUsers("users_id",$job->fields["users_id"],1,$job->fields["entities_id"]);
 		} else {
+      echo $LANG['common'][34].":";
+      echo "</td>";
+      echo "<td>";
 			echo getUserName($job->fields["users_id"],$showuserlink);
 		}
-		echo "</td></tr>";
+   echo "</td>";
+   echo "</tr>";
 
-		echo "<tr><td class='left'>";
-		echo $LANG['common'][35].":</td><td>";
-		if ($canupdate){
+   echo "<tr class='tab_bg_1'>";
+   echo "<td class='left'>";
+   echo $LANG['joblist'][30].":";
+   echo "</td>";
+   echo "<td>";
+   // TODO : PUT Impact
+   echo "</td>";
+   echo "<td class='left'>";
+   echo $LANG['common'][35].":";
+   echo "</td>";
+   echo "<td>";
+   if ($canupdate) {
 			dropdownValue("glpi_groups","groups_id",$job->fields["groups_id"],1,$job->fields["entities_id"]);
 		} else {
 			echo getDropdownName("glpi_groups",$job->fields["groups_id"]);
 		}
-		echo "</td></tr>";
+   echo "</td>";
+   echo "</tr>";
 
-
-		echo "</table></td>";
-
-		// Deuxieme colonne
-		echo "<td class='top' width='33%'>";
-
-		echo "<table>";
-
-		echo "<tr><td class='left'>";
-		echo $LANG['job'][44].":</td><td>";
+   echo "<tr class='tab_bg_1'>";
+   echo "<td class='left'>";
+   echo $LANG['joblist'][2].":";
+   echo "</td>";
+   echo "<td>";
 		if ($canupdate)
-			dropdownRequestType("request_type",$job->fields["request_type"]);
-		else echo getRequestTypeName($job->fields["request_type"]);
-		echo "</td></tr>";
+      dropdownPriority("priority",$job->fields["priority"]);
+   else echo getPriorityName($job->fields["priority"]);
+   echo "</td>";
+   echo "<th class='center' colspan='2'><strong>";
+   echo $LANG['job'][5].":";
+   echo "</strong></th>";
+   echo "</tr>";
 
-		echo "<tr><td class='left'>";
-		echo $LANG['common'][1].":</td><td>";
-		if ($canupdate){
-			if (haveTypeRight($job->fields["itemtype"],'r')){
-				echo $item->getType()." - ".$item->getLink(1);
+   echo "<tr class='tab_bg_1'>";
+   echo "<td class='left'>";
+   echo $LANG['common'][36].":";
+   echo "</td>";
+   echo "<td >";
+   if ($canupdate) {
+      dropdownValue("glpi_ticketscategories","ticketscategories_id",$job->fields["ticketscategories_id"]);
 			} else {
-				echo $item->getType()." ".$item->getNameID();
+      echo getDropdownName("glpi_ticketscategories",$job->fields["ticketscategories_id"]);
 			}
-			dropdownTrackingAllDevices("itemtype",$job->fields["itemtype"],1,$job->fields["entities_id"]);
-		}
-		else {
-			echo $item->getType()." ".$item->getNameID();
-		}
-
-		echo "</td></tr>";
-
-
-		echo "<tr><td class='center' colspan='2'><strong>";
-		echo $LANG['job'][5].":</strong></td></tr>";
-
-		if (haveRight("assign_ticket","1")){
-			echo "<tr><td class='left'>";
-			echo $LANG['job'][6].":</td><td>";
+   echo "</td>";
+   if (haveRight("assign_ticket","1")) {
+      echo "<td class='left'>";
+      echo $LANG['job'][6].":";
+      echo "</td>";
+      echo "<td>";
 			dropdownUsers("users_id_assign",$job->fields["users_id_assign"],"own_ticket",0,1,$job->fields["entities_id"]);
-			echo "</td></tr>";
+      echo "</td>";
 		} else if (haveRight("steal_ticket","1")) {
-			echo "<tr><td class='right'>";
-			echo $LANG['job'][6].":</td><td>";
+      echo "<td class='right'>";
+      echo $LANG['job'][6].":";
+      echo "</td>";
+      echo "<td>";
 			dropdownUsers("users_id_assign",$job->fields["users_id_assign"],"id",0,1,$job->fields["entities_id"]);
-			echo "</td></tr>";
-		} else if (haveRight("own_ticket","1") && $job->fields["users_id_assign"]==0){
-                        echo "<tr><td class='right'>";
-                        echo $LANG['job'][6].":</td><td>";
+      echo "</td>";
+   } else if (haveRight("own_ticket","1") && $job->fields["users_id_assign"]==0) {
+      echo "<td class='right'>";
+      echo $LANG['job'][6].":";
+      echo "</td>";
+      echo "<td>";
                         dropdownUsers("users_id_assign",$job->fields["users_id_assign"],"id",0,1,$job->fields["entities_id"]);
-                        echo "</td></tr>";
+      echo "</td>";
                 } else {
-			echo "<tr><td class='left'>";
-			echo $LANG['job'][6].":</td><td>";
+      echo "<td class='left'>";
+      echo $LANG['job'][6].":";
+      echo "</td>";
+      echo "<td>";
 			echo getUserName($job->fields["users_id_assign"],$showuserlink);
-			echo "</td></tr>";
+      echo "</td>";
 		}
+   echo "</tr>";
 
-		if (haveRight("assign_ticket","1")){
-			echo "<tr><td class='left'>";
-			echo $LANG['common'][35].":</td><td>";
+   echo "<tr class='tab_bg_1'>";
+   echo "<td class='left'>";
+   echo $LANG['job'][44].":";
+   echo "</td>";
+   echo "<td>";
+   if ($canupdate) {
+      dropdownRequestType("request_type",$job->fields["request_type"]);
+   } else {
+      echo getRequestTypeName($job->fields["request_type"]);
+   }
+   echo "</td>";
+   if (haveRight("assign_ticket","1")) {
+      echo "<td class='left'>";
+      echo $LANG['common'][35].":";
+      echo "</td>";
+      echo "<td>";
 			dropdownValue("glpi_groups","groups_id_assign",$job->fields["groups_id_assign"],1,$job->fields["entities_id"]);
-			echo "</td></tr>";
-			echo "<tr><td class='left'>";
-			echo $LANG['financial'][26].":</td><td>";
-			dropdownValue("glpi_suppliers","suppliers_id_assign",$job->fields["suppliers_id_assign"],1,$job->fields["entities_id"]);
-			echo "</td></tr>";
+      echo "</td>";
 		} else {
-			echo "<tr><td class='left'>";
-			echo $LANG['common'][35].":</td><td>";
+      echo "<td class='left'>";
+      echo $LANG['common'][35].":";
+      echo "</td>";
+      echo "<td>";
 			echo getDropdownName("glpi_groups",$job->fields["groups_id_assign"]);
-			echo "</td></tr>";
-			echo "<tr><td class='left'>";
-			echo $LANG['financial'][26].":</td><td>";
-			echo getDropdownName("glpi_suppliers",$job->fields["suppliers_id_assign"]);
-			echo "</td></tr>";
+      echo "</td>";
 		}
-		echo "</table>";
+   echo "</tr>";
 
-
+   echo "<tr class='tab_bg_1'>";
+   echo "<td class='left'>";
+   echo $LANG['common'][1].":";
 		echo "</td>";
+   echo "<td>";
+   if ($canupdate) {
+      if (haveTypeRight($job->fields["itemtype"],'r')){
+         echo $item->getType()." - ".$item->getLink(1);
+      } else {
+         echo $item->getType()." ".$item->getNameID();
+      }
+      if ($ID  == 0) {
+         dropdownMyDevices($array["users_id"],$array["entity_restrict"]);
+      }
+      dropdownTrackingAllDevices("itemtype",$job->fields["itemtype"],1,$job->fields["entities_id"]);
+   } else {
+      echo $item->getType()." ".$item->getNameID();
+   }
+   echo "</td>";
 
-		// Troisieme Colonne
-		echo "<td class='top' width='20%'>";
-		echo "<table border='0'>";
-
-		echo "<tr><td class='left'>";
-		echo $LANG['job'][20].":</td><td>";
-		echo "<strong>".getRealtime($job->fields["realtime"])."</strong>";
-		echo "</td></tr>";
-
-		if(haveRight("contract","r")){  // admin = oui on affiche les couts liés à l'interventions
-
-			echo "<tr><td class='left'>";
-			// cout
-			echo $LANG['job'][40].": ";
-			echo "</td><td><input type='text' maxlength='100' size='15' name='cost_time' value=\"".formatNumber($job->fields["cost_time"],true)."\"></td></tr>";
-
-			echo "<tr><td class='left'>";
-
-			echo $LANG['job'][41].": ";
-			echo "</td><td><input type='text' maxlength='100' size='15' name='cost_fixed' value=\"".formatNumber($job->fields["cost_fixed"],true)."\">";
-
-			echo "</td></tr>\n";
-
-			echo "<tr><td class='left'>";
-
-			echo $LANG['job'][42].": ";
-			echo "</td><td><input type='text' maxlength='100' size='15' name='cost_material' value=\"".formatNumber($job->fields["cost_material"],true)."\">";
-
-			echo "</td></tr>\n";
-
-			echo "<tr><td class='left'>";
-
-			echo $LANG['job'][43].": ";
-			echo "</td><td><strong>";
-			echo trackingTotalCost($job->fields["realtime"],$job->fields["cost_time"],$job->fields["cost_fixed"],$job->fields["cost_material"]);
-			echo "</strong></td></tr>\n";
+   if ((haveRight("assign_ticket","1")) AND ($ID != "0")) {
+      echo "<td class='left'>";
+      echo $LANG['financial'][26].":";
+      echo "</td>";
+      echo "<td>";
+      dropdownValue("glpi_suppliers","suppliers_id_assign",$job->fields["suppliers_id_assign"],1,$job->fields["entities_id"]);
+      echo "</td>";
+   } else {
+      if ($ID != "0") {
+         echo "<td class='left'>";
+         echo $LANG['financial'][26].":";
+         echo "</td>";
+         echo "<td>";
+         echo getDropdownName("glpi_suppliers",$job->fields["suppliers_id_assign"]);
+         echo "</td>";
+      } else {
+         // Need comment right to add a followup with the realtime
+         if ((haveRight("comment_all_ticket","1")) AND ($ID == "0")){
+            echo "<td class='left'>";
+            echo $LANG['job'][20].":";
+            echo "</td>";
+            echo "<td align='center' colspan='3'>";
+            dropdownInteger('hour',$array['hour'],0,100);
+            echo "&nbsp;".$LANG['job'][21]."&nbsp;&nbsp;";
+            dropdownInteger('minute',$array['minute'],0,59);
+            echo "&nbsp;".$LANG['job'][22]."&nbsp;&nbsp;";
+         } else {
+            echo "<td colspan='2'>";
 		}
-		echo '</table>';
-		echo "</td></tr>";
+         echo "</td>";
+      }
+   }
+   echo "</tr>";
 
-
-		// Deuxieme Ligne
-		// Colonnes 1 et 2
-		echo "<tr class='tab_bg_1'><td colspan='2'>";
-		echo "<table width='99%' >";
-		echo "<tr class='tab_bg_2'><th colspan='2'>";
+   echo "<tr class='tab_bg_1'>";
+   echo "<th>";
+   echo $LANG['common'][57]." : ";
+   echo "</th>";
+   echo "<th>";
 		if ($canupdate_descr){
 			$rand=mt_rand();
 			echo "<script type='text/javascript' >\n";
 			echo "function showName$rand(){\n";
 				echo "Ext.get('name$rand').setDisplayed('none');";
 				$params=array('maxlength'=>250,
-					'size'=>80,
+            'size'=>50,
 					'name'=>'name',
 					'data'=>rawurlencode($job->fields["name"]),
 				);
@@ -2136,6 +2259,11 @@
 
 			echo "<div id='viewname$rand'>\n";
 			echo "</div>\n";
+      if ($ID == 0) {
+         echo "<script type='text/javascript' >\n
+         showName$rand();
+         </script>";
+      }
 			//echo "<input type='text' maxlength='250' size='80' name='name' value=\"".$job->fields["name"]."\">";
 		} else {
 			if (empty($job->fields["name"])){
@@ -2144,10 +2272,19 @@
 				echo $job->fields["name"];
 			}
 		}
-		echo "</th></tr>";
-		echo "<tr  class='tab_bg_2'><td width='15%'>".$LANG['joblist'][6]."</td>";
-		echo "<td  width='85%' class='left'>";
+   echo "</th>";
+   echo "<th colspan='2'>";
+   if ($CFG_GLPI["use_mailing"]==1) {
+      echo $LANG['title'][10];
+   }
+   echo "</th>";
+   echo "</tr>";
 
+   echo "<tr class='tab_bg_1'>";
+   echo "<td rowspan='5'>";
+   echo $LANG['joblist'][6];
+   echo "</td>";
+   echo "<td class='left' rowspan='5'>";
 		if ($canupdate_descr){ // Admin =oui on autorise la modification de la description
 			$rand=mt_rand();
 			echo "<script type='text/javascript' >\n";
@@ -2155,7 +2292,7 @@
 
 				echo "Ext.get('desc$rand').setDisplayed('none');";
 				$params=array('rows'=>6,
-					'cols'=>60,
+            'cols'=>50,
 					'name'=>'content',
 					'data'=>rawurlencode($job->fields["content"]),
 				);
@@ -2172,63 +2309,77 @@
 
 			echo "<div id='viewdesc$rand'>\n";
 			echo "</div>\n";	
-		} else echo nl2br($job->fields["content"]);
-
+      if ($ID == 0) {
+         echo "<script type='text/javascript' >\n
+         showDesc$rand();
+         </script>";
+      }
+   } else {
+      echo nl2br($job->fields["content"]);
+   }
 		echo "</td>";
-		echo "</tr>";
-		echo "</table>";
-		echo "</td>";
-		// Colonne 3
-
-		echo "<td class='top'>";
-
 		// Mailing ? Y or no ?
-
 		if ($CFG_GLPI["use_mailing"]==1){
-			echo "<table><tr><td class='right'>";
-			echo $LANG['job'][19].":</td><td>";
+      echo "<td class='left'>";
+      echo $LANG['job'][19].":";
+      echo "</td>";
+      echo "<td>";
 			if ($canupdate){
 				dropdownYesNo('use_email_notification',$job->fields["use_email_notification"]);
 			} else {
 				if ($job->fields["use_email_notification"]) echo $LANG['choice'][1];
 				else $LANG['choice'][0];
 			}
-			echo "</td></tr>";
+   } else {
+      echo "<td colspan='2'>";
+   }
+   echo "</td>";
+   echo "</tr>";
 
-			echo "<tr><td class='right'>";
+   echo "<tr class='tab_bg_1'>";
+   // Mailing ? Y or no ?
+   if ($CFG_GLPI["use_mailing"] == 1) {
+      echo "<td class='left'>";
 			echo $LANG['joblist'][27].":";
-			echo "</td><td>";
-			if ($canupdate){
-				autocompletionTextField("user_email","glpi_tickets","user_email",$job->fields["user_email"],15,$job->fields["entities_id"]);
-
-				if (!empty($job->fields["user_email"]))
+      echo "</td>";
+      echo "<td>";
+      if ($canupdate) {
+         autocompletionTextField("user_email","glpi_tickets","user_email",$job->fields["user_email"],35,$job->fields["entities_id"]);
+         if (!empty($job->fields["user_email"])) {
 					echo "<a href='mailto:".$job->fields["user_email"]."'><img src='".$CFG_GLPI["root_doc"]."/pics/edit.png' alt='Mail'></a>";
-			} else if (!empty($job->fields["user_email"]))
+         }
+      } else if (!empty($job->fields["user_email"])) {
 				echo "<a href='mailto:".$job->fields["user_email"]."'>".$job->fields["user_email"]."</a>";
-			else echo "&nbsp;";
-			echo "</td></tr></table>";
-
-
+      } else {
+         echo "&nbsp;";
 		}
+      echo "</td>";
+   } else {
+       echo "<td colspan='2'>";
+   }
+   echo "</td>";
+   echo "</tr>";
 
+   echo "<tr class='tab_bg_1'>";
+   echo "<th colspan='2'>";
+   echo $LANG['document'][21];
+   echo "</th>";
+   echo "</tr>";
 
+   echo "<tr class='tab_bg_1'>";
+   echo "<td valign='top' colspan='2'>";
 
-
 		// File associated ?
 		$query2 = "SELECT * 
 			FROM glpi_documents_items 
 			WHERE glpi_documents_items.items_id = '".$job->fields["id"]."' AND glpi_documents_items.itemtype = '".TRACKING_TYPE."' ";
 		$result2 = $DB->query($query2);
 		$numfiles=$DB->numrows($result2);
-		echo "<table width='100%'><tr><th colspan='2'>".$LANG['document'][21]."</th></tr>";			
-
 		if ($numfiles>0){
 			$doc=new Document;
 			while ($data=$DB->fetch_array($result2)){
 				$doc->getFromDB($data["documents_id"]);
 				
-				echo "<tr><td>";
-				
 				if (empty($doc->fields["filename"])){
 					if (haveRight("document","r")){
 						echo "<a href='".$CFG_GLPI["root_doc"]."/front/document.form.php?id=".$data["documents_id"]."'>".$doc->fields["name"]."</a>";
@@ -2240,45 +2391,177 @@
 				}
 				if (haveRight("document","w"))
 					echo "<a href='".$CFG_GLPI["root_doc"]."/front/document.form.php?deleteitem=delete&amp;id=".$data["id"]."&amp;devtype=".TRACKING_TYPE."&amp;devid=".$ID."&amp;docid=".$data["documents_id"]."'><img src='".$CFG_GLPI["root_doc"]."/pics/delete.png' alt='".$LANG['buttons'][6]."'></a>";
-				echo "</td></tr>";
+
 			}
 		}
+   echo "</td>";
+   echo "</tr>";
+
+   echo "<tr class='tab_bg_1'>";
+   echo "<td valign='top' colspan='2'>";
+   // File associated ?
 		if ($canupdate||haveRight("comment_all_ticket","1")
 			||(haveRight("comment_ticket","1")&&!strstr($job->fields["status"],'old_'))
 		){
-			echo "<tr><td colspan='2'>";
 			echo "<input type='file' name='filename' size='20'>";
 			if ($canupdate&&haveRight("document","r")){
 				echo "<br>";
 				dropdownDocument("document",$job->fields["entities_id"]);
 			}
-			echo "</td></tr>";
 		}
-		echo "</table>";
+   echo "</td>";
+   echo "</tr>";
 
-		echo "</td></tr>";
-		// Troisi�e Ligne
+
+
 		if ($canupdate||$canupdate_descr||haveRight("comment_all_ticket","1")
 			||(haveRight("comment_ticket","1")&&!strstr($job->fields["status"],'old_'))
 			||haveRight("assign_ticket","1")||haveRight("steal_ticket","1")
 			
 			){
-			echo "<tr class='tab_bg_1'><td colspan='3' class='center'>";
-			echo "<input type='submit' class='submit' name='update' value='".$LANG['buttons'][14]."'></td></tr>";
+      echo "<tr class='tab_bg_1'><td colspan='4' class='center'>";
+      if ($ID == "0") {
+            echo "<input type='submit' name='add' value=\"".$LANG['buttons'][2]."\" class='submit'>";
+      } else {
+         echo "<input type='submit' class='submit' name='update' value='".$LANG['buttons'][14]."'>";
 		}
+      echo "</td></tr>";
+   }
 
 		echo "</table>";
 		echo "<input type='hidden' name='id' value='$ID'>";
 		echo "</div>";
-		echo "</form>";
+   if ($ID == 0) {
+      $commentall=haveRight("update_followups","1");
+      $prefix="";
+      $postfix="";
+      $rand=mt_rand();
+      echo "<script type='text/javascript' >\n";
+      echo "function showFollow$rand(){\n";
+      echo "document.getElementById('follow$rand').style.display='block';\n";
+      echo "}";
+      echo "</script>\n";
 
-		return true;
+      // Display Add Table
+      echo "<br/>";
+      echo "<div class='center'>";
+ 
+      echo "<table class='tab_cadre_fixe'>";
+      echo "<tr><th colspan='2' class='tracking' onClick='showFollow$rand()'>";
+      echo $LANG['job'][29];
+      echo "</th></tr>";
+      echo "</table>";
+
+      echo "<div id='follow$rand' style='display:none'>\n";
+      echo "<table class='tab_cadre_fixe'>";
+       if ($commentall){
+         $width_left=$width_right="50%";
+         $cols=50;
 	} else {
-		echo "<div class='center'><strong>".$LANG['common'][54]."</strong></div>";
-		return false;
+         $width_left="80%";
+         $width_right="20%";
+         $cols=80;
 	}
+
+      echo "<tr class='tab_bg_2'><td width='$width_left'>";
+      echo "<table width='100%'>";
+      echo "<tr><td>".$LANG['joblist'][6]."</td>";
+      echo "<td><textarea name='".$prefix."content".$postfix."' rows='12' cols='$cols'>";
+      if (isset($datas['content'])){
+         echo cleanPostForTextArea($datas['content']);
 }
+      echo "</textarea>";
+      echo "</td></tr>";
+      echo "</table>";
+      echo "</td>";
 
+      echo "<td width='$width_right' valign='top'>";
+      echo "<table width='100%'>";
+
+      if ($commentall){
+         echo "<tr>";
+         echo "<td>".$LANG['common'][77].":</td>";
+         echo "<td>";
+
+         $default_private=$_SESSION['glpifollowup_private'];
+         if (isset($datas['is_private'])){
+            $default_private=$datas['is_private'];
+         }
+         echo "<select name='".$prefix."is_private".$postfix."'>";
+         echo "<option value='0' ".(!$default_private?"selected":"").">".$LANG['choice'][0]."</option>";
+         echo "<option value='1' ".($default_private?"selected":"").">".$LANG['choice'][1]."</option>";
+         echo "</select>";
+         echo "</td>";
+         echo "</tr>";
+
+         if (haveRight("show_planning","1")){
+            echo "<tr>";
+            echo "<td>".$LANG['job'][35]."</td>";
+
+            echo "<td>";
+            $rand=mt_rand();
+            echo "<script type='text/javascript' >\n";
+            echo "function showPlanAdd$rand(){\n";
+
+               echo "Ext.get('plan$rand').setDisplayed('none');";
+               $params=array('form'=>'followups',
+                  'state'=>1,
+                  'users_id'=>$_SESSION['glpiID'],
+                  'entity'=>$_SESSION["glpiactive_entity"],
+               );
+
+               if (isset($datas['plan'])&&isset($datas['plan']['state'])){
+                  $params['state']=$datas['plan']['state'];
+               }
+               if (isset($datas['plan'])&&isset($datas['plan']['users_id'])){
+                  $params['users_id']=$datas['plan']['users_id'];
+               }
+               if (isset($datas['plan'])&&isset($datas['plan']['begin'])){
+                  $params['begin']=$datas['plan']['begin'];
+               }
+               if (isset($datas['plan'])&&isset($datas['plan']['end'])){
+                  $params['end']=$datas['plan']['end'];
+               }
+
+               ajaxUpdateItemJsCode('viewplan'.$rand,$CFG_GLPI["root_doc"]."/ajax/planning.php",$params,false);
+
+            echo "};";
+            echo "</script>";
+
+            echo "<div id='plan$rand'  onClick='showPlanAdd$rand()'>\n";
+            echo "<span class='showplan'>".$LANG['job'][34]."</span>";
+            echo "</div>\n";
+
+
+            echo "<div id='viewplan$rand'>\n";
+            echo "</div>\n";
+
+            echo "<script type='text/javascript' >\n";
+
+            // Display form
+            if (isset($params['end'])&&isset($params['begin'])){
+               echo "showPlanAdd$rand();";
+            }
+            echo "</script>";
+
+
+            echo "</td>";
+
+            echo "</tr>";
+         }
+      }
+
+
+      echo "</table>";
+      echo "</div>\n";
+      echo "</td></tr>";
+      echo "</table>";
+   }
+   echo "</form>";
+
+   return true;
+}
+
 function showFollowupsSummary($tID){
 	global $DB,$LANG,$CFG_GLPI;
 
@@ -2870,4 +3153,82 @@
 	return false;	
 }
 
+
+function showJobCost($target,$ID) {
+   global $DB,$LANG;
+
+   $job=new Job();
+   $job->getFromDB($ID)&&haveAccessToEntity($job->fields["entities_id"]);
+
+   echo "<form method='post' name='form_ticket_cost' action='$target' >\n";
+	echo "<div class='center' id='tabsbody'>";
+	echo "<table class='tab_cadre_fixe' cellpadding='5'>";
+
+   echo "<tr><th colspan='2'>";
+   echo $LANG['job'][47];
+   echo "</th></tr>";
+
+   echo "<tr class='tab_bg_2'>";
+	echo "<td class='left'>";
+	echo $LANG['job'][20].":";
+   echo "</td>";
+   
+   echo "<td>";
+	echo "<strong>".getRealtime($job->fields["realtime"])."</strong>";
+	echo "</td>";
+   echo "</tr>";
+
+	if(haveRight("contract","r")){  // admin = oui on affiche les couts liés à l'interventions
+      echo "<tr class='tab_bg_2'>";
+      echo "<td class='left'>";
+   	echo $LANG['job'][40].": ";
+		echo "</td>";
+      
+      echo "<td>";
+      echo "<input type='text' maxlength='100' size='15' name='cost_time' value=\"".formatNumber($job->fields["cost_time"],true)."\">";
+      echo "</td>";
+      echo "</tr>";
+
+		echo "<tr class='tab_bg_2'>";
+      echo "<td class='left'>";
+		echo $LANG['job'][41].": ";
+		echo "</td>";
+      
+      echo "<td>";
+      echo "<input type='text' maxlength='100' size='15' name='cost_fixed' value=\"".formatNumber($job->fields["cost_fixed"],true)."\">";
+		echo "</td>";
+      echo "</tr>\n";
+
+		echo "<tr class='tab_bg_2'>";
+      echo "<td class='left'>";
+      echo $LANG['job'][42].": ";
+		echo "</td>";
+      
+      echo "<td>";
+      echo "<input type='text' maxlength='100' size='15' name='cost_material' value=\"".formatNumber($job->fields["cost_material"],true)."\">";
+      echo "</td>";
+      echo "</tr>\n";
+
+		echo "<tr class='tab_bg_2'>";
+      echo "<td class='left'>";
+      echo $LANG['job'][43].": ";
+		echo "</td>";
+
+      echo "<td><strong>";
+      echo trackingTotalCost($job->fields["realtime"],$job->fields["cost_time"],$job->fields["cost_fixed"],$job->fields["cost_material"]);
+      echo "</strong></td>";
+      echo "</tr>\n";
+   }   
+
+   echo "</table>";
+
+
+
+
+
+
+
+   
+}
+
 ?>
Index: locales/fr_FR.php
--- locales/fr_FR.php Base (BASE)
+++ locales/fr_FR.php Locally Modified (Based On LOCAL)
@@ -720,6 +720,7 @@
 $LANG['job'][43]="Coût total";
 $LANG['job'][44]="Source de la demande";
 $LANG['job'][46]="Ticket créé dans l'entité";
+$LANG['job'][47]="Coûts";
 
 $LANG['joblist'][0]="Statut";
 $LANG['joblist'][1]="Seulement les miens";
@@ -744,7 +745,12 @@
 $LANG['joblist'][26]="En attente";
 $LANG['joblist'][27]="Email pour le suivi";
 $LANG['joblist'][28]="Tickets sur les éléments liés";
+$LANG['joblist'][29]="Urgence";
+$LANG['joblist'][30]="Impact";
+$LANG['joblist'][31]="Date d'échéance";
 
+$LANG['jobresolution'][1]="Résolution";
+
 $LANG['knowbase'][1]="Foire aux questions";
 $LANG['knowbase'][3]="Question";
 $LANG['knowbase'][4]="Réponse";
@@ -1006,7 +1012,7 @@
 $LANG['Menu'][21]="Cartouches";
 $LANG['Menu'][22]="Contacts";
 $LANG['Menu'][23]="Fournisseurs";
-$LANG['Menu'][24]="Infos financières";
+$LANGd['Menu'][24]="Infos financières";
 $LANG['Menu'][25]="Contrats";
 $LANG['Menu'][26]="Gestion";
 $LANG['Menu'][27]="Documents";
_______________________________________________
Glpi-dev mailing list
Glpi-dev@gna.org
https://mail.gna.org/listinfo/glpi-dev

Reply via email to