[evolvis-commits] r6671: following changes: ↵ Mass update problem with All tasks . ↵ Showing predefined columns in userinterface . ↵ Updates for copy&closed state in triggers , unserinterface. ↵ Functionality for All showing all subprojects one one page

ukayan at evolvis.org ukayan at evolvis.org
Tue Jun 1 18:27:46 CEST 2010


Author: ukayan
Date: 2010-06-01 18:27:46 +0200 (Tue, 01 Jun 2010)
New Revision: 6671

Added:
   branches/Changes-to-status-field-gforge-4.8.1+evolvis/.project
Modified:
   branches/Changes-to-status-field-gforge-4.8.1+evolvis/DBChanges_SQLScripts/Changes_to_project_status
   branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/browse_task.php
   branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/include/ProjectGroupHTML.class.php
   branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/index.php
   branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/select_columns.php
   branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/task.php
   branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/themes/css/evolvis.css
Log:
following changes:
Mass update problem with All tasks.
Showing predefined columns in userinterface.
Updates for copy&closed state in triggers, unserinterface.
Functionality for All showing all subprojects one one page

Added: branches/Changes-to-status-field-gforge-4.8.1+evolvis/.project
===================================================================
--- branches/Changes-to-status-field-gforge-4.8.1+evolvis/.project	                        (rev 0)
+++ branches/Changes-to-status-field-gforge-4.8.1+evolvis/.project	2010-06-01 16:27:46 UTC (rev 6671)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>Changes-to-status-field-gforge-4.8.1+evolvis</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>


Property changes on: branches/Changes-to-status-field-gforge-4.8.1+evolvis/.project
___________________________________________________________________
Added: svn:mime-type
   + text/plain

Modified: branches/Changes-to-status-field-gforge-4.8.1+evolvis/DBChanges_SQLScripts/Changes_to_project_status
===================================================================
--- branches/Changes-to-status-field-gforge-4.8.1+evolvis/DBChanges_SQLScripts/Changes_to_project_status	2010-06-01 15:45:01 UTC (rev 6670)
+++ branches/Changes-to-status-field-gforge-4.8.1+evolvis/DBChanges_SQLScripts/Changes_to_project_status	2010-06-01 16:27:46 UTC (rev 6671)
@@ -235,8 +235,100 @@
 
 
 Added a new value Copy&Closed to the project_status table:
-insert into project_status values (1, 'Copy&Closed');
 
+INSERT INTO project_status 
+(status_id, status_name) 
+values 
+(7, 'Copy&Closed');
 
 
 
+*******************************projectgroup_update_trig on Table project_task After copy&closed state**************************************
+ New Changed Source:
+ CREATE FUNCTION projectgroup_update_agg() RETURNS trigger
+    AS $$
+  BEGIN
+     --
+     -- see if they are moving to a new subproject
+     -- if so, its a more complex operation
+     --
+     IF NEW.group_project_id <> OLD.group_project_id THEN
+         --
+         -- transferred tasks always have a status of 1
+         -- so we will increment the new subprojects sums
+         --
+         IF OLD.status_id=3 THEN
+             -- No need to decrement counters on old tracker
+         ELSE
+             IF OLD.status_id IN (2,7) THEN
+                 UPDATE project_counts_agg SET count=count-1
+                     WHERE group_project_id=OLD.group_project_id;
+             ELSE
+                 IF OLD.status_id IN (1,4,5,6) THEN
+                     UPDATE project_counts_agg SET count=count-1,open_count=open_count-1
+                         WHERE group_project_id=OLD.group_project_id;
+                 END IF;
+             END IF;
+         END IF;
+
+         IF NEW.status_id=3 THEN
+             --DO NOTHING
+         ELSE
+             IF NEW.status_id IN (2,7) THEN
+                     UPDATE project_counts_agg SET count=count+1
+                         WHERE group_project_id=NEW.group_project_id;
+             ELSE
+                 IF NEW.status_id IN (1,4,5,6) THEN
+                     UPDATE project_counts_agg SET count=count+1, open_count=open_count+1
+                         WHERE group_project_id=NEW.group_project_id;
+                 END IF;
+             END IF;
+         END IF;
+     ELSE
+         --
+         -- just need to evaluate the status flag and
+         -- increment/decrement the counter as necessary
+         --
+         IF NEW.status_id <> OLD.status_id THEN
+             IF NEW.status_id IN (1,4,5,6) THEN
+                 IF OLD.status_id IN (2,7) THEN
+                     UPDATE project_counts_agg SET open_count=open_count+1
+                         WHERE group_project_id=NEW.group_project_id;
+                 ELSE
+                     IF OLD.status_id=3 THEN
+                         UPDATE project_counts_agg SET open_count=open_count+1, count=count+1
+                             WHERE group_project_id=NEW.group_project_id;
+                     END IF;
+                 END IF;
+             ELSE
+                 IF NEW.status_id IN (2,7) THEN
+                     IF OLD.status_id IN (1,4,5,6) THEN
+                         UPDATE project_counts_agg SET open_count=open_count-1
+                             WHERE group_project_id=NEW.group_project_id;
+                     ELSE
+                         IF OLD.status_id=3 THEN
+                             UPDATE project_counts_agg SET count=count+1
+                                 WHERE group_project_id=NEW.group_project_id;
+                         END IF;
+                     END IF;
+                 ELSE
+                     IF NEW.status_id = 3 THEN
+                         IF OLD.status_id IN (2,7) THEN
+                             UPDATE project_counts_agg SET count=count-1
+                                 WHERE group_project_id=NEW.group_project_id;
+                         ELSE
+                             IF OLD.status_id IN (1,4,5,6) THEN
+                                 UPDATE project_counts_agg SET open_count=open_count-1,count=count-1
+                                     WHERE group_project_id=NEW.group_project_id;
+                             END IF;
+                         END IF;
+                     END IF;
+                 END IF;
+             END IF;
+         END IF;
+     END IF;
+     RETURN NEW;
+ END;
+ $$
+    LANGUAGE plpgsql;
+ *****************************************************end*******************************************
\ No newline at end of file

