version 1.125, 2013/05/15 17:47:57
|
version 1.128, 2013/05/19 15:48:51
|
Line 332 sub handler {
|
Line 332 sub handler {
|
} |
} |
&Apache::lontemplate::print_start_template($r,&mt('Personnel'),'LC_Box', |
&Apache::lontemplate::print_start_template($r,&mt('Personnel'),'LC_Box', |
'box_000_showpeople',$display); |
'box_000_showpeople',$display); |
$r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed)); |
$r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed,$crstype,\%syllabus)); |
&Apache::lontemplate::print_end_template($r); |
&Apache::lontemplate::print_end_template($r); |
} else { |
} else { |
unless ($hidepersonnel) { |
unless ($hidepersonnel) { |
&Apache::lontemplate::print_start_template($r,&mt('Personnel'),'LC_Box'); |
&Apache::lontemplate::print_start_template($r,&mt('Personnel'),'LC_Box'); |
$r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed)); |
$r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed,$crstype,\%syllabus)); |
&Apache::lontemplate::print_end_template($r); |
&Apache::lontemplate::print_end_template($r); |
} |
} |
} |
} |
} else { |
} else { |
unless ($hidepersonnel) { |
unless ($hidepersonnel) { |
$r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed)); |
$r->print(&get_personnel($r,$target,$cdom,$cnum,$allowed,$crstype,%syllabus)); |
} |
} |
} |
} |
# -------------------------------------------------------------- Announcements? |
# -------------------------------------------------------------- Announcements? |
Line 940 sub fields_check_uncheck {
|
Line 940 sub fields_check_uncheck {
|
} |
} |
|
|
sub get_personnel { |
sub get_personnel { |
my ($r,$target,$cdom,$cnum,$allowed) = @_; |
my ($r,$target,$cdom,$cnum,$allowed,$crstype,$syllabus) = @_; |
|
my (%hiddenroles,%hiddenusers); |
|
if (ref($syllabus) eq 'HASH') { |
|
if (ref($syllabus->{'personnel'}) eq 'HASH') { |
|
if ($syllabus->{'personnel'}{'hiderole'}) { |
|
map { $hiddenroles{$_} = 1; } split(/,/,$syllabus->{'personnel'}{'hiderole'}); |
|
} |
|
if ($syllabus->{'personnel'}{'hideuser'}) { |
|
map { $hiddenusers{$_} = 1; } split(/,/,$syllabus->{'personnel'}{'hideuser'}); |
|
} |
|
} |
|
} |
my $output; |
my $output; |
my %coursepersonnel=&Apache::lonnet::get_course_adv_roles($cdom.'/'.$cnum); |
my %coursepersonnel=&Apache::lonnet::get_course_adv_roles($cdom.'/'.$cnum,1); |
if ($target ne 'tex') { |
if ($target ne 'tex') { |
$r->print(&Apache::lonhtmlcommon::start_pick_box()); |
if ($allowed) { |
|
$r->print(&Apache::loncommon::start_data_table(). |
|
&Apache::loncommon::start_data_table_header_row(). |
|
'<th>'.&mt('Role hidden?').'</th><th>'.&mt('Role').'</th>'. |
|
'<th>'.&mt('Personnel (hidden if checked)').'</th>'. |
|
&Apache::loncommon::end_data_table_header_row()); |
|
} else { |
|
$r->print(&Apache::lonhtmlcommon::start_pick_box()); |
|
} |
} else { |
} else { |
$r->print('\begin{tabular}{|p{0.45\textwidth}|p{0.45\textwidth}|}\hline'); |
$r->print('\begin{tabular}{|p{0.45\textwidth}|p{0.45\textwidth}|}\hline'); |
} |
} |
my @personnel=sort(keys(%coursepersonnel)); |
my @personnel=sort(keys(%coursepersonnel)); |
my $lastpers=$personnel[$#personnel]; |
my $lastpers=$personnel[$#personnel]; |
foreach my $element (@personnel) { |
foreach my $element (@personnel) { |
|
unless ($allowed) { |
|
next if ($hiddenroles{$element}) |
|
} |
|
my ($role,$sec); |
|
if ($element =~ /:/) { |
|
($role,$sec) = split(/:/,$element); |
|
} else { |
|
$role = $element; |
|
} |
|
my $roletext = &Apache::lonnet::plaintext($role,$crstype); |
|
if ($sec) { |
|
$roletext .=' ('.&Apache::lonlocal::mt('Section [_1]',$sec).')'; |
|
} |
if ($target ne 'tex') { |
if ($target ne 'tex') { |
$r->print(&Apache::lonhtmlcommon::row_title($element)); |
if ($allowed) { |
|
my $checked; |
|
if ($hiddenroles{$element}) { |
|
$checked = ' checked="checked"'; |
|
} |
|
$r->print(&Apache::loncommon::start_data_table_row(). |
|
'<td>'. |
|
'<input type="checkbox" name="hiderole" value="'.$element.'" '. |
|
$checked.' />'. |
|
'</td><td>'.$roletext.'</td><td>'); |
|
} else { |
|
$r->print(&Apache::lonhtmlcommon::row_title($roletext)); |
|
} |
} else { |
} else { |
$r->print(' '.&Apache::lonxml::xmlparse($r,'tex',$element).' & '); |
$r->print(' '.&Apache::lonxml::xmlparse($r,'tex',$roletext).' & '); |
} |
} |
my @coursepersonlist; |
my @coursepersonlist; |
foreach my $user (split(/\,/,$coursepersonnel{$element})) { |
foreach my $user (split(/\,/,$coursepersonnel{$element})) { |
my ($puname,$pudom)=split(/\:/,$user); |
my ($puname,$pudom)=split(/\:/,$user); |
if ($target ne 'tex') { |
if ($target ne 'tex') { |
my $courseperson = &Apache::loncommon::plainname($puname,$pudom); |
my $courseperson = &Apache::loncommon::plainname($puname,$pudom); |
if (($env{'user.name'} eq '') || ($env{'user.name'} eq 'public') || |
my $checked; |
($env{'user.domain'} eq '') || ($env{'user.domain'} eq 'public')) { |
if ($hiddenusers{$element.'&'.$puname.':'.$pudom}) { |
push(@coursepersonlist,$courseperson); |
$checked = ' checked="checked"'; |
|
} |
|
if ($allowed) { |
|
my $item = '<span class="LC_nobreak"><label>'. |
|
'<input type="checkbox" name="hideuser" value="'.$element.'&'.$puname.':'.$pudom.'"'.$checked.' />'. |
|
&Apache::loncommon::aboutmewrapper($courseperson |
|
, |
|
$puname,$pudom). |
|
'</label>'.(' 'x2).'</span> '; |
|
push(@coursepersonlist,$item); |
|
|
} else { |
} else { |
push(@coursepersonlist,&Apache::loncommon::aboutmewrapper($courseperson, |
next if ($hiddenusers{$element.'&'.$puname.':'.$pudom}); |
$puname,$pudom)); |
if (($env{'user.name'} eq '') || ($env{'user.name'} eq 'public') || |
|
($env{'user.domain'} eq '') || ($env{'user.domain'} eq 'public')) { |
|
push(@coursepersonlist,$courseperson); |
|
} else { |
|
push(@coursepersonlist,&Apache::loncommon::aboutmewrapper($courseperson, |
|
$puname,$pudom)); |
|
} |
} |
} |
} else { |
} else { |
push(@coursepersonlist,&Apache::loncommon::plainname($puname, |
push(@coursepersonlist,&Apache::loncommon::plainname($puname, |
$pudom).' '); |
$pudom).' '); |
} |
} |
} |
} |
$r->print(join(", ",@coursepersonlist)); |
if ($allowed) { |
|
$r->print(join('',@coursepersonlist)); |
|
} else { |
|
$r->print(join(', ',@coursepersonlist)); |
|
} |
if ($target ne 'tex') { |
if ($target ne 'tex') { |
my $lastclose=$element eq $lastpers?1:0; |
if ($allowed) { |
$r->print(&Apache::lonhtmlcommon::row_closure($lastclose)); |
$r->print(&Apache::loncommon::end_data_table_row()); |
|
} else { |
|
my $lastclose=$element eq $lastpers?1:0; |
|
$r->print(&Apache::lonhtmlcommon::row_closure($lastclose)); |
|
} |
} else { |
} else { |
$r->print('\\\\ \hline'); |
$r->print('\\\\ \hline'); |
} |
} |
} |
} |
if ($target ne 'tex') { |
if ($target ne 'tex') { |
$r->print(&Apache::lonhtmlcommon::end_pick_box()); |
if ($allowed) { |
|
$r->print(&Apache::loncommon::end_data_table()); |
|
} else { |
|
$r->print(&Apache::lonhtmlcommon::end_pick_box()); |
|
} |
} else { |
} else { |
$r->print('\end{tabular}\\\\'); |
$r->print('\end{tabular}\\\\'); |
} |
} |
Line 995 sub save_changes {
|
Line 1067 sub save_changes {
|
unless ((ref($syllabus) eq 'HASH') && (ref($syllabusfields) eq 'HASH')) { |
unless ((ref($syllabus) eq 'HASH') && (ref($syllabusfields) eq 'HASH')) { |
return ($earlyout,$uploaded,$external,$minimal,$output); |
return ($earlyout,$uploaded,$external,$minimal,$output); |
} |
} |
if ($env{'form.deleteuploaded'}) { |
if (($env{'form.deleteuploaded_file'}) || ($env{'form.deleteuploaded_minimal'})) { |
my %storehash; |
my %storehash; |
if (($env{'form.choice'} eq 'file') && |
if (($env{'form.choice'} eq 'file') && |
($env{'form.deleteuploaded'} eq 'file') && ($uploaded =~ /\w/)) { |
($env{'form.deleteuploaded_file'}) && ($uploaded =~ /\w/)) { |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.uploadedsyllabus'); |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.uploadedsyllabus'); |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.externalsyllabus'); |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.externalsyllabus'); |
$storehash{'uploadedsyllabus'} = ''; |
$storehash{'uploadedsyllabus'} = ''; |
Line 1007 sub save_changes {
|
Line 1079 sub save_changes {
|
undef($uploaded); |
undef($uploaded); |
undef($external); |
undef($external); |
} elsif (($env{'form.choice'} eq 'minimal') && |
} elsif (($env{'form.choice'} eq 'minimal') && |
($env{'form.deleteuploaded'} eq 'minimal') && ($minimal =~ /\w/)) { |
($env{'form.deleteuploaded_minimal'}) && ($minimal =~ /\w/)) { |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.externalsyllabus'); |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.externalsyllabus'); |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.minimalsyllabus'); |
&Apache::lonnet::delenv('course.'.$env{'request.course.id'}.'.minimalsyllabus'); |
$storehash{'externalsyllabus'} = ''; |
$storehash{'externalsyllabus'} = ''; |
Line 1030 sub save_changes {
|
Line 1102 sub save_changes {
|
my ($prefix) = split(/_/,$field); |
my ($prefix) = split(/_/,$field); |
$syllabus->{'uploaded.fields'} .= $prefix.','; |
$syllabus->{'uploaded.fields'} .= $prefix.','; |
} |
} |
|
if ($field eq '000_showpeople') { |
|
my @hideusers = &Apache::loncommon::get_env_multiple('form.hideuser'); |
|
my @hideroles = &Apache::loncommon::get_env_multiple('form.hiderole'); |
|
my %coursepersonnel=&Apache::lonnet::get_course_adv_roles($cdom.'/'.$cnum,1); |
|
my %personnel; |
|
foreach my $key (keys(%coursepersonnel)) { |
|
map { $personnel{$key}{$_} = 1; } split(/,/,$coursepersonnel{$key}); |
|
} |
|
%{$syllabus->{'personnel'}} = (); |
|
$syllabus->{'personnel'}{'hideuser'} = ''; |
|
$syllabus->{'personnel'}{'hiderole'} = ''; |
|
foreach my $role (@hideroles) { |
|
if (exists($personnel{$role})) { |
|
$syllabus->{'personnel'}{'hiderole'} .= $role.','; |
|
} |
|
} |
|
foreach my $item (@hideusers) { |
|
my ($role,$user) = split(/\&/,$item); |
|
if (ref($personnel{$role}) eq 'HASH') { |
|
if ($personnel{$role}{$user}) { |
|
$syllabus->{'personnel'}{'hideuser'} .= $item.','; |
|
} |
|
} |
|
} |
|
$syllabus->{'personnel'}{'hideuser'} =~ s/,$//; |
|
$syllabus->{'personnel'}{'hiderole'} =~ s/,$//; |
|
} |
} |
} |
$syllabus->{'uploaded.fields'} =~ s/,$//; |
$syllabus->{'uploaded.fields'} =~ s/,$//; |
} |
} |
Line 1428 sub editfile_button {
|
Line 1527 sub editfile_button {
|
} |
} |
$output .= ' |
$output .= ' |
<input type="button" value="'.$deltext.'" onclick="javascript:dodelete('."'$context'".');" name="del_'.$context.'" /> |
<input type="button" value="'.$deltext.'" onclick="javascript:dodelete('."'$context'".');" name="del_'.$context.'" /> |
<input type="hidden" value="" name="deleteuploaded" /> |
<input type="hidden" value="" name="deleteuploaded_'.$context.'" id="deleteuploaded_'.$context.'" /> |
'; |
'; |
return $output; |
return $output; |
} |
} |
|
|
sub editbutton_js { |
sub editbutton_js { |
|
my %lt = &Apache::lonlocal::texthash( |
|
min => 'Are you sure you want to delete the contents of the syllabus template?', |
|
file => 'Are you sure you want to delete the uploaded syllabus file?', |
|
noundo => 'This action cannot be reversed.' |
|
); |
return <<ENDJS; |
return <<ENDJS; |
<script type="text/javascript"> |
<script type="text/javascript"> |
// <![CDATA[ |
// <![CDATA[ |
Line 1441 sub editbutton_js {
|
Line 1545 sub editbutton_js {
|
document.location.href = url+'?editmode=1&forceedit=1'; |
document.location.href = url+'?editmode=1&forceedit=1'; |
} |
} |
function dodelete(caller,url) { |
function dodelete(caller,url) { |
document.syllabus.deleteuploaded.value=caller; |
if (document.getElementById('deleteuploaded_'+caller)) { |
document.syllabus.submit(); |
document.getElementById('deleteuploaded_'+caller).value=1; |
|
if (caller == 'minimal') { |
|
if (confirm("$lt{'min'}"+"\\n"+"$lt{'noundo'}")) { |
|
document.syllabus.submit(); |
|
} |
|
} |
|
if (caller == 'file') { |
|
if (confirm("$lt{'file'}"+"\\n"+"$lt{'noundo'}")) { |
|
document.syllabus.submit(); |
|
} |
|
} |
|
} |
|
return; |
} |
} |
// ]]> |
// ]]> |
</script> |
</script> |