Annotation of loncom/interface/lonblockingstatus.pm, revision 1.5
1.1 droeschl 1: # The LearningOnline Network with CAPA
2: # displays the blocking status table
3: #
1.3 kalberla 4: # $Id: lonblockingstatus.pm,v 1.2 2009/07/09 12:53:28 kalberla Exp $
1.1 droeschl 5: #
6: # Copyright Michigan State University Board of Trustees
7: #
8: # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
9: #
10: # LON-CAPA is free software; you can redistribute it and/or modify
11: # it under the terms of the GNU General Public License as published by
12: # the Free Software Foundation; either version 2 of the License, or
13: # (at your option) any later version.
14: #
15: # LON-CAPA is distributed in the hope that it will be useful,
16: # but WITHOUT ANY WARRANTY; without even the implied warranty of
17: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18: # GNU General Public License for more details.
19: #
20: # You should have received a copy of the GNU General Public License
21: # along with LON-CAPA; if not, write to the Free Software
22: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23: #
24: # /home/httpd/html/adm/gpl.txt
25: #
26: # http://www.lon-capa.org/
27: #
28: #
29: package Apache::lonblockingstatus;
30:
31: use strict;
32: use Apache::Constants qw(:common);
33: use Apache::loncommon();
1.3 kalberla 34: use Apache::lonnet;
35: use GDBM_File;
36: use POSIX qw(strftime mktime);
37: use Apache::lonmenu();
38: use Apache::lonenc();
39: use Apache::lonlocal;
40: use Apache::lonnet();
41: use HTML::Entities;
42: use Apache::lonhtmlcommon();
43: use Apache::loncoursedata();
44: use Apache::lontexconvert();
45: use Apache::lonclonecourse();
46: use LONCAPA qw(:DEFAULT :match);
47: use DateTime::TimeZone;
48: use DateTime::Locale::Catalog;
1.1 droeschl 49:
50: sub handler {
51: my $r = shift;
52: Apache::loncommon::no_cache($r);
53: Apache::loncommon::content_type($r,'text/html');
54: $r->send_http_header;
55: return OK if $r->header_only;
56:
57: $r->print(
58: Apache::loncommon::start_page(
59: 'Communication Blocking Status Information',
60: undef, {'only_body' => 1, }));
1.3 kalberla 61: Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['activity']);
1.5 ! kalberla 62: my $blocktext = get_blocking_table($env{'form.activity'});
1.2 kalberla 63: $r->print($blocktext);
1.1 droeschl 64:
65: $r->print(Apache::loncommon::end_page());
66: return OK;
67: }
1.5 ! kalberla 68: sub get_blocking_table{
1.4 kalberla 69: my ($activity,$uname,$udom) = @_;
70: my %setters;
71: my ($blocked,$output,$ownitem,$is_course);
72: my ($startblock,$endblock)=&Apache::loncommon::blockcheck(\%setters,$activity,$uname,$udom);
73: if ($startblock && $endblock) {
74: $blocked = 1;
75: my $category;
76: if ($activity eq 'boards') {
77: $category = 'Discussion posts in this course';
78: } elsif ($activity eq 'chat') {
79: $category = 'Chat';
80: } elsif ($activity eq 'msgdisplay') {
81: $category = 'This message';
82: } elsif ($activity eq 'blogs') {
83: $category = 'Blogs';
84: } elsif ($activity eq 'port') {
85: if (defined($uname) && defined($udom)) {
86: if ($uname eq $env{'user.name'} &&
87: $udom eq $env{'user.domain'}) {
88: $ownitem = 1;
89: }
90: }
91: $is_course = &Apache::lonnet::is_course($udom,$uname);
92: if ($ownitem) {
93: $category = 'Your portfolio files';
94: } elsif ($is_course) {
95: my $coursedesc;
96: foreach my $course (keys(%setters)) {
97: my %courseinfo =
98: &Apache::lonnet::coursedescription($course);
99: $coursedesc = $courseinfo{'description'};
100: }
101: $category = "Group portfolio in the course '$coursedesc'";
102: } else {
103: $category = 'Portfolio files belonging to ';
104: if ($env{'user.name'} eq 'public' &&
105: $env{'user.domain'} eq 'public') {
106: $category .= &plainname($uname,$udom);
107: } else {
108: $category .= &aboutmewrapper(&plainname($uname,$udom),$uname,$udom);
109: }
110: }
111: } elsif ($activity eq 'groups') {
112: $category = 'Groups in this course';
113: } else {
114: $category = 'Communication';
115: }
116: my $showstart = &Apache::lonlocal::locallocaltime($startblock);
117: my $showend = &Apache::lonlocal::locallocaltime($endblock);
118: $output = '<br />'.&mt('[_1] will be inaccessible between [_2] and [_3] because communication is being blocked.',$category,$showstart,$showend).'<br />';
119: if (!($activity eq 'port' && !($ownitem) && !($is_course))) {
1.5 ! kalberla 120: $output .= build_block_table($startblock,$endblock,\%setters);
1.4 kalberla 121: }
122: }
1.5 ! kalberla 123: return $output;
! 124: }
! 125:
! 126: sub build_block_table {
! 127: my ($startblock,$endblock,$setters) = @_;
! 128: my %lt = &Apache::lonlocal::texthash(
! 129: 'cacb' => 'Currently active communication blocks',
! 130: 'cour' => 'Course',
! 131: 'dura' => 'Duration',
! 132: 'blse' => 'Block set by'
! 133: );
! 134: my $output;
! 135: $output = '<br />'.$lt{'cacb'}.':<br />';
! 136: $output .= Apache::loncommon::start_data_table();
! 137: $output .= '
! 138: <tr>
! 139: <th>'.$lt{'cour'}.'</th>
! 140: <th>'.$lt{'dura'}.'</th>
! 141: <th>'.$lt{'blse'}.'</th>
! 142: </tr>
! 143: ';
! 144: foreach my $course (keys(%{$setters})) {
! 145: my %courseinfo=&Apache::lonnet::coursedescription($course);
! 146: for (my $i=0; $i<@{$$setters{$course}{staff}}; $i++) {
! 147: my ($uname,$udom) = @{$$setters{$course}{staff}[$i]};
! 148: my $fullname = Apache::loncommon::plainname($uname,$udom);
! 149: if (defined($env{'user.name'}) && defined($env{'user.domain'})
! 150: && $env{'user.name'} ne 'public'
! 151: && $env{'user.domain'} ne 'public') {
! 152: $fullname = Apache::loncommon::aboutmewrapper($fullname,$uname,$udom);
! 153: }
! 154: my ($openblock,$closeblock) = @{$$setters{$course}{times}[$i]};
! 155: $openblock = &Apache::lonlocal::locallocaltime($openblock);
! 156: $closeblock= &Apache::lonlocal::locallocaltime($closeblock);
! 157: $output .= &Apache::loncommon::start_data_table_row().
! 158: '<td>'.$courseinfo{'description'}.'</td>'.
! 159: '<td>'.$openblock.' to '.$closeblock.'</td>'.
! 160: '<td>'.$fullname.'</td>'.
! 161: &Apache::loncommon::end_data_table_row();
! 162: }
! 163: }
! 164: $output .= Apache::loncommon::end_data_table();
1.4 kalberla 165: }
1.1 droeschl 166:
167: 1;
168: __END__
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>