version 1.49.2.26, 2021/12/12 21:52:15
|
version 1.77, 2016/03/23 02:19:09
|
Line 137 whether Domain coordinators who are curr
|
Line 137 whether Domain coordinators who are curr
|
advanced course user .db file for a course are to be hidden (e.g., |
advanced course user .db file for a course are to be hidden (e.g., |
in syllabus, or from course user lists). |
in syllabus, or from course user lists). |
|
|
Inputs: $cdom,$item,$settings,$crstype,$noedit |
Inputs: $cdom,$item,$settings,$crstype |
where $cdom is course domain, item is nothideprivileged, $settings is |
where $cdom is course domain, item is nothideprivileged, $settings is |
HASH ref of the current values for nothideprivileged, $crstype is |
HASH ref of the current values for nothideprivileged, $crstype is |
course type (Course or Community). |
course type (Course or Community). |
Line 235 sub handler {
|
Line 235 sub handler {
|
my $cid = $env{'request.course.id'}; |
my $cid = $env{'request.course.id'}; |
my ($cnum,$cdom,$chome) = &get_course($cid); |
my ($cnum,$cdom,$chome) = &get_course($cid); |
my $crstype = &Apache::loncommon::course_type(); |
my $crstype = &Apache::loncommon::course_type(); |
my ($parm_permission,$allowed) = &get_permission($cid); |
my $parm_permission = &Apache::lonnet::allowed('opa',$cid); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
my $navmap = Apache::lonnavmaps::navmap->new(); |
if ($allowed && $navmap) { |
if ($parm_permission && $navmap) { |
&Apache::loncommon::content_type($r,'text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_http_header; |
$r->send_http_header; |
} else { |
} else { |
Line 310 sub handler {
|
Line 310 sub handler {
|
idnu => 'Course ID or number', |
idnu => 'Course ID or number', |
unco => 'Unique code', |
unco => 'Unique code', |
desc => 'Course Description', |
desc => 'Course Description', |
cred => 'Student credits', |
cred => 'Student credits', |
ownr => 'Course Owner', |
ownr => 'Course Owner', |
cown => 'Course Co-owners', |
cown => 'Course Co-owners', |
catg => 'Categorize course', |
catg => 'Categorize course', |
Line 344 sub handler {
|
Line 344 sub handler {
|
$phase = $env{'form.phase'}; |
$phase = $env{'form.phase'}; |
} |
} |
|
|
if (($phase eq 'categorizecourse') && ($parm_permission->{'categorizecourse'})) { |
if ($phase eq 'categorizecourse') { |
&assign_course_categories($r,$crstype); |
&assign_course_categories($r,$crstype); |
return OK; |
return OK; |
} |
} |
|
|
if (($phase eq 'releaseinfo') && ($parm_permission->{'releaseinfo'})) { |
if ($phase eq 'releaseinfo') { |
my $loncaparev = $env{'course.'.$cid.'.internal.releaserequired'}; |
my $loncaparev = $env{'course.'.$cid.'.internal.releaserequired'}; |
if ($loncaparev) { |
if ($loncaparev) { |
if (&display_loncaparev_constraints($r,$navmap,$loncaparev,$crstype)) { |
if (&display_loncaparev_constraints($r,$navmap,$loncaparev,$crstype)) { |
Line 375 sub handler {
|
Line 375 sub handler {
|
help => 'Course_Prefs_General', |
help => 'Course_Prefs_General', |
ordered => ['owner','co-owners','loncaparev','description', |
ordered => ['owner','co-owners','loncaparev','description', |
'clonedfrom','courseid','uniquecode','categories', |
'clonedfrom','courseid','uniquecode','categories', |
'hidefromcat','syllabus','cloners','url', |
'hidefromcat','externalsyllabus','cloners','url', |
'rolenames'], |
'rolenames'], |
itemtext => { |
itemtext => { |
'owner' => $lt{'ownr'}, |
'owner' => $lt{'ownr'}, |
'co-owners' => $lt{'cown'}, |
'co-owners' => $lt{'cown'}, |
'description' => $lt{'desc'}, |
'description' => $lt{'desc'}, |
'courseid' => $lt{'idnu'}, |
'courseid' => $lt{'idnu'}, |
'uniquecode' => $lt{'unco'}, |
'uniquecode' => $lt{'unco'}, |
'categories' => $lt{'catg'}, |
'categories' => $lt{'catg'}, |
'hidefromcat' => $lt{'excc'}, |
'hidefromcat' => $lt{'excc'}, |
'cloners' => $lt{'clon'}, |
'cloners' => $lt{'clon'}, |
'syllabus' => 'Syllabus status', |
'externalsyllabus' => 'Syllabus status', |
'url' => 'Top Level Map', |
'url' => 'Top Level Map', |
'rolenames' => $lt{'rept'}, |
'rolenames' => $lt{'rept'}, |
'loncaparev' => $lt{'lcrv'}, |
'loncaparev' => $lt{'lcrv'}, |
Line 419 sub handler {
|
Line 419 sub handler {
|
{ text => 'Discussion and Chat', |
{ text => 'Discussion and Chat', |
help => 'Course_Prefs_Discussions', |
help => 'Course_Prefs_Discussions', |
ordered => ['pch.roles.denied','pch.users.denied', |
ordered => ['pch.roles.denied','pch.users.denied', |
|
'pac.roles.denied','pac.users.denied', |
'plc.roles.denied','plc.users.denied', |
'plc.roles.denied','plc.users.denied', |
'allow_limited_html_in_feedback', |
'allow_limited_html_in_feedback', |
'allow_discussion_post_editing', |
'allow_discussion_post_editing', |
Line 428 sub handler {
|
Line 429 sub handler {
|
'pch.users.denied' => 'No Resource Discussion', |
'pch.users.denied' => 'No Resource Discussion', |
'plc.roles.denied' => 'No Chat room use', |
'plc.roles.denied' => 'No Chat room use', |
'plc.users.denied' => 'No Chat room use', |
'plc.users.denied' => 'No Chat room use', |
|
'pac.roles.denied' => 'No Anonymous Resource Discussion', |
|
'pac.users.denied' => 'No Anonymous Resource Discussion', |
allow_limited_html_in_feedback => 'Allow limited HTML in discussion', |
allow_limited_html_in_feedback => 'Allow limited HTML in discussion', |
allow_discussion_post_editing => 'Users can edit/delete own discussion posts', |
allow_discussion_post_editing => 'Users can edit/delete own discussion posts', |
discussion_post_fonts => 'Discussion post fonts based on likes/unlikes', |
discussion_post_fonts => 'Discussion post fonts based on likes/unlikes', |
}, |
}, |
}, |
}, |
'classlists' => |
'classlists' => |
Line 493 sub handler {
|
Line 496 sub handler {
|
help => 'Course_Prefs_Printouts', |
help => 'Course_Prefs_Printouts', |
ordered => ['problem_stream_switch','suppress_tries', |
ordered => ['problem_stream_switch','suppress_tries', |
'default_paper_size','print_header_format', |
'default_paper_size','print_header_format', |
'disableexampointprint'], |
'disableexampointprint','canuse_pdfforms'], |
itemtext => { |
itemtext => { |
problem_stream_switch => 'Allow problems to be split over pages', |
problem_stream_switch => 'Allow problems to be split over pages', |
suppress_tries => 'Suppress number of tries in printing', |
suppress_tries => 'Suppress number of tries in printing', |
Line 535 sub handler {
|
Line 538 sub handler {
|
}], |
}], |
}, |
}, |
); |
); |
if (($phase eq 'process') && ($parm_permission->{'process'})) { |
if ($phase eq 'process') { |
my @allitems = &get_allitems(%prefs); |
my @allitems = &get_allitems(%prefs); |
&Apache::lonconfigsettings::make_changes($r,$cdom,$phase,$context, |
&Apache::lonconfigsettings::make_changes($r,$cdom,$phase,$context, |
\@prefs_order,\%prefs,\%values, |
\@prefs_order,\%prefs,\%values, |
$cnum,undef,\@allitems, |
$cnum,undef,\@allitems,'coursepref'); |
'coursepref',$parm_permission); |
} elsif ($phase eq 'display') { |
} elsif (($phase eq 'display') && ($parm_permission->{'display'})) { |
|
my $jscript = &get_jscript($cid,$cdom,$phase,$crstype,\%values); |
my $jscript = &get_jscript($cid,$cdom,$phase,$crstype,\%values); |
my @allitems = &get_allitems(%prefs); |
my @allitems = &get_allitems(%prefs); |
&Apache::lonconfigsettings::display_settings($r,$cdom,$phase,$context, |
&Apache::lonconfigsettings::display_settings($r,$cdom,$phase,$context, |
\@prefs_order,\%prefs,\%values,undef,$jscript,\@allitems,$crstype, |
\@prefs_order,\%prefs,\%values,undef,$jscript,\@allitems,$crstype,'coursepref'); |
'coursepref',$parm_permission); |
|
} else { |
} else { |
&Apache::lonconfigsettings::display_choices($r,$phase,$context, |
&Apache::lonconfigsettings::display_choices($r,$phase,$context, |
\@prefs_order,\%prefs, |
\@prefs_order,\%prefs,'coursepref'); |
'coursepref',$parm_permission); |
|
} |
} |
return OK; |
return OK; |
} |
} |
|
|
sub get_permission { |
|
my ($cid) = @_; |
|
my %permission; |
|
my $allowed = 0; |
|
return (\%permission,$allowed) unless ($cid); |
|
if (&Apache::lonnet::allowed('opa',$cid)) { |
|
%permission= ( |
|
'pickactions' => 1, |
|
'categorizecourse' => 1, |
|
'releaseinfo' => 1, |
|
'process' => 1, |
|
'display' => 1, |
|
); |
|
} elsif (&Apache::lonnet::allowed('vpa',$env{'request.course.id'})) { |
|
%permission = ( |
|
'pickactions' => 1, |
|
'releaseinfo' => 1, |
|
'display' => 1, |
|
); |
|
} |
|
foreach my $perm (values(%permission)) { |
|
if ($perm) { $allowed=1; last; } |
|
} |
|
return (\%permission,$allowed); |
|
} |
|
|
|
sub get_allitems { |
sub get_allitems { |
my (%prefs) = @_; |
my (%prefs) = @_; |
my @allitems; |
my @allitems; |
Line 598 sub get_allitems {
|
Line 572 sub get_allitems {
|
} |
} |
|
|
sub print_config_box { |
sub print_config_box { |
my ($r,$cdom,$phase,$action,$item,$settings,$allitems,$crstype,$parm_permission) = @_; |
my ($r,$cdom,$phase,$action,$item,$settings,$allitems,$crstype) = @_; |
my $ordered = $item->{'ordered'}; |
my $ordered = $item->{'ordered'}; |
my $itemtext = $item->{'itemtext'}; |
my $itemtext = $item->{'itemtext'}; |
my $noedit; |
|
if (ref($parm_permission) eq 'HASH') { |
|
unless ($parm_permission->{'process'}) { |
|
$noedit = 1; |
|
} |
|
} |
|
my $rowtotal = 0; |
my $rowtotal = 0; |
my $output = |
my $output = |
'<table class="LC_nested_outer"> |
'<table class="LC_nested_outer"> |
Line 641 sub print_config_box {
|
Line 609 sub print_config_box {
|
} |
} |
$rowtotal ++; |
$rowtotal ++; |
if ($action eq 'feedback') { |
if ($action eq 'feedback') { |
$output .= &print_feedback('top',$cdom,$settings,$ordered,$itemtext,\$rowtotal,$noedit); |
$output .= &print_feedback('top',$cdom,$settings,$ordered,$itemtext,\$rowtotal); |
} elsif ($action eq 'classlists') { |
} elsif ($action eq 'classlists') { |
$output .= &print_classlists('top',$cdom,$settings,$itemtext,\$rowtotal,$crstype,$noedit); |
$output .= &print_classlists('top',$cdom,$settings,$itemtext,\$rowtotal,$crstype); |
} |
} |
$output .= ' |
$output .= ' |
</table> |
</table> |
Line 664 sub print_config_box {
|
Line 632 sub print_config_box {
|
$output .= &mt($item->{'header'}->[1]->{'col2'}).'</td> |
$output .= &mt($item->{'header'}->[1]->{'col2'}).'</td> |
</tr>'; |
</tr>'; |
if ($action eq 'classlists') { |
if ($action eq 'classlists') { |
$output .= &print_classlists('middle',$cdom,$settings,$itemtext,\$rowtotal,$crstype,$noedit). |
$output .= &print_classlists('middle',$cdom,$settings,$itemtext,\$rowtotal,$crstype). |
' |
' |
</table> |
</table> |
</td> |
</td> |
Line 703 sub print_config_box {
|
Line 671 sub print_config_box {
|
} |
} |
$rowtotal ++; |
$rowtotal ++; |
if ($action eq 'courseinfo') { |
if ($action eq 'courseinfo') { |
$output .= &print_courseinfo($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit); |
$output .= &print_courseinfo($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype); |
} elsif ($action eq 'localization') { |
} elsif ($action eq 'localization') { |
$output .= &print_localization($cdom,$settings,$ordered,$itemtext,\$rowtotal,$noedit); |
$output .= &print_localization($cdom,$settings,$ordered,$itemtext,\$rowtotal); |
} elsif ($action eq 'feedback') { |
} elsif ($action eq 'feedback') { |
$output .= &print_feedback('bottom',$cdom,$settings,$ordered,$itemtext,\$rowtotal,$noedit); |
$output .= &print_feedback('bottom',$cdom,$settings,$ordered,$itemtext,\$rowtotal); |
} elsif ($action eq 'discussion') { |
} elsif ($action eq 'discussion') { |
$output .= &print_discussion($cdom,$settings,$ordered,$itemtext,\$rowtotal,$noedit); |
$output .= &print_discussion($cdom,$settings,$ordered,$itemtext,\$rowtotal); |
} elsif (($action eq 'classlists') || ($action eq 'viewableroster')) { |
} elsif (($action eq 'classlists') || ($action eq 'viewableroster')) { |
$output .= &print_classlists('bottom',$cdom,$settings,$itemtext,\$rowtotal,$crstype,$noedit); |
$output .= &print_classlists('bottom',$cdom,$settings,$itemtext,\$rowtotal,$crstype); |
} elsif ($action eq 'appearance') { |
} elsif ($action eq 'appearance') { |
$output .= &print_appearance($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit); |
$output .= &print_appearance($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype); |
} elsif ($action eq 'grading') { |
} elsif ($action eq 'grading') { |
$output .= &print_grading($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit); |
$output .= &print_grading($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype); |
} elsif ($action eq 'printouts') { |
} elsif ($action eq 'printouts') { |
$output .= &print_printouts($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit); |
$output .= &print_printouts($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype); |
} elsif ($action eq 'spreadsheet') { |
} elsif ($action eq 'spreadsheet') { |
$output .= &print_spreadsheet($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit); |
$output .= &print_spreadsheet($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype); |
} elsif ($action eq 'bridgetasks') { |
} elsif ($action eq 'bridgetasks') { |
$output .= &print_bridgetasks($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype,$noedit); |
$output .= &print_bridgetasks($cdom,$settings,$ordered,$itemtext,\$rowtotal,$crstype); |
} elsif ($action eq 'other') { |
} elsif ($action eq 'other') { |
$output .= &print_other($cdom,$settings,$allitems,\$rowtotal,$crstype,$noedit); |
$output .= &print_other($cdom,$settings,$allitems,\$rowtotal,$crstype); |
} |
} |
$output .= ' |
$output .= ' |
</table> |
</table> |
Line 763 sub process_changes {
|
Line 731 sub process_changes {
|
(!$can_categorize)); |
(!$can_categorize)); |
next if (($entry eq 'loncaparev') || |
next if (($entry eq 'loncaparev') || |
($entry eq 'owner') || |
($entry eq 'owner') || |
($entry eq 'clonedfrom') || |
($entry eq 'clonedfrom')); |
($entry eq 'syllabus')); |
|
push(@ordered,$entry); |
push(@ordered,$entry); |
} |
} |
} elsif ($action eq 'classlists') { |
} elsif ($action eq 'classlists') { |
Line 967 sub process_changes {
|
Line 934 sub process_changes {
|
my $udom = $env{'user.domain'}; |
my $udom = $env{'user.domain'}; |
my $pendingcoowners = $values->{'internal.pendingco-owners'}; |
my $pendingcoowners = $values->{'internal.pendingco-owners'}; |
my @pendingcoown = split(',',$pendingcoowners); |
my @pendingcoown = split(',',$pendingcoowners); |
if ($env{'form.pending_coowner'}) { |
if ($env{'form.pending_coowoner'}) { |
foreach my $item (@pendingcoown) { |
foreach my $item (@pendingcoown) { |
unless ($item eq $uname.':'.$udom) { |
unless ($item eq $uname.':'.$udom) { |
push(@newpending,$item); |
push(@newpending,$item); |
} |
} |
} |
} |
@newcoown = @currcoown; |
@newcoown = @currcoown; |
if ($env{'form.pending_coowner'} eq 'accept') { |
if ($env{'form.pending_coowoner'} eq 'accept') { |
unless (grep(/^\Q$uname\E:\Q$udom\E$/,@currcoown)) { |
unless (grep(/^\Q$uname\E:\Q$udom\E$/,@currcoown)) { |
push(@newcoown,$uname.':'.$udom); |
push(@newcoown,$uname.':'.$udom); |
} |
} |
} |
} |
} elsif ($env{'form.remove_coowner'}) { |
} elsif ($env{'form.remove_coowoner'}) { |
foreach my $item (@currcoown) { |
foreach my $item (@currcoown) { |
unless ($item eq $uname.':'.$udom) { |
unless ($item eq $uname.':'.$udom) { |
push(@newcoown,$item); |
push(@newcoown,$item); |
Line 1057 sub process_changes {
|
Line 1024 sub process_changes {
|
} |
} |
} |
} |
} |
} |
} elsif (($entry eq 'plc.roles.denied') || ($entry eq 'pch.roles.denied')) { |
} elsif (($entry eq 'plc.roles.denied') || ($entry eq 'pch.roles.denied') || |
|
($entry eq 'pac.roles.denied')) { |
my @denied = &Apache::loncommon::get_env_multiple('form.'.$entry); |
my @denied = &Apache::loncommon::get_env_multiple('form.'.$entry); |
@denied = sort(@denied); |
@denied = sort(@denied); |
my $deniedstr = ''; |
my $deniedstr = ''; |
Line 1065 sub process_changes {
|
Line 1033 sub process_changes {
|
$deniedstr = join(',',@denied); |
$deniedstr = join(',',@denied); |
} |
} |
$newvalues{$entry} = $deniedstr; |
$newvalues{$entry} = $deniedstr; |
} elsif (($entry eq 'plc.users.denied') || ($entry eq 'pch.users.denied')) { |
} elsif (($entry eq 'plc.users.denied') || ($entry eq 'pch.users.denied') || |
|
($entry eq 'pac.users.denied')) { |
my $total = $env{'form.'.$entry.'_total'}; |
my $total = $env{'form.'.$entry.'_total'}; |
my $userstr = ''; |
my $userstr = ''; |
my @denied; |
my @denied; |
Line 1117 sub process_changes {
|
Line 1086 sub process_changes {
|
my ($classorder,$classtitles) = &discussion_vote_classes(); |
my ($classorder,$classtitles) = &discussion_vote_classes(); |
my $fontchange = 0; |
my $fontchange = 0; |
foreach my $class (@{$classorder}) { |
foreach my $class (@{$classorder}) { |
my $ext_entry = $entry.'_'.$class; |
my $ext_entry = $entry.'_'.$class; |
my $size = $env{'form.'.$ext_entry.'_size'}; |
my $size = $env{'form.'.$ext_entry.'_size'}; |
my $unit = $env{'form.'.$ext_entry.'_unit'}; |
my $unit = $env{'form.'.$ext_entry.'_unit'}; |
my $weight = $env{'form.'.$ext_entry.'_weight'}; |
my $weight = $env{'form.'.$ext_entry.'_weight'}; |
my $style = $env{'form.'.$ext_entry.'_style'}; |
my $style = $env{'form.'.$ext_entry.'_style'}; |
my $other = $env{'form.'.$ext_entry.'_other'}; |
my $other = $env{'form.'.$ext_entry.'_other'}; |
$size =~ s/,//g; |
$size =~ s/,//g; |
$unit =~ s/,//g; |
$unit =~ s/,//g; |
$weight =~ s/,//g; |
$weight =~ s/,//g; |
$style =~ s/,//g; |
$style =~ s/,//g; |
$other =~ s/[^\w;:\s\-\%.]//g; |
$other =~ s/[^\w;:\s\-\%.]//g; |
Line 1132 sub process_changes {
|
Line 1101 sub process_changes {
|
$newvalues{$ext_entry} = join(',',($size.$unit,$weight,$style,$other)); |
$newvalues{$ext_entry} = join(',',($size.$unit,$weight,$style,$other)); |
my $current = $values->{$ext_entry}; |
my $current = $values->{$ext_entry}; |
if ($values->{$ext_entry} eq '') { |
if ($values->{$ext_entry} eq '') { |
$current = ',,,'; |
$current = ',,,'; |
} |
} |
if ($newvalues{$ext_entry} ne $current) { |
if ($newvalues{$ext_entry} ne $current) { |
$changes->{$ext_entry} = $newvalues{$ext_entry}; |
$changes->{$ext_entry} = $newvalues{$ext_entry}; |
Line 1141 sub process_changes {
|
Line 1110 sub process_changes {
|
} |
} |
if ($fontchange) { |
if ($fontchange) { |
$changes->{$entry} = 1; |
$changes->{$entry} = 1; |
} |
} |
} elsif ($entry eq 'nothideprivileged') { |
} elsif ($entry eq 'nothideprivileged') { |
my @curr_nothide; |
my @curr_nothide; |
my @new_nothide; |
my @new_nothide; |
Line 1216 sub process_changes {
|
Line 1185 sub process_changes {
|
my $newtext = $maxnum-1; |
my $newtext = $maxnum-1; |
$newhdr[$env{'form.printfmthdr_pos_'.$newtext}] = $env{'form.printfmthdr_text_'.$newtext}; |
$newhdr[$env{'form.printfmthdr_pos_'.$newtext}] = $env{'form.printfmthdr_text_'.$newtext}; |
$newvalues{$entry} = join('',@newhdr); |
$newvalues{$entry} = join('',@newhdr); |
} elsif (($entry eq 'languages') || |
} elsif (($entry eq 'languages') || |
($entry eq 'checkforpriv')) { |
($entry eq 'checkforpriv')) { |
my $settings; |
my $settings; |
my $total = $env{'form.'.$entry.'_total'}; |
my $total = $env{'form.'.$entry.'_total'}; |
Line 1232 sub process_changes {
|
Line 1201 sub process_changes {
|
} |
} |
if ($env{'form.'.$entry.'_'.$total} ne '') { |
if ($env{'form.'.$entry.'_'.$total} ne '') { |
my $new = $env{'form.'.$entry.'_'.$total}; |
my $new = $env{'form.'.$entry.'_'.$total}; |
if ($entry eq 'languages') { |
if ($entry eq 'languages') { |
my %langchoices = &get_lang_choices(); |
my %langchoices = &get_lang_choices(); |
if ($langchoices{$new}) { |
if ($langchoices{$new}) { |
$settings .= $new; |
$settings .= $new; |
Line 1507 sub store_changes {
|
Line 1476 sub store_changes {
|
} |
} |
} |
} |
unless (&Apache::lonnet::is_course_owner($cdom,$cnum)) { |
unless (&Apache::lonnet::is_course_owner($cdom,$cnum)) { |
if ($env{'form.pending_coowner'} eq 'accept') { |
if ($env{'form.pending_coowoner'} eq 'accept') { |
$displayval = &mt('on'); |
$displayval = &mt('on'); |
} elsif ($env{'form.pending_coowner'} eq 'decline') { |
} elsif ($env{'form.pending_coowoner'} eq 'decline') { |
$displayval = ''; |
$displayval = ''; |
$output .= '<li>'.&Apache::lonhtmlcommon::confirm_success(&mt('Invitation to be co-owner declined')).'</li>'; |
$output .= '<li>'.&Apache::lonhtmlcommon::confirm_success(&mt('Invitation to be co-owner declined')).'</li>'; |
} elsif ($env{'form.remove_coowner'}) { |
} elsif ($env{'form.remove_coowoner'}) { |
$displayval = &mt('off'); |
$displayval = &mt('off'); |
} |
} |
if ($displayval) { |
if ($displayval) { |
Line 1777 sub get_jscript {
|
Line 1746 sub get_jscript {
|
$local_to_standard{$code_order[$i]} = $standardnames[$i]; |
$local_to_standard{$code_order[$i]} = $standardnames[$i]; |
} |
} |
foreach my $cloner (@cloners) { |
foreach my $cloner (@cloners) { |
if (($cloner !~ /^\Q*:\E$match_domain$/) && |
if (($cloner !~ /^\Q*:\E$match_domain$/) && |
($cloner !~ /^$match_username\:$match_domain$/)) { |
($cloner !~ /^$match_username\:$match_domain$/)) { |
foreach my $item (split(/\&/,$cloner)) { |
foreach my $item (split(/\&/,$cloner)) { |
my ($key,$val) = split(/\=/,$item); |
my ($key,$val) = split(/\=/,$item); |
Line 1879 function syllabusinfo() {
|
Line 1848 function syllabusinfo() {
|
} |
} |
ENDSCRIPT |
ENDSCRIPT |
$jscript = '<script type="text/javascript" language="Javascript">'."\n". |
$jscript = '<script type="text/javascript" language="Javascript">'."\n". |
'// <![CDATA['."\n". |
'// <![CDATA['."\n". |
$browse_js."\n".$categorize_js."\n".$loncaparev_js."\n". |
$browse_js."\n".$categorize_js."\n".$loncaparev_js."\n". |
$cloners_js."\n".$instcode_js. |
$cloners_js."\n".$instcode_js. |
$syllabus_js."\n".'//]]>'."\n". |
$syllabus_js."\n".'//]]>'."\n". |
Line 1970 ENDSCRIPT
|
Line 1939 ENDSCRIPT
|
|
|
|
|
sub print_courseinfo { |
sub print_courseinfo { |
my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype,$noedit) = @_; |
my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_; |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
return; |
return; |
} |
} |
my ($cathash,$categoriesform,$autocoowner,$clonedefaults,$disabled); |
my ($cathash,$categoriesform,$autocoowner,$clonedefaults); |
if ($noedit) { |
|
$disabled = ' disabled="disabled"'; |
|
} |
|
my %domconf = |
my %domconf = |
&Apache::lonnet::get_dom('configuration', |
&Apache::lonnet::get_dom('configuration', |
['coursecategories','autoenroll','coursedefaults'],$cdom); |
['coursecategories','autoenroll','coursedefaults'],$cdom); |
Line 1986 sub print_courseinfo {
|
Line 1952 sub print_courseinfo {
|
if (ref($cathash) eq 'HASH') { |
if (ref($cathash) eq 'HASH') { |
$categoriesform = |
$categoriesform = |
&Apache::loncommon::assign_categories_table($cathash, |
&Apache::loncommon::assign_categories_table($cathash, |
$settings->{'categories'},$crstype,$disabled)."\n"; |
$settings->{'categories'},$crstype)."\n"; |
} |
} |
} |
} |
if (ref($domconf{'autoenroll'}) eq 'HASH') { |
if (ref($domconf{'autoenroll'}) eq 'HASH') { |
Line 2053 sub print_courseinfo {
|
Line 2019 sub print_courseinfo {
|
} else { |
} else { |
$replace = &mt('To replace the standard title for a course role, enter a title, otherwise leave blank'); |
$replace = &mt('To replace the standard title for a course role, enter a title, otherwise leave blank'); |
} |
} |
my ($editmap,$editsyllabus); |
|
unless ($noedit) { |
|
$editmap = (' 'x2). |
|
'<a href="javascript:openbrowser'. |
|
"('display','url','sequence')\">". |
|
&mt('Select Map').'</a><br /><span class="LC_warning"> '. |
|
&mt('Modification may make assessment data inaccessible!'). |
|
'</span>'; |
|
$editsyllabus = &mt('[_1]Edit[_2]','<a href="/public/'.$cdom.'/'.$cnum.'/syllabus?forceedit=1">', |
|
'</a>'); |
|
} |
|
my %items = ( |
my %items = ( |
'url' => { |
'url' => { |
text => '<b>'.&mt($itemtext->{'url'}).'</b>'.$editmap, |
text => '<b>'.&mt($itemtext->{'url'}).'</b>'.(' 'x2). |
|
'<a href="javascript:openbrowser'. |
|
"('display','url','sequence')\">". |
|
&mt('Select Map').'</a><br /><span class="LC_warning"> '. |
|
&mt('Modification may make assessment data inaccessible!'). |
|
'</span>', |
input => 'textbox', |
input => 'textbox', |
size => '55', |
size => '55', |
advanced => 1 |
advanced => 1 |
Line 2108 sub print_courseinfo {
|
Line 2068 sub print_courseinfo {
|
size => '20', |
size => '20', |
advanced => 1 |
advanced => 1 |
}, |
}, |
'syllabus' => { |
'externalsyllabus' => { |
text => '<b>'.&mt($itemtext->{'syllabus'}).'</b><br />'. |
text => '<b>'.&mt($itemtext->{'externalsyllabus'}).'</b><br />'. |
&mt('(Syllabus type in use)').(' ' x2). |
&mt('(Syllabus type in use)').(' ' x2). |
$editsyllabus, |
&mt('[_1]Edit[_2]','<a href="/public/'.$cdom.'/'.$cnum.'/syllabus?forceedit=1">', |
|
'</a>'), |
}, |
}, |
'hidefromcat' => { |
'hidefromcat' => { |
text => '<b>'.&mt($itemtext->{'hidefromcat'}).'</b><br />'. |
text => '<b>'.&mt($itemtext->{'hidefromcat'}).'</b><br />'. |
Line 2143 sub print_courseinfo {
|
Line 2104 sub print_courseinfo {
|
next if (!$env{'course.'.$env{'request.course.id'}.'.internal.uniquecode'}); |
next if (!$env{'course.'.$env{'request.course.id'}.'.internal.uniquecode'}); |
} |
} |
unless (($item eq 'cloners') || ($item eq 'rolenames')) { |
unless (($item eq 'cloners') || ($item eq 'rolenames')) { |
$colspan = 2; |
$colspan = 2; |
} |
} |
$count ++; |
$count ++; |
if (exists $items{$item}{advanced} && $items{$item}{advanced} == 1) { |
if (exists $items{$item}{advanced} && $items{$item}{advanced} == 1) { |
Line 2152 sub print_courseinfo {
|
Line 2113 sub print_courseinfo {
|
$datatable .= &item_table_row_start($items{$item}{text},$count,undef,$colspan); |
$datatable .= &item_table_row_start($items{$item}{text},$count,undef,$colspan); |
} |
} |
if ($items{$item}{input} eq 'radio') { |
if ($items{$item}{input} eq 'radio') { |
$datatable .= &yesno_radio($item,$settings,undef,undef,undef,$noedit); |
$datatable .= &yesno_radio($item,$settings); |
} elsif ($item eq 'cloners') { |
} elsif ($item eq 'cloners') { |
my $includeempty = 1; |
my $includeempty = 1; |
my $num = 0; |
my $num = 0; |
Line 2166 sub print_courseinfo {
|
Line 2127 sub print_courseinfo {
|
$datatable .= ' checked="checked" '; |
$datatable .= ' checked="checked" '; |
} |
} |
$datatable .= 'onchange="javascript:update_cloners('. |
$datatable .= 'onchange="javascript:update_cloners('. |
"'cloners_all'".');"'.$disabled.' />'.&mt('Yes').'</label>'. |
"'cloners_all'".');" />'.&mt('Yes').'</label>'. |
(' 'x2).'<label>'. |
(' 'x2).'<label>'. |
'<input type="radio" name="cloners_all" value="0" '; |
'<input type="radio" name="cloners_all" value="0" '; |
if ($settings->{$item} ne '*') { |
if ($settings->{$item} ne '*') { |
$datatable .= ' checked="checked" '; |
$datatable .= ' checked="checked" '; |
} |
} |
$datatable .= ' onchange="javascript:update_cloners('. |
$datatable .= ' onchange="javascript:update_cloners('. |
"'cloners_all'".');"'.$disabled.' />'.&mt('No').'</label></td>'. |
"'cloners_all'".');" />'.&mt('No').'</label></td>'. |
&Apache::loncommon::end_data_table_row(). |
&Apache::loncommon::end_data_table_row(). |
&Apache::loncommon::end_data_table(). |
&Apache::loncommon::end_data_table(). |
'<table><tr><td align="left"><b>'.&mt('Or'). |
'<table><tr><td align="left"><b>'.&mt('Or'). |
Line 2181 sub print_courseinfo {
|
Line 2142 sub print_courseinfo {
|
&Apache::loncommon::start_data_table(); |
&Apache::loncommon::start_data_table(); |
my @cloners; |
my @cloners; |
if ($settings->{$item} eq '') { |
if ($settings->{$item} eq '') { |
unless ($noedit) { |
my $default; |
my $default; |
if ($currcanclone eq 'domain') { |
if ($currcanclone eq 'domain') { |
$default = '0'; |
$default = '0'; |
} |
} |
$datatable .= &new_cloners_dom_row($cdom,'0',$default); |
$datatable .= &new_cloners_dom_row($cdom,'0',$default); |
|
} |
|
} elsif ($settings->{$item} ne '*') { |
} elsif ($settings->{$item} ne '*') { |
my @entries = split(/,/,$settings->{$item}); |
my @entries = split(/,/,$settings->{$item}); |
if (@entries > 0) { |
if (@entries > 0) { |
Line 2208 sub print_courseinfo {
|
Line 2167 sub print_courseinfo {
|
'</b><input type="hidden" name="cloners_dom_'.$num. |
'</b><input type="hidden" name="cloners_dom_'.$num. |
'" value="'.$udom.'" /></span><br />'. |
'" value="'.$udom.'" /></span><br />'. |
'<span class="LC_nobreak"><label><input type="checkbox" '. |
'<span class="LC_nobreak"><label><input type="checkbox" '. |
'name="cloners_delete" value="'.$num.'" onchange="javascript:update_cloners('."'cloners_delete','$num'".');"'.$disabled.' />'. |
'name="cloners_delete" value="'.$num.'" onchange="javascript:update_cloners('."'cloners_delete','$num'".');" />'. |
&mt('Delete').'</label></span></td>'. |
&mt('Delete').'</label></span></td>'. |
&Apache::loncommon::end_data_table_row(); |
&Apache::loncommon::end_data_table_row(); |
$num ++; |
$num ++; |
Line 2231 sub print_courseinfo {
|
Line 2190 sub print_courseinfo {
|
'<td align="left"><span class="LC_nobreak">'. |
'<td align="left"><span class="LC_nobreak">'. |
$add_domtitle.'</span><br />'. |
$add_domtitle.'</span><br />'. |
&Apache::loncommon::select_dom_form('','cloners_newdom', |
&Apache::loncommon::select_dom_form('','cloners_newdom', |
$includeempty,undef,undef, |
$includeempty). |
undef,undef,$noedit). |
|
'<input type="hidden" name="cloners_total" value="'.$num.'" />'. |
'<input type="hidden" name="cloners_total" value="'.$num.'" />'. |
'</td>'.&Apache::loncommon::end_data_table_row(). |
'</td>'.&Apache::loncommon::end_data_table_row(). |
&Apache::loncommon::end_data_table(). |
&Apache::loncommon::end_data_table(). |
Line 2244 sub print_courseinfo {
|
Line 2202 sub print_courseinfo {
|
&mt('Specific users').' (<tt>'. |
&mt('Specific users').' (<tt>'. |
&mt('user:domain,user:domain').'</tt>)<br />'. |
&mt('user:domain,user:domain').'</tt>)<br />'. |
&Apache::lonhtmlcommon::textbox($item,$cloners_str, |
&Apache::lonhtmlcommon::textbox($item,$cloners_str, |
$items{$item}{'size'},$disabled). |
$items{$item}{'size'}). |
'</td>'.&Apache::loncommon::end_data_table_row(). |
'</td>'.&Apache::loncommon::end_data_table_row(). |
&Apache::loncommon::end_data_table(); |
&Apache::loncommon::end_data_table(); |
if (@code_order > 0) { |
if (@code_order > 0) { |
Line 2268 sub print_courseinfo {
|
Line 2226 sub print_courseinfo {
|
'<td align="left"><span class="LC_nobreak">'. |
'<td align="left"><span class="LC_nobreak">'. |
&mt('Cloning by official course(s) based on course category').(' 'x2). |
&mt('Cloning by official course(s) based on course category').(' 'x2). |
'<label>'. |
'<label>'. |
'<input type="radio" name="cloners_instcode" value="1" onclick="toggleCloners(this);"'.$checkedon.$disabled.' />'.&mt('Yes').'</label>'. |
'<input type="radio" name="cloners_instcode" value="1" onclick="toggleCloners(this);"'.$checkedon.' />'.&mt('Yes').'</label>'. |
(' '). |
(' '). |
'<label>'. |
'<label>'. |
'<input type="radio" name="cloners_instcode" value="0" onclick="toggleCloners(this);"'.$checkedoff.$disabled.' />'.&mt('No').'</label>'. |
'<input type="radio" name="cloners_instcode" value="0" onclick="toggleCloners(this);"'.$checkedoff.' />'.&mt('No').'</label>'. |
&Apache::courseclassifier::build_instcode_selectors($numtitles, |
&Apache::courseclassifier::build_instcode_selectors($numtitles, |
$lasttitle,\%cat_items,\@codetitles,\%cat_titles,\%cat_order, |
$lasttitle,\%cat_items,\@codetitles,\%cat_titles,\%cat_order, |
$showncodes,'LC_cloners_instcodes','LC_cloners_instcode',$noedit). |
$showncodes,'LC_cloners_instcodes','LC_cloners_instcode'). |
'</td>'.&Apache::loncommon::end_data_table_row(). |
'</td>'.&Apache::loncommon::end_data_table_row(). |
&Apache::loncommon::end_data_table(); |
&Apache::loncommon::end_data_table(); |
} |
} |
Line 2295 sub print_courseinfo {
|
Line 2253 sub print_courseinfo {
|
'</span></td><td align="left">'. |
'</span></td><td align="left">'. |
&Apache::lonhtmlcommon::textbox('rolenames_'.$role, |
&Apache::lonhtmlcommon::textbox('rolenames_'.$role, |
$settings->{$role.'.plaintext'}, |
$settings->{$role.'.plaintext'}, |
$items{$item}{size},$disabled).'</td>'. |
$items{$item}{size}).'</td>'. |
&Apache::loncommon::end_data_table_row(); |
&Apache::loncommon::end_data_table_row(); |
} |
} |
$datatable .= &Apache::loncommon::end_data_table().'</td>'; |
$datatable .= &Apache::loncommon::end_data_table().'</td>'; |
} elsif ($item eq 'categories') { |
} elsif ($item eq 'categories') { |
my $launcher; |
my $launcher = 'onfocus="this.blur();javascript:catsbrowser();"'; |
if ($noedit) { |
|
$launcher = $disabled; |
|
} else { |
|
$launcher = 'onfocus="this.blur();javascript:catsbrowser();"'; |
|
} |
|
$datatable .= '<input type="hidden" name="categories" value="'.$settings->{$item}.'" />'. |
$datatable .= '<input type="hidden" name="categories" value="'.$settings->{$item}.'" />'. |
&Apache::lonhtmlcommon::textbox($item.'_display',$settings->{$item}, |
&Apache::lonhtmlcommon::textbox($item.'_display',$settings->{$item}, |
$items{$item}{size},$launcher); |
$items{$item}{size},$launcher); |
Line 2326 sub print_courseinfo {
|
Line 2279 sub print_courseinfo {
|
if ($clonesrc =~ m{/$match_domain/$match_courseid}) { |
if ($clonesrc =~ m{/$match_domain/$match_courseid}) { |
my %clonesrcinfo = &Apache::lonnet::coursedescription($clonesrc); |
my %clonesrcinfo = &Apache::lonnet::coursedescription($clonesrc); |
if ($clonesrcinfo{'description'}) { |
if ($clonesrcinfo{'description'}) { |
$clonedfrom = $clonesrcinfo{'description'}.' '.($clonesrc); |
$clonedfrom = $clonesrcinfo{'description'}.' '.($clonesrc); |
} |
} |
} |
} |
$datatable .= $clonedfrom; |
$datatable .= $clonedfrom; |
} elsif ($item eq 'uniquecode') { |
} elsif ($item eq 'uniquecode') { |
my $code = $env{'course.'.$env{'request.course.id'}.'.internal.uniquecode'}; |
my $code = $env{'course.'.$env{'request.course.id'}.'.internal.uniquecode'}; |
if ($code) { |
if ($code) { |
$datatable .= $code; |
$datatable .= $code; |
} |
} |
Line 2345 sub print_courseinfo {
|
Line 2298 sub print_courseinfo {
|
if (($crstype eq 'Course') && ($env{'course.'.$env{'request.course.id'}.'.internal.coursecode'}) && ($autocoowner)) { |
if (($crstype eq 'Course') && ($env{'course.'.$env{'request.course.id'}.'.internal.coursecode'}) && ($autocoowner)) { |
$datatable .= &show_autocoowners(@currcoown); |
$datatable .= &show_autocoowners(@currcoown); |
} else { |
} else { |
$datatable .= &coowner_invitations($cnum,$cdom,\@currcoown,$noedit); |
$datatable .= &coowner_invitations($cnum,$cdom,@currcoown); |
} |
} |
} else { |
} else { |
if (($crstype eq 'Course') && ($env{'course.'.$env{'request.course.id'}.'.internal.coursecode'}) && ($autocoowner)) { |
if (($crstype eq 'Course') && ($env{'course.'.$env{'request.course.id'}.'.internal.coursecode'}) && ($autocoowner)) { |
$datatable .= &show_autocoowners(@currcoown); |
$datatable .= &show_autocoowners(@currcoown); |
} else { |
} else { |
$datatable .= &manage_coownership($cnum,$cdom,\@currcoown,$noedit); |
$datatable .= &manage_coownership($cnum,$cdom,@currcoown); |
} |
} |
} |
} |
} elsif ($item eq 'syllabus') { |
} elsif ($item eq 'externalsyllabus') { |
my $external = $env{'course.'.$env{'request.course.id'}.'.externalsyllabus'}; |
my $external = $env{'course.'.$env{'request.course.id'}.'.externalsyllabus'}; |
my $uploaded = $env{'course.'.$env{'request.course.id'}.'.uploadedsyllabus'}; |
my $uploaded = $env{'course.'.$env{'request.course.id'}.'.uploadedsyllabus'}; |
my $minimal = $env{'course.'.$env{'request.course.id'}.'.minimalsyllabus'}; |
my $minimal = $env{'course.'.$env{'request.course.id'}.'.minimalsyllabus'}; |
Line 2378 sub print_courseinfo {
|
Line 2331 sub print_courseinfo {
|
} elsif ($uploaded) { |
} elsif ($uploaded) { |
$datatable .= &mt('Uploaded file'); |
$datatable .= &mt('Uploaded file'); |
} else { |
} else { |
$datatable .= &mt('Standard template'); |
$datatable .= &mt('Standard template'); |
} |
} |
$datatable .= (' ' x 2). |
$datatable .= (' ' x 2). |
&mt('[_1]View[_2]', |
&mt('[_1]View[_2]', |
'<a href="javascript:syllabusinfo();">', |
'<a href="javascript:syllabusinfo();">', |
'</a>'); |
'</a>'); |
} elsif ($item eq 'loncaparev') { |
} elsif ($item eq 'loncaparev') { |
my $loncaparev = $env{'course.'.$env{'request.course.id'}.'.internal.releaserequired'}; |
my $loncaparev = $env{'course.'.$env{'request.course.id'}.'.internal.releaserequired'}; |
my $showreqd; |
my $showreqd; |
Line 2395 sub print_courseinfo {
|
Line 2348 sub print_courseinfo {
|
} |
} |
$datatable .= $showreqd; |
$datatable .= $showreqd; |
} else { |
} else { |
$datatable .= &Apache::lonhtmlcommon::textbox($item,$settings->{$item},$items{$item}{size},$disabled); |
$datatable .= &Apache::lonhtmlcommon::textbox($item,$settings->{$item},$items{$item}{size}); |
} |
} |
$datatable .= &item_table_row_end(); |
$datatable .= &item_table_row_end(); |
} |
} |
Line 2408 sub new_cloners_dom_row {
|
Line 2361 sub new_cloners_dom_row {
|
my ($output,$checkedon,$checkedoff); |
my ($output,$checkedon,$checkedoff); |
if ($newdom ne '') { |
if ($newdom ne '') { |
if ($num eq $default) { |
if ($num eq $default) { |
$checkedon = 'checked="checked" '; |
$checkedon = 'checked="checked" '; |
} else { |
} else { |
$checkedoff = 'checked="checked" '; |
$checkedoff = 'checked="checked" '; |
} |
} |
Line 2559 ENDSCRIPT
|
Line 2512 ENDSCRIPT
|
|
|
sub display_loncaparev_constraints { |
sub display_loncaparev_constraints { |
my ($r,$navmap,$loncaparev,$crstype) = @_; |
my ($r,$navmap,$loncaparev,$crstype) = @_; |
my ($reqdmajor,$reqdminor); |
my ($reqdmajor,$reqdminor); |
my $cid = $env{'request.course.id'}; |
my $cid = $env{'request.course.id'}; |
my $cdom = $env{'course.'.$cid.'.domain'}; |
my $cdom = $env{'course.'.$cid.'.domain'}; |
my $cnum = $env{'course.'.$cid.'.num'}; |
my $cnum = $env{'course.'.$cid.'.num'}; |
Line 2582 sub display_loncaparev_constraints {
|
Line 2535 sub display_loncaparev_constraints {
|
my $resourcedata = &Apache::lonparmset::readdata($cnum,$cdom); |
my $resourcedata = &Apache::lonparmset::readdata($cnum,$cdom); |
if (ref($resourcedata) eq 'HASH') { |
if (ref($resourcedata) eq 'HASH') { |
foreach my $key (keys(%{$resourcedata})) { |
foreach my $key (keys(%{$resourcedata})) { |
|
my %found; |
foreach my $item (keys(%Apache::lonrelrequtils::checkparms)) { |
foreach my $item (keys(%Apache::lonrelrequtils::checkparms)) { |
if ($key =~ /(\Q$item\E)$/) { |
if ($key =~ /(\Q$item\E)$/) { |
if (ref($Apache::lonrelrequtils::checkparms{$item}) eq 'ARRAY') { |
if (ref($Apache::lonrelrequtils::checkparms{$item}) eq 'ARRAY') { |
my $value = $resourcedata->{$key}; |
my $value = $resourcedata->{$key}; |
if ($item eq 'examcode') { |
if ($item eq 'examcode') { |
if (&Apache::lonnet::validCODE($value)) { |
if (&Apache::lonnet::validCODE($value)) { |
$value = 'valid'; |
$value = 'valid'; |
} else { |
} else { |
$value = ''; |
$value = ''; |
} |
} |
} elsif ($item eq 'printstartdate') { |
} elsif ($item eq 'printstartdate') { |
if ($value =~ /^\d+$/) { |
if ($value =~ /^\d+$/) { |
if ($value > $now) { |
if ($value > $now) { |
$value = 'future'; |
$value = 'future'; |
} |
} |
} |
} |
} elsif ($item eq 'printenddate') { |
} elsif ($item eq 'printenddate') { |
if ($value =~ /^\d+$/) { |
if ($value =~ /^\d+$/) { |
if ($value < $now) { |
if ($value < $now) { |
$value = 'past'; |
$value = 'past'; |
} |
} |
} |
} |
|
} |
} |
if (grep(/^\Q$value\E$/,@{$Apache::lonrelrequtils::checkparms{$item}})) { |
my ($middle,$scope,$which,$level,$map,$resource); |
my $stdtype = &Apache::lonparmset::standard_parameter_types($item); |
if (grep(/^\Q$value\E$/,@{$Apache::lonrelrequtils::checkparms{$item}})) { |
$found{$item}{'valname'} = &get_param_description($stdtype,$value); |
my $stdtype = &Apache::lonparmset::standard_parameter_types($item); |
$found{$item}{'rev'} = $Apache::lonnet::needsrelease{'parameter:'.$item.':'.$value.'::'}; |
my $stdname = &Apache::lonparmset::standard_parameter_names($item); |
} |
my $valname = &get_param_description($stdtype,$value); |
} |
my $rev = $Apache::lonnet::needsrelease{'parameter:'.$item.':'.$value}; |
} |
my $start = $cid.'.'; |
} |
if ($key =~ /^\Q$start\E(\[useropt\:($match_username\:$match_domain)\]\.)/) { |
foreach my $item (keys(%Apache::lonrelrequtils::checkparmsmatch)) { |
$middle = $1; |
if (ref($Apache::lonrelrequtils::checkparmsmatch{$item}) eq 'ARRAY') { |
$which = $2; |
my $value = $resourcedata->{$key}; |
$scope = 'user'; |
foreach my $valuematch (@{$Apache::lonrelrequtils::checkparmsmatch{$item}}) { |
} elsif ($key =~ /^\Q$start\E(\[(\w+)\]\.)/) { |
if ($value =~ /$valuematch/) { |
$middle = $1; |
my $stdtype = &Apache::lonparmset::standard_parameter_types($item); |
$which = $2; |
$found{$item}{'valname'} = &get_param_description($stdtype,$value,1); |
$scope = 'section/group'; |
$found{$item}{'rev'} = |
} else { |
$Apache::lonnet::needsrelease{'parameter:'.$item.'::'.$valuematch.':'}; |
$scope = 'all'; |
last; |
} |
} |
my $what="$stdname=$valname"; |
} |
if ($key =~ /^\Q$start$middle\E\w+\.\Q$item\E$/) { |
} |
$level = 'general'; |
} |
if ($scope eq 'all') { |
foreach my $item (keys(%Apache::lonrelrequtils::checkparmnamesmatch)) { |
if (ref($fromparam{$rev}{$scope}) eq 'ARRAY') { |
my $regexp; |
unless(grep(/^\Q$what\E$/,@{$fromparam{$rev}{$scope}})) { |
if ($item eq 'maplevelrecurse') { |
push(@{$fromparam{$rev}{$scope}},$what); |
$regexp = '\.(?:sequence|page)___\(rec\)\.'; |
} |
} |
} else { |
if ($regexp ne '') { |
push(@{$fromparam{$rev}{$scope}},$what); |
if ($key =~ /$regexp.*\.(\w+)$/) { |
} |
my $name = $1; |
} else { |
my $value = $resourcedata->{$key}; |
if (ref($fromparam{$rev}{$scope}{$which}) eq 'ARRAY') { |
if ($name eq 'type') { |
unless (grep(/^\Q$what\E$/,@{$fromparam{$rev}{$scope}{$which}})) { |
last unless (($value eq 'problem') || ($value eq 'practice') || ($value eq 'exam') || |
push(@{$fromparam{$rev}{$scope}{$which}},$what); |
($value eq 'survey') || ($value eq 'surveycred') || ($value eq 'anonsurvey') || |
} |
($value eq 'anonsurveycred') || ($value eq 'randomizetry') || ($value eq 'library')); |
} else { |
} |
push(@{$fromparam{$rev}{$scope}{$which}},$what); |
my $stdtype = &Apache::lonparmset::standard_parameter_types($name); |
} |
$found{$name}{'valname'} = &get_param_description($stdtype,$value); |
} |
$found{$name}{'extra'} = &mt('Recursive into sub-folders'); |
$rowspan{$rev} ++; |
$found{$name}{'rev'} = |
} elsif ($key =~ /^\Q$start$middle\E(.+)___\(all\).\w+\.\Q$item\E$/) { |
$Apache::lonnet::needsrelease{'parameter::::'.$item}; |
$level = 'folder'; |
} |
$map = $1; |
} |
if ($scope eq 'all') { |
} |
if (ref($bymap{$map}{$rev}{$scope}) eq 'ARRAY') { |
foreach my $item (keys(%found)) { |
unless(grep(/^\Q$what\E$/,@{$bymap{$map}{$rev}{$scope}})) { |
my $stdname = &Apache::lonparmset::standard_parameter_names($item); |
push(@{$bymap{$map}{$rev}{$scope}},$what); |
my $rev = $found{$item}{'rev'}; |
} |
my $valname = $found{$item}{'valname'}; |
} else { |
my $extra = $found{$item}{'extra'}; |
push(@{$bymap{$map}{$rev}{$scope}},$what); |
my ($middle,$scope,$which,$level,$map,$resource); |
} |
my $start = $cid.'.'; |
} else { |
if ($key =~ /^\Q$start\E(\[useropt\:($match_username\:$match_domain)\]\.)/) { |
if (ref($bymap{$map}{$rev}{$scope}{$which}) eq 'ARRAY') { |
$middle = $1; |
unless(grep(/^\Q$what\E$/,@{$bymap{$map}{$rev}{$scope}{$which}})) { |
$which = $2; |
push(@{$bymap{$map}{$rev}{$scope}{$which}},$what); |
$scope = 'user'; |
} |
} elsif ($key =~ /^\Q$start\E(\[(\w+)\]\.)/) { |
} else { |
$middle = $1; |
push(@{$bymap{$map}{$rev}{$scope}{$which}},$what); |
$which = $2; |
} |
$scope = 'section/group'; |
} |
} else { |
} elsif ($key =~ /^\Q$start$middle\E(.+)\.\w+\.\Q$item\E$/) { |
$scope = 'all'; |
$level = 'resource'; |
} |
$resource = $1; |
my $what="$stdname=$valname"; |
if ($scope eq 'all') { |
if ($extra) { |
if (ref($byresource{$resource}{$rev}{$scope}) eq 'ARRAY') { |
$what .= "<br/>$extra<br />"; |
unless(grep(/^\Q$what\E$/,@{$byresource{$resource}{$rev}{$scope}})) { |
} |
push(@{$byresource{$resource}{$rev}{$scope}},$what); |
if ($key =~ /^\Q$start$middle\E\w+\.\Q$item\E$/) { |
} |
$level = 'general'; |
} else { |
if ($scope eq 'all') { |
push(@{$byresource{$resource}{$rev}{$scope}},$what); |
if (ref($fromparam{$rev}{$scope}) eq 'ARRAY') { |
} |
unless(grep(/^\Q$what\E$/,@{$fromparam{$rev}{$scope}})) { |
} else { |
push(@{$fromparam{$rev}{$scope}},$what); |
if (ref($byresource{$resource}{$rev}{$scope}{$which}) eq 'ARRAY') { |
} |
unless (grep(/^\Q$what\E$/,@{$byresource{$resource}{$rev}{$scope}{$which}})) { |
} else { |
push(@{$byresource{$resource}{$rev}{$scope}{$which}},$what); |
push(@{$fromparam{$rev}{$scope}},$what); |
} |
} |
} else { |
} else { |
push(@{$byresource{$resource}{$rev}{$scope}{$which}},$what); |
if (ref($fromparam{$rev}{$scope}{$which}) eq 'ARRAY') { |
} |
unless (grep(/^\Q$what\E$/,@{$fromparam{$rev}{$scope}{$which}})) { |
} |
push(@{$fromparam{$rev}{$scope}{$which}},$what); |
} |
} |
|
} else { |
|
push(@{$fromparam{$rev}{$scope}{$which}},$what); |
|
} |
|
} |
|
$rowspan{$rev} ++; |
|
} elsif ($key =~ /^\Q$start$middle\E(.+)___\((all|rec)\).\w+\.\Q$item\E$/) { |
|
$level = 'folder'; |
|
$map = $1; |
|
if ($scope eq 'all') { |
|
if (ref($bymap{$map}{$rev}{$scope}) eq 'ARRAY') { |
|
unless(grep(/^\Q$what\E$/,@{$bymap{$map}{$rev}{$scope}})) { |
|
push(@{$bymap{$map}{$rev}{$scope}},$what); |
|
} |
|
} else { |
|
push(@{$bymap{$map}{$rev}{$scope}},$what); |
|
} |
|
} else { |
|
if (ref($bymap{$map}{$rev}{$scope}{$which}) eq 'ARRAY') { |
|
unless(grep(/^\Q$what\E$/,@{$bymap{$map}{$rev}{$scope}{$which}})) { |
|
push(@{$bymap{$map}{$rev}{$scope}{$which}},$what); |
|
} |
|
} else { |
|
push(@{$bymap{$map}{$rev}{$scope}{$which}},$what); |
|
} |
|
} |
|
} elsif ($key =~ /^\Q$start$middle\E(.+)\.\w+\.\Q$item\E$/) { |
|
$level = 'resource'; |
|
$resource = $1; |
|
if ($scope eq 'all') { |
|
if (ref($byresource{$resource}{$rev}{$scope}) eq 'ARRAY') { |
|
unless(grep(/^\Q$what\E$/,@{$byresource{$resource}{$rev}{$scope}})) { |
|
push(@{$byresource{$resource}{$rev}{$scope}},$what); |
|
} |
|
} else { |
|
push(@{$byresource{$resource}{$rev}{$scope}},$what); |
|
} |
|
} else { |
|
if (ref($byresource{$resource}{$rev}{$scope}{$which}) eq 'ARRAY') { |
|
unless (grep(/^\Q$what\E$/,@{$byresource{$resource}{$rev}{$scope}{$which}})) { |
|
push(@{$byresource{$resource}{$rev}{$scope}{$which}},$what); |
|
} |
|
} else { |
|
push(@{$byresource{$resource}{$rev}{$scope}{$which}},$what); |
} |
} |
} |
} |
} |
} |
Line 2737 sub display_loncaparev_constraints {
|
Line 2734 sub display_loncaparev_constraints {
|
if (keys(%comm_blocks) > 0) { |
if (keys(%comm_blocks) > 0) { |
foreach my $block (keys(%comm_blocks)) { |
foreach my $block (keys(%comm_blocks)) { |
if ($block =~ /^firstaccess____(.+)$/) { |
if ($block =~ /^firstaccess____(.+)$/) { |
my $rev = $Apache::lonnet::needsrelease{'course:commblock:timer'}; |
my $rev = $Apache::lonnet::needsrelease{'course:commblock:timer:'}; |
if (ref($comm_blocks{$block}) eq 'HASH') { |
if (ref($comm_blocks{$block}) eq 'HASH') { |
push(@{$fromblocks{'timer'}{$rev}},&unescape($comm_blocks{$block}{'event'}). |
push(@{$fromblocks{'timer'}{$rev}},&unescape($comm_blocks{$block}{'event'}). |
' '.&mt('set by [_1]', |
' '.&mt('set by [_1]', |
Line 2752 sub display_loncaparev_constraints {
|
Line 2749 sub display_loncaparev_constraints {
|
if (ref($comm_blocks{$block}{'blocks'}) eq 'HASH') { |
if (ref($comm_blocks{$block}{'blocks'}) eq 'HASH') { |
if (ref($comm_blocks{$block}{'blocks'}{'docs'}) eq 'HASH') { |
if (ref($comm_blocks{$block}{'blocks'}{'docs'}) eq 'HASH') { |
if (keys(%{$comm_blocks{$block}{'blocks'}{'docs'}}) > 0) { |
if (keys(%{$comm_blocks{$block}{'blocks'}{'docs'}}) > 0) { |
my $rev = $Apache::lonnet::needsrelease{'course:commblock:docs'}; |
my $rev = $Apache::lonnet::needsrelease{'course:commblock:docs:'}; |
push(@{$fromblocks{'docs'}{$rev}},&unescape($comm_blocks{$block}{'event'}). |
push(@{$fromblocks{'docs'}{$rev}},&unescape($comm_blocks{$block}{'event'}). |
' '. |
' '. |
&mt('set by [_1]', |
&mt('set by [_1]', |
&Apache::loncommon::plainname(split(/:/,$comm_blocks{$block}{'setter'})))); |
&Apache::loncommon::plainname(split(/:/,$comm_blocks{$block}{'setter'})))); |
} |
} |
} elsif ($comm_blocks{$block}{'blocks'}{'printout'} eq 'on') { |
} elsif ($comm_blocks{$block}{'blocks'}{'printout'} eq 'on') { |
my $rev = $Apache::lonnet::needsrelease{'course:commblock:printout'}; |
my $rev = $Apache::lonnet::needsrelease{'course:commblock:printout:'}; |
push(@{$fromblocks{'printout'}{$rev}},&unescape($comm_blocks{$block}{'event'}). |
push(@{$fromblocks{'printout'}{$rev}},&unescape($comm_blocks{$block}{'event'}). |
' '. |
' '. |
&mt('set by [_1]', |
&mt('set by [_1]', |
Line 2785 sub display_loncaparev_constraints {
|
Line 2782 sub display_loncaparev_constraints {
|
if (ref($fromblocks{$type}) eq 'HASH') { |
if (ref($fromblocks{$type}) eq 'HASH') { |
foreach my $rev (keys(%{$fromblocks{$type}})) { |
foreach my $rev (keys(%{$fromblocks{$type}})) { |
my ($major,$minor) = split(/\./,$rev); |
my ($major,$minor) = split(/\./,$rev); |
($reqdmajor,$reqdminor) = |
($reqdmajor,$reqdminor) = |
&Apache::lonrelrequtils::update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
&Apache::lonrelrequtils::update_reqd_loncaparev($major,$minor,$reqdmajor,$reqdminor); |
$output .= &Apache::loncommon::start_data_table_row(). |
$output .= &Apache::loncommon::start_data_table_row(). |
'<td>'.$rev.'</td><td>'.$lt{$type}.'</td><td>'; |
'<td>'.$rev.'</td><td>'.$lt{$type}.'</td><td>'; |
Line 2803 sub display_loncaparev_constraints {
|
Line 2800 sub display_loncaparev_constraints {
|
|
|
if (defined($navmap)) { |
if (defined($navmap)) { |
my %anonsubms=&Apache::lonnet::dump('nohist_anonsurveys',$cdom,$cnum); |
my %anonsubms=&Apache::lonnet::dump('nohist_anonsurveys',$cdom,$cnum); |
my $rev_anonsurv=$Apache::lonnet::needsrelease{'parameter:type:anonsurvey'}; |
my $rev_anonsurv=$Apache::lonnet::needsrelease{'parameter:type:anonsurvey::'}; |
my %randtrysubms=&Apache::lonnet::dump('nohist_randomizetry',$cdom,$cnum); |
my %randtrysubms=&Apache::lonnet::dump('nohist_randomizetry',$cdom,$cnum); |
my $rev_randtry=$Apache::lonnet::needsrelease{'parameter:type:randomizetry'}; |
my $rev_randtry=$Apache::lonnet::needsrelease{'parameter:type:randomizetry::'}; |
my $stdtype=&Apache::lonparmset::standard_parameter_types('type'); |
my $stdtype=&Apache::lonparmset::standard_parameter_types('type'); |
my $stdname=&Apache::lonparmset::standard_parameter_names('type'); |
my $stdname=&Apache::lonparmset::standard_parameter_names('type'); |
my $valanon=&get_param_description($stdtype,'anonsurvey'); |
my $valanon=&get_param_description($stdtype,'anonsurvey'); |
Line 2865 sub display_loncaparev_constraints {
|
Line 2862 sub display_loncaparev_constraints {
|
&Apache::lonrelrequtils::update_reqd_loncaparev($major,$minor, |
&Apache::lonrelrequtils::update_reqd_loncaparev($major,$minor, |
$reqdmajor,$reqdminor); |
$reqdmajor,$reqdminor); |
$checkedrev{$key} = 1; |
$checkedrev{$key} = 1; |
} |
} |
push(@{$byresponsetype{$symb}{$rev}},$key); |
push(@{$byresponsetype{$symb}{$rev}},$key); |
$allmaps{$enclosing_map} = 1; |
$allmaps{$enclosing_map} = 1; |
} |
} |
Line 3078 sub show_contents_view {
|
Line 3075 sub show_contents_view {
|
sub releases_by_map { |
sub releases_by_map { |
my ($r,$bymap,$url,$scopeorder,$lt) = @_; |
my ($r,$bymap,$url,$scopeorder,$lt) = @_; |
return unless ((ref($bymap) eq 'HASH') && (ref($scopeorder) eq 'ARRAY')); |
return unless ((ref($bymap) eq 'HASH') && (ref($scopeorder) eq 'ARRAY')); |
my $newrow = 0; |
my $newrow = 0; |
if (ref($bymap->{$url}) eq 'HASH') { |
if (ref($bymap->{$url}) eq 'HASH') { |
foreach my $rev (sort(keys(%{$bymap->{$url}}))) { |
foreach my $rev (sort(keys(%{$bymap->{$url}}))) { |
if ($newrow) { |
if ($newrow) { |
Line 3115 sub releases_by_map {
|
Line 3112 sub releases_by_map {
|
} |
} |
|
|
sub get_param_description { |
sub get_param_description { |
my ($stdtype,$value) = @_; |
my ($stdtype,$value,$regexp) = @_; |
my $name = $value; |
my ($name,$parammatches,$paramstrings,@possibles); |
my $paramstrings = &Apache::lonparmset::standard_string_options($stdtype); |
if ($stdtype =~ /^string/) { |
unless (ref($paramstrings) eq 'ARRAY') { |
$paramstrings = &Apache::lonparmset::standard_string_options($stdtype); |
return $name; |
} elsif ($stdtype eq 'date_interval') { |
|
$paramstrings = &Apache::lonparmset::standard_interval_options($stdtype); |
|
} |
|
if ($regexp) { |
|
if ($stdtype =~ /^string/) { |
|
$parammatches = &Apache::lonparmset::standard_string_matches($stdtype); |
|
} elsif ($stdtype eq 'date_interval') { |
|
$parammatches = &Apache::lonparmset::standard_interval_matches($stdtype); |
|
} |
|
if (ref($parammatches) eq 'ARRAY') { |
|
@possibles = @{$parammatches}; |
|
} else { |
|
undef($regexp); |
|
$name = $value; |
|
} |
|
} |
|
unless ($regexp) { |
|
$name = $value; |
|
if (ref($paramstrings) eq 'ARRAY') { |
|
@possibles = @{$paramstrings}; |
|
} else { |
|
if (($stdtype eq 'date_start') || ($stdtype eq 'date_end')) { |
|
if ($name == 0) { |
|
$name = &mt('Never'); |
|
} elsif (($name ne '') && ($name !~ /\D/)) { |
|
$name = &Apache::lonlocal::locallocaltime($name); |
|
} |
|
} |
|
return $name; |
|
} |
} |
} |
foreach my $possibilities (@{$paramstrings}) { |
foreach my $possibilities (@possibles) { |
next unless (ref($possibilities) eq 'ARRAY'); |
next unless (ref($possibilities) eq 'ARRAY'); |
my ($thing, $description) = @{ $possibilities }; |
my $gotregexmatch = ''; |
if ($thing eq $value) { |
if ($regexp) { |
$name = $description; |
last if ($gotregexmatch); |
last; |
my ($item,$pattern) = @{ $possibilities }; |
|
if ($value =~ /$pattern/) { |
|
if (ref($paramstrings) eq 'ARRAY') { |
|
foreach my $possibles (@{$paramstrings}) { |
|
next unless (ref($possibles) eq 'ARRAY'); |
|
my ($thing,$description) = @{$possibles}; |
|
if ($thing eq $item) { |
|
$name = $description; |
|
$gotregexmatch = 1; |
|
last; |
|
} |
|
} |
|
last if ($gotregexmatch); |
|
} |
|
} |
|
} else { |
|
my ($thing,$description) = @{ $possibilities }; |
|
if ($thing eq $value) { |
|
$name = $description; |
|
last; |
|
} |
} |
} |
} |
} |
return $name; |
return $name; |
Line 3163 sub show_autocoowners {
|
Line 3209 sub show_autocoowners {
|
} |
} |
|
|
sub coowner_invitations { |
sub coowner_invitations { |
my ($cnum,$cdom,$currcoownref,$noedit) = @_; |
my ($cnum,$cdom,@currcoown) = @_; |
my ($output,@pendingcoown,@othercoords,@currcoown); |
my ($output,@pendingcoown,@othercoords); |
my $pendingcoowners = |
my $pendingcoowners = |
$env{'course.'.$env{'request.course.id'}.'.internal.pendingco-owners'}; |
$env{'course.'.$env{'request.course.id'}.'.internal.pendingco-owners'}; |
if ($pendingcoowners) { |
if ($pendingcoowners) { |
@pendingcoown = split(',',$pendingcoowners); |
@pendingcoown = split(',',$pendingcoowners); |
} |
} |
if (ref($currcoownref) eq 'ARRAY') { |
|
@currcoown == @{$currcoownref}; |
|
} |
|
my $disabled; |
|
if ($noedit) { |
|
$disabled = ' disabled="disabled"'; |
|
} |
|
my $ccrole = 'cc'; |
my $ccrole = 'cc'; |
my %ccroles = &Apache::lonnet::get_my_roles($cnum,$cdom,undef,undef,[$ccrole]); |
my %ccroles = &Apache::lonnet::get_my_roles($cnum,$cdom,undef,undef,[$ccrole]); |
foreach my $key (sort(keys(%ccroles))) { |
foreach my $key (sort(keys(%ccroles))) { |
Line 3194 sub coowner_invitations {
|
Line 3233 sub coowner_invitations {
|
'<td><i>'.&mt('Current co-owners').'</i></td><td>'; |
'<td><i>'.&mt('Current co-owners').'</i></td><td>'; |
foreach my $person (@currcoown) { |
foreach my $person (@currcoown) { |
my ($co_uname,$co_dom) = split(':',$person); |
my ($co_uname,$co_dom) = split(':',$person); |
$output .= '<span class="LC_nobreak"><label><input type="checkbox" name="coowners" checked="checked" value="'.$person.'"'.$disabled.' />'.&Apache::loncommon::plainname($co_uname,$co_dom).'</label></span>'.(' 'x2).' '; |
$output .= '<span class="LC_nobreak"><label><input type="checkbox" name="coowners" checked="checked" value="'.$person.'" />'.&Apache::loncommon::plainname($co_uname,$co_dom).'</label></span>'.(' 'x2).' '; |
} |
} |
$output .= '</td>'. |
$output .= '</td>'. |
&Apache::loncommon::end_data_table_row(); |
&Apache::loncommon::end_data_table_row(); |
Line 3204 sub coowner_invitations {
|
Line 3243 sub coowner_invitations {
|
'<td><i>'.&mt('Invited as co-owners [_1](agreement pending)','<br />').'</i></td><td>'; |
'<td><i>'.&mt('Invited as co-owners [_1](agreement pending)','<br />').'</i></td><td>'; |
foreach my $person (@pendingcoown) { |
foreach my $person (@pendingcoown) { |
my ($co_uname,$co_dom) = split(':',$person); |
my ($co_uname,$co_dom) = split(':',$person); |
$output .= '<span class="LC_nobreak"><label><input type="checkbox" name="pendingcoowners" checked="checked" value="'.$person.'"'.$disabled.' />'.&Apache::loncommon::plainname($co_uname,$co_dom).'</label></span>'.(' 'x2).' '; |
$output .= '<span class="LC_nobreak"><label><input type="checkbox" name="pendingcoowners" checked="checked" value="'.$person.'" />'.&Apache::loncommon::plainname($co_uname,$co_dom).'</label></span>'.(' 'x2).' '; |
} |
} |
$output .= '</td>'. |
$output .= '</td>'. |
&Apache::loncommon::end_data_table_row(); |
&Apache::loncommon::end_data_table_row(); |
Line 3214 sub coowner_invitations {
|
Line 3253 sub coowner_invitations {
|
'<td><i>'.&mt('Invite other Coordinators [_1]to become co-owners','<br />').'</i></td><td>'; |
'<td><i>'.&mt('Invite other Coordinators [_1]to become co-owners','<br />').'</i></td><td>'; |
foreach my $person (@othercoords) { |
foreach my $person (@othercoords) { |
my ($co_uname,$co_dom) = split(':',$person); |
my ($co_uname,$co_dom) = split(':',$person); |
$output .= '<span class="LC_nobreak"><label><input type="checkbox" name="invitecoowners" value="'.$person.'"'.$disabled.' />'.&Apache::loncommon::plainname($co_uname,$co_dom).'</label></span>'.(' 'x2).' '; |
$output .= '<span class="LC_nobreak"><label><input type="checkbox" name="invitecoowners" value="'.$person.'" />'.&Apache::loncommon::plainname($co_uname,$co_dom).'</label></span>'.(' 'x2).' '; |
} |
} |
$output .= '</td>'. |
$output .= '</td>'. |
&Apache::loncommon::end_data_table_row(); |
&Apache::loncommon::end_data_table_row(); |
Line 3227 sub coowner_invitations {
|
Line 3266 sub coowner_invitations {
|
} |
} |
|
|
sub manage_coownership { |
sub manage_coownership { |
my ($cnum,$cdom,$currcoownref,$noedit) = @_; |
my ($cnum,$cdom,@currcoown) = @_; |
my (@pendingcoown,@currcoown); |
my (@pendingcoown); |
my $pendingcoowners = |
my $pendingcoowners = |
$env{'course.'.$env{'request.course.id'}.'.internal.pendingco-owners'}; |
$env{'course.'.$env{'request.course.id'}.'.internal.pendingco-owners'}; |
if ($pendingcoowners) { |
if ($pendingcoowners) { |
@pendingcoown = split(',',$pendingcoowners); |
@pendingcoown = split(',',$pendingcoowners); |
} |
} |
if (ref($currcoownref) eq 'ARRAY') { |
|
@currcoown == @{$currcoownref}; |
|
} |
|
my $disabled; |
|
if ($noedit) { |
|
$disabled = ' disabled="disabled"'; |
|
} |
|
my ($is_coowner,$is_pending,$output); |
my ($is_coowner,$is_pending,$output); |
my $uname = $env{'user.name'}; |
my $uname = $env{'user.name'}; |
my $udom = $env{'user.domain'}; |
my $udom = $env{'user.domain'}; |
Line 3270 sub manage_coownership {
|
Line 3302 sub manage_coownership {
|
} |
} |
$output .= '<span class="LC_nobreak">'; |
$output .= '<span class="LC_nobreak">'; |
if ($is_coowner) { |
if ($is_coowner) { |
$output .= &mt('You are currently a co-owner:').' <label><input type="checkbox" name="remove_coowner" value="'.$uname.':'.$udom.'" />'.&mt('Discontinue?').'</label>'; |
$output .= &mt('You are currently a co-owner:').' <label><input type="checkbox" name="remove_coowoner" value="'.$uname.':'.$udom.'" />'.&mt('Discontinue?').'</label>'; |
} else { |
} else { |
$output .= &mt('The course owner has invited you to become a co-owner:').' <label><input type="radio" name="pending_coowner" value="accept"'.$disabled.' />'.&mt('Accept?').'</label>'.(' 'x2). |
$output .= &mt('The course owner has invited you to become a co-owner:').' <label><input type="radio" name="pending_coowoner" value="accept" />'.&mt('Accept?').'</label>'.(' 'x2). |
'<label><input type="radio" name=pending_coowner" value="decline"'.$disabled.' />'.&mt('Decline?').'</label>'; |
'<label><input type="radio" name=pending_coowoner" value="decline" />'.&mt('Decline?').'</label>'; |
} |
} |
$output .= '</span>'; |
$output .= '</span>'; |
if (@currcoown) { |
if (@currcoown) { |
Line 3287 sub manage_coownership {
|
Line 3319 sub manage_coownership {
|
} |
} |
|
|
sub print_localization { |
sub print_localization { |
my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$noedit) = @_; |
my ($cdom,$settings,$ordered,$itemtext,$rowtotal) = @_; |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
return; |
return; |
} |
} |
Line 3306 sub print_localization {
|
Line 3338 sub print_localization {
|
input => 'selectbox', |
input => 'selectbox', |
}, |
}, |
); |
); |
my ($datatable,$disabled); |
my $datatable; |
my $count = 0; |
my $count = 0; |
if ($noedit) { |
|
$disabled = ' disabled="disabled"'; |
|
} |
|
foreach my $item (@{$ordered}) { |
foreach my $item (@{$ordered}) { |
$count ++; |
$count ++; |
my $colspan; |
my $colspan; |
unless ($item eq 'languages') { |
unless ($item eq 'languages') { |
$colspan = 2; |
$colspan = 2; |
} |
} |
$datatable .= &item_table_row_start($items{$item}{text},$count,undef,$colspan); |
$datatable .= &item_table_row_start($items{$item}{text},$count,undef,$colspan); |
if ($item eq 'timezone') { |
if ($item eq 'timezone') { |
Line 3323 sub print_localization {
|
Line 3352 sub print_localization {
|
my $timezone = &Apache::lonlocal::gettimezone(); |
my $timezone = &Apache::lonlocal::gettimezone(); |
$datatable .= |
$datatable .= |
&Apache::loncommon::select_timezone($item,$timezone,undef, |
&Apache::loncommon::select_timezone($item,$timezone,undef, |
$includeempty,$disabled); |
$includeempty); |
} elsif ($item eq 'datelocale') { |
} elsif ($item eq 'datelocale') { |
my $includeempty = 1; |
my $includeempty = 1; |
my $locale_obj = &Apache::lonlocal::getdatelocale(); |
my $locale_obj = &Apache::lonlocal::getdatelocale(); |
Line 3333 sub print_localization {
|
Line 3362 sub print_localization {
|
} |
} |
$datatable .= |
$datatable .= |
&Apache::loncommon::select_datelocale($item,$currdatelocale, |
&Apache::loncommon::select_datelocale($item,$currdatelocale, |
undef,$includeempty,$disabled); |
undef,$includeempty); |
} else { |
} else { |
if ($settings->{$item} eq '') { |
if ($settings->{$item} eq '') { |
unless ($noedit) { |
$datatable .= '</td><td align="right">'. |
$datatable .= '</td><td align="right">'. |
&Apache::loncommon::select_language('languages_0','',1); |
&Apache::loncommon::select_language('languages_0','',1); |
|
} |
|
} else { |
} else { |
my $num = 0; |
my $num = 0; |
my @languages = split(/\s*[,;:]\s*/,$settings->{$item}); |
my @languages = split(/\s*[,;:]\s*/,$settings->{$item}); |
Line 3359 sub print_localization {
|
Line 3386 sub print_localization {
|
'</b><input type="hidden" name="languages_'.$num. |
'</b><input type="hidden" name="languages_'.$num. |
'" value="'.$lang.'" /></span><br />'. |
'" value="'.$lang.'" /></span><br />'. |
'<span class="LC_nobreak"><label><input type="checkbox" '. |
'<span class="LC_nobreak"><label><input type="checkbox" '. |
'name="languages_delete" value="'.$num.'"'.$disabled.' />'. |
'name="languages_delete" value="'.$num.'" />'. |
&mt('Delete').'</label></span></td>'. |
&mt('Delete').'</label></span></td>'. |
&Apache::loncommon::end_data_table_row(); |
&Apache::loncommon::end_data_table_row(); |
$num ++; |
$num ++; |
} |
} |
} |
} |
unless ($noedit) { |
$datatable .= &Apache::loncommon::start_data_table_row(). |
$datatable .= |
|
&Apache::loncommon::start_data_table_row(). |
|
'<td align="left"><span class="LC_nobreak">'. |
'<td align="left"><span class="LC_nobreak">'. |
&mt('Additional language:'). '</span><br />'. |
&mt('Additional language:'). '</span><br />'. |
&Apache::loncommon::select_language('languages_'.$num,'',1). |
&Apache::loncommon::select_language('languages_'.$num,'',1). |
'<input type="hidden" name="languages_total" value="'.$num.'" />'. |
'<input type="hidden" name="languages_total" value="'.$num.'" />'. |
'</td>'.&Apache::loncommon::end_data_table_row(); |
'</td>'.&Apache::loncommon::end_data_table_row(). |
} |
&Apache::loncommon::end_data_table().'<br />'; |
$datatable .= &Apache::loncommon::end_data_table().'<br />'; |
|
} |
} |
} |
} |
$datatable .= &item_table_row_end(); |
$datatable .= &item_table_row_end(); |
Line 3395 sub get_lang_choices {
|
Line 3419 sub get_lang_choices {
|
} |
} |
|
|
sub print_feedback { |
sub print_feedback { |
my ($position,$cdom,$settings,$ordered,$itemtext,$rowtotal,$noedit) = @_; |
my ($position,$cdom,$settings,$ordered,$itemtext,$rowtotal) = @_; |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
return; |
return; |
} |
} |
Line 3430 sub print_feedback {
|
Line 3454 sub print_feedback {
|
del => 'Delete?', |
del => 'Delete?', |
sec => 'Sections:', |
sec => 'Sections:', |
); |
); |
my $disabled; |
|
if ($noedit) { |
|
$disabled = ' disabled="disabled"'; |
|
} |
|
foreach my $item (@{$ordered}) { |
foreach my $item (@{$ordered}) { |
$count ++; |
$count ++; |
if ($position eq 'top') { |
if ($position eq 'top') { |
Line 3443 sub print_feedback {
|
Line 3464 sub print_feedback {
|
} |
} |
if ($position eq 'top') { |
if ($position eq 'top') { |
my $includeempty = 0; |
my $includeempty = 0; |
$datatable .= '</td><td align="right">'. |
$datatable .= '</td><td align="right">'. |
&user_table($cdom,$item,\@sections, |
&user_table($cdom,$item,\@sections, |
$settings->{$item},\%lt,$noedit); |
$settings->{$item},\%lt); |
} else { |
} else { |
$datatable .= &Apache::lonhtmlcommon::textbox($item.'.text', |
$datatable .= &Apache::lonhtmlcommon::textbox($item.'.text', |
$settings->{$item.'.text'},$items{$item}{size},$disabled); |
$settings->{$item.'.text'},$items{$item}{size}); |
} |
} |
$datatable .= &item_table_row_end(); |
$datatable .= &item_table_row_end(); |
} |
} |
Line 3457 sub print_feedback {
|
Line 3478 sub print_feedback {
|
} |
} |
|
|
sub user_table { |
sub user_table { |
my ($cdom,$item,$sections,$currvalue,$lt,$noedit) = @_; |
my ($cdom,$item,$sections,$currvalue,$lt) = @_; |
my $output; |
my $output; |
if ($currvalue eq '') { |
if ($currvalue eq '') { |
unless ($noedit) { |
$output .= &select_recipient($item,'0',$cdom,$sections); |
$output .= &select_recipient($item,'0',$cdom,$sections); |
|
} |
|
} else { |
} else { |
my $num = 0; |
my $num = 0; |
my @curr = split(/,/,$currvalue); |
my @curr = split(/,/,$currvalue); |
$output .= '<table class="LC_data_table">'; |
$output .= '<table class="LC_data_table">'; |
my ($currusers); |
my ($currusers); |
my $disabled; |
|
if ($noedit) { |
|
$disabled = ' disabled="disabled"'; |
|
} |
|
foreach my $val (@curr) { |
foreach my $val (@curr) { |
next if ($val eq ''); |
next if ($val eq ''); |
my ($uname,$udom,$seclist) = ($val =~ /^($match_username):($match_domain)(\(?[^\)]*\)?)$/); |
my ($uname,$udom,$seclist) = ($val =~ /^($match_username):($match_domain)(\(?[^\)]*\)?)$/); |
Line 3483 sub user_table {
|
Line 3498 sub user_table {
|
$currusers .= '<tr>'. |
$currusers .= '<tr>'. |
'<td valign="top"><span class="LC_nobreak">'. |
'<td valign="top"><span class="LC_nobreak">'. |
'<label><input type="checkbox" '. |
'<label><input type="checkbox" '. |
'name="'.$item.'_delete" value="'.$num.'"'.$disabled.' />'. |
'name="'.$item.'_delete" value="'.$num.'" />'. |
$lt->{'del'}.'</label>'. |
$lt->{'del'}.'</label>'. |
'<input type="hidden" name="'.$item.'_user_'. |
'<input type="hidden" name="'.$item.'_user_'. |
$num.'" value="'.$uname.':'.$udom.'" />'.(' 'x2). |
$num.'" value="'.$uname.':'.$udom.'" />'.(' 'x2). |
Line 3494 sub user_table {
|
Line 3509 sub user_table {
|
if (@{$sections}) { |
if (@{$sections}) { |
$currusers.= (' 'x3).$lt->{'sec'}.' '. |
$currusers.= (' 'x3).$lt->{'sec'}.' '. |
&select_sections($item,$num,$sections, |
&select_sections($item,$num,$sections, |
\@selsec,$noedit); |
\@selsec); |
} |
} |
} |
} |
$currusers .= '</span></td></tr>'; |
$currusers .= '</span></td></tr>'; |
Line 3512 sub user_table {
|
Line 3527 sub user_table {
|
'<table>'.$currusers.'</table></td>'. |
'<table>'.$currusers.'</table></td>'. |
'</tr>'; |
'</tr>'; |
} |
} |
unless ($noedit) { |
$output .= '<tr>'. |
$output .= |
|
'<tr>'. |
|
'<td align="left"><span class="LC_nobreak"><i>'. |
'<td align="left"><span class="LC_nobreak"><i>'. |
$lt->{'add'}.'</i></span><br />'. |
$lt->{'add'}.'</i></span><br />'. |
&select_recipient($item,$num,$cdom,$sections). |
&select_recipient($item,$num,$cdom,$sections). |
'<input type="hidden" name="'.$item.'_total" value="'.$num.'" />'. |
'<input type="hidden" name="'.$item.'_total" value="'.$num.'" />'. |
'</td></tr>'; |
'</td></tr></table>'; |
} |
|
$output .= '</table>'; |
|
} |
} |
return $output; |
return $output; |
} |
} |
Line 3531 sub select_recipient {
|
Line 3542 sub select_recipient {
|
my $domform = &Apache::loncommon::select_dom_form($cdom,$item.'_udom_'.$num,$includeempty); |
my $domform = &Apache::loncommon::select_dom_form($cdom,$item.'_udom_'.$num,$includeempty); |
my $selectlink = |
my $selectlink = |
&Apache::loncommon::selectstudent_link('display',$item.'_uname_'.$num, |
&Apache::loncommon::selectstudent_link('display',$item.'_uname_'.$num, |
$item.'_udom_'.$num,'only'); |
$item.'_udom_'.$num,1); |
my $output = |
my $output = |
'<table><tr><td align="center">'.&mt('Username').'<br />'. |
'<table><tr><td align="center">'.&mt('Username').'<br />'. |
'<input type="text" name="'.$item.'_uname_'.$num.'" value="" /></td>'. |
'<input type="text" name="'.$item.'_uname_'.$num.'" value="" /></td>'. |
Line 3548 sub select_recipient {
|
Line 3559 sub select_recipient {
|
} |
} |
|
|
sub select_sections { |
sub select_sections { |
my ($item,$num,$sections,$selected,$noedit) = @_; |
my ($item,$num,$sections,$selected) = @_; |
my ($output,@currsecs,$allsec,$disabled); |
my ($output,@currsecs,$allsec); |
if (ref($selected) eq 'ARRAY') { |
if (ref($selected) eq 'ARRAY') { |
@currsecs = @{$selected}; |
@currsecs = @{$selected}; |
} |
} |
if (!@currsecs) { |
if (!@currsecs) { |
$allsec = ' selected="selected"'; |
$allsec = ' selected="selected"'; |
} |
} |
if ($noedit) { |
|
$disabled = ' disabled="disabled"'; |
|
} |
|
if (ref($sections) eq 'ARRAY') { |
if (ref($sections) eq 'ARRAY') { |
if (@{$sections}) { |
if (@{$sections}) { |
my $mult; |
my $mult; |
Line 3568 sub select_sections {
|
Line 3576 sub select_sections {
|
$mult .= ' size="4"'; |
$mult .= ' size="4"'; |
} |
} |
} |
} |
$output = '<select name="'.$item.'_sections_'.$num.'"'.$mult.$disabled.'>'. |
$output = '<select name="'.$item.'_sections_'.$num.'"'.$mult.'>'. |
' <option value=""'.$allsec.'>'.&mt('All').'</option>'; |
' <option value=""'.$allsec.'>'.&mt('All').'</option>'; |
foreach my $sec (@{$sections}) { |
foreach my $sec (@{$sections}) { |
my $is_sel; |
my $is_sel; |
Line 3584 sub select_sections {
|
Line 3592 sub select_sections {
|
} |
} |
|
|
sub print_discussion { |
sub print_discussion { |
my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$noedit) = @_; |
my ($cdom,$settings,$ordered,$itemtext,$rowtotal) = @_; |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
return; |
return; |
} |
} |
Line 3614 sub print_discussion {
|
Line 3622 sub print_discussion {
|
&mt('(specific user(s))'), |
&mt('(specific user(s))'), |
input => 'checkbox', |
input => 'checkbox', |
}, |
}, |
|
|
|
'pac.roles.denied' => { |
|
text => '<span class="LC_nobreak"><b>'.&mt($itemtext->{'pac.roles.denied'}).'</b>'. |
|
&Apache::loncommon::help_open_topic("Course_Disable_Anonymous_Discussion").'</span><br />'. |
|
&mt('(role-based)'), |
|
input => 'checkbox', |
|
}, |
|
|
|
'pac.users.denied' => { |
|
text => '<span class="LC_nobreak"><b>'.&mt($itemtext->{'pac.users.denied'}).'</b><br />'. |
|
&mt('(specific user(s))'), |
|
input => 'checkbox', |
|
}, |
|
|
'allow_limited_html_in_feedback' => { |
'allow_limited_html_in_feedback' => { |
text => '<b>'.&mt($itemtext->{'allow_limited_html_in_feedback'}).'</b>', |
text => '<b>'.&mt($itemtext->{'allow_limited_html_in_feedback'}).'</b>', |
input => 'radio', |
input => 'radio', |
Line 3646 sub print_discussion {
|
Line 3668 sub print_discussion {
|
my $colspan; |
my $colspan; |
if ($item eq 'allow_limited_html_in_feedback') { |
if ($item eq 'allow_limited_html_in_feedback') { |
$colspan = 2; |
$colspan = 2; |
} |
} |
$datatable .= &item_table_row_start($items{$item}{text},$count,undef,$colspan); |
$datatable .= &item_table_row_start($items{$item}{text},$count,undef,$colspan); |
if ($item eq 'plc.roles.denied') { |
if ($item eq 'plc.roles.denied') { |
$datatable .= '</td><td align="right">'. |
$datatable .= '</td><td align="right">'. |
'<table>'.&role_checkboxes($cdom,$cnum,$item,$settings,undef,undef,$noedit). |
'<table>'.&role_checkboxes($cdom,$cnum,$item,$settings). |
'</table>'; |
'</table>'; |
} elsif ($item eq 'plc.users.denied') { |
} elsif ($item eq 'plc.users.denied') { |
$datatable .= '</td><td align="right">'. |
$datatable .= '</td><td align="right">'. |
&user_table($cdom,$item,undef, |
&user_table($cdom,$item,undef, |
$settings->{$item},\%lt,$noedit); |
$settings->{$item},\%lt); |
} elsif ($item eq 'pch.roles.denied') { |
} elsif ($item eq 'pch.roles.denied') { |
$datatable .= '</td><td align="right">'. |
$datatable .= '</td><td align="right">'. |
'<table>'.&role_checkboxes($cdom,$cnum,$item,$settings,undef,undef,$noedit). |
'<table>'.&role_checkboxes($cdom,$cnum,$item,$settings). |
'</table>'; |
'</table>'; |
} elsif ($item eq 'pch.users.denied') { |
} elsif ($item eq 'pch.users.denied') { |
$datatable .= '</td><td align="right">'. |
$datatable .= '</td><td align="right">'. |
&user_table($cdom,$item,undef, |
&user_table($cdom,$item,undef, |
$settings->{$item},\%lt,$noedit); |
$settings->{$item},\%lt); |
|
} elsif ($item eq 'pac.roles.denied') { |
|
$datatable .= '</td><td align="right">'. |
|
'<table>'.&role_checkboxes($cdom,$cnum,$item,$settings). |
|
'</table>'; |
|
} elsif ($item eq 'pac.users.denied') { |
|
$datatable .= '</td><td align="right">'. |
|
&user_table($cdom,$item,undef, |
|
$settings->{$item},\%lt); |
} elsif ($item eq 'allow_limited_html_in_feedback') { |
} elsif ($item eq 'allow_limited_html_in_feedback') { |
$datatable .= &yesno_radio($item,$settings,undef,undef,undef,$noedit); |
$datatable .= &yesno_radio($item,$settings); |
} elsif ($item eq 'allow_discussion_post_editing') { |
} elsif ($item eq 'allow_discussion_post_editing') { |
$datatable .= '</td><td align="right"><br />'. |
$datatable .= '</td><td align="right"><br />'. |
&Apache::loncommon::start_data_table(). |
&Apache::loncommon::start_data_table(). |
Line 3673 sub print_discussion {
|
Line 3703 sub print_discussion {
|
'<th align="left">'.&mt('Role').'</th><th>'. |
'<th align="left">'.&mt('Role').'</th><th>'. |
&mt('Sections').'</th>'. |
&mt('Sections').'</th>'. |
&Apache::loncommon::end_data_table_row(). |
&Apache::loncommon::end_data_table_row(). |
&role_checkboxes($cdom,$cnum,$item,$settings,1,undef,$noedit). |
&role_checkboxes($cdom,$cnum,$item,$settings,1). |
&Apache::loncommon::end_data_table().'<br />'; |
&Apache::loncommon::end_data_table().'<br />'; |
} elsif ($item eq 'discussion_post_fonts') { |
} elsif ($item eq 'discussion_post_fonts') { |
$datatable .= '</td><td align="right"><br />'. |
$datatable .= '</td><td align="right"><br />'. |
Line 3683 sub print_discussion {
|
Line 3713 sub print_discussion {
|
'<th align="center">'.&mt('font-size').'</th>'. |
'<th align="center">'.&mt('font-size').'</th>'. |
'<th align="center">'.&mt('font-weight').'</th>'. |
'<th align="center">'.&mt('font-weight').'</th>'. |
'<th align="center">'.&mt('font-style').'</th>'. |
'<th align="center">'.&mt('font-style').'</th>'. |
'<th align="center">'.&mt('Other css').'</th>'. |
'<th align="center">'.&mt('Other css').'</th>'. |
&Apache::loncommon::end_data_table_row(). |
&Apache::loncommon::end_data_table_row(). |
&set_discussion_fonts($cdom,$cnum,$item,$settings,$noedit). |
&set_discussion_fonts($cdom,$cnum,$item,$settings). |
&Apache::loncommon::end_data_table().'<br />'; |
&Apache::loncommon::end_data_table().'<br />'; |
} |
} |
$datatable .= &item_table_row_end(); |
$datatable .= &item_table_row_end(); |
Line 3695 sub print_discussion {
|
Line 3725 sub print_discussion {
|
} |
} |
|
|
sub role_checkboxes { |
sub role_checkboxes { |
my ($cdom,$cnum,$item,$settings,$showsections,$crstype,$noedit) = @_; |
my ($cdom,$cnum,$item,$settings,$showsections,$crstype) = @_; |
my @roles = ('st','ad','ta','ep','in'); |
my @roles = ('st','ad','ta','ep','in'); |
if ($crstype eq 'Community') { |
if ($crstype eq 'Community') { |
push(@roles,'co'); |
push(@roles,'co'); |
Line 3733 sub role_checkboxes {
|
Line 3763 sub role_checkboxes {
|
} |
} |
my $numinrow = 3; |
my $numinrow = 3; |
my $count = 0; |
my $count = 0; |
my $disabled; |
|
if ($noedit) { |
|
$disabled = ' disabled="disabled"'; |
|
} |
|
foreach my $role (@roles) { |
foreach my $role (@roles) { |
my $checked = ''; |
my $checked = ''; |
if (grep(/^\Q$role\E$/,@current)) { |
if (grep(/^\Q$role\E$/,@current)) { |
Line 3755 sub role_checkboxes {
|
Line 3781 sub role_checkboxes {
|
} |
} |
} |
} |
$output .= '<td align="left"><span class="LC_nobreak"><label><input type="checkbox" name="'. |
$output .= '<td align="left"><span class="LC_nobreak"><label><input type="checkbox" name="'. |
$item.'" value="'.$role.'"'.$checked.$disabled.'/> '. |
$item.'" value="'.$role.'"'.$checked.'/> '. |
$plrole.'</label></span></td>'; |
$plrole.'</label></span></td>'; |
if ($showsections) { |
if ($showsections) { |
$output .= '<td align="left">'. |
$output .= '<td align="left">'. |
&select_sections($item,$role,\@sections,$currsec{$role},$noedit). |
&select_sections($item,$role,\@sections,$currsec{$role}). |
'</td></tr>'; |
'</td></tr>'; |
} |
} |
$count ++; |
$count ++; |
Line 3787 sub role_checkboxes {
|
Line 3813 sub role_checkboxes {
|
} |
} |
} |
} |
$output .= '<td><span class="LC_nobreak"><label><input type="checkbox" name="'. |
$output .= '<td><span class="LC_nobreak"><label><input type="checkbox" name="'. |
$item.'" value="'.$value.'"'.$checked.$disabled.' /> '.$rolename. |
$item.'" value="'.$value.'"'.$checked.' /> '.$rolename. |
'</label></span></td>'; |
'</label></span></td>'; |
if ($showsections) { |
if ($showsections) { |
$output .= '<td>'. |
$output .= '<td>'. |
&select_sections($item,$role,\@sections,$currsec{$role},$noedit). |
&select_sections($item,$role,\@sections,$currsec{$role}). |
'</td>'.&Apache::loncommon::end_data_table_row(); |
'</td>'.&Apache::loncommon::end_data_table_row(); |
} |
} |
$total ++; |
$total ++; |
Line 3813 sub role_checkboxes {
|
Line 3839 sub role_checkboxes {
|
} |
} |
|
|
sub set_discussion_fonts { |
sub set_discussion_fonts { |
my ($cdom,$cnum,$item,$settings,$noedit) = @_; |
my ($cdom,$cnum,$item,$settings) = @_; |
my ($classorder,$classtitles) = &discussion_vote_classes(); |
my ($classorder,$classtitles) = &discussion_vote_classes(); |
my ($styleorder,$styleitems) = &discussion_vote_styles(); |
my ($styleorder,$styleitems) = &discussion_vote_styles(); |
my $output; |
my $output; |
if (ref($classorder) eq 'ARRAY') { |
if (ref($classorder) eq 'ARRAY') { |
my $disabled; |
|
if ($noedit) { |
|
$disabled = ' disabled="disabled"'; |
|
} |
|
foreach my $cat (@{$classorder}) { |
foreach my $cat (@{$classorder}) { |
my %curr = (); |
my %curr = (); |
($curr{'size'},$curr{'weight'},$curr{'style'},$curr{'other'}) = |
($curr{'size'},$curr{'weight'},$curr{'style'},$curr{'other'}) = |
Line 3838 sub set_discussion_fonts {
|
Line 3860 sub set_discussion_fonts {
|
($currsize,$currunit) = ($1,$2); |
($currsize,$currunit) = ($1,$2); |
$curr{'size'} = $currunit; |
$curr{'size'} = $currunit; |
} |
} |
$output .= '<input type="textbox" name="discussion_post_fonts_'.$cat.'_'.$item.'" value="'.$currsize.'" size="5"'.$disabled.' />'. |
$output .= '<input type="textbox" name="discussion_post_fonts_'.$cat.'_'.$item.'" value="'.$currsize.'" size="5">'. |
' '; |
' '; |
$selitem = 'unit'; |
$selitem = 'unit'; |
} |
} |
if ((ref($styleitems) eq 'HASH') && (ref($styleitems->{$item}) eq 'ARRAY')) { |
if ((ref($styleitems) eq 'HASH') && (ref($styleitems->{$item}) eq 'ARRAY')) { |
$output .= '<select name="discussion_post_fonts_'.$cat.'_'.$selitem.'"'.$disabled.'>'; |
$output .= '<select name="discussion_post_fonts_'.$cat.'_'.$selitem.'">'; |
foreach my $val (@{$styleitems->{$item}}) { |
foreach my $val (@{$styleitems->{$item}}) { |
my $sel; |
my $sel; |
if ($val eq $curr{$item}) { |
if ($val eq $curr{$item}) { |
Line 3854 sub set_discussion_fonts {
|
Line 3876 sub set_discussion_fonts {
|
} |
} |
} |
} |
} |
} |
$output .= '</span></td><td><input type="textbox" size="10" name="discussion_post_fonts_'.$cat.'_other" value="'.$curr{'other'}.'"'.$disabled.' /></td>'; |
$output .= '</span></td><td><input type="textbox" size="10" name="discussion_post_fonts_'.$cat.'_other" value="'.$curr{'other'}.'" /></td>'; |
} |
} |
$output .= &Apache::loncommon::end_data_table_row(); |
$output .= &Apache::loncommon::end_data_table_row(); |
} |
} |
Line 3863 sub set_discussion_fonts {
|
Line 3885 sub set_discussion_fonts {
|
|
|
sub discussion_vote_classes { |
sub discussion_vote_classes { |
my $classorder = ['twoplus','oneplus','zero','oneminus','twominus']; |
my $classorder = ['twoplus','oneplus','zero','oneminus','twominus']; |
my %classtitles = &Apache::lonlocal::texthash( |
my %classtitles = &Apache::lonlocal::texthash( |
'twoplus' => 'Two sigma above mean', |
'twoplus' => 'Two sigma above mean', |
'oneplus' => 'One sigma above mean', |
'oneplus' => 'One sigma above mean', |
'zero' => 'Within one sigma of mean', |
'zero' => 'Within one sigma of mean', |
Line 3886 sub discussion_vote_styles {
|
Line 3908 sub discussion_vote_styles {
|
} |
} |
|
|
sub print_classlists { |
sub print_classlists { |
my ($position,$cdom,$settings,$itemtext,$rowtotal,$crstype,$noedit) = @_; |
my ($position,$cdom,$settings,$itemtext,$rowtotal,$crstype) = @_; |
my @ordered; |
my @ordered; |
if ($position eq 'top') { |
if ($position eq 'top') { |
@ordered = ('default_enrollment_start_date', |
@ordered = ('default_enrollment_start_date', |
Line 3929 sub print_classlists {
|
Line 3951 sub print_classlists {
|
'defaultcredits' => { |
'defaultcredits' => { |
text => '<b>'.&mt($itemtext->{'defaultcredits'}).'</b>', |
text => '<b>'.&mt($itemtext->{'defaultcredits'}).'</b>', |
}, |
}, |
|
|
'nothideprivileged' => { |
'nothideprivileged' => { |
text => '<b>'.&mt($itemtext->{'nothideprivileged'}).'</b>', |
text => '<b>'.&mt($itemtext->{'nothideprivileged'}).'</b>', |
input => 'checkbox', |
input => 'checkbox', |
Line 3960 sub print_classlists {
|
Line 3982 sub print_classlists {
|
($settings->{'student_classlist_view'} eq 'section')) { |
($settings->{'student_classlist_view'} eq 'section')) { |
$settings->{'student_classlist_view'} = 'disabled'; |
$settings->{'student_classlist_view'} = 'disabled'; |
} |
} |
return &make_item_rows($cdom,\%items,\@ordered,$settings,$rowtotal,$crstype,'classlists',$noedit); |
return &make_item_rows($cdom,\%items,\@ordered,$settings,$rowtotal,$crstype,'classlists'); |
} |
} |
|
|
sub print_appearance { |
sub print_appearance { |
my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype,$noedit) = @_; |
my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_; |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
return; |
return; |
} |
} |
Line 4017 sub print_appearance {
|
Line 4039 sub print_appearance {
|
input => 'radio', |
input => 'radio', |
}, |
}, |
); |
); |
return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'appearance',$noedit); |
return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'appearance'); |
} |
} |
|
|
sub print_grading { |
sub print_grading { |
my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype,$noedit) = @_; |
my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_; |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
return; |
return; |
} |
} |
Line 4032 sub print_grading {
|
Line 4054 sub print_grading {
|
input => 'selectbox', |
input => 'selectbox', |
options => { |
options => { |
standard => &mt('Standard: shows points'), |
standard => &mt('Standard: shows points'), |
|
categories => &mt('Categories: shows points according to categories'), |
external => &mt('External: shows number of completed parts and totals'), |
external => &mt('External: shows number of completed parts and totals'), |
externalnototals => &mt('External: shows only number of completed parts'), |
externalnototals => &mt('External: shows only number of completed parts'), |
spreadsheet => &mt('Spreadsheet: (with link to detailed scores)'), |
spreadsheet => &mt('Spreadsheet: (with link to detailed scores)'), |
}, |
}, |
order => ['standard','external','externalnototals','spreadsheet'], |
order => ['standard','categories','external','externalnototals','spreadsheet'], |
}, |
}, |
'rndseed' => { |
'rndseed' => { |
text => '<b>'.&mt($itemtext->{'rndseed'}).'</b>'. |
text => '<b>'.&mt($itemtext->{'rndseed'}).'</b>'. |
Line 4072 sub print_grading {
|
Line 4095 sub print_grading {
|
input => 'radio', |
input => 'radio', |
}, |
}, |
); |
); |
return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'grading',$noedit); |
return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'grading'); |
} |
} |
|
|
sub print_printouts { |
sub print_printouts { |
my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype,$noedit) = @_; |
my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_; |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
return; |
return; |
} |
} |
Line 4125 sub print_printouts {
|
Line 4148 sub print_printouts {
|
nullval => &mt('None specified - use domain default'), |
nullval => &mt('None specified - use domain default'), |
} |
} |
); |
); |
return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'printouts',$noedit); |
return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'printouts'); |
} |
} |
|
|
sub print_spreadsheet { |
sub print_spreadsheet { |
my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype,$noedit) = @_; |
my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_; |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
return; |
return; |
} |
} |
Line 4161 sub print_spreadsheet {
|
Line 4184 sub print_spreadsheet {
|
input => 'radio', |
input => 'radio', |
}, |
}, |
); |
); |
return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'spreadsheet',$noedit); |
return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'spreadsheet'); |
} |
} |
|
|
sub print_bridgetasks { |
sub print_bridgetasks { |
my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype,$noedit) = @_; |
my ($cdom,$settings,$ordered,$itemtext,$rowtotal,$crstype) = @_; |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
unless ((ref($settings) eq 'HASH') && (ref($ordered) eq 'ARRAY') && (ref($itemtext) eq 'HASH')) { |
return; |
return; |
} |
} |
Line 4203 sub print_bridgetasks {
|
Line 4226 sub print_bridgetasks {
|
input => 'radio', |
input => 'radio', |
}, |
}, |
); |
); |
return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'bridgetasks',$noedit); |
return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'bridgetasks'); |
} |
} |
|
|
sub print_other { |
sub print_other { |
my ($cdom,$settings,$allitems,$rowtotal,$crstype,$noedit) = @_; |
my ($cdom,$settings,$allitems,$rowtotal,$crstype) = @_; |
unless ((ref($settings) eq 'HASH') && (ref($allitems) eq 'ARRAY')) { |
unless ((ref($settings) eq 'HASH') && (ref($allitems) eq 'ARRAY')) { |
return; |
return; |
} |
} |
Line 4228 sub print_other {
|
Line 4251 sub print_other {
|
input => 'textbox', |
input => 'textbox', |
size => '30', |
size => '30', |
}; |
}; |
my $output = &make_item_rows($cdom,\%items,\@ordered,$settings,$rowtotal,$crstype,'other',$noedit); |
my $output = &make_item_rows($cdom,\%items,\@ordered,$settings,$rowtotal,$crstype,'other'); |
} |
} |
|
|
sub get_other_items { |
sub get_other_items { |
Line 4277 sub item_table_row_end {
|
Line 4300 sub item_table_row_end {
|
} |
} |
|
|
sub yesno_radio { |
sub yesno_radio { |
my ($item,$settings,$unsetdefault,$valueyes,$valueno,$noedit) = @_; |
my ($item,$settings,$unsetdefault,$valueyes,$valueno) = @_; |
my $itemon = ' '; |
my $itemon = ' '; |
my $itemoff = ' checked="checked" '; |
my $itemoff = ' checked="checked" '; |
if (($valueyes eq '') && ($valueno eq '')) { |
if (($valueyes eq '') && ($valueno eq '')) { |
Line 4296 sub yesno_radio {
|
Line 4319 sub yesno_radio {
|
} |
} |
} |
} |
} |
} |
my $disabled; |
|
if ($noedit) { |
|
$disabled = ' disabled="disabled"'; |
|
} |
|
return '<span class="LC_nobreak"><label>'. |
return '<span class="LC_nobreak"><label>'. |
'<input type="radio" name="'.$item.'"'. |
'<input type="radio" name="'.$item.'"'. |
$itemon.' value="'.$valueyes.'"'.$disabled.' />'.&mt('Yes').'</label> '. |
$itemon.' value="'.$valueyes.'" />'.&mt('Yes').'</label> '. |
'<label><input type="radio" name="'.$item.'"'. |
'<label><input type="radio" name="'.$item.'"'. |
$itemoff.' value="'.$valueno.'"'.$disabled.' />'.&mt('No').'</label></span>'; |
$itemoff.' value="'.$valueno.'" />'.&mt('No').'</label></span>'; |
} |
} |
|
|
sub select_from_options { |
sub select_from_options { |
my ($item,$order,$options,$curr,$nullval,$multiple,$maxsize,$onchange,$noedit) = @_; |
my ($item,$order,$options,$curr,$nullval,$multiple,$maxsize,$onchange) = @_; |
my $output; |
my $output; |
my $disabled; |
|
if ($noedit) { |
|
$disabled = ' disabled=disabled"'; |
|
} |
|
if ((ref($order) eq 'ARRAY') && (ref($options) eq 'HASH')) { |
if ((ref($order) eq 'ARRAY') && (ref($options) eq 'HASH')) { |
$output='<select name="'.$item.'" '.$onchange; |
$output='<select name="'.$item.'" '.$onchange; |
if ($multiple) { |
if ($multiple) { |
Line 4324 sub select_from_options {
|
Line 4339 sub select_from_options {
|
$output .= ' size="'.$maxsize.'"'; |
$output .= ' size="'.$maxsize.'"'; |
} |
} |
} |
} |
$output .= $disabled.'>'."\n"; |
$output .= '>'."\n"; |
if ($nullval ne '') { |
if ($nullval ne '') { |
$output .= '<option value=""'; |
$output .= '<option value=""'; |
if (ref($curr) eq 'ARRAY') { |
if (ref($curr) eq 'ARRAY') { |
Line 4357 sub select_from_options {
|
Line 4372 sub select_from_options {
|
} |
} |
|
|
sub make_item_rows { |
sub make_item_rows { |
my ($cdom,$items,$ordered,$settings,$rowtotal,$crstype,$caller,$noedit) = @_; |
my ($cdom,$items,$ordered,$settings,$rowtotal,$crstype,$caller) = @_; |
my $datatable; |
my $datatable; |
if ((ref($items) eq 'HASH') && (ref($ordered) eq 'ARRAY')) { |
if ((ref($items) eq 'HASH') && (ref($ordered) eq 'ARRAY')) { |
my $count = 0; |
my $count = 0; |
Line 4383 sub make_item_rows {
|
Line 4398 sub make_item_rows {
|
} |
} |
$datatable .= $showcredits; |
$datatable .= $showcredits; |
} elsif ($item eq 'nothideprivileged') { |
} elsif ($item eq 'nothideprivileged') { |
$datatable .= ¬hidepriv_row($cdom,$item,$settings,$crstype,$noedit); |
$datatable .= ¬hidepriv_row($cdom,$item,$settings,$crstype); |
} elsif ($item eq 'checkforpriv') { |
} elsif ($item eq 'checkforpriv') { |
$datatable .= &checkforpriv_row($cdom,$item,$settings,$crstype,$noedit); |
$datatable .= &checkforpriv_row($cdom,$item,$settings,$crstype); |
} elsif ($item eq 'print_header_format') { |
} elsif ($item eq 'print_header_format') { |
$datatable .= &print_hdrfmt_row($item,$settings,$noedit); |
$datatable .= &print_hdrfmt_row($item,$settings); |
} elsif ($items->{$item}{input} eq 'dates') { |
} elsif ($items->{$item}{input} eq 'dates') { |
my $disabled; |
|
if ($noedit) { |
|
$disabled = ' disabled="disabled"'; |
|
} |
|
$datatable .= |
$datatable .= |
&Apache::lonhtmlcommon::date_setter('display',$item, |
&Apache::lonhtmlcommon::date_setter('display',$item, |
$settings->{$item},$disabled); |
$settings->{$item}); |
} elsif ($items->{$item}{input} eq 'radio') { |
} elsif ($items->{$item}{input} eq 'radio') { |
my ($unsetdefault,$valueyes,$valueno); |
my ($unsetdefault,$valueyes,$valueno); |
if (($item eq 'usejsme') || ($item eq 'uselcmath')) { |
if (($item eq 'usejsme') || ($item eq 'uselcmath')) { |
Line 4406 sub make_item_rows {
|
Line 4417 sub make_item_rows {
|
$valueyes = "1"; |
$valueyes = "1"; |
$valueno = "0"; |
$valueno = "0"; |
} |
} |
$datatable .= &yesno_radio($item,$settings,$unsetdefault,$valueyes,$valueno,$noedit); |
$datatable .= &yesno_radio($item,$settings,$unsetdefault,$valueyes,$valueno); |
} elsif ($items->{$item}{input} eq 'selectbox') { |
} elsif ($items->{$item}{input} eq 'selectbox') { |
my $curr = $settings->{$item}; |
my $curr = $settings->{$item}; |
$datatable .= |
$datatable .= |
&select_from_options($item,$items->{$item}{'order'}, |
&select_from_options($item,$items->{$item}{'order'}, |
$items->{$item}{'options'},$curr, |
$items->{$item}{'options'},$curr, |
$items->{$item}{'nullval'}, |
$items->{$item}{'nullval'}); |
undef,undef,undef,$noedit); |
|
} elsif ($items->{$item}{input} eq 'textbox') { |
} elsif ($items->{$item}{input} eq 'textbox') { |
my $disabled; |
|
if ($noedit) { |
|
$disabled = ' disabled=disabled"'; |
|
} |
|
$datatable .= |
$datatable .= |
&Apache::lonhtmlcommon::textbox($item,$settings->{$item}, |
&Apache::lonhtmlcommon::textbox($item,$settings->{$item}, |
$items->{$item}{size}, |
$items->{$item}{size}); |
$disabled); |
|
} |
} |
$datatable .= &item_table_row_end(); |
$datatable .= &item_table_row_end(); |
} |
} |
Line 4434 sub make_item_rows {
|
Line 4439 sub make_item_rows {
|
} |
} |
|
|
sub nothidepriv_row { |
sub nothidepriv_row { |
my ($cdom,$item,$settings,$crstype,$noedit) = @_; |
my ($cdom,$item,$settings,$crstype) = @_; |
my ($cnum) = &get_course(); |
my ($cnum) = &get_course(); |
my ($datatable,%nothide,@checkdoms); |
my ($datatable,%nothide,@checkdoms); |
if (ref($settings) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
Line 4448 sub nothidepriv_row {
|
Line 4453 sub nothidepriv_row {
|
} |
} |
} |
} |
if ($settings->{'checkforpriv'}) { |
if ($settings->{'checkforpriv'}) { |
@checkdoms = split(/,/,$settings->{'checkforpriv'}); |
@checkdoms = split(/,/,$settings->{'checkforpriv'}); |
} |
} |
} |
} |
push(@checkdoms,$cdom); |
push(@checkdoms,$cdom); |
Line 4462 sub nothidepriv_row {
|
Line 4467 sub nothidepriv_row {
|
if ($end == -1 || $start == -1) { |
if ($end == -1 || $start == -1) { |
next; |
next; |
} |
} |
foreach my $dom (@checkdoms) { |
foreach my $dom (@checkdoms) { |
if (&Apache::lonnet::privileged($uname,$udom,\@checkdoms,['dc','su'])) { |
if (&Apache::lonnet::privileged($uname,$udom,\@checkdoms,['dc','su'])) { |
unless (grep(/^\Q$user\E$/,@privusers)) { |
unless (grep(/^\Q$user\E$/,@privusers)) { |
push(@privusers,$user); |
push(@privusers,$user); |
Line 4471 sub nothidepriv_row {
|
Line 4476 sub nothidepriv_row {
|
} |
} |
} |
} |
if (@privusers > 0) { |
if (@privusers > 0) { |
my $disabled; |
|
if ($noedit) { |
|
$disabled = ' disabled="disabled"'; |
|
} |
|
$datatable .= '<table align="right">'; |
$datatable .= '<table align="right">'; |
foreach my $user (sort(@privusers)) { |
foreach my $user (sort(@privusers)) { |
my $hideon = ' checked="checked" '; |
my $hideon = ' checked="checked" '; |
Line 4491 sub nothidepriv_row {
|
Line 4492 sub nothidepriv_row {
|
'</td><td align="left">'. |
'</td><td align="left">'. |
'<span class="LC_nobreak"><label>'. |
'<span class="LC_nobreak"><label>'. |
'<input type="radio" name="'.$item.'_'.$user.'"'. |
'<input type="radio" name="'.$item.'_'.$user.'"'. |
$hideon.' value=""'.$disabled.' />'.&mt('Hidden').'</label> '. |
$hideon.' value="" />'.&mt('Hidden').'</label> '. |
'<label><input type="radio" name="'.$item.'_'.$user.'"'. |
'<label><input type="radio" name="'.$item.'_'.$user.'"'. |
$hideoff.' value="yes"'.$disabled.' />'.&mt('Shown').'</label></span></td>'. |
$hideoff.' value="yes" />'.&mt('Shown').'</label></span></td>'. |
'</tr>'; |
'</tr>'; |
} |
} |
$datatable .= '</table>'; |
$datatable .= '</table>'; |
Line 4508 sub nothidepriv_row {
|
Line 4509 sub nothidepriv_row {
|
} |
} |
|
|
sub checkforpriv_row { |
sub checkforpriv_row { |
my ($cdom,$item,$settings,$crstype,$noedit) = @_; |
my ($cdom,$item,$settings,$crstype) = @_; |
my $datatable; |
my $datatable; |
my %domains=map { $_ => 1; } &Apache::lonnet::all_domains(); |
my %domains=map { $_ => 1; } &Apache::lonnet::all_domains(); |
if (keys(%domains) == 1) { |
if (keys(%domains) == 1) { |
Line 4521 sub checkforpriv_row {
|
Line 4522 sub checkforpriv_row {
|
if ($settings->{$item} eq '') { |
if ($settings->{$item} eq '') { |
$datatable = '</td><td align="right">'. |
$datatable = '</td><td align="right">'. |
&Apache::loncommon::select_dom_form('','checkforpriv_'.$num, |
&Apache::loncommon::select_dom_form('','checkforpriv_'.$num, |
1,1,undef,undef,\@excdoms, |
1,1,undef,undef,\@excdoms); |
$noedit); |
|
} else { |
} else { |
my @privdoms = split(/,/,$settings->{$item}); |
my @privdoms = split(/,/,$settings->{$item}); |
my %domains=map { $_ => 1; } &Apache::lonnet::all_domains(); |
my %domains=map { $_ => 1; } &Apache::lonnet::all_domains(); |
$datatable = '</td><td align="right"><br />'. |
$datatable = '</td><td align="right"><br />'. |
&Apache::loncommon::start_data_table(); |
&Apache::loncommon::start_data_table(); |
my $disabled; |
|
if ($noedit) { |
|
$disabled = ' disabled="disabled"'; |
|
} |
|
if (@privdoms > 0) { |
if (@privdoms > 0) { |
foreach my $currdom (@privdoms) { |
foreach my $currdom (@privdoms) { |
next unless ($domains{$currdom}); |
next unless ($domains{$currdom}); |
my $domdesc = &Apache::lonnet::domain($currdom,'description'); |
my $domdesc = &Apache::lonnet::domain($currdom,'description'); |
if ($domdesc eq '') { |
if ($domdesc eq '') { |
$domdesc = $currdom; |
$domdesc = $currdom; |
} |
} |
$datatable .= |
$datatable .= |
&Apache::loncommon::start_data_table_row(). |
&Apache::loncommon::start_data_table_row(). |
'<td align="left"><span class="LC_nobreak">'. |
'<td align="left"><span class="LC_nobreak">'. |
Line 4546 sub checkforpriv_row {
|
Line 4542 sub checkforpriv_row {
|
'</b><input type="hidden" name="checkforpriv_'.$num. |
'</b><input type="hidden" name="checkforpriv_'.$num. |
'" value="'.$currdom.'" /></span><br />'. |
'" value="'.$currdom.'" /></span><br />'. |
'<span class="LC_nobreak"><label><input type="checkbox" '. |
'<span class="LC_nobreak"><label><input type="checkbox" '. |
'name="checkforpriv_delete" value="'.$num.'"'.$disabled.' />'. |
'name="checkforpriv_delete" value="'.$num.'" />'. |
&mt('Delete').'</label></span></td>'. |
&mt('Delete').'</label></span></td>'. |
&Apache::loncommon::end_data_table_row(); |
&Apache::loncommon::end_data_table_row(); |
$num ++; |
$num ++; |
unless (grep(/^\Q$currdom\E$/,@excdoms)) { |
unless (grep(/^\Q$currdom\E$/,@excdoms)) { |
push(@excdoms,$currdom); |
push(@excdoms,$currdom); |
} |
} |
} |
} |
} |
} |
if ((scalar(keys(%domains)) - scalar(@excdoms)) > 0) { |
if ((scalar(keys(%domains)) - scalar(@excdoms)) > 0) { |
$datatable .= |
$datatable .= |
&Apache::loncommon::start_data_table_row(). |
&Apache::loncommon::start_data_table_row(). |
'<td align="left"><span class="LC_nobreak">'. |
'<td align="left"><span class="LC_nobreak">'. |
&mt('Additional domain:'). '</span><br />'. |
&mt('Additional domain:'). '</span><br />'. |
&Apache::loncommon::select_dom_form('','checkforpriv_'.$num,1, |
&Apache::loncommon::select_dom_form('','checkforpriv_'.$num,1, |
1,undef,undef,\@excdoms,$noedit). |
1,undef,undef,\@excdoms). |
'</td>'.&Apache::loncommon::end_data_table_row(); |
'</td>'.&Apache::loncommon::end_data_table_row(); |
} |
} |
$datatable .= &Apache::loncommon::end_data_table(). |
$datatable .= &Apache::loncommon::end_data_table(). |
Line 4572 sub checkforpriv_row {
|
Line 4568 sub checkforpriv_row {
|
} |
} |
|
|
sub print_hdrfmt_row { |
sub print_hdrfmt_row { |
my ($item,$settings,$noedit) = @_; |
my ($item,$settings) = @_; |
my @curr; |
my @curr; |
my $currnum = 0; |
my $currnum = 0; |
my $maxnum = 2; |
my $maxnum = 2; |
Line 4645 function getIndexByName(item) {
|
Line 4641 function getIndexByName(item) {
|
ENDJS |
ENDJS |
$output .= '</td><td align="right"><br />'. |
$output .= '</td><td align="right"><br />'. |
$currstr.'<table class="LC_data_table">'; |
$currstr.'<table class="LC_data_table">'; |
my $disabled; |
|
if ($noedit) { |
|
$disabled = ' disabled="disabled"'; |
|
} |
|
if (@curr > 0) { |
if (@curr > 0) { |
for (my $i=0; $i<@curr; $i++) { |
for (my $i=0; $i<@curr; $i++) { |
my $pos = $i+1; |
my $pos = $i+1; |
$output .= '<tr>'. |
$output .= '<tr>'. |
'<td align="left"><span class="LC_nobreak">'. |
'<td align="left"><span class="LC_nobreak">'. |
&position_selector($pos,$i,$maxnum,$disabled).&mt('Delete:'). |
&position_selector($pos,$i,$maxnum).&mt('Delete:'). |
'<input type="checkbox" name="printfmthdr_del_'.$i. |
'<input type="checkbox" name="printfmthdr_del_'.$i. |
'"'.$disabled.' /></span></td>'; |
'" /></span></td>'; |
if ($curr[$i] =~ /^%\d*[nca]$/) { |
if ($curr[$i] =~ /^%\d*[nca]$/) { |
my ($limit,$subst) = ($curr[$i] =~ /^%(\d*)([nca])$/); |
my ($limit,$subst) = ($curr[$i] =~ /^%(\d*)([nca])$/); |
$output .= '<td align="left">'. |
$output .= '<td align="left">'. |
&substitution_selector($i,$subst,$limit,$disabled).'</td>'; |
&substitution_selector($i,$subst,$limit).'</td>'; |
} else { |
} else { |
$output .= '<td colspan="2" align="left">'.&mt('Text').'<br />'. |
$output .= '<td colspan="2" align="left">'.&mt('Text').'<br />'. |
'<input type="textbox" name="printfmthdr_text_'.$i.'"'. |
'<input type="textbox" name="printfmthdr_text_'.$i.'"'. |
' value="'.$curr[$i].'" size="25"'.$disabled.' /></td>'; |
' value="'.$curr[$i].'" size="25" /></td>'; |
} |
} |
$output .= '</tr>'; |
$output .= '</tr>'; |
} |
} |
} |
} |
my $pos = $currnum+1; |
my $pos = $currnum+1; |
unless ($noedit) { |
$output .= '<tr>'. |
$output .= |
|
'<tr>'. |
|
'<td align="left"><span class="LC_nobreak">'. |
'<td align="left"><span class="LC_nobreak">'. |
&position_selector($pos,$currnum,$maxnum). |
&position_selector($pos,$currnum,$maxnum). |
'<b>'.&mt('New').'</b></span></td><td align="left">'. |
'<b>'.&mt('New').'</b></span></td><td align="left">'. |
&substitution_selector($currnum).'</td>'. |
&substitution_selector($currnum).'</td>'. |
'</tr>'; |
'</tr>'; |
$pos ++; |
$pos ++; |
$currnum ++; |
$currnum ++; |
$output .= |
$output .= '<tr>'. |
'<tr>'. |
|
'<td align="left"><span class="LC_nobreak">'. |
'<td align="left"><span class="LC_nobreak">'. |
&position_selector($pos,$currnum,$maxnum). |
&position_selector($pos,$currnum,$maxnum). |
'<b>'.&mt('New').'</b></span></td>'. |
'<b>'.&mt('New').'</b></span></td>'. |
Line 4690 ENDJS
|
Line 4679 ENDJS
|
'" value="" size ="25" />'. |
'" value="" size ="25" />'. |
'<input type="hidden" name="printfmthdr_maxnum" value="'. |
'<input type="hidden" name="printfmthdr_maxnum" value="'. |
$maxnum.'" /></td>'. |
$maxnum.'" /></td>'. |
'</tr>'; |
'</tr>'. |
} |
'</table><br />'; |
$output .= '</table><br />'; |
|
return $output; |
return $output; |
} |
} |
|
|
sub position_selector { |
sub position_selector { |
my ($pos,$num,$maxnum,$disabled) = @_; |
my ($pos,$num,$maxnum) = @_; |
my $output = '<select name="printfmthdr_pos_'.$num.'" onchange="reOrder('."'$num'".');"'.$disabled.'>'; |
my $output = '<select name="printfmthdr_pos_'.$num.'" onchange="reOrder('."'$num'".');">'; |
for (my $j=1; $j<=$maxnum; $j++) { |
for (my $j=1; $j<=$maxnum; $j++) { |
my $sel = ''; |
my $sel = ''; |
if ($pos == $j) { |
if ($pos == $j) { |
Line 4712 sub position_selector {
|
Line 4700 sub position_selector {
|
} |
} |
|
|
sub substitution_selector { |
sub substitution_selector { |
my ($num,$subst,$limit,$crstype,$disabled) = @_; |
my ($num,$subst,$limit,$crstype) = @_; |
my ($stunametxt,$crsidtxt); |
my ($stunametxt,$crsidtxt); |
if ($crstype eq 'Community') { |
if ($crstype eq 'Community') { |
$stunametxt = 'member name'; |
$stunametxt = 'member name'; |
Line 4727 sub substitution_selector {
|
Line 4715 sub substitution_selector {
|
a => 'assignment note', |
a => 'assignment note', |
); |
); |
my $output .= &mt('Substitution').'<br />'. |
my $output .= &mt('Substitution').'<br />'. |
'<select name="printfmthdr_sub_'.$num.'"'.$disabled.'>'; |
'<select name="printfmthdr_sub_'.$num.'">'; |
if ($subst eq '') { |
if ($subst eq '') { |
$output .= '<option value="" selected="selected"> </option>'; |
$output .= '<option value="" selected="selected"> </option>'; |
} |
} |
Line 4741 sub substitution_selector {
|
Line 4729 sub substitution_selector {
|
} |
} |
$output .= '</select></td><td align="left">'.&mt('Size limit').'<br />'. |
$output .= '</select></td><td align="left">'.&mt('Size limit').'<br />'. |
'<input type="textbox" name="printfmthdr_limit_'.$num. |
'<input type="textbox" name="printfmthdr_limit_'.$num. |
'" value="'.$limit.'" size="5"'.$disabled.' /></span>'; |
'" value="'.$limit.'" size="5" /></span>'; |
return $output; |
return $output; |
} |
} |
|
|