From c1ecbcdd4d97de36fc21b6cd325a9a86b63f325f Mon Sep 17 00:00:00 2001
From: Danny Auble <da@llnl.gov>
Date: Mon, 23 Oct 2006 22:10:50 +0000
Subject: [PATCH] rewrite to allow bluegene names to be propigated only once
 instead of over and over

---
 src/sview/block_info.c |   2 +-
 src/sview/job_info.c   | 220 +++++++++++++++++++++++------------------
 src/sview/node_info.c  |  47 +++------
 src/sview/part_info.c  |   8 +-
 4 files changed, 144 insertions(+), 133 deletions(-)

diff --git a/src/sview/block_info.c b/src/sview/block_info.c
index 1b957256c0e..36c9e5b85b2 100644
--- a/src/sview/block_info.c
+++ b/src/sview/block_info.c
@@ -101,7 +101,7 @@ static display_data_t options_data_block[] = {
 	{G_TYPE_STRING, JOB_PAGE, "Jobs", TRUE, BLOCK_PAGE},
 	{G_TYPE_STRING, PART_PAGE, "Partition", TRUE, BLOCK_PAGE},
 	{G_TYPE_STRING, NODE_PAGE, "Base Partitions", TRUE, BLOCK_PAGE},
-	{G_TYPE_STRING, SUBMIT_PAGE, "Job Submit", TRUE, BLOCK_PAGE},
+	{G_TYPE_STRING, SUBMIT_PAGE, "Job Submit", FALSE, BLOCK_PAGE},
 	{G_TYPE_NONE, -1, NULL, FALSE, -1}
 };
 
diff --git a/src/sview/job_info.c b/src/sview/job_info.c
index f8acf7be521..c2fa1c7ffb9 100644
--- a/src/sview/job_info.c
+++ b/src/sview/job_info.c
@@ -36,6 +36,8 @@
 /* Collection of data for printing reports. Like data is combined here */
 typedef struct {
 	job_info_t *job_ptr;
+	char *nodes;
+	int node_cnt;
 	char *color;
 	List step_list;
 } sview_job_info_t;