Modified: branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/browse_task.php
===================================================================
--- branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/browse_task.php	2010-06-01 15:45:01 UTC (rev 6670)
+++ branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/browse_task.php	2010-06-01 16:27:46 UTC (rev 6671)
@@ -16,7 +16,18 @@
 	Total rewrite in OO and GForge coding guidelines 12/2002 by Tim Perdue
 */
 
-$_SESSION['summary'] = true;
+if (isset($_GET['firstTime'])) { 
+        //Called first time
+        $_SESSION['start_date'] = true;
+        $_SESSION['end_date'] = true;
+        $_SESSION['priority'] = true;
+        $_SESSION['status'] = true;
+        $_SESSION['percentComplete'] = true;
+}
+
+
+
+//$_SESSION['summary'] = true;
 //$_SESSION['start_date'] = true;
 //$_SESSION['end_date'] = true;
 //$_SESSION['percentComplete'] = true;
@@ -46,7 +57,7 @@
 
 if($showAll == 'showAllSubProjects'){
 
-	echo ' ';
+	//echo ' ';
 
 	/*code to get all groups*/
 
@@ -288,7 +299,7 @@
 	Show the new pop-up boxes to select assigned to and/or status
  */
 
-//Print_r ($pt_arr[0]);
+Print_r ($_GET);
 
 echo '
 	<script type="text/javascript">
@@ -311,11 +322,14 @@
 	}
 
 	function openWinSelectColumns(){
-		
+		top.location.href = "/pm/task.php?group_id='.$group_id.'&group_project_id='.$group_project_id.'&func=browse";
 		selectColumnsWindow = window.open("/pm/select_columns.php",null, "height=600,width=300,status=yes,toolbar=no,menubar=no,location=no");
 		selectColumnsWindow.focus();
 		
 	}
+
+
+
         </script>';
 
 	//<input type="hidden" name="showAll" value="'. $showAll  .'">
@@ -370,8 +384,10 @@
                         document.headerForm.submit.click();
                 }
 
