diff --git a/src/sview/block_info.c b/src/sview/block_info.c index 9b92847fc3bbf5c663da2cd2183dc5db40eb9b96..b14ea447f5e3e2533f3ab38bdabb9d08ef0c3f8a 100644 --- a/src/sview/block_info.c +++ b/src/sview/block_info.c @@ -72,42 +72,42 @@ enum { }; static display_data_t display_data_block[] = { - {G_TYPE_INT, SORTID_POS, NULL, FALSE, -1, refresh_block, + {G_TYPE_INT, SORTID_POS, NULL, FALSE, EDIT_NONE, refresh_block, create_model_block, admin_edit_block}, {G_TYPE_STRING, SORTID_BLOCK, "Bluegene Block", - TRUE, -1, refresh_block, + TRUE, EDIT_NONE, refresh_block, create_model_block, admin_edit_block}, - {G_TYPE_STRING, SORTID_STATE, "State", TRUE, 0, refresh_block, + {G_TYPE_STRING, SORTID_STATE, "State", TRUE, EDIT_MODEL, refresh_block, create_model_block, admin_edit_block}, - {G_TYPE_STRING, SORTID_USER, "User", TRUE, -1, refresh_block, + {G_TYPE_STRING, SORTID_USER, "User", TRUE, EDIT_NONE, refresh_block, create_model_block, admin_edit_block}, - {G_TYPE_STRING, SORTID_NODES, "Nodes", TRUE, -1, refresh_block, + {G_TYPE_STRING, SORTID_NODES, "Nodes", TRUE, EDIT_NONE, refresh_block, create_model_block, admin_edit_block}, {G_TYPE_STRING, SORTID_CONN, "Connection Type", - TRUE, -1, refresh_block, + TRUE, EDIT_NONE, refresh_block, create_model_block, admin_edit_block}, - {G_TYPE_STRING, SORTID_USE, "Node Use", TRUE, -1, refresh_block, + {G_TYPE_STRING, SORTID_USE, "Node Use", TRUE, EDIT_NONE, refresh_block, create_model_block, admin_edit_block}, - {G_TYPE_STRING, SORTID_NODELIST, "BP List", TRUE, -1, refresh_block, + {G_TYPE_STRING, SORTID_NODELIST, "BP List", TRUE, EDIT_NONE, refresh_block, create_model_block, admin_edit_block}, {G_TYPE_STRING, SORTID_PARTITION, "Partition", - TRUE, -1, refresh_block, + TRUE, EDIT_NONE, refresh_block, create_model_block, admin_edit_block}, {G_TYPE_STRING, SORTID_BLRTSIMAGE, "Blrts Image", - FALSE, -1, refresh_block, create_model_block, admin_edit_block}, + FALSE, EDIT_NONE, refresh_block, create_model_block, admin_edit_block}, {G_TYPE_STRING, SORTID_LINUXIMAGE, "linux Image", - FALSE, -1, refresh_block, create_model_block, admin_edit_block}, + FALSE, EDIT_NONE, refresh_block, create_model_block, admin_edit_block}, {G_TYPE_STRING, SORTID_MLOADERIMAGE, "Mloader Image", - FALSE, -1, refresh_block, create_model_block, admin_edit_block}, + FALSE, EDIT_NONE, refresh_block, create_model_block, admin_edit_block}, {G_TYPE_STRING, SORTID_RAMDISKIMAGE, "Ramdisk Image", - FALSE, -1, refresh_block, create_model_block, admin_edit_block}, - {G_TYPE_INT, SORTID_UPDATED, NULL, FALSE, -1, refresh_block, + FALSE, EDIT_NONE, refresh_block, create_model_block, admin_edit_block}, + {G_TYPE_INT, SORTID_UPDATED, NULL, FALSE, EDIT_NONE, refresh_block, create_model_block, admin_edit_block}, - {G_TYPE_NONE, -1, NULL, FALSE, -1} + {G_TYPE_NONE, -1, NULL, FALSE, EDIT_NONE} }; static display_data_t options_data_block[] = { - {G_TYPE_INT, SORTID_POS, NULL, FALSE, -1}, + {G_TYPE_INT, SORTID_POS, NULL, FALSE, EDIT_NONE}, {G_TYPE_STRING, INFO_PAGE, "Full Info", TRUE, BLOCK_PAGE}, {G_TYPE_STRING, BLOCK_PAGE, "Put block in error state", TRUE, ADMIN_PAGE}, @@ -117,7 +117,7 @@ static display_data_t options_data_block[] = { {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", FALSE, BLOCK_PAGE}, - {G_TYPE_NONE, -1, NULL, FALSE, -1} + {G_TYPE_NONE, -1, NULL, FALSE, EDIT_NONE} }; static display_data_t *local_display_data = NULL; diff --git a/src/sview/common.c b/src/sview/common.c index 772dcce5964e7a26ecac0ff1416b4f5b05170233..943842a4fc25cba99cb76c3bb632287ab6f5cc4f 100644 --- a/src/sview/common.c +++ b/src/sview/common.c @@ -155,7 +155,7 @@ static void _add_col_to_treeview(GtkTreeView *tree_view, GtkTreeViewColumn *col = gtk_tree_view_column_new(); GtkListStore *model = (display_data->create_model)(display_data->id); GtkCellRenderer *renderer = NULL; - if(model && display_data->extra != -1) { + if(model && display_data->extra != EDIT_NONE) { renderer = gtk_cell_renderer_combo_new(); g_object_set(renderer, "model", model, @@ -163,7 +163,7 @@ static void _add_col_to_treeview(GtkTreeView *tree_view, "has-entry", display_data->extra, "editable", TRUE, NULL); - } else if(display_data->extra == 1) { + } else if(display_data->extra == EDIT_TEXTBOX) { renderer = gtk_cell_renderer_text_new(); g_object_set(renderer, "editable", TRUE, diff --git a/src/sview/job_info.c b/src/sview/job_info.c index d8ec40d99ef8e1959f14a348e0f724dbdf6db1f9..a91cef4800124e4e3b69f77e58e8d3672fa7e571 100644 --- a/src/sview/job_info.c +++ b/src/sview/job_info.c @@ -143,154 +143,159 @@ enum { SORTID_CNT }; +/* extra field here is for choosing the type of edit you that will + * take place. If you choose EDIT_MODEL (means only display a set of + * known options) create it in function create_model_*. + */ + static display_data_t display_data_job[] = { - {G_TYPE_INT, SORTID_POS, NULL, FALSE, -1, refresh_job, - create_model_job, admin_edit_job}, - {G_TYPE_INT, SORTID_JOBID, "JobID", TRUE, -1, refresh_job, - create_model_job, admin_edit_job}, - {G_TYPE_STRING, SORTID_ACTION, "Action", FALSE, 0, refresh_job, + {G_TYPE_INT, SORTID_POS, NULL, FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, - {G_TYPE_INT, SORTID_ALLOC, NULL, FALSE, -1, refresh_job, + {G_TYPE_INT, SORTID_JOBID, "JobID", TRUE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, - {G_TYPE_STRING, SORTID_PARTITION, "Partition", TRUE, 1, refresh_job, + {G_TYPE_STRING, SORTID_ACTION, "Action", FALSE, + EDIT_MODEL, refresh_job, create_model_job, admin_edit_job}, + {G_TYPE_INT, SORTID_ALLOC, NULL, FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, + {G_TYPE_STRING, SORTID_PARTITION, "Partition", TRUE, + EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job}, #ifdef HAVE_BG - {G_TYPE_STRING, SORTID_BLOCK, "BG Block", TRUE, -1, refresh_job, + {G_TYPE_STRING, SORTID_BLOCK, "BG Block", TRUE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_GEOMETRY, "Geometry", - FALSE, 1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_START, "Start", - FALSE, 1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_ROTATE, "Rotate", - FALSE, 0, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_MODEL, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_CONNECTION, "Connection", - FALSE, 0, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_MODEL, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_BLRTSIMAGE, "Blrts Image", - FALSE, 1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_LINUXIMAGE, "linux Image", - FALSE, 1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_MLOADERIMAGE, "Mloader Image", - FALSE, 1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_RAMDISKIMAGE, "Ramdisk Image", - FALSE, 1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job}, #endif - {G_TYPE_STRING, SORTID_USER, "User", TRUE, -1, refresh_job, + {G_TYPE_STRING, SORTID_USER, "User", TRUE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, - {G_TYPE_STRING, SORTID_GROUP, "Group", FALSE, -1, refresh_job, + {G_TYPE_STRING, SORTID_GROUP, "Group", FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, - {G_TYPE_STRING, SORTID_NAME, "Name", TRUE, 1, refresh_job, + {G_TYPE_STRING, SORTID_NAME, "Name", TRUE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job}, - {G_TYPE_STRING, SORTID_STATE, "State", TRUE, -1, refresh_job, + {G_TYPE_STRING, SORTID_STATE, "State", TRUE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, - {G_TYPE_INT, SORTID_STATE_NUM, NULL, FALSE, -1, refresh_job, - create_model_job, admin_edit_job}, - {G_TYPE_STRING, SORTID_TIME, "Running Time", TRUE, -1, refresh_job, + {G_TYPE_INT, SORTID_STATE_NUM, NULL, FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, + {G_TYPE_STRING, SORTID_TIME, "Running Time", TRUE, + EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_SUBMIT_TIME, "Submit Time", FALSE, - -1, refresh_job, + EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_START_TIME, "Start Time", FALSE, - 1, refresh_job, - create_model_job, admin_edit_job}, - {G_TYPE_STRING, SORTID_END_TIME, "End Time", FALSE, -1, refresh_job, + EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job}, + {G_TYPE_STRING, SORTID_END_TIME, "End Time", FALSE, + EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_SUSPEND_TIME, "Suspended Time", FALSE, - -1, refresh_job, - create_model_job, admin_edit_job}, - {G_TYPE_STRING, SORTID_TIMELIMIT, "Time Limit", FALSE, 1, refresh_job, + EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, - {G_TYPE_STRING, SORTID_NODES, "Nodes", TRUE, -1, refresh_job, + {G_TYPE_STRING, SORTID_TIMELIMIT, "Time Limit", FALSE, + EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job}, + {G_TYPE_STRING, SORTID_NODES, "Nodes", TRUE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, #ifdef HAVE_BG - {G_TYPE_STRING, SORTID_NODELIST, "BP List", TRUE, -1, refresh_job, - create_model_job, admin_edit_job}, + {G_TYPE_STRING, SORTID_NODELIST, "BP List", TRUE, EDIT_NONE, + refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_REQ_NODELIST, "Requested BP List", - FALSE, -1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_EXC_NODELIST, "Excluded BP List", - FALSE, -1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, #else - {G_TYPE_STRING, SORTID_NODELIST, "Nodelist", TRUE, -1, refresh_job, - create_model_job, admin_edit_job}, + {G_TYPE_STRING, SORTID_NODELIST, "Nodelist", TRUE, + EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_REQ_NODELIST, "Requested NodeList", - FALSE, 1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_EXC_NODELIST, "Excluded NodeList", - FALSE, 1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job}, #endif - {G_TYPE_STRING, SORTID_CONTIGUOUS, "Contiguous", FALSE, 0, + {G_TYPE_STRING, SORTID_CONTIGUOUS, "Contiguous", FALSE, EDIT_MODEL, refresh_job, create_model_job, admin_edit_job}, - {G_TYPE_STRING, SORTID_PRIORITY, "Priority", FALSE, 1, refresh_job, - create_model_job, admin_edit_job}, - {G_TYPE_STRING, SORTID_EXIT_CODE, "Exit Code", FALSE, -1, refresh_job, - create_model_job, admin_edit_job}, - {G_TYPE_STRING, SORTID_BATCH, "Batch Flag", FALSE, -1, refresh_job, - create_model_job, admin_edit_job}, + {G_TYPE_STRING, SORTID_PRIORITY, "Priority", FALSE, + EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job}, + {G_TYPE_STRING, SORTID_EXIT_CODE, "Exit Code", FALSE, + EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, + {G_TYPE_STRING, SORTID_BATCH, "Batch Flag", FALSE, + EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_NUM_PROCS, "Num Processors", - FALSE, -1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_TASKS, "Num Tasks", - FALSE, -1, refresh_job, create_model_job, admin_edit_job}, - {G_TYPE_STRING, SORTID_SHARED, "Shared", FALSE, 0, refresh_job, - create_model_job, admin_edit_job}, + FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, + {G_TYPE_STRING, SORTID_SHARED, "Shared", FALSE, + EDIT_MODEL, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_CPUS_PER_TASK, "Cpus per Task", - FALSE, -1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_REQ_PROCS, "Requested Procs", - FALSE, 1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_TEXTBOX, 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}, + FALSE, EDIT_TEXTBOX, 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}, + FALSE, EDIT_TEXTBOX, 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}, + FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job}, #ifdef HAVE_BG {G_TYPE_STRING, SORTID_MAX_PROCS, "Max Procs", - FALSE, -1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, #endif {G_TYPE_STRING, SORTID_MIN_SOCKETS, "Min Sockets", - FALSE, 1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_TEXTBOX, 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}, + FALSE, EDIT_NONE, 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}, + FALSE, EDIT_TEXTBOX, 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}, + FALSE, EDIT_NONE, 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}, + FALSE, EDIT_TEXTBOX, 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}, + FALSE, EDIT_NONE, 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}, + FALSE, EDIT_TEXTBOX, 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}, + FALSE, EDIT_NONE, 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}, + FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_NICE, "Nice", - FALSE, -1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_ACCOUNT, "Account Charged", - FALSE, -1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_REASON, "Wait Reason", - FALSE, -1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_FEATURES, "Features", - FALSE, 1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_DEPENDENCY, "Dependency", - FALSE, 1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_TEXTBOX, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_ALLOC_NODE, "Alloc Node : Sid", - FALSE, -1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_NONE, 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}, + FALSE, EDIT_NONE, 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}, + FALSE, EDIT_NONE, 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}, + FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_NETWORK, "Network", - FALSE, -1, refresh_job, create_model_job, admin_edit_job}, + FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, {G_TYPE_STRING, SORTID_COMMENT, "Comment", - FALSE, -1, refresh_job, create_model_job, admin_edit_job}, - {G_TYPE_INT, SORTID_UPDATED, NULL, FALSE, -1, refresh_job, + FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, + {G_TYPE_INT, SORTID_UPDATED, NULL, FALSE, EDIT_NONE, refresh_job, create_model_job, admin_edit_job}, - {G_TYPE_NONE, -1, NULL, FALSE, -1} + {G_TYPE_NONE, EDIT_NONE, NULL, FALSE, EDIT_NONE} }; static display_data_t options_data_job[] = { - {G_TYPE_INT, SORTID_POS, NULL, FALSE, -1}, + {G_TYPE_INT, SORTID_POS, NULL, FALSE, EDIT_NONE}, {G_TYPE_STRING, INFO_PAGE, "Full Info", TRUE, JOB_PAGE}, {G_TYPE_STRING, JOB_PAGE, "Signal", TRUE, ADMIN_PAGE}, {G_TYPE_STRING, JOB_PAGE, "Cancel", TRUE, ADMIN_PAGE}, @@ -303,7 +308,7 @@ static display_data_t options_data_job[] = { #else {G_TYPE_STRING, NODE_PAGE, "Nodes", TRUE, JOB_PAGE}, #endif - {G_TYPE_NONE, -1, NULL, FALSE, -1} + {G_TYPE_NONE, -1, NULL, FALSE, EDIT_NONE} }; struct signv { @@ -922,7 +927,7 @@ static GtkWidget *_admin_full_edit_job(job_desc_msg_t *job_msg, gtk_table_set_homogeneous(table, FALSE); for(i = 0; i < SORTID_CNT; i++) { - if(display_data_job[i].extra == 0) { + if(display_data_job[i].extra == EDIT_MODEL) { /* edittable items that can only be known values */ model2 = GTK_TREE_MODEL( @@ -948,7 +953,7 @@ static GtkWidget *_admin_full_edit_job(job_desc_msg_t *job_msg, renderer, TRUE); gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(entry), renderer, "text", 0); - } else if(display_data_job[i].extra == 1) { + } else if(display_data_job[i].extra == EDIT_TEXTBOX) { /* other edittable items that are unknown */ entry = create_entry(); gtk_tree_model_get(model, iter, display_data_job[i].id, @@ -1453,28 +1458,23 @@ static void _update_job_record(sview_job_info_t *sview_job_info_ptr, snprint_time(tmp_char, sizeof(tmp_char), now_time); nodes = sview_job_info_ptr->nodes; } - gtk_tree_store_set(treestore, iter, - SORTID_TIME, tmp_char, -1); + gtk_tree_store_set(treestore, iter, SORTID_TIME, tmp_char, -1); slurm_make_time_str((time_t *)&job_ptr->submit_time, tmp_char, sizeof(tmp_char)); - gtk_tree_store_set(treestore, iter, - SORTID_SUBMIT_TIME, tmp_char, -1); + gtk_tree_store_set(treestore, iter, SORTID_SUBMIT_TIME, tmp_char, -1); slurm_make_time_str((time_t *)&job_ptr->start_time, tmp_char, sizeof(tmp_char)); - gtk_tree_store_set(treestore, iter, - SORTID_START_TIME, tmp_char, -1); + gtk_tree_store_set(treestore, iter, SORTID_START_TIME, tmp_char, -1); if ((job_ptr->time_limit == INFINITE) && (job_ptr->end_time > time(NULL))) sprintf(tmp_char, "NONE"); else slurm_make_time_str((time_t *)&job_ptr->end_time, tmp_char, sizeof(tmp_char)); - gtk_tree_store_set(treestore, iter, - SORTID_END_TIME, tmp_char, -1); + gtk_tree_store_set(treestore, iter, SORTID_END_TIME, tmp_char, -1); slurm_make_time_str((time_t *)&job_ptr->suspend_time, tmp_char, sizeof(tmp_char)); - gtk_tree_store_set(treestore, iter, - SORTID_SUSPEND_TIME, tmp_char, -1); + gtk_tree_store_set(treestore, iter, SORTID_SUSPEND_TIME, tmp_char, -1); if (job_ptr->time_limit == INFINITE) sprintf(tmp_char, "UNLIMITED"); @@ -1482,18 +1482,15 @@ static void _update_job_record(sview_job_info_t *sview_job_info_ptr, sprintf(tmp_char, "Partition Limit"); else snprint_time(tmp_char, sizeof(tmp_char), job_ptr->time_limit); - gtk_tree_store_set(treestore, iter, - SORTID_TIMELIMIT, tmp_char, -1); + gtk_tree_store_set(treestore, iter, SORTID_TIMELIMIT, tmp_char, -1); gtk_tree_store_set(treestore, iter, SORTID_ALLOC, 1, -1); - gtk_tree_store_set(treestore, iter, - SORTID_JOBID, job_ptr->job_id, -1); + gtk_tree_store_set(treestore, iter, SORTID_JOBID, job_ptr->job_id, -1); gtk_tree_store_set(treestore, iter, SORTID_PARTITION, job_ptr->partition, -1); snprintf(tmp_char, sizeof(tmp_char), "%s:%u", job_ptr->alloc_node, job_ptr->alloc_sid); - gtk_tree_store_set(treestore, iter, - SORTID_ALLOC_NODE, tmp_char, -1); + gtk_tree_store_set(treestore, iter, SORTID_ALLOC_NODE, tmp_char, -1); #ifdef HAVE_BG gtk_tree_store_set(treestore, iter, @@ -1587,8 +1584,7 @@ static void _update_job_record(sview_job_info_t *sview_job_info_ptr, SORTID_GROUP, tmp_char, -1); - gtk_tree_store_set(treestore, iter, - SORTID_NAME, job_ptr->name, -1); + gtk_tree_store_set(treestore, iter, SORTID_NAME, job_ptr->name, -1); gtk_tree_store_set(treestore, iter, SORTID_STATE, job_state_string(job_ptr->job_state), -1); @@ -2268,9 +2264,7 @@ need_refresh: i); j += 2; } - _layout_job_record(treeview, - sview_job_info, - update); + _layout_job_record(treeview, sview_job_info, update); found = 1; } else { itr = list_iterator_create(sview_job_info->step_list); diff --git a/src/sview/node_info.c b/src/sview/node_info.c index 5ed29be40a43e61b229905403b67e6e9ba9bd9fe..65c7446b2585a866265373bcee1efc793931bcc0 100644 --- a/src/sview/node_info.c +++ b/src/sview/node_info.c @@ -34,46 +34,58 @@ enum { SORTID_POS = POS_LOC, SORTID_CPUS, + SORTID_CORES, SORTID_DISK, SORTID_FEATURES, SORTID_MEMORY, SORTID_NAME, SORTID_REASON, + SORTID_SOCKETS, SORTID_STATE, SORTID_STATE_NUM, + SORTID_THREADS, SORTID_UPDATED, + SORTID_USED_CPUS, SORTID_WEIGHT, SORTID_CNT }; static display_data_t display_data_node[] = { - {G_TYPE_INT, SORTID_POS, NULL, FALSE, -1, refresh_node, + {G_TYPE_INT, SORTID_POS, NULL, FALSE, EDIT_NONE, refresh_node, create_model_node, admin_edit_node}, - {G_TYPE_STRING, SORTID_NAME, "Name", TRUE, -1, refresh_node, + {G_TYPE_STRING, SORTID_NAME, "Name", TRUE, EDIT_NONE, refresh_node, create_model_node, admin_edit_node}, - {G_TYPE_STRING, SORTID_STATE, "State", TRUE, 0, refresh_node, + {G_TYPE_STRING, SORTID_STATE, "State", TRUE, EDIT_MODEL, refresh_node, create_model_node, admin_edit_node}, - {G_TYPE_INT, SORTID_STATE_NUM, NULL, FALSE, -1, refresh_node, + {G_TYPE_INT, SORTID_STATE_NUM, NULL, FALSE, EDIT_NONE, refresh_node, create_model_node, admin_edit_node}, - {G_TYPE_INT, SORTID_CPUS, "CPU Count", TRUE, -1, refresh_node, + {G_TYPE_INT, SORTID_CPUS, "CPU Count", TRUE, EDIT_NONE, refresh_node, create_model_node, admin_edit_node}, - {G_TYPE_STRING, SORTID_MEMORY, "Real Memory", TRUE, -1, refresh_node, + {G_TYPE_INT, SORTID_USED_CPUS, "Used CPU Count", TRUE, + EDIT_NONE, refresh_node, create_model_node, admin_edit_node}, + {G_TYPE_INT, SORTID_CORES, "Cores", TRUE, + EDIT_NONE, refresh_node, create_model_node, admin_edit_node}, + {G_TYPE_INT, SORTID_SOCKETS, "Sockets", TRUE, + EDIT_NONE, refresh_node, create_model_node, admin_edit_node}, + {G_TYPE_INT, SORTID_THREADS, "Threads", TRUE, + EDIT_NONE, refresh_node, create_model_node, admin_edit_node}, + {G_TYPE_STRING, SORTID_MEMORY, "Real Memory", TRUE, + EDIT_NONE, refresh_node, create_model_node, admin_edit_node}, + {G_TYPE_STRING, SORTID_DISK, "Tmp Disk", TRUE, EDIT_NONE, refresh_node, create_model_node, admin_edit_node}, - {G_TYPE_STRING, SORTID_DISK, "Tmp Disk", TRUE, -1, refresh_node, + {G_TYPE_INT, SORTID_WEIGHT,"Weight", FALSE, EDIT_NONE, refresh_node, create_model_node, admin_edit_node}, - {G_TYPE_INT, SORTID_WEIGHT,"Weight", FALSE, -1, refresh_node, + {G_TYPE_STRING, SORTID_FEATURES, "Features", FALSE, + EDIT_TEXTBOX, refresh_node, create_model_node, admin_edit_node}, + {G_TYPE_STRING, SORTID_REASON, "Reason", FALSE, + EDIT_NONE, refresh_node, create_model_node, admin_edit_node}, + {G_TYPE_INT, SORTID_UPDATED, NULL, FALSE, EDIT_NONE, refresh_node, create_model_node, admin_edit_node}, - {G_TYPE_STRING, SORTID_FEATURES, "Features", FALSE, 1, refresh_node, - create_model_node, admin_edit_node}, - {G_TYPE_STRING, SORTID_REASON, "Reason", FALSE, -1, refresh_node, - create_model_node, admin_edit_node}, - {G_TYPE_INT, SORTID_UPDATED, NULL, FALSE, -1, refresh_node, - create_model_node, admin_edit_node}, - {G_TYPE_NONE, -1, NULL, FALSE, -1} + {G_TYPE_NONE, -1, NULL, FALSE, EDIT_NONE} }; static display_data_t options_data_node[] = { - {G_TYPE_INT, SORTID_POS, NULL, FALSE, -1}, + {G_TYPE_INT, SORTID_POS, NULL, FALSE, EDIT_NONE}, {G_TYPE_STRING, INFO_PAGE, "Full Info", TRUE, NODE_PAGE}, #ifdef HAVE_BG {G_TYPE_STRING, NODE_PAGE, "Drain Base Partition", TRUE, ADMIN_PAGE}, @@ -95,7 +107,7 @@ static display_data_t options_data_node[] = { #endif {G_TYPE_STRING, PART_PAGE, "Partition", TRUE, NODE_PAGE}, {G_TYPE_STRING, SUBMIT_PAGE, "Job Submit", FALSE, NODE_PAGE}, - {G_TYPE_NONE, -1, NULL, FALSE, -1} + {G_TYPE_NONE, -1, NULL, FALSE, EDIT_NONE} }; static display_data_t *local_display_data = NULL; @@ -131,6 +143,30 @@ static void _layout_node_record(GtkTreeView *treeview, SORTID_CPUS), tmp_cnt); + convert_num_unit((float)node_ptr->used_cpus, tmp_cnt, UNIT_NONE); + add_display_treestore_line(update, treestore, &iter, + find_col_name(display_data_node, + SORTID_USED_CPUS), + tmp_cnt); + + convert_num_unit((float)node_ptr->cores, tmp_cnt, UNIT_NONE); + add_display_treestore_line(update, treestore, &iter, + find_col_name(display_data_node, + SORTID_CORES), + tmp_cnt); + + convert_num_unit((float)node_ptr->sockets, tmp_cnt, UNIT_NONE); + add_display_treestore_line(update, treestore, &iter, + find_col_name(display_data_node, + SORTID_SOCKETS), + tmp_cnt); + + convert_num_unit((float)node_ptr->threads, tmp_cnt, UNIT_NONE); + add_display_treestore_line(update, treestore, &iter, + find_col_name(display_data_node, + SORTID_THREADS), + tmp_cnt); + convert_num_unit((float)node_ptr->real_memory, tmp_cnt, UNIT_MEGA); add_display_treestore_line(update, treestore, &iter, find_col_name(display_data_node, @@ -174,7 +210,13 @@ static void _update_node_record(node_info_t *node_ptr, gtk_tree_store_set(treestore, iter, SORTID_STATE_NUM, node_ptr->node_state, -1); gtk_tree_store_set(treestore, iter, SORTID_CPUS, node_ptr->cpus, -1); - + gtk_tree_store_set(treestore, iter, SORTID_USED_CPUS, + node_ptr->used_cpus, -1); + gtk_tree_store_set(treestore, iter, SORTID_CORES, node_ptr->cpus, -1); + gtk_tree_store_set(treestore, iter, SORTID_SOCKETS, + node_ptr->sockets, -1); + gtk_tree_store_set(treestore, iter, SORTID_THREADS, + node_ptr->threads, -1); convert_num_unit((float)node_ptr->real_memory, tmp_cnt, UNIT_MEGA); gtk_tree_store_set(treestore, iter, SORTID_MEMORY, tmp_cnt, -1); convert_num_unit((float)node_ptr->tmp_disk, tmp_cnt, UNIT_MEGA); @@ -400,7 +442,6 @@ extern List create_node_info_list(node_info_msg_t *node_info_ptr, int changed) sview_node_info_ptr = xmalloc(sizeof(sview_node_info_t)); list_append(info_list, sview_node_info_ptr); sview_node_info_ptr->node_ptr = node_ptr; - } update_color: diff --git a/src/sview/part_info.c b/src/sview/part_info.c index 0a672966b0f31d8afa3c73e35447f94a9912110b..47ce54d6057a9b54df76ccb3bdde9c30a45ff7cd 100644 --- a/src/sview/part_info.c +++ b/src/sview/part_info.c @@ -100,64 +100,64 @@ enum { }; static display_data_t display_data_part[] = { - {G_TYPE_INT, SORTID_POS, NULL, FALSE, -1, refresh_part}, - {G_TYPE_STRING, SORTID_NAME, "Partition", TRUE, -1, refresh_part, - create_model_part, admin_edit_part}, - {G_TYPE_STRING, SORTID_DEFAULT, "Default", TRUE, 0, refresh_part, - create_model_part, admin_edit_part}, - {G_TYPE_STRING, SORTID_HIDDEN, "Hidden", FALSE, 0, refresh_part, - create_model_part, admin_edit_part}, - {G_TYPE_STRING, SORTID_AVAIL, "Availablity", TRUE, 0, refresh_part, - create_model_part, admin_edit_part}, + {G_TYPE_INT, SORTID_POS, NULL, FALSE, EDIT_NONE, refresh_part}, + {G_TYPE_STRING, SORTID_NAME, "Partition", TRUE, + EDIT_NONE, refresh_part, create_model_part, admin_edit_part}, + {G_TYPE_STRING, SORTID_DEFAULT, "Default", TRUE, + EDIT_MODEL, refresh_part, create_model_part, admin_edit_part}, + {G_TYPE_STRING, SORTID_HIDDEN, "Hidden", FALSE, + EDIT_MODEL, refresh_part, create_model_part, admin_edit_part}, + {G_TYPE_STRING, SORTID_AVAIL, "Availablity", TRUE, + EDIT_MODEL, refresh_part, create_model_part, admin_edit_part}, {G_TYPE_STRING, SORTID_TIMELIMIT, "Time Limit", - TRUE, 1, refresh_part, create_model_part, admin_edit_part}, - {G_TYPE_STRING, SORTID_NODES, "Nodes", TRUE, -1, refresh_part, + TRUE, EDIT_TEXTBOX, refresh_part, create_model_part, admin_edit_part}, + {G_TYPE_STRING, SORTID_NODES, "Nodes", TRUE, EDIT_NONE, refresh_part, create_model_part, admin_edit_part}, - {G_TYPE_STRING, SORTID_STATE, "State", TRUE, 0, refresh_part, + {G_TYPE_STRING, SORTID_STATE, "State", TRUE, EDIT_MODEL, refresh_part, create_model_part, admin_edit_part}, #ifdef HAVE_BG - {G_TYPE_STRING, SORTID_NODELIST, "BP List", TRUE, 1, refresh_part, - create_model_part, admin_edit_part}, + {G_TYPE_STRING, SORTID_NODELIST, "BP List", TRUE, + EDIT_TEXTBOX, refresh_part, create_model_part, admin_edit_part}, #else - {G_TYPE_STRING, SORTID_NODELIST, "NodeList", TRUE, 1, refresh_part, - create_model_part, admin_edit_part}, + {G_TYPE_STRING, SORTID_NODELIST, "NodeList", TRUE, + EDIT_TEXTBOX, refresh_part, create_model_part, admin_edit_part}, #endif - {G_TYPE_STRING, SORTID_JOB_SIZE, "Job Size", FALSE, -1, refresh_part, - create_model_part, admin_edit_part}, - {G_TYPE_STRING, SORTID_MIN_NODES, "Min Nodes", FALSE, 1, refresh_part, - create_model_part, admin_edit_part}, - {G_TYPE_STRING, SORTID_MAX_NODES, "Max Nodes", FALSE, 1, refresh_part, - create_model_part, admin_edit_part}, - {G_TYPE_STRING, SORTID_ROOT, "Root", FALSE, 0, refresh_part, - create_model_part, admin_edit_part}, - {G_TYPE_STRING, SORTID_SHARE, "Share", FALSE, 0, refresh_part, - create_model_part, admin_edit_part}, - {G_TYPE_STRING, SORTID_GROUPS, "Groups", FALSE, 0, refresh_part, - create_model_part, admin_edit_part}, - {G_TYPE_STRING, SORTID_CPUS, "CPUs", FALSE, -1, refresh_part, - create_model_part, admin_edit_part}, - {G_TYPE_STRING, SORTID_TMP_DISK, "Temp Disk", FALSE, -1, refresh_part, - create_model_part, admin_edit_part}, - {G_TYPE_STRING, SORTID_MEM, "Memory", FALSE, -1, refresh_part, + {G_TYPE_STRING, SORTID_JOB_SIZE, "Job Size", FALSE, + EDIT_NONE, refresh_part, create_model_part, admin_edit_part}, + {G_TYPE_STRING, SORTID_MIN_NODES, "Min Nodes", FALSE, + EDIT_TEXTBOX, refresh_part, create_model_part, admin_edit_part}, + {G_TYPE_STRING, SORTID_MAX_NODES, "Max Nodes", FALSE, + EDIT_TEXTBOX, refresh_part, create_model_part, admin_edit_part}, + {G_TYPE_STRING, SORTID_ROOT, "Root", FALSE, EDIT_MODEL, refresh_part, create_model_part, admin_edit_part}, - {G_TYPE_STRING, SORTID_WEIGHT, "Weight", FALSE, -1, refresh_part, + {G_TYPE_STRING, SORTID_SHARE, "Share", FALSE, EDIT_MODEL, refresh_part, create_model_part, admin_edit_part}, - {G_TYPE_STRING, SORTID_FEATURES, "Features", FALSE, 1, refresh_part, + {G_TYPE_STRING, SORTID_GROUPS, "Groups", FALSE, + EDIT_TEXTBOX, refresh_part, create_model_part, admin_edit_part}, + {G_TYPE_STRING, SORTID_CPUS, "CPUs", FALSE, EDIT_NONE, refresh_part, create_model_part, admin_edit_part}, - {G_TYPE_STRING, SORTID_REASON, "Reason", FALSE, -1, refresh_part, + {G_TYPE_STRING, SORTID_TMP_DISK, "Temp Disk", FALSE, + EDIT_NONE, refresh_part, create_model_part, admin_edit_part}, + {G_TYPE_STRING, SORTID_MEM, "Memory", FALSE, EDIT_NONE, refresh_part, create_model_part, admin_edit_part}, - {G_TYPE_INT, SORTID_STATE_NUM, NULL, FALSE, -1, refresh_part, + {G_TYPE_STRING, SORTID_WEIGHT, "Weight", FALSE, + EDIT_NONE, refresh_part, create_model_part, admin_edit_part}, + {G_TYPE_STRING, SORTID_FEATURES, "Features", FALSE, + EDIT_TEXTBOX, refresh_part, create_model_part, admin_edit_part}, + {G_TYPE_STRING, SORTID_REASON, "Reason", FALSE, + EDIT_NONE, refresh_part, create_model_part, admin_edit_part}, + {G_TYPE_INT, SORTID_STATE_NUM, NULL, FALSE, EDIT_NONE, refresh_part, create_model_part, admin_edit_part}, - {G_TYPE_INT, SORTID_ONLY_LINE, NULL, FALSE, -1, refresh_part, + {G_TYPE_INT, SORTID_ONLY_LINE, NULL, FALSE, EDIT_NONE, refresh_part, create_model_part, admin_edit_part}, - {G_TYPE_INT, SORTID_UPDATED, NULL, FALSE, -1, refresh_part, + {G_TYPE_INT, SORTID_UPDATED, NULL, FALSE, EDIT_NONE, refresh_part, create_model_part, admin_edit_part}, - {G_TYPE_NONE, -1, NULL, FALSE, -1} + {G_TYPE_NONE, -1, NULL, FALSE, EDIT_NONE} }; static display_data_t options_data_part[] = { - {G_TYPE_INT, SORTID_POS, NULL, FALSE, -1}, + {G_TYPE_INT, SORTID_POS, NULL, FALSE, EDIT_NONE}, {G_TYPE_STRING, INFO_PAGE, "Full Info", TRUE, PART_PAGE}, #ifdef HAVE_BG {G_TYPE_STRING, PART_PAGE, "Drain Base Partitions", TRUE, ADMIN_PAGE}, @@ -186,7 +186,7 @@ static display_data_t options_data_part[] = { {G_TYPE_STRING, NODE_PAGE, "Nodes", TRUE, PART_PAGE}, #endif {G_TYPE_STRING, SUBMIT_PAGE, "Job Submit", FALSE, PART_PAGE}, - {G_TYPE_NONE, -1, NULL, FALSE, -1} + {G_TYPE_NONE, -1, NULL, FALSE, EDIT_NONE} }; #ifdef HAVE_BG @@ -537,7 +537,7 @@ static GtkWidget *_admin_full_edit_part(update_part_msg_t *part_msg, gtk_table_set_homogeneous(table, FALSE); for(i = 0; i < SORTID_CNT; i++) { - if(display_data_part[i].extra == 0) { + if(display_data_part[i].extra == EDIT_MODEL) { /* edittable items that can only be known values */ model2 = GTK_TREE_MODEL( @@ -564,7 +564,7 @@ static GtkWidget *_admin_full_edit_part(update_part_msg_t *part_msg, renderer, TRUE); gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(entry), renderer, "text", 0); - } else if(display_data_part[i].extra == 1) { + } else if(display_data_part[i].extra == EDIT_TEXTBOX) { /* other edittable items that are unknown */ entry = create_entry(); gtk_tree_model_get(model, iter, @@ -1533,6 +1533,8 @@ void _display_info_part(List info_list, popup_info_t *popup_win) //info = xstrdup("No pointer given!"); goto finished; } + if(!list_count(popup_win->grid_button_list)) + first_time = 1; need_refresh: if(!spec_info->display_widget) { diff --git a/src/sview/sview.h b/src/sview/sview.h index a8726955b6f38c08234375b34a87738d806914bd..ed58c5664fd758ccb8169f4c5163723aa5d30133 100644 --- a/src/sview/sview.h +++ b/src/sview/sview.h @@ -109,6 +109,11 @@ enum { DISPLAY_NAME, DISPLAY_VALUE }; +enum { EDIT_NONE, + EDIT_MODEL, + EDIT_TEXTBOX +}; + typedef enum { SEARCH_JOB_ID = 1, SEARCH_JOB_USER, SEARCH_JOB_STATE,