--- loncom/interface/lonparmset.pm 2010/01/30 17:35:10 1.492
+++ loncom/interface/lonparmset.pm 2010/06/18 11:11:08 1.498
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.492 2010/01/30 17:35:10 raeburn Exp $
+# $Id: lonparmset.pm,v 1.498 2010/06/18 11:11:08 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -248,37 +248,6 @@ Variables used (guessed by Jeremy):
=item parse_key()
-=item check_cloners() :
-
-Checks if new users included in list of allowed cloners
-are valid users. Replaces supplied list with
-cleaned list containing only users with valid usernames
-and domains.
-
-Inputs: $clonelist, $oldcloner
-where $clonelist is ref to array of requested cloners,
-and $oldcloner is ref to array of currently allowed
-cloners.
-
-Returns: string - comma separated list of requested
-cloners (username:domain) who do not exist in system.
-
-=item change_clone() :
-
-Modifies the list of courses a user can clone (stored
-in the user's environment.db file), called when a
-change is made to the list of users allowed to clone
-a course.
-
-Inputs: $action,$cloner
-where $action is add or drop, and $cloner is identity of
-user for whom cloning ability is to be changed in course.
-
-
-=item check_cloners()
-
-=item change_clone()
-
=item header()
Output html header for page
@@ -1767,35 +1736,58 @@ sub mapmenu {
$r->print(&Apache::lonhtmlcommon::row_title(&mt('Select Enclosing Map or Folder'),'','',' id="mapmenu"'));
if ((ref($tree) eq 'ARRAY') && (ref($treeinfo) eq 'HASH')) {
my $icon = ' ';
- $r->print(&Apache::loncommon::start_data_table()
- .&Apache::loncommon::start_data_table_row()
- .'
'.$icon
- .' '
- .' '
- .&mt('All Maps or Folders')
- .' '
- .&Apache::loncommon::end_data_table_row()
+ my $whitespace =
+ ' ';
+
+ # Info about selectable folders/maps
+ $r->print(
+ ''
+ .&mt('You can only select those maps and folders which can be currently parameterized.')
+ # .' '.&Apache::loncommon::help_open_topic('...') # Later: Add further help
+ .'
'
+ );
+
+
+ $r->print(&Apache::loncommon::start_data_table());
+
+ # Display row: "All Maps or Folders"
+ $r->print(
+ &Apache::loncommon::start_data_table_row()
+ .''
+ .''
+ .' print(' checked="checked"') if ($pschp eq 'all' || !$pschp);
+ $r->print(
+ ' value="all" /> '.$icon.' '
+ .&mt('All Maps or Folders')
+ .' '
+ .' '
+ .&Apache::loncommon::end_data_table_row()
);
- my $whitespace = ' ';
+
+ # Display row: "Main Course Documents"
if (exists($$allmaps{1})) {
- $r->print(&Apache::loncommon::start_data_table_row()
- .''.$icon
- .' '
- .' print(
+ &Apache::loncommon::start_data_table_row()
+ .''
+ .''
+ .' print(' checked="checked"');
- }
- $r->print('/>'
- .$$maptitles{1}
- .($$allmaps{1} !~/^uploaded/?' ['.$$allmaps{1}.']':'')
- .' '
- .' '
- .&Apache::loncommon::end_data_table_row()
+ $r->print(' checked="checked"') if ($pschp eq '1');
+ $r->print(
+ '/> '.$icon.' '
+ .$$maptitles{1}
+ .($$allmaps{1} !~/^uploaded/?' ['.$$allmaps{1}.']':'')
+ .' '
+ .' '
+ .&Apache::loncommon::end_data_table_row()
);
}
+
+ # Display rows for all course maps and folders
foreach my $id (@{$tree}) {
my ($mapid,$resid)=split(/\./,$id);
# Indentation
@@ -1811,22 +1803,32 @@ sub mapmenu {
my $symb_name = $$symbp{$id};
my ($front, $tail) = split (/___${resid}___/, $symb_name);
$symb_name = $tail;
- $r->print(&Apache::loncommon::start_data_table_row()
- .''.$indent.$icon
- .' '
- .' print(
+ &Apache::loncommon::start_data_table_row()
+ .''
+ .''
);
- if ($pschp eq $allmaps_inverted{$symb_name}) {
- $r->print(' checked="checked"');
+ # Only offer radio button for folders/maps which can be parameterized
+ if ($allmaps_inverted{$symb_name}) {
+ $r->print(
+ ' print(' checked="checked"') if ($allmaps_inverted{$symb_name} eq $pschp);
+ $r->print('/>');
+ } else {
+ $r->print($whitespace);
}
- $r->print('/>'
- .$treeinfo->{$id}->{name}
- .($$allmaps{$mapid}!~/^uploaded/?' ['.$$allmaps{$mapid}.']':'')
- .' '
- .' '
- .&Apache::loncommon::end_data_table_row()
+ $r->print(
+ $indent.$icon.' '
+ .$treeinfo->{$id}->{name}
+ .($$allmaps{$mapid}!~/^uploaded/?' ['.$$allmaps{$mapid}.']':'')
+ .' '
+ .' '
+ .&Apache::loncommon::end_data_table_row()
);
}
+
$r->print(&Apache::loncommon::end_data_table());
}
}
@@ -3020,7 +3022,7 @@ sub date_interval_selector {
my %select = ((map {$_ => $_} (0..$max)),
'select_form_order' => [0..$max]);
$result .= &Apache::loncommon::select_form($amount,$name.'_'.$thiskey,
- %select);
+ \%select);
$result .= ' '.&mt($name);
}
$result .= ' ';
@@ -3503,123 +3505,6 @@ sub parse_key {
}
-
-sub extract_cloners {
- my ($clonelist,$allowclone) = @_;
- if ($clonelist =~ /,/) {
- @{$allowclone} = split(/,/,$clonelist);
- } else {
- $$allowclone[0] = $clonelist;
- }
-}
-
-sub check_cloners {
- my ($clonelist,$oldcloner) = @_;
- my ($clean_clonelist,%disallowed);
- my @allowclone = ();
- &extract_cloners($$clonelist,\@allowclone);
- foreach my $currclone (@allowclone) {
- if (!grep(/^\Q$currclone\E$/,@$oldcloner)) {
- if ($currclone eq '*') {
- $clean_clonelist .= $currclone.',';
- } else {
- my ($uname,$udom) = split(/:/,$currclone);
- if ($uname eq '*') {
- if ($udom =~ /^$match_domain$/) {
- if (!&Apache::lonnet::domain($udom)) {
- $disallowed{'domain'} .= $currclone.',';
- } else {
- $clean_clonelist .= $currclone.',';
- }
- } else {
- $disallowed{'format'} .= $currclone.',';
- }
- } elsif ($currclone !~/^($match_username)\:($match_domain)$/) {
- $disallowed{'format'} .= $currclone.',';
- } else {
- if (&Apache::lonnet::homeserver($uname,$udom) eq 'no_host') {
- $disallowed{'newuser'} .= $currclone.',';
- } else {
- $clean_clonelist .= $currclone.',';
- }
- }
- }
- } else {
- $clean_clonelist .= $currclone.',';
- }
- }
- foreach my $key (keys(%disallowed)) {
- $disallowed{$key} =~ s/,$//;
- }
- if ($clean_clonelist) {
- $clean_clonelist =~ s/,$//;
- }
- $$clonelist = $clean_clonelist;
- return %disallowed;
-}
-
-sub change_clone {
- my ($clonelist,$oldcloner) = @_;
- my ($uname,$udom);
- my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
- my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
- my $clone_crs = $cnum.':'.$cdom;
-
- if ($cnum && $cdom) {
- my @allowclone;
- &extract_cloners($clonelist,\@allowclone);
- foreach my $currclone (@allowclone) {
- if (!grep(/^$currclone$/,@$oldcloner)) {
- if ($currclone ne '*') {
- ($uname,$udom) = split(/:/,$currclone);
- if ($uname && $udom && $uname ne '*') {
- if (&Apache::lonnet::homeserver($uname,$udom) ne 'no_host') {
- my %currclonecrs = &Apache::lonnet::dump('environment',$udom,$uname,'cloneable');
- if ($currclonecrs{'cloneable'} !~ /\Q$clone_crs\E/) {
- if ($currclonecrs{'cloneable'} eq '') {
- $currclonecrs{'cloneable'} = $clone_crs;
- } else {
- $currclonecrs{'cloneable'} .= ','.$clone_crs;
- }
- &Apache::lonnet::put('environment',\%currclonecrs,$udom,$uname);
- }
- }
- }
- }
- }
- }
- foreach my $oldclone (@$oldcloner) {
- if (!grep(/^\Q$oldclone\E$/,@allowclone)) {
- if ($oldclone ne '*') {
- ($uname,$udom) = split(/:/,$oldclone);
- if ($uname && $udom && $uname ne '*' ) {
- if (&Apache::lonnet::homeserver($uname,$udom) ne 'no_host') {
- my %currclonecrs = &Apache::lonnet::dump('environment',$udom,$uname,'cloneable');
- my %newclonecrs = ();
- if ($currclonecrs{'cloneable'} =~ /\Q$clone_crs\E/) {
- if ($currclonecrs{'cloneable'} =~ /,/) {
- my @currclonecrs = split/,/,$currclonecrs{'cloneable'};
- foreach my $crs (@currclonecrs) {
- if ($crs ne $clone_crs) {
- $newclonecrs{'cloneable'} .= $crs.',';
- }
- }
- $newclonecrs{'cloneable'} =~ s/,$//;
- } else {
- $newclonecrs{'cloneable'} = '';
- }
- &Apache::lonnet::put('environment',\%newclonecrs,$udom,$uname);
- }
- }
- }
- }
- }
- }
- }
-}
-
-
-
sub header {
return &Apache::loncommon::start_page('Parameter Manager');
}
@@ -3647,25 +3532,12 @@ ENDMAINFORMHEAD
my @menu =
( { categorytitle=>"Settings for this $crstype",
items => [
- { linktext => "$crstype Configuration",
- url => '/adm/courseprefs?origin=params',
- permission => $parm_permission,
- linktitle => "Edit $lc_crstype configuration." ,
- icon => 'preferences-desktop-remote-desktop.png' ,
- #help => 'Course_Environment',
- },
{ linktext => 'Portfolio Metadata',
url => '/adm/parmset?action=setrestrictmeta',
permission => $parm_permission,
linktitle => "Restrict metadata for this $lc_crstype." ,
icon =>'contact-new.png' ,
},
- { linktext => "Manage $crstype Slots",
- url => '/adm/slotrequest?command=showslots',
- permission => $vgr,
- linktitle => "Manage slots for this $lc_crstype." ,
- icon => 'rsrv.png' ,
- },
{ linktext => 'Reset Student Access Times',
url => '/adm/helper/resettimes.helper',
permission => $mgr,