-		if( gup("showAll") == "showAllSubProjects"){
-			document.headerForm.select_subprojects.selectedIndex=6; //if showall then select All as default value in selectbox
+		if( gup("showAll") == "showAllSubProjects" || document.headerForm.showAll.value == "showAllSubProjects"){
+			document.headerForm.select_subprojects.selectedIndex= document.headerForm.select_subprojects.length-1 ;
+			alert(document.taskList.new_group_project_id.selectedIndex);
+			alert(12);
 		}
 
         </script>		
@@ -400,21 +416,25 @@
 
 	if ($IS_ADMIN) {
 		echo '
+
 		<form name="taskList" action="'. getStringFromServer('PHP_SELF') .'?group_id='.$group_id.'&group_project_id='.$pg->getID().'" METHOD="POST">
-		<input type="hidden" name="func" value="massupdate">';
+		<input type="hidden" name="func" value="massupdate">
+		<input type="hidden" name="showAll" value="'. $showAll  .'">	
+		';
+
 	}
 
 
 //this array can be customized to display whichever columns you want
 //it could be built by querying a table on a per-user basis as well
-	$display_col=array('summary'=> ($summary ? 1: 0),
-                'start_date'=> ($start_date ? 1: 0),
-                'end_date'=> ($end_date ? 1: 0),
-                'percent_complete'=> ($percentComplete ? 1: 0),
+	$display_col=array('summary'=> ( ($summary || getStringFromRequest('summary')) ? 1: 0),
+                'start_date'=> ( ($start_date|| getStringFromRequest('start_date')) ? 1: 0),
+                'end_date'=> ( ($end_date || getStringFromRequest('end_date')) ? 1: 0),
+                'percent_complete'=> ( ($percentComplete || getStringFromRequest('percentComplete')) ? 1: 0),
                 'category'=> ($category ? 1: 0),
                 'assigned_to'=> ($assignedTo ? 1: 0),
-                'priority'=> ($priority ? 1: 0),
-                'status'=> ($status ? 1 : 0) ,
+                'priority'=> ( ($priority || getStringFromRequest('priority')) ? 1: 0),
+                'status'=> ( ($status || getStringFromRequest('status')) ? 1 : 0) ,
                 'project_task_id'=> 0,
                 'realname'=> ($realName ? 1: 0),
                 'duration'=> ($duration ? 1: 0),
@@ -489,13 +509,17 @@
 		$url = getStringFromServer('PHP_SELF')."?func=detailtask&amp;project_task_id=".$pt_arr[$i]->getID()."&amp;group_id=".$group_id."&amp;group_project_id=".$task_group_project_id;
 		
 		echo '
-			<tr class="priority'.$pt_arr[$i]->getPriority().'">'.
+			<tr class=" '. (($pt_arr[$i]->getStatusId() == 7)?  ' copyAndClosed ' : ' priority'.$pt_arr[$i]->getPriority()) .'">'.
 			'<td>'.
-			($IS_ADMIN?'<input type="CHECKBOX" name="project_task_id_list[]" value="'.
-			$pt_arr[$i]->getID() .'"> ':'').
+			($IS_ADMIN?'<input type="CHECKBOX" '. (($pt_arr[$i]->getStatusId() == 7)? 'onclick="return false;"':' ') .'   name="project_group_id_list[]" style="display:none;"  value="'.
+				$task_group_project_id .'"> ':'').
+			($IS_ADMIN?'<input type="CHECKBOX" '. (($pt_arr[$i]->getStatusId() == 7)? 'onclick="return false;"':' ') .'   name="project_task_id_list[]"   value="'.
+				$pt_arr[$i]->getID() .'"> ':'').
 			$pt_arr[$i]->getID() .'</td>';
+
+
 		if ($display_col['summary'])
-			echo '<td><a href="'.$url.'">'.$pt_arr[$i]->getSummary() .'</a></td>';
+			echo '<td><a href="'.$url.'" >'.$pt_arr[$i]->getSummary() .'</a></td>';
 		if ($display_col['start_date']) 
 			echo '<td>'.date(_('Y-m-d H:i'), $pt_arr[$i]->getStartDate() ).'</td>';
 		if ($display_col['end_date']) 
@@ -654,6 +678,7 @@
 		var i=0;
 		for( i=0 ; i<len ; i++) {
 			if (al.elements[i].name==\'project_task_id_list[]\') {
+				if
 				al.elements[i].checked=val;
 			}
 		}
@@ -690,14 +715,48 @@
 			</tr>
 
 			<tr><td><strong>'._('Subproject').'</strong><br />
-			'.$pg->groupProjectBox('new_group_project_id',$group_project_id,false).'</td>
-			<td align="middle"><input type="submit" name="submit" '.($showAll == 'showAllSubProjects'? _('disabled') : _(' ') ).'   value="'.
+			'.$pg->groupProjectBox('new_group_project_id',$group_project_id,true,_('No Change')).'</td>
+			<td align="middle"><input type="submit" name="submit" onclick="beforeSubmit();"  value="'.
 			_('Mass update').'"></td></tr>
 
 			</table>
-		</form>';
+			</form>
+	
+	<script type="text/javascript">
+		if( gup("showAll") == "showAllSubProjects" || document.taskList.showAll.value == "showAllSubProjects"){
+			document.taskList.new_group_project_id.selectedIndex= 0;
+		}
+
+
+		function beforeSubmit(){
+			//If project_task_id_list[n] is checked then check the corresponding element in the array project_group_id_list[0]
+
+			var project_group_id_array = document.taskList.elements["project_group_id_list[]"];
+			var project_task_id_array = document.taskList.elements["project_task_id_list[]"];			
+			//alert(project_task_id_array.selectedIndex);
+			
+			if(project_task_id_array.length){
+				//More than one checkbox is selected
+				//alert(\'Array\');
+				for(c=0;c<project_task_id_array.length;c++){
+	                                project_group_id_array[c].checked = project_task_id_array[c].checked;
+                        	}
+
+				
+			}else{										
+				//Single checkbox is selected or no checkbox is selected
+				project_group_id_array.checked = project_task_id_array.checked;
+			}
+		
+			
+			
+		}
+	</script>
+			
+			';
 	}
 
+
 	echo '<p />'._('* Denotes overdue tasks');
 	show_priority_colors_key();
 

Modified: branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/include/ProjectGroupHTML.class.php
===================================================================
--- branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/include/ProjectGroupHTML.class.php	2010-06-01 15:45:01 UTC (rev 6670)
+++ branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/include/ProjectGroupHTML.class.php	2010-06-01 16:27:46 UTC (rev 6671)
@@ -113,8 +113,8 @@
                 echo '
                         <select name="'.$name.'" ONCHANGE="switch(this.selectedIndex){
                                                         case 0: '.$status_select.'.selectedIndex = 0; break;
-                                                        case 20: '.$status_select.'.selectedIndex = 4; break;
-                                                        default: '.$status_select.'.selectedIndex = 3;
+                                                        case 20: '.$status_select.'.selectedIndex = 5; break;
+                                                        default: '.$status_select.'.selectedIndex = 4;
                         }">';
                 echo '
 		<option value="0">'._('Not Started'). '</option>';

Modified: branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/index.php
===================================================================
--- branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/index.php	2010-06-01 15:45:01 UTC (rev 6670)
+++ branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/index.php	2010-06-01 16:27:46 UTC (rev 6671)
@@ -64,12 +64,99 @@
 	/*
 		Put the result set (list of projects for this group) into a column with folders
 	*/
-	$tablearr=array(_('Subproject Name'),
-	_('Description'),
-	_('Open'),
-	_('Total'));
+
+	$sortcol = util_ensure_value_in_set (getStringFromRequest ('sortcol'),
+					     array ('project_id',
+						    'project_description',
+						    'project_name',
+						    'open_count',
+						    'total_count')) ;
+	$sortorder = util_ensure_value_in_set (getStringFromRequest ('sortorder'),
+					       array ('a',
+						      'd')) ;
+
+	function build_column_sort_header ($group_id, $title, $val) {
+		global $sortcol, $sortorder ;
+
+		if ($sortcol != $val) {
+			return util_make_link ("/pm/?group_id=$group_id&sortcol=$val",
+					       $title) ;
+		} elseif ($sortorder == 'a') {
+			return util_make_link ("/pm/?group_id=$group_id&sortcol=$val&sortorder=d",
+					       $title.' ▴') ;
+		} else {
+			return util_make_link ("/pm/?group_id=$group_id&sortcol=$val&sortorder=a",
+					       $title.' ▾') ;
+		}
+	}
+
+	$tablearr = array () ;
+	$tablearr[] = build_column_sort_header ($group_id, _('ID'), 'project_id') ;
+	$tablearr[] = build_column_sort_header ($group_id, _('Subproject Name'), 'project_name') ;
+	$tablearr[] = build_column_sort_header ($group_id, _('Description'), 'project_description') ;
+	$tablearr[] = build_column_sort_header ($group_id, _('Open'), 'open_count') ;
+	$tablearr[] = build_column_sort_header ($group_id, _('Total'), 'total_count') ;
 	echo $HTML->listTableTop($tablearr);
 
+	function project_group_comparator ($a, $b) {
+		global $sortcol, $sortorder ;
+
+		switch ($sortcol) {
+		case 'project_name':
+			$sorttype = 'str' ;
+			$va = $a->getName() ;
+			$vb = $b->getName() ;
+			break;
+		case 'project_description':
+			$sorttype = 'str' ;
+			$va = $a->getDescription() ;
+			$vb = $b->getDescription() ;
+			break;
+		case 'project_id':
+			$sorttype = 'int' ;
+			$va = $a->getID();
+			$vb = $b->getID();
+			break;
+		case 'open_count':
+			$sorttype = 'int' ;
+			$va = $a->getOpenCount();
+			$vb = $b->getOpenCount();
+			break;
+		case 'total_count':
+			$sorttype = 'int' ;
+			$va = $a->getTotalCount();
+			$vb = $b->getTotalCount();
+			break;
+		default:
+			return 0;
+		}
+		
+		switch ($sorttype) {
+		case 'str':
+			$tmp = strcoll ($va, $vb) ;
+			break ;
+		case 'int':
+			if ($va < $vb) {
+				$tmp = -1 ;
+			} elseif ($va > $vb) {
+				$tmp = 1 ;
+			} else {
+				$tmp = 0 ;
+			}
+			break ;
+		default:
+			return 0;
+		}
+
+		if ($sortorder == 'd') {
+			return -$tmp ;
+		} else {
+			return $tmp ;
+		}
+	}
+		
+	usort (&$pg_arr, 'project_group_comparator') ;
+
 	for ($j = 0; $j < count($pg_arr); $j++) {
 		if (!is_object($pg_arr[$j])) {
 			//just skip it
@@ -78,8 +165,10 @@
 		} else {
 		echo '
 		<tr '. $HTML->boxGetAltRowStyle($j) . '>
-			<td><a href="'.util_make_url ('/pm/task.php?group_project_id='. $pg_arr[$j]->getID().'&amp;group_id='.$group_id.'&amp;func=browse').'">' .
+			<td><a href="'.util_make_url ('/pm/task.php?group_project_id='. $pg_arr[$j]->getID().'&amp;group_id='.$group_id.'&amp;func=browse&amp;firstTime=true').'">' .
 		html_image("ic/taskman20w.png","20","20",array("border"=>"0")) . ' &nbsp;'.
+		$pg_arr[$j]->getID() .'</a></td>
+			<td><a href="'.util_make_url ('/pm/task.php?group_project_id='. $pg_arr[$j]->getID().'&amp;group_id='.$group_id.'&amp;func=browse&amp;firstTime=true').'">' .
 		$pg_arr[$j]->getName() .'</a></td>
 			<td>'.$pg_arr[$j]->getDescription() .'</td>
 			<td style="text-align:center">'. (int) $pg_arr[$j]->getOpenCount().'</td>

Modified: branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/select_columns.php
===================================================================
--- branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/select_columns.php	2010-06-01 15:45:01 UTC (rev 6670)
+++ branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/select_columns.php	2010-06-01 16:27:46 UTC (rev 6671)
@@ -39,8 +39,15 @@
         if($_POST['categoryName'] ) $_SESSION['categoryName'] = true; else unset($_SESSION['categoryName']);
         if($_POST['lastModifiedDate']) $_SESSION['lastModifiedDate'] = true; else unset($_SESSION['lastModifiedDate']);
         if($_POST['externalId']) $_SESSION['externalId'] = true; else unset($_SESSION['externalId']);
-		if($_POST['sub_project_name']) $_SESSION['sub_project_name'] = true; else unset($_SESSION['sub_project_name']);
+	if($_POST['sub_project_name']) $_SESSION['sub_project_name'] = true; else unset($_SESSION['sub_project_name']);
 
+}else{
+	//Called first time
+	//$_SESSION['start_date'] = true;
+	//$_SESSION['end_date'] = true;
+	//$_SESSION['priority'] = true;
+	//$_SESSION['status'] = true;
+	//$_SESSION['percentComplete'] = true;
 }
 
 
@@ -54,19 +61,19 @@
 	document.forms[0].end_date.checked  = selectDeselect.checked ;
 	document.forms[0].percentComplete.checked = selectDeselect.checked ;
 	document.forms[0].category.checked = selectDeselect.checked ;
-    document.forms[0].assignedTo.checked = selectDeselect.checked ;
-    document.forms[0].priority.checked = selectDeselect.checked ;
-    document.forms[0].status.checked = selectDeselect.checked ;
-    document.forms[0].realName.checked = selectDeselect.checked ;
-    document.forms[0].duration.checked = selectDeselect.checked ;
-    document.forms[0].parentId.checked = selectDeselect.checked ;
-    document.forms[0].userName.checked = selectDeselect.checked ;
-	document.forms[0].details.checked = selectDeselect.checked ;
-    document.forms[0].hours.checked = selectDeselect.checked ;
-    document.forms[0].statusId.checked = selectDeselect.checked ;
-    document.forms[0].categoryId.checked = selectDeselect.checked ;
-    document.forms[0].categoryName.checked = selectDeselect.checked;
-    document.forms[0].lastModifiedDate.checked = selectDeselect.checked ;
+        document.forms[0].assignedTo.checked = selectDeselect.checked ;
+        document.forms[0].priority.checked = selectDeselect.checked ;
+        document.forms[0].status.checked = selectDeselect.checked ;
+        document.forms[0].realName.checked = selectDeselect.checked ;
+        document.forms[0].duration.checked = selectDeselect.checked ;
+        document.forms[0].parentId.checked = selectDeselect.checked ;
+        document.forms[0].userName.checked = selectDeselect.checked ;
+        document.forms[0].details.checked = selectDeselect.checked ;
+        document.forms[0].hours.checked = selectDeselect.checked ;
+        document.forms[0].statusId.checked = selectDeselect.checked ;
+        document.forms[0].categoryId.checked = selectDeselect.checked ;
+        document.forms[0].categoryName.checked = selectDeselect.checked;
+        document.forms[0].lastModifiedDate.checked = selectDeselect.checked ;
 	document.forms[0].externalId.checked = selectDeselect.checked ;
 	document.forms[0].sub_project_name.checked = selectDeselect.checked ;
 
@@ -78,13 +85,13 @@
 	 if(    document.forms[0].start_date.checked && document.forms[0].end_date.checked &&
         	document.forms[0].percentComplete.checked && document.forms[0].category.checked &&
         	document.forms[0].assignedTo.checked && document.forms[0].priority.checked &&
-            document.forms[0].status.checked && document.forms[0].realName.checked &&
-            document.forms[0].duration.checked &&  document.forms[0].parentId.checked &&
-            document.forms[0].userName.checked &&  document.forms[0].details.checked &&
-            document.forms[0].hours.checked && document.forms[0].statusId.checked &&
-            document.forms[0].categoryId.checked && document.forms[0].categoryName.checked &&
-			document.forms[0].lastModifiedDate.checked && document.forms[0].externalId.checked &&
-			document.forms[0].sub_project_name.checked
+                document.forms[0].status.checked && document.forms[0].realName.checked &&
+                document.forms[0].duration.checked &&  document.forms[0].parentId.checked &&
+                document.forms[0].userName.checked &&  document.forms[0].details.checked &&
+                document.forms[0].hours.checked && document.forms[0].statusId.checked &&
+                document.forms[0].categoryId.checked && document.forms[0].categoryName.checked &&
+		document.forms[0].lastModifiedDate.checked && document.forms[0].externalId.checked &&
+		document.forms[0].sub_project_name.checked
         ){
                 return true;
         }else{
@@ -128,8 +135,8 @@
                 <tr> <td> Category Id </td> <td> <input type="checkbox" name="categoryId"  <?php if($_SESSION['categoryId']){ ?> checked <?php }?>/> </td> </tr>
                 <tr> <td> Category Name </td> <td> <input type="checkbox" name="categoryName" <?php if($_SESSION['categoryName']){ ?> checked <?php }?> /> </td> </tr>
                 <tr> <td> Last Modified Date </td> <td> <input type="checkbox" name="lastModifiedDate" <?php if($_SESSION['lastModifiedDate']){ ?> checked <?php }?>  /> </td> </tr>
-				<tr> <td> External Id </td> <td> <input type="checkbox" name="externalId" <?php if($_SESSION['externalId']){ ?> checked <?php }?>  /> </td> </tr>
-				<tr> <td> Sub-Project </td> <td> <input type="checkbox" name="sub_project_name" <?php if($_SESSION['sub_project_name']){ ?> checked <?php }?>  /> </td> </tr>
+		<tr> <td> External Id </td> <td> <input type="checkbox" name="externalId" <?php if($_SESSION['externalId']){ ?> checked <?php }?>  /> </td> </tr>
+		<tr> <td> Sub-Project </td> <td> <input type="checkbox" name="sub_project_name" <?php if($_SESSION['sub_project_name']){ ?> checked <?php }?>  /> </td> </tr>
                 <tr> <td colspan="2">&nbsp;</tr>
                 <tr> <td> Select/Deselect All: </td> <td> <input type="checkbox" name="selectDeselect" onclick="selectDeselectAllCheckFields(this);" /> </td> </tr>
                 </table>

Modified: branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/task.php
===================================================================
--- branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/task.php	2010-06-01 15:45:01 UTC (rev 6670)
+++ branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/pm/task.php	2010-06-01 16:27:46 UTC (rev 6671)
@@ -1,4 +1,6 @@
 <?php
+
+
 /**
  * GForge Project Management Facility
  *
@@ -15,6 +17,7 @@
 	Total rewrite in OO and GForge coding guidelines 12/2002 by Tim Perdue
 */
 
+
 require_once('../env.inc.php');
 require_once $gfwww.'include/pre.php';
 require_once $gfwww.'pm/include/ProjectGroupHTML.class.php';
@@ -55,6 +58,7 @@
 	exit_missing_param();
 }
 
+//Create Group Object
 $g =& group_get_object($group_id);
 if (!$g || !is_object($g)) {
 	exit_no_group();
@@ -62,13 +66,9 @@
 	exit_error('Error',$g->getErrorMessage());
 }
 
-$pg = new ProjectGroupHTML($g,$group_project_id);
-if (!$pg || !is_object($pg)) {
-	exit_error('Error','Could Not Get Factory');
-} elseif ($pg->isError()) {
-	exit_error('Error',$pg->getErrorMessage());
-}
+$pg = creatProjectGroupHTML($g, $group_project_id);
 
+
 /*
 	Figure out which function we're dealing with here
 */
@@ -82,12 +82,7 @@
 	//
 	case 'addtask' : {
 		if ($pg->userIsAdmin()) {
-			$pt=new ProjectTaskHTML($pg);
-			if (!$pt || !is_object($pt)) {
-				exit_error('Error','Could Not Get ProjectTask');
-			} elseif ($pt->isError()) {
-				exit_error('Error',$pt->getErrorMessage());
-			}
+			$pt = createProjectTaskHTML($pg);
 			include $gfwww.'pm/add_task.php';
 		} else {
 			exit_permission_denied();
@@ -102,14 +97,9 @@
 		if ($pg->userIsAdmin()) {
 			
 			$add_artifact_id = getStringFromRequest('add_artifact_id');
-						
-			$pt = new ProjectTask($pg);
-			if (!$pt || !is_object($pt)) {
-				exit_error('Error','Could Not Get Empty ProjectTask');
-			} elseif ($pt->isError()) {
-				exit_error('Error',$pt->getErrorMessage());
-			}
 
+			$pt = createProjectTask($pg);
+
 			if (!$dependent_on)
 			{
 				$dependent_on=array();
@@ -142,26 +132,15 @@
                 $copy_group_project_id = getStringFromRequest('copy_group_project_id');
                 $details = getStringFromRequest('details_of_task');
 
-                $pg = new ProjectGroupHTML($g,$copy_group_project_id);
-                if (!$pg || !is_object($pg)) {
-                        exit_error('Error','Could Not Get Factory');
-                } elseif ($pg->isError()) {
-                        exit_error('Error',$pg->getErrorMessage());
-                }
+                $pg = creatProjectGroupHTML($g, $copy_group_project_id);
 
-
                 //exit_error('Not error','Successful');
 
                 if ($pg->userIsAdmin()) {
 
                         $add_artifact_id = getStringFromRequest('add_artifact_id');
 
-                        $pt = new ProjectTask($pg);
-                        if (!$pt || !is_object($pt)) {
-                                exit_error('Error','Could Not Get Empty ProjectTask');
-                        } elseif ($pt->isError()) {
-                                exit_error('Error',$pt->getErrorMessage());
-                        }
+                        $pt = createProjectTask($pg);
 
                         if (!$dependent_on)
                         {
@@ -180,7 +159,7 @@
                                         }
                                 }
                                 $feedback=_('Task Copied Successfully');
-                                $pg = new ProjectGroupHTML($g,$group_project_id);
+                                $pg = creatProjectGroupHTML($g, $group_project_id);
                                 updateCopiedTask($pg,$project_task_id,$summary,$details,$priority,$hours,$start_date,$end_date,7,$category_id,$percent_complete,$assigned_to,$dependent_on,$new_group_project_id,$duration,$parent_id);
                                 include $gfwww.'pm/browse_task.php';
 
@@ -206,12 +185,7 @@
 				$rem_artifact_id=array();
 			}
 		
-			$pt = new ProjectTask($pg,$project_task_id);
-			if (!$pt || !is_object($pt)) {
-				exit_error('Error','Could Not Get ProjectTask');
-			} elseif ($pt->isError()) {
-				exit_error('Error',$pt->getErrorMessage());
-			}
+			$pt = createProjectTaskWithTaskId($pg, $project_task_id);
 
 			if (!$dependent_on)	{
 				$dependent_on=array();
@@ -231,12 +205,7 @@
 				
 				#Detailtask begin
 				#include $gfwww.'pm/browse_task.php'; OLD	
-				$pt=new ProjectTaskHTML($pg,$project_task_id);
-				if (!$pt || !is_object($pt)) {
-					exit_error('Error','Could Not Get ProjectTask');
-				} elseif ($pt->isError()) {
-					exit_error('Error',$pt->getErrorMessage());
-				}
+				$pt = createProjectTaskHTMLWithTaskId($pg, $project_task_id);
 
 				if (session_loggedin() && $pg->userIsAdmin()) {
 					include $gfwww.'pm/mod_task.php';
@@ -286,11 +255,19 @@
 
 	case 'massupdate' : {
 		$project_task_id_list = getStringFromRequest('project_task_id_list');
+		$project_group_id_list = getStringFromRequest('project_group_id_list');
 		$count=count($project_task_id_list);
-	
-		if ($pg->userIsAdmin()) {
+		//for ($x=0; $x<$count; $x++)
+		//	echo $project_task_id_list[$x].'-'. $project_group_id_list[$x].'<br>';
+		//Print_r($_REQUEST);
+		//break;
 
-			for ($i=0; $i < $count; $i++) {
+
+		for ($i=0; $i < $count; $i++) {
+			$pg = creatProjectGroupHTML($g, $project_group_id_list[$i] ); 		
+			
+			if ($pg->userIsAdmin()) {
+
 				$pt=new ProjectTask($pg,$project_task_id_list[$i]);
 				if (!$pt || !is_object($pt)) {
 					$feedback .= ' ID: '.$project_task_id_list[$i].'::ProjectTask Could Not Be Created';
@@ -335,16 +312,20 @@
 					}
 					unset($pt);
 				}
+			}else {
+				exit_permission_denied();
 			}
-			if (!$was_error) {
-				$feedback = _('Task Updated Successfully');
-			}
-			include $gfwww.'pm/browse_task.php';
-			break;
-		} else {
-			exit_permission_denied();
+
 		}
 
+		if (!$was_error) {
+			$feedback = _('Task Updated Successfully');
+		}
+		include $gfwww.'pm/browse_task.php';
+		break;
+		
+
+
 	}
 
 	//
@@ -354,12 +335,7 @@
 		if ($pg->userIsAdmin()) {
 			$add_artifact_id = getStringFromRequest('add_artifact_id');
 
-			$pt = new ProjectTask($pg,$project_task_id);
-			if (!$pt || !is_object($pt)) {
-				exit_error('Error','Could Not Get ProjectTask');
-			} elseif ($pt->isError()) {
-				exit_error('Error',$pt->getErrorMessage());
-			}
+			$pt = createProjectTaskWithTaskId($pg, $project_task_id);
 			if (!$pt->addRelatedArtifacts($add_artifact_id)) {
 				exit_error('ERROR','addRelatedArtifacts():: '.$pt->getErrorMessage());
 			} else {
@@ -378,12 +354,7 @@
 	//
 	case 'deletetask' : {
 		if ($pg->userIsAdmin()) {
-			$pt= new ProjectTask($pg,$project_task_id);
-			if (!$pt || !is_object($pt)) {
-				exit_error('Error','Could Not Get ProjectTask');
-			} elseif ($pt->isError()) {
-				exit_error('Error',$pt->getErrorMessage());
-			}
+			$pt = createProjectTaskWithTaskId($pg, $project_task_id);
 			include $gfwww.'pm/deletetask.php';
 		} else {
 			exit_permission_denied();
@@ -397,12 +368,7 @@
 
 	case 'postdeletetask' : {
 		if ($pg->userIsAdmin()) {
-			$pt= new ProjectTask($pg, $project_task_id);
-			if (!$pt || !is_object($pt)) {
-				exit_error('Error','Could Not Get ProjectTask');
-			} elseif ($pt->isError()) {
-				exit_error('Error', $pt->getErrorMessage());
-			}
+			$pt = createProjectTaskWithTaskId($pg, $project_task_id);
 			if (!getStringFromRequest('confirm_delete')) {
 				$feedback .= _('Confirmation failed. Task not deleted');
 			} else {
@@ -440,12 +406,7 @@
 	//	View a specific existing task
 	//
 	case 'detailtask' : {
-		$pt=new ProjectTaskHTML($pg,$project_task_id);
-		if (!$pt || !is_object($pt)) {
-			exit_error('Error','Could Not Get ProjectTask');
-		} elseif ($pt->isError()) {
-			exit_error('Error',$pt->getErrorMessage());
-		}
+		$pt = createProjectTaskHTMLWithTaskId($pg, $project_task_id);
 		if (session_loggedin() && $pg->userIsAdmin()) {
 			include $gfwww.'pm/mod_task.php';
 		} else {
@@ -462,6 +423,56 @@
 
 }
 
+function creatProjectGroupHTML($group, $group_project_id){
+	$pg = new ProjectGroupHTML($group ,$group_project_id);
+	if (!$pg || !is_object($pg)) {
+		exit_error('Error','Could Not Get Factory');
+	} elseif ($pg->isError()) {
+		exit_error('Error',$pg->getErrorMessage());
+	}
+	return $pg;	
+}
+
+function createProjectTask($projectGroup){
+	$projectTask = new ProjectTask($projectGroup);
+	if (!$projectTask || !is_object($projectTask)) {
+		exit_error('Error','Could Not Get ProjectTask');
+	} elseif ($projectTask->isError()) {
+		exit_error('Error',$projectTask->getErrorMessage());
+	}
+	return $projectTask;
+}
+
+function createProjectTaskHTML($projectGroup){
+	$projectTask = new ProjectTaskHTML($projectGroup);
+	if (!$projectTask || !is_object($projectTask)) {
+		exit_error('Error','Could Not Get ProjectTask');
+	} elseif ($projectTask->isError()) {
+		exit_error('Error',$projectTask->getErrorMessage());
+	}
+	return $projectTask;
+}
+
+function createProjectTaskWithTaskId($projectGroup, $project_task_id){
+	$projectTask = new ProjectTask($projectGroup, $project_task_id);
+	if (!$projectTask || !is_object($projectTask)) {
+		exit_error('Error','Could Not Get ProjectTask');
+	} elseif ($projectTask->isError()) {
+		exit_error('Error',$projectTask->getErrorMessage());
+	}
+	return $projectTask;	
+}
+
+function createProjectTaskHTMLWithTaskId($projectGroup, $project_task_id){
+	$projectTask = new ProjectTaskHTML($projectGroup, $project_task_id);
+	if (!$projectTask || !is_object($projectTask)) {
+		exit_error('Error','Could Not Get ProjectTask');
+	} elseif ($projectTask->isError()) {
+		exit_error('Error',$projectTask->getErrorMessage());
+	}
+	return $projectTask;	
+}
+
 function updateCopiedTask($pg,$project_task_id,$summary,$details,$priority,$hours,$start_date,$end_date,$status_id,$category_id,$percent_complete,$assigned_to,$dependent_on,$new_group_project_id,$duration,$parent_id){
 
 if ($pg->userIsAdmin()) {
@@ -471,12 +482,7 @@
                                 $rem_artifact_id=array();
                         }
 
-                        $pt = new ProjectTask($pg,$project_task_id);
-                        if (!$pt || !is_object($pt)) {
-                                exit_error('Error','Could Not Get ProjectTask');
-                        } elseif ($pt->isError()) {
-                                exit_error('Error',$pt->getErrorMessage());
-                        }
+			$pt = createProjectTaskWithTaskId($pg, $project_task_id); 
 
                         if (!$dependent_on)     {
                                 $dependent_on=array();

Modified: branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/themes/css/evolvis.css
===================================================================
--- branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/themes/css/evolvis.css	2010-06-01 15:45:01 UTC (rev 6670)
+++ branches/Changes-to-status-field-gforge-4.8.1+evolvis/www/themes/css/evolvis.css	2010-06-01 16:27:46 UTC (rev 6671)
@@ -387,7 +387,9 @@
 .priority3{background-color:#dababa}
 .priority4{background-color:#daaaaa}
 .priority5{background-color:#da8a8a}
+.copyAndClosed{color:#A9A9A9; background-color:#ffffff}
 
+
 .submitStandardInformation{color:#000000; font-weight:bold;}
 .submitErrorInformation{color:#FF0000; font-weight:bold;}
 .submitSuccessInformation{color:#00FF00; font-weight:bold;}




More information about the evolvis-commits mailing list