@@ -53,6 +55,10 @@ enum {
 	SORTID_NAME,
 	SORTID_STATE,
 	SORTID_TIME,
+	SORTID_SUBMIT_TIME,
+	SORTID_START_TIME,
+	SORTID_END_TIME,
+	SORTID_SUSPEND_TIME,
 	SORTID_NODES,
 	SORTID_NODELIST,
 	SORTID_REQ_NODELIST,
@@ -70,14 +76,28 @@ enum {
 	SORTID_CPUS_PER_TASK,
 	SORTID_REQ_PROCS,
 	SORTID_MIN_NODES,
+	SORTID_MAX_NODES,
+	SORTID_MIN_SOCKETS,
+	SORTID_MAX_SOCKETS,
+	SORTID_MIN_CORES,
+	SORTID_MAX_CORES,
+	SORTID_MIN_THREADS,
+	SORTID_MAX_THREADS,
 	SORTID_MIN_PROCS,
 	SORTID_MIN_MEM,
+	SORTID_MAX_MEM,
 	SORTID_TMP_DISK,
 	SORTID_NICE,
 	SORTID_ACCOUNT,
 	SORTID_REASON,
 	SORTID_FEATURES,
 	SORTID_DEPENDENCY,
+	
+	SORTID_ALLOC_NODE,
+	SORTID_NTASKS_PER_NODE,
+	SORTID_NTASKS_PER_SOCKET,
+	SORTID_NTASKS_PER_CORE,
+	SORTID_COMMENT,
 #ifdef HAVE_BG
 	SORTID_GEOMETRY,
 	SORTID_ROTATE,
@@ -110,6 +130,16 @@ static display_data_t display_data_job[] = {
 	 create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_TIME, "Running Time", TRUE, -1, refresh_job,
 	 create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_SUBMIT_TIME, "Submit Time", TRUE,
+	 -1, refresh_job,
+	 create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_START_TIME, "Start Time", TRUE, -1, refresh_job,
+	 create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_END_TIME, "End Time", TRUE, -1, refresh_job,
+	 create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_SUSPEND_TIME, "Suspended Time", TRUE,
+	 -1, refresh_job,
+	 create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_NODES, "Nodes", TRUE, -1, refresh_job,
 	 create_model_job, admin_edit_job},
 #ifdef HAVE_BG
@@ -153,10 +183,26 @@ static display_data_t display_data_job[] = {
 	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_MIN_NODES, "Min Nodes", 
 	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_MAX_NODES, "Max Nodes", 
+	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_MIN_PROCS, "Min Procs", 
 	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_MIN_SOCKETS, "Min Sockets", 
+	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_MAX_SOCKETS, "Max Sockets", 
+	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_MIN_CORES, "Min Cores", 
+	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_MAX_CORES, "Max Cores", 
+	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_MIN_THREADS, "Min Threads", 
+	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_MAX_THREADS, "Max Threads", 
+	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_MIN_MEM, "Min Memory", 
 	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_MAX_MEM, "Max Memory", 
+	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_TMP_DISK, "Tmp Disk", 
 	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_NICE, "Nice", 
@@ -169,6 +215,16 @@ static display_data_t display_data_job[] = {
 	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
 	{G_TYPE_STRING, SORTID_DEPENDENCY, "Dependency", 
 	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_ALLOC_NODE, "Node job was allocated from", 
+	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_NTASKS_PER_NODE, "Num tasks per Node", 
+	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_NTASKS_PER_SOCKET, "Num tasks per Socket", 
+	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_NTASKS_PER_CORE, "Num tasks per Core", 
+	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
+	{G_TYPE_STRING, SORTID_COMMENT, "Comment", 
+	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
 #ifdef HAVE_BG
 	{G_TYPE_STRING, SORTID_GEOMETRY, "Geometry", 
 	 FALSE, 1, refresh_job, create_model_job, admin_edit_job},
@@ -249,15 +305,13 @@ static void _convert_char_to_job_and_step(const char *data,
 }
 
 static void _layout_job_record(GtkTreeView *treeview, 
-			       job_info_t *job_ptr,
+			       sview_job_info_t *sview_job_info_ptr, 
 			       int update)
 {
 	char *nodes = NULL;
 	char tmp_char[50];
 	time_t now_time = time(NULL);
-	uint32_t node_cnt = 0;
-	uint16_t quarter = (uint16_t) NO_VAL;
-	uint16_t nodecard = (uint16_t) NO_VAL;
+	job_info_t *job_ptr = sview_job_info_ptr->job_ptr;
 	GtkTreeIter iter;
 	GtkTreeStore *treestore = 
 		GTK_TREE_STORE(gtk_tree_view_get_model(treeview));
@@ -281,7 +335,7 @@ static void _layout_job_record(GtkTreeView *treeview,
 			now_time = difftime(now_time, job_ptr->start_time);
 		}
 		snprint_time(tmp_char, sizeof(tmp_char), now_time);
-		nodes = job_ptr->nodes;	
+		nodes = sview_job_info_ptr->nodes;	
 	}
 	add_display_treestore_line(update, treestore, &iter, 
 				   display_data_job[SORTID_TIME].name, 
@@ -313,23 +367,10 @@ static void _layout_job_record(GtkTreeView *treeview,
 				   job_state_string(job_ptr->job_state));
 	
 #ifdef HAVE_BG
-	select_g_get_jobinfo(job_ptr->select_jobinfo, 
-			     SELECT_DATA_QUARTER, 
-			     &quarter);
-	select_g_get_jobinfo(job_ptr->select_jobinfo, 
-			     SELECT_DATA_NODECARD, 
-			     &nodecard);
-	select_g_get_jobinfo(job_ptr->select_jobinfo, 
-			     SELECT_DATA_NODE_CNT, 
-			     &node_cnt);
-#endif
-	if(!node_cnt)
-		node_cnt = _get_node_cnt(job_ptr);
-
-#ifdef HAVE_BG
-	convert_num_unit((float)node_cnt, tmp_char, UNIT_NONE);
+	convert_num_unit((float)sview_job_info_ptr->node_cnt,
+			 tmp_char, UNIT_NONE);
 #else
-	sprintf(tmp_char, "%u", node_cnt);
+	sprintf(tmp_char, "%u", job_ptr->num_nodes);
 #endif
 	add_display_treestore_line(update, treestore, &iter, 
 				   display_data_job[SORTID_NODES].name, 
@@ -340,19 +381,9 @@ static void _layout_job_record(GtkTreeView *treeview,
 				   display_data_job[SORTID_NUM_PROCS].name,
 				   tmp_char);
 	
-	if(quarter != (uint16_t) NO_VAL) {
-		if(nodecard != (uint16_t) NO_VAL)
-			snprintf(tmp_char, 50, "%s.%u.%u", 
-				 nodes, quarter, nodecard);
-		else
-			snprintf(tmp_char, 50, "%s.%u", nodes, quarter);
-		add_display_treestore_line(update, treestore, &iter, 
-					   display_data_job[SORTID_NODELIST].
-					   name, tmp_char);
-	} else
-		add_display_treestore_line(update, treestore, &iter, 
-					   display_data_job[SORTID_NODELIST].
-					   name, nodes);
+	add_display_treestore_line(update, treestore, &iter, 
+				   display_data_job[SORTID_NODELIST].
+				   name, nodes);
 }
 
 static void _update_job_record(sview_job_info_t *sview_job_info_ptr, 
@@ -362,11 +393,8 @@ static void _update_job_record(sview_job_info_t *sview_job_info_ptr,
 	char *nodes = NULL;
 	char tmp_char[50];
 	time_t now_time = time(NULL);
-	uint16_t quarter = (uint16_t) NO_VAL;
-	uint16_t nodecard = (uint16_t) NO_VAL;
 	GtkTreeIter step_iter;
 	int childern = 0;
-	uint32_t node_cnt = 0;
 	job_info_t *job_ptr = sview_job_info_ptr->job_ptr;
 
 	gtk_tree_store_set(treestore, iter, SORTID_UPDATED, 1, -1);
@@ -416,23 +444,10 @@ static void _update_job_record(sview_job_info_t *sview_job_info_ptr,
 			   job_state_string(job_ptr->job_state), -1);
 	
 #ifdef HAVE_BG
-	select_g_get_jobinfo(job_ptr->select_jobinfo, 
-			     SELECT_DATA_QUARTER, 
-			     &quarter);
-	select_g_get_jobinfo(job_ptr->select_jobinfo, 
-			     SELECT_DATA_NODECARD, 
-			     &nodecard);
-	select_g_get_jobinfo(job_ptr->select_jobinfo, 
-			     SELECT_DATA_NODE_CNT, 
-			     &node_cnt);
-#endif
-	if(!node_cnt)
-		node_cnt = _get_node_cnt(job_ptr);
-
-#ifdef HAVE_BG
-	convert_num_unit((float)node_cnt, tmp_char, UNIT_NONE);
+	convert_num_unit((float)sview_job_info_ptr->node_cnt,
+			 tmp_char, UNIT_NONE);
 #else
-	sprintf(tmp_char, "%u", node_cnt);
+	sprintf(tmp_char, "%u", job_ptr->num_nodes);
 #endif
 	gtk_tree_store_set(treestore, iter, 
 			   SORTID_NODES, tmp_char, -1);
@@ -441,17 +456,7 @@ static void _update_job_record(sview_job_info_t *sview_job_info_ptr,
 	gtk_tree_store_set(treestore, iter, 
 			   SORTID_NUM_PROCS, tmp_char, -1);
 	
-	if(quarter != (uint16_t) NO_VAL) {
-		if(nodecard != (uint16_t) NO_VAL)
-			snprintf(tmp_char, 50, "%s.%u.%u", 
-				 nodes, quarter, nodecard);
-		else
-			snprintf(tmp_char, 50, "%s.%u", nodes, quarter);
-		gtk_tree_store_set(treestore, iter, 
-				   SORTID_NODELIST, tmp_char, -1);
-	} else
-		gtk_tree_store_set(treestore, iter, 
-				   SORTID_NODELIST, nodes, -1);
+	gtk_tree_store_set(treestore, iter, SORTID_NODELIST, nodes, -1);
 
 	childern = gtk_tree_model_iter_children(GTK_TREE_MODEL(treestore),
 						&step_iter, iter);
@@ -474,8 +479,6 @@ static void _layout_step_record(GtkTreeView *treeview,
 	char tmp_char[50];
 	char tmp_time[50];
 	time_t now_time = time(NULL);
-	uint16_t quarter = (uint16_t) NO_VAL;
-	uint16_t nodecard = (uint16_t) NO_VAL;
 	GtkTreeIter iter;
 	enum job_states state;
 	GtkTreeStore *treestore = 
@@ -492,8 +495,13 @@ static void _layout_step_record(GtkTreeView *treeview,
 		now_time -= step_ptr->start_time;
 		snprint_time(tmp_time, sizeof(tmp_time), now_time);
 		nodes = step_ptr->nodes;
+#ifdef HAVE_BG
+		convert_num_unit((float)step_ptr->num_tasks,
+				 tmp_char, UNIT_NONE);
+#else
 		convert_num_unit((float)_nodes_in_list(nodes), 
 				 tmp_char, UNIT_NONE);
+#endif
 		add_display_treestore_line(update, treestore, &iter, 
 					   display_data_job[SORTID_NODES].
 					   name, tmp_char);
@@ -542,20 +550,9 @@ static void _layout_step_record(GtkTreeView *treeview,
 				   display_data_job[SORTID_NUM_PROCS].name,
 				   tmp_char);
 
-	if(quarter != (uint16_t) NO_VAL) {
-		if(nodecard != (uint16_t) NO_VAL)
-			snprintf(tmp_char, 50, "%s.%u.%u", 
-				 nodes, quarter, nodecard);
-		else
-			snprintf(tmp_char, 50, "%s.%u", nodes, quarter);
-		add_display_treestore_line(update, treestore, &iter, 
-					   display_data_job[SORTID_NODELIST].
-					   name, tmp_char);
-	} else
-		add_display_treestore_line(update, treestore, &iter, 
-					   display_data_job[SORTID_NODELIST].
-					   name, nodes);
-
+	add_display_treestore_line(update, treestore, &iter, 
+				   display_data_job[SORTID_NODELIST].
+				   name, nodes);
 }
 
 static void _update_step_record(job_step_info_t *step_ptr, 
@@ -566,8 +563,6 @@ static void _update_step_record(job_step_info_t *step_ptr,
 	char tmp_char[50];
 	char tmp_time[50];
 	time_t now_time = time(NULL);
-	uint16_t quarter = (uint16_t) NO_VAL;
-	uint16_t nodecard = (uint16_t) NO_VAL;
 	enum job_states state;
 
 	gtk_tree_store_set(treestore, iter, SORTID_UPDATED, 1, -1);
@@ -580,8 +575,13 @@ static void _update_step_record(job_step_info_t *step_ptr,
 		now_time -= step_ptr->start_time;
 		snprint_time(tmp_time, sizeof(tmp_time), now_time);
 		nodes = step_ptr->nodes;
+#ifdef HAVE_BG
+		convert_num_unit((float)step_ptr->num_tasks,
+				 tmp_char, UNIT_NONE);
+#else
 		convert_num_unit((float)_nodes_in_list(nodes), 
 				 tmp_char, UNIT_NONE);
+#endif
 		gtk_tree_store_set(treestore, iter, 
 				   SORTID_NODES, tmp_char, -1);
 		state = JOB_RUNNING;
@@ -621,17 +621,8 @@ static void _update_step_record(job_step_info_t *step_ptr,
 	gtk_tree_store_set(treestore, iter, 
 			   SORTID_NUM_PROCS, tmp_char, -1);
 
-	if(quarter != (uint16_t) NO_VAL) {
-		if(nodecard != (uint16_t) NO_VAL)
-			snprintf(tmp_char, 50, "%s.%u.%u", 
-				 nodes, quarter, nodecard);
-		else
-			snprintf(tmp_char, 50, "%s.%u", nodes, quarter);
-		gtk_tree_store_set(treestore, iter, 
-				   SORTID_NODELIST, tmp_char, -1);
-	} else
-		gtk_tree_store_set(treestore, iter, 
-				   SORTID_NODELIST, nodes, -1);
+	gtk_tree_store_set(treestore, iter, 
+			   SORTID_NODELIST, nodes, -1);
 		
 	return;
 }
@@ -814,6 +805,7 @@ static void _job_info_list_del(void *object)
 	sview_job_info_t *sview_job_info = (sview_job_info_t *)object;
 
 	if (sview_job_info) {
+		xfree(sview_job_info->nodes);
 		if(sview_job_info->step_list)
 			list_destroy(sview_job_info->step_list);
 		xfree(sview_job_info);
@@ -831,6 +823,11 @@ static List _create_job_info_list(job_info_msg_t *job_info_ptr,
 	sview_job_info_t *sview_job_info_ptr = NULL;
 	job_info_t *job_ptr = NULL;
 	job_step_info_t *step_ptr = NULL;
+#ifdef HAVE_BG
+	uint16_t quarter = (uint16_t) NO_VAL;
+	uint16_t nodecard = (uint16_t) NO_VAL;
+#endif
+	char tmp_char[50];
 	
 	if(!changed && info_list) {
 		goto update_color;
@@ -853,9 +850,42 @@ static List _create_job_info_list(job_info_msg_t *job_info_ptr,
 		sview_job_info_ptr = xmalloc(sizeof(sview_job_info_t));
 		sview_job_info_ptr->job_ptr = job_ptr;
 		sview_job_info_ptr->step_list = list_create(NULL);
-				
+		sview_job_info_ptr->node_cnt = 0;
+		sview_job_info_ptr->nodes = NULL;
+#ifdef HAVE_BG
+		select_g_get_jobinfo(job_ptr->select_jobinfo, 
+				     SELECT_DATA_QUARTER, 
+				     &quarter);
+		select_g_get_jobinfo(job_ptr->select_jobinfo, 
+				     SELECT_DATA_NODECARD, 
+				     &nodecard);
+		select_g_get_jobinfo(job_ptr->select_jobinfo, 
+				     SELECT_DATA_NODE_CNT, 
+				     &sview_job_info_ptr->node_cnt);
+		if(quarter != (uint16_t) NO_VAL) {
+			if(nodecard != (uint16_t) NO_VAL)
+				snprintf(tmp_char, sizeof(tmp_char),
+					 "%s.%u.%u", 
+					 job_ptr->nodes, quarter, nodecard);
+			else
+				snprintf(tmp_char, sizeof(tmp_char), "%s.%u",
+					 job_ptr->nodes, quarter);
+			sview_job_info_ptr->nodes = xstrdup(tmp_char);
+		}
+#endif
+		if(!sview_job_info_ptr->nodes)
+			sview_job_info_ptr->nodes = xstrdup(job_ptr->nodes);
+
+		if(!sview_job_info_ptr->node_cnt)
+			sview_job_info_ptr->node_cnt = _get_node_cnt(job_ptr);
+		
 		for(j = 0; j < step_info_ptr->job_step_count; j++) {
 			step_ptr = &(step_info_ptr->job_steps[j]);
+#ifdef HAVE_BG
+			xfree(step_ptr->nodes);
+			step_ptr->nodes = xstrdup(sview_job_info_ptr->nodes);
+			step_ptr->num_tasks = sview_job_info_ptr->node_cnt;
+#endif
 			if(step_ptr->job_id == job_ptr->job_id) {
 				list_push(sview_job_info_ptr->step_list, 
 					  step_ptr);
@@ -937,7 +967,7 @@ need_refresh:
 			j += 2;
 		}
 		_layout_job_record(treeview, 
-				   sview_job_info->job_ptr,
+				   sview_job_info,
 				   update);
 		found = 1;
 	} else {
diff --git a/src/sview/node_info.c b/src/sview/node_info.c
index 387199c8a21..1b828869de3 100644
--- a/src/sview/node_info.c
+++ b/src/sview/node_info.c
@@ -79,7 +79,7 @@ static display_data_t options_data_node[] = {
 	{G_TYPE_STRING, BLOCK_PAGE, "Blocks", TRUE, NODE_PAGE},
 #endif
 	{G_TYPE_STRING, PART_PAGE, "Partition", TRUE, NODE_PAGE},
-	{G_TYPE_STRING, SUBMIT_PAGE, "Job Submit", TRUE, NODE_PAGE},
+	{G_TYPE_STRING, SUBMIT_PAGE, "Job Submit", FALSE, NODE_PAGE},
 	{G_TYPE_NONE, -1, NULL, FALSE, -1}
 };
 
@@ -744,23 +744,6 @@ display_it:
 		i++;
 		node_ptr = sview_node_info_ptr->node_ptr;
 		switch(search_info->search_type) {
-		case SEARCH_NODE_NAME:
-			if(!search_info->gchar_data)
-				continue;
-			while((host = hostlist_next(host_itr))) { 
-				if(!strcmp(host, node_ptr->name)) {
-					free(host);
-					found = 1;
-					break; 
-				}
-				free(host);
-			}
-			hostlist_iterator_reset(host_itr);
-			
-			if(!found)
-				continue;
-
-			break;
 		case SEARCH_NODE_STATE:
 			if(search_info->int_data == NO_VAL)
 				continue;
@@ -781,23 +764,23 @@ display_it:
 			
 			if(node_ptr->node_state != search_info->int_data)
 				continue;
-			if(search_info->gchar_data) {
-				while((host = hostlist_next(host_itr))) { 
-					if(!strcmp(host, node_ptr->name)) {
-						free(host);
-						found = 1;
-						break; 
-					}
+			/* no break here we want to continue to look
+			   for the name */
+		default:
+			if(!search_info->gchar_data)
+				continue;
+			while((host = hostlist_next(host_itr))) { 
+				if(!strcmp(host, node_ptr->name)) {
 					free(host);
+					found = 1;
+					break; 
 				}
-				hostlist_iterator_reset(host_itr);
-				if(!found)
-					continue;
-			}			
+				free(host);
+			}
+			hostlist_iterator_reset(host_itr);
 			
-			break;
-		default:
-			continue;
+			if(!found)
+				continue;
 			break;
 		}
 		
diff --git a/src/sview/part_info.c b/src/sview/part_info.c
index ac557c18869..6d5ac4021d5 100644
--- a/src/sview/part_info.c
+++ b/src/sview/part_info.c
@@ -147,7 +147,7 @@ static display_data_t options_data_part[] = {
 #else
 	{G_TYPE_STRING, NODE_PAGE, "Nodes", TRUE, PART_PAGE},
 #endif
-	{G_TYPE_STRING, SUBMIT_PAGE, "Job Submit", TRUE, PART_PAGE},
+	{G_TYPE_STRING, SUBMIT_PAGE, "Job Submit", FALSE, PART_PAGE},
 	{G_TYPE_NONE, -1, NULL, FALSE, -1}
 };
 
@@ -1607,7 +1607,7 @@ display_it:
 				continue;
 
 			hostlist = hostlist_create(
-				(char *)spec_info->search_info->gchar_data);
+				spec_info->search_info->gchar_data);
 			host = hostlist_shift(hostlist);
 			hostlist_destroy(hostlist);
 			if(!host) 
@@ -1631,7 +1631,7 @@ display_it:
 		case BLOCK_PAGE:
 		case JOB_PAGE:
 			if(strcmp(part_ptr->name, 
-				  (char *)spec_info->search_info->gchar_data)) 
+				  spec_info->search_info->gchar_data)) 
 				continue;
 			break;
 		default:
@@ -1657,10 +1657,8 @@ display_it:
 		}
 	}
 	list_iterator_destroy(itr);
-#ifndef HAVE_BG
 	put_buttons_in_table(popup_win->grid_table,
 			     popup_win->grid_button_list);
-#endif
 	 
 	_update_info_part(send_info_list, 
 			  GTK_TREE_VIEW(spec_info->display_widget));
-- 
GitLab