|  | /*****************************************************************************\ | 
|  | *  admin_info.c - Functions related to admin display | 
|  | *  mode of sview. | 
|  | ***************************************************************************** | 
|  | *  Copyright (C) 2004-2007 The Regents of the University of California. | 
|  | *  Copyright (C) 2008 Lawrence Livermore National Security. | 
|  | *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). | 
|  | *  Written by Danny Auble <da@llnl.gov> | 
|  | * | 
|  | *  CODE-OCEC-09-009. All rights reserved. | 
|  | * | 
|  | *  This file is part of Slurm, a resource management program. | 
|  | *  For details, see <https://slurm.schedmd.com/>. | 
|  | *  Please also read the included file: DISCLAIMER. | 
|  | * | 
|  | *  Slurm is free software; you can redistribute it and/or modify it under | 
|  | *  the terms of the GNU General Public License as published by the Free | 
|  | *  Software Foundation; either version 2 of the License, or (at your option) | 
|  | *  any later version. | 
|  | * | 
|  | *  Slurm is distributed in the hope that it will be useful, but WITHOUT ANY | 
|  | *  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS | 
|  | *  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more | 
|  | *  details. | 
|  | * | 
|  | *  You should have received a copy of the GNU General Public License along | 
|  | *  with Slurm; if not, write to the Free Software Foundation, Inc., | 
|  | *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA. | 
|  | \*****************************************************************************/ | 
|  |  | 
|  | #include "src/sview/sview.h" | 
|  |  | 
|  | #define _DEBUG 0 | 
|  |  | 
|  | enum { | 
|  | SORTID_POS = POS_LOC, | 
|  | SORTID_PARTITION, | 
|  | SORTID_AVAIL, | 
|  | SORTID_TIMELIMIT, | 
|  | SORTID_NODES, | 
|  | SORTID_NODELIST, | 
|  | SORTID_CNT | 
|  | }; | 
|  |  | 
|  | static display_data_t display_data_admin[] = { | 
|  | {G_TYPE_INT, SORTID_POS, NULL, false, -1}, | 
|  | {G_TYPE_STRING, SORTID_PARTITION, "PARTITION", true, -1}, | 
|  | {G_TYPE_STRING, SORTID_AVAIL, "AVAIL", true, -1}, | 
|  | {G_TYPE_STRING, SORTID_TIMELIMIT, "TIMELIMIT", true, -1}, | 
|  | {G_TYPE_STRING, SORTID_NODES, "NODES", true, -1}, | 
|  | {G_TYPE_STRING, SORTID_NODELIST, "NODELIST", true, -1}, | 
|  | {G_TYPE_NONE, -1, NULL, false, -1}}; | 
|  |  | 
|  | static display_data_t options_data_admin[] = { | 
|  | {G_TYPE_STRING, JOB_PAGE, "Jobs", true, -1}, | 
|  | {G_TYPE_STRING, NODE_PAGE, "Nodes", true, -1}, | 
|  | {G_TYPE_STRING, SUBMIT_PAGE, "Job Submit", true, -1}, | 
|  | {G_TYPE_NONE, -1, NULL, false, -1} | 
|  | }; | 
|  |  | 
|  | static display_data_t *local_display_data = NULL; | 
|  |  | 
|  | extern void get_info_admin(GtkTable *table, display_data_t *display_data) | 
|  | { | 
|  | local_display_data = display_data; | 
|  | } | 
|  |  | 
|  |  | 
|  | extern void set_menus_admin(void *arg, GtkTreePath *path, | 
|  | GtkMenu *menu, int type) | 
|  | { | 
|  | GtkTreeView *tree_view = (GtkTreeView *)arg; | 
|  | popup_info_t *popup_win = (popup_info_t *)arg; | 
|  | switch(type) { | 
|  | case TAB_CLICKED: | 
|  | make_fields_menu(NULL, menu, display_data_admin, SORTID_CNT); | 
|  | break; | 
|  | case ROW_CLICKED: | 
|  | make_options_menu(tree_view, path, menu, options_data_admin); | 
|  | break; | 
|  | case POPUP_CLICKED: | 
|  | make_fields_menu(popup_win, menu, | 
|  | popup_win->display_data, SORTID_CNT); | 
|  | break; | 
|  | default: | 
|  | g_error("UNKNOWN type %d given to set_fields\n", type); | 
|  | } | 
|  | } | 
|  |  | 
|  | extern void row_clicked_admin(GtkTreeView *tree_view, | 
|  | GtkTreePath *path, | 
|  | GtkTreeViewColumn *column, | 
|  | gpointer user_data) | 
|  | { | 
|  | int line = get_row_number(tree_view, path); | 
|  | GtkWidget *popup = NULL; | 
|  | GtkWidget *label = NULL; | 
|  | char *info = NULL; | 
|  | if (line == -1) { | 
|  | g_error("problem getting line number"); | 
|  | return; | 
|  | } | 
|  |  | 
|  | popup = gtk_dialog_new(); | 
|  |  | 
|  | gtk_window_set_type_hint(GTK_WINDOW(popup), | 
|  | GDK_WINDOW_TYPE_HINT_NORMAL); | 
|  | label = gtk_label_new(info); | 
|  | gtk_box_pack_end(GTK_BOX(GTK_DIALOG(popup)->vbox), | 
|  | label, true, true, 0); | 
|  | xfree(info); | 
|  | gtk_widget_show(label); | 
|  |  | 
|  | gtk_widget_show(popup); | 
|  |  | 
|  | } |