//
@@ -3628,7 +3666,7 @@ ENDPARMSELSCRIPT
$r->print(&Apache::lonhtmlcommon::start_pick_box(undef,'parmlevel'));
&levelmenu($r,\%alllevs,$parmlev);
$r->print(&Apache::lonhtmlcommon::row_closure());
- &mapmenu($r,\%allmaps,$pschp,\%maptitles, \%symbp);
+ &mapmenu($r,\%allmaps,$pschp,\%maptitles,\%symbp,$parmlev);
$r->print(&Apache::lonhtmlcommon::row_closure());
$r->print(&Apache::lonhtmlcommon::row_title(&mt('Select Parts to View')));
&partmenu($r,\%allparts,\@psprt);
@@ -3708,6 +3746,7 @@ ENDPARMSELSCRIPT
if ($parm_permission->{'edit'}) {
undef($readonly);
}
+ $r->print('');
if ($parmlev eq 'full') {
#
@@ -3924,7 +3963,7 @@ ENDTABLEHEADFOUR
#-------------------------------------------- for each map, gather information
my $mapid;
- foreach $mapid (sort {$maplist{$a} cmp $maplist{$b}} keys(%maplist)) {
+ foreach $mapid (sort { $a <=> $b } keys(%maplist)) {
my $maptitle = $maplist{$mapid};
#----------------------- loop through ids and get all parameter types for map
@@ -4141,6 +4180,7 @@ ENDMAPONE
.''
);
} # end of $parmlev eq general
+ $r->print('
');
}
$r->print('');
if ($numreclinks) {
@@ -4678,9 +4718,12 @@ sub parse_listdata_key {
# @param {string} $caller - name of the calling sub (overview|newoverview)
# @param {hash reference} $classlist - from loncoursedata::get_classlist
# @param {boolean} $readonly - true if editing not allowed
+# @param {string} $parmlev - full|map
+# @param {hash reference} $hash_for_realm - keys: realm, values: numeric order
+# @param {string} $pschp - selected map pc, or 'all'
# @returns{integer} - number of $listdata parameters processed
sub listdata {
- my ($r,$resourcedata,$listdata,$sortorder,$caller,$classlist,$readonly)=@_;
+ my ($r,$resourcedata,$listdata,$sortorder,$caller,$classlist,$readonly,$parmlev,$hash_for_realm,$pschp)=@_;
# Start list output
@@ -4706,6 +4749,20 @@ sub listdata {
foreach my $key (sort {
my ($astudent,$ares,$apart,$aparm) = &parse_listdata_key($a,$listdata);
my ($bstudent,$bres,$bpart,$bparm) = &parse_listdata_key($b,$listdata);
+ my ($aid,$bid);
+ if ($caller eq 'newoverview') {
+ if (ref($hash_for_realm) eq 'HASH') {
+ if (($parmlev eq 'map') && ($pschp eq 'all')) {
+ my ($aurl) = ($ares =~ /^(.+\.(?:sequence|page))___\(all\)$/);
+ my ($burl) = ($bres =~ /^(.+\.(?:sequence|page))___\(all\)$/);
+ $aid = $hash_for_realm->{$aurl};
+ $bid = $hash_for_realm->{$burl};
+ } elsif ($parmlev eq 'full') {
+ $aid = $hash_for_realm->{$ares};
+ $bid = $hash_for_realm->{$bres};
+ }
+ }
+ }
# get the numerical order for the param
$aparm=$keyorder{'parameter_0_'.$aparm};
@@ -4715,7 +4772,21 @@ sub listdata {
if ($sortorder eq 'realmstudent') {
if ($ares ne $bres ) {
- $result = ($ares cmp $bres);
+ if ($caller eq 'newoverview') {
+ if (ref($hash_for_realm) eq 'HASH') {
+ if (($parmlev eq 'map') && ($pschp eq 'all')) {
+ $result = ($aid <=> $bid);
+ } elsif ($parmlev eq 'full') {
+ $result = ($aid <=> $bid);
+ } else {
+ $result = ($ares cmp $bres);
+ }
+ } else {
+ $result = ($ares cmp $bres);
+ }
+ } else {
+ $result = ($ares cmp $bres);
+ }
} elsif ($astudent ne $bstudent) {
$result = ($astudent cmp $bstudent);
} elsif ($apart ne $bpart ) {
@@ -4725,7 +4796,21 @@ sub listdata {
if ($astudent ne $bstudent) {
$result = ($astudent cmp $bstudent);
} elsif ($ares ne $bres ) {
- $result = ($ares cmp $bres);
+ if ($caller eq 'newoverview') {
+ if (ref($hash_for_realm) eq 'HASH') {
+ if (($parmlev eq 'map') && ($pschp eq 'all')) {
+ $result = ($aid <=> $bid);
+ } elsif ($parmlev eq 'full') {
+ $result = ($aid <=> $bid);
+ } else {
+ $result = ($ares cmp $bres);
+ }
+ } else {
+ $result = ($ares cmp $bres);
+ }
+ } else {
+ $result = ($ares cmp $bres);
+ }
} elsif ($apart ne $bpart ) {
$result = ($apart cmp $bpart);
}
@@ -4805,6 +4890,12 @@ sub listdata {
}
if ($is_map) {
my $leveltitle = &mt('Folder/Map');
+ my $title = &Apache::lonnet::gettitle($1);
+ if (ref($hash_for_realm) eq 'HASH') {
+ if ($hash_for_realm->{$mapurl} eq '1') {
+ $title = &mt('Main Content');
+ }
+ }
unless (($name eq 'hiddenresource') || ($name eq 'encrypturl')) {
if ($caller eq 'newoverview') {
my $altkey = $thiskey;
@@ -4821,9 +4912,10 @@ sub listdata {
$is_recursive = 1;
}
}
- $realm=''.$leveltitle.': '.&Apache::lonnet::gettitle($mapurl).'
('.$mapurl.')';
+ $realm=''.$leveltitle.': '.$title.'
('.$mapurl.')';
} elsif ($middle) {
my ($map,$id,$url)=&Apache::lonnet::decode_symb($middle);
+ next if (($url =~ /\.(page|sequence)$/) && ($parmlev eq 'full') && ($caller eq 'newoverview'));
$realm=''.&mt('Resource').
': '.&Apache::lonnet::gettitle($middle).
'
('.$url.' in '.$map.' id: '.
@@ -4945,13 +5037,17 @@ sub listdata {
sub get_date_interval_from_form {
my ($key) = @_;
my $seconds = 0;
+ my $numnotnull = 0;
foreach my $which (['days', 86400],
['hours', 3600],
['minutes', 60],
['seconds', 1]) {
my ($name, $factor) = @{ $which };
if (defined($env{'form.'.$name.'_'.$key})) {
- $seconds += $env{'form.'.$name.'_'.$key} * $factor;
+ unless ($env{'form.'.$name.'_'.$key} eq '') {
+ $numnotnull ++;
+ $seconds += $env{'form.'.$name.'_'.$key} * $factor;
+ }
}
}
if (($key =~ /\.interval$/) &&
@@ -4970,6 +5066,7 @@ sub get_date_interval_from_form {
$seconds .= '_'.$env{'form.done_'.$key.'_proctorkey'};
}
}
+ return if (!$numnotnull);
return $seconds;
}
@@ -5630,6 +5727,11 @@ sub date_interval_selector {
$showval %= $factor;
my %select = ((map {$_ => $_} (0..$max)),
'select_form_order' => [0..$max]);
+ if ($currval eq '') {
+ unshift(@{$select{'select_form_order'}},'');
+ $select{''} = '';
+ $amount = '';
+ }
$result .= &Apache::loncommon::select_form($amount,$name.'_'.$thiskey,
\%select,'',$readonly);
$result .= ' '.&mt($name);
@@ -5637,29 +5739,29 @@ sub date_interval_selector {
if ($name eq 'interval') {
unless ($skipval{'done'}) {
my $checkedon = '';
+ my $checkedoff = '';
my $checkedproc = '';
my $currproctorkey = '';
my $currprocdisplay = 'hidden';
my $currdonetext = &mt('Done');
- my $checkedoff = ' checked="checked"';
if ($currval =~ /^(?:\d+)_done$/) {
$checkedon = ' checked="checked"';
- $checkedoff = '';
} elsif ($currval =~ /^(?:\d+)_done\:([^\:]+)\:$/) {
$currdonetext = $1;
$checkedon = ' checked="checked"';
- $checkedoff = '';
} elsif ($currval =~ /^(?:\d+)_done_proctor_(.+)$/) {
$currproctorkey = $1;
$checkedproc = ' checked="checked"';
- $checkedoff = '';
$currprocdisplay = 'text';
} elsif ($currval =~ /^(?:\d+)_done\:([^\:]+)\:_proctor_(.+)$/) {
$currdonetext = $1;
$currproctorkey = $2;
$checkedproc = ' checked="checked"';
- $checkedoff = '';
$currprocdisplay = 'text';
+ } elsif ($currval ne '') {
+ $checkedoff = ' checked="checked"';
+ } else {
+ $currdonetext = '';
}
my $onclick = ' onclick="toggleSecret(this.form,'."'done_','$thiskey'".');"';
my $disabled;
@@ -5676,7 +5778,8 @@ sub date_interval_selector {
'&').'"'.$disabled.' />
'.
''.&mt('Button text').': '.
- '&').'"'.$disabled.' />';
+ '&').'"'.$disabled.' />';
}
}
unless ($readonly) {
@@ -5929,10 +6032,8 @@ ENDOVER
$r->print('');
$r->print(&Apache::lonhtmlcommon::start_pick_box(undef,'parmlevel'));
&levelmenu($r,\%alllevs,$parmlev);
- if ($parmlev ne 'general') {
- $r->print(&Apache::lonhtmlcommon::row_closure());
- &mapmenu($r,\%allmaps,$pschp,\%maptitles,\%symbp);
- }
+ $r->print(&Apache::lonhtmlcommon::row_closure());
+ &mapmenu($r,\%allmaps,$pschp,\%maptitles,\%symbp,$parmlev);
$r->print(&Apache::lonhtmlcommon::row_closure(1));
$r->print(&Apache::lonhtmlcommon::end_pick_box());
$r->print('
');
@@ -5970,7 +6071,7 @@ ENDOVER
$r->print('');
my $sortorder=$env{'form.sortorder'};
unless ($sortorder) { $sortorder='realmstudent'; }
- &sortmenu($r,$sortorder);
+ &sortmenu($r,$sortorder,'newoverview'));
$r->print('
');
$r->print('');
@@ -5995,7 +6096,15 @@ ENDOVER
# List data
- &listdata($r,$resourcedata,$listdata,$sortorder,'newoverview',undef,$readonly);
+ my $hash_for_realm;
+ if (($parmlev eq 'map') && (keys(%allmaps))) {
+ %{$hash_for_realm} = reverse(%allmaps);
+ } elsif (($parmlev eq 'full') && (keys(%symbp))) {
+ for (my $i=0; $i<@ids; $i++) {
+ $hash_for_realm->{$symbp{$ids[$i]}} = $i;
+ }
+ }
+ &listdata($r,$resourcedata,$listdata,$sortorder,'newoverview',undef,$readonly,$parmlev,$hash_for_realm,$pschp);
}
$r->print(&tableend());
unless ($readonly) {
@@ -6102,7 +6211,7 @@ sub overview {
my $sortorder=$env{'form.sortorder'};
unless ($sortorder) { $sortorder='realmstudent'; }
- &sortmenu($r,$sortorder);
+ &sortmenu($r,$sortorder,'overview');
my $submitbutton = '';