lists.php 4.17 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
#
# Copyright (c) 2000-2016 University of Utah and the Flux Group.
# 
# {{{EMULAB-LICENSE
# 
# This file is part of the Emulab network testbed software.
# 
# This file is free software: you can redistribute it and/or modify it
# under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or (at
# your option) any later version.
# 
# This file 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 Affero General Public
# License for more details.
# 
# You should have received a copy of the GNU Affero General Public License
# along with this file.  If not, see <http://www.gnu.org/licenses/>.
# 
# }}}
#
chdir("..");
include("defs.php3");
chdir("apt");
include("quickvm_sup.php");
# Must be after quickvm_sup.php since it changes the auth domain.
$page_title = "Ranking";

#
# Get current user.
#
RedirectSecure();
$this_user = CheckLoginOrRedirect();
$this_idx  = $this_user->uid_idx();
$this_uid  = $this_user->uid();

# Recent means current login or did something in last N days.
$days = 30;

#
# Verify page arguments.
#
SPITHEADER(1);

if (!ISADMIN()) {
    SPITUSERERROR("You do not have permission to view this information!");
    return;
}

echo "<link rel='stylesheet'
            href='css/tablesorter.css'>\n";

# Place to hang the toplevel template.
echo "<div id='main-body'></div>\n";

function SpitUserList($days)
{
    global $PORTAL_GENESIS, $APTHOST;
    
    $query_result =
        DBQueryFatal("(select distinct u.uid,u.usr_name,u.usr_affil ".
                     "   from login as l ".
                     " left join users as u on u.uid_idx=l.uid_idx ".
                     " where l.portal='$PORTAL_GENESIS' and ".
                     "       l.timeout > UNIX_TIMESTAMP(now())) ".
                     "union ".
                     " (select distinct u.uid,u.usr_name,u.usr_affil ".
                     "   from apt_instances as i ".
                     " left join users as u on u.uid_idx=i.creator_idx ".
                     " where i.servername='$APTHOST')");

    while ($row = mysql_fetch_array($query_result)) {
        $blob = array();
        $blob["usr_uid"]    = $row["uid"];
        $blob["usr_name"]   = $row["usr_name"];
        $blob["usr_affil"]  = $row["usr_affil"];
        $results[$row[0]] = $blob;
    }
    echo "<script type='text/plain' id='users-json'>\n";
    echo json_encode($results);
    echo "</script>\n";
}
Leigh B Stoller's avatar
Leigh B Stoller committed
85
function SpitProjectList($days)
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
{
    global $PORTAL_GENESIS, $APTHOST;
    
    $query_result =
        DBQueryFatal("(select distinct i.pid,u.uid,u.usr_name,u.usr_affil ".
                     "   from apt_instances as i ".
                     " left join projects as p on p.pid_idx=i.pid_idx ".
                     " left join users as u on u.uid_idx=p.head_idx ".
                     " where i.servername='$APTHOST') ".
                     "union ".
                     "(select distinct i.pid,u.uid,u.usr_name,u.usr_affil ".
                     "   from apt_instance_history as i ".
                     " left join projects as p on p.pid_idx=i.pid_idx ".
                     " left join users as u on u.uid_idx=p.head_idx ".
                     " where i.servername='$APTHOST' and ".
                     "       i.created>DATE_SUB(curdate(), INTERVAL 2 MONTH))");
                     
    $results = array();

    while ($row = mysql_fetch_array($query_result)) {
        $blob = array();
        $blob["usr_uid"]    = $row["uid"];
        $blob["usr_name"]   = $row["usr_name"];
        $blob["usr_affil"]  = $row["usr_affil"];
        $results[$row[0]] = $blob;
    }
    echo "<script type='text/plain' id='projects-json'>\n";
    echo json_encode($results);
    echo "</script>\n";
}
SpitUserList($days);
SpitProjectList($days);

SPITREQUIRE("lists",
            "<script src='js/lib/jquery.tablesorter.min.js'></script>".
            "<script src='js/lib/jquery.tablesorter.widgets.min.js'></script>".
            "<script src='js/lib/sugar.min.js'></script>".
            "<script src='js/lib/jquery.tablesorter.parser-date.js'></script>");
SPITFOOTER();
?>