@@ -225,9 +265,11 @@ sub registerurl {
sub innerregister {
my $forcereg=shift;
my $target = shift;
+ my $titletable = shift;
my $result = '';
my ($uname,$thisdisfn);
my $const_space = ($ENV{'request.state'} eq 'construct');
+ my $is_const_dir = 0;
if ($ENV{'request.noversionuri'} eq '/res/adm/pages/menu.html') { return ''; }
@@ -252,7 +294,7 @@ sub innerregister {
$newmail.=$ENV{'course.'.$ENV{'request.course.id'}.'.description'};
my $maptitle=&Apache::lonnet::gettitle($mapurl);
my $restitle=&Apache::lonnet::gettitle($resurl);
- if ($maptitle) {
+ if ($maptitle && $maptitle ne 'default.sequence') {
$newmail.=', '.$maptitle;
}
if ($restitle) {
@@ -265,15 +307,19 @@ sub innerregister {
'You have new messages ':
'swmenu.setstatus("you have","messages");');
}
- if ($noremote) {
- $newmail.='';
+ if ($ENV{'request.state'} eq 'construct') {
+ $newmail = $titletable;
+ } else {
+ if ($noremote) {
+ $newmail.='';
+ }
}
my $timesync=($textual?'':'swmenu.syncclock(1000*'.time.');');
my $tablestart=($noremote?'
':'').($textinter?'':'');
# =============================================================================
# ============================ This is for URLs that actually can be registered
- if (($ENV{'request.noversionuri'}!~/^\/(res\/)*adm\//) || ($forcereg)) {
+ if (($ENV{'request.noversionuri'}!~m|^/(res/)*adm/|) || ($forcereg)) {
# -- This applies to homework problems for users with grading privileges
my $crs='/'.$ENV{'request.course.id'};
if ($ENV{'request.course.sec'}) {
@@ -282,7 +328,8 @@ sub innerregister {
$crs=~s/\_/\//g;
my $hwkadd='';
- if ($ENV{'request.filename'}=~/\.(problem|exam|quiz|assess|survey|form)$/) {
+ if ($ENV{'request.symb'} ne '' &&
+ $ENV{'request.filename'}=~/\.(problem|exam|quiz|assess|survey|form)$/) {
if (&Apache::lonnet::allowed('vgr',$crs)) {
$hwkadd.=&switch('','',7,1,'subm.gif','view sub-[_1]','missions[_1]',
"gocmd('/adm/grades','submission')",
@@ -294,7 +341,8 @@ sub innerregister {
'Modify user grades for this assessment resource');
}
}
- if (&Apache::lonnet::allowed('opa',$crs)) {
+ if ($ENV{'request.symb'} ne '' &&
+ &Apache::lonnet::allowed('opa',$crs)) {
$hwkadd.=&switch('','',7,3,'pparm.gif','problem[_2]','parms[_2]',
"gocmd('/adm/parmset','set')",
'Modify deadlines, etc, for this resource');
@@ -367,15 +415,20 @@ sub innerregister {
my ($uname,$thisdisfn) =
($ENV{'request.filename'}=~m|^/home/([^/]+)/public_html/(.*)|);
my $currdir = '/priv/'.$uname.'/'.$thisdisfn;
- $currdir =~ s#[^/]+$##;
- $menuitems=(<
$inlineremote[21]
$inlineremote[23]
$inlineremote[61]
$inlineremote[62]
$inlineremote[63]
$inlineremote[71]
$inlineremote[72]
$inlineremote[73]
$inlineremote[81]
$inlineremote[82]
$inlineremote[83]
$inlineremote[91]
$inlineremote[92]
$inlineremote[93]
ENDINLINE
+ }
}
$result =(<
@@ -430,7 +487,6 @@ $newmail
$tablestart
$inlinebuttons
$tableend
-$form
@@ -438,10 +494,13 @@ $form
ENDREGTEXT
# Registered, graphical output
} else {
- my $requri=(split(/\?/,$ENV{'request.noversionuri'}))[0];
+ my $requri=&Apache::lonnet::clutter(&Apache::lonnet::fixversion((split(/\?/,$ENV{'request.noversionuri'}))[0]));
$requri=&Apache::lonenc::check_encrypt(&Apache::lonnet::unescape($requri));
my $cursymb=&Apache::lonenc::check_encrypt($ENV{'request.symb'});
my $navstatus=&get_nav_status();
+ my $clearcstr;
+
+ if ($ENV{'user.adv'}) { $clearcstr='clearbut(6,1)'; }
$result = (<
@@ -476,11 +535,11 @@ var swmenu=null;
swmenu.clearbut(7,3);
swmenu.menucltim=swmenu.setTimeout(
'clearbut(2,1);clearbut(2,3);clearbut(8,1);clearbut(8,2);clearbut(8,3);'+
- 'clearbut(9,1);clearbut(9,3);clearbut(6,3);clearbut(6,1)',
+ 'clearbut(9,1);clearbut(9,3);clearbut(6,3);$clearcstr',
2000);
}
-// END LON-CAPA Internal
+// END LON-CAPA Internal
ENDREGTHIS
}
@@ -529,12 +588,14 @@ ENDDONOTREGTHIS
}
sub loadevents() {
- if ($ENV{'request.noversionuri'} eq '/res/adm/pages/menu.html') { return ''; }
+ if ($ENV{'request.state'} eq 'construct' ||
+ $ENV{'request.noversionuri'} eq '/res/adm/pages/menu.html') { return ''; }
return 'LONCAPAreg();';
}
sub unloadevents() {
- if ($ENV{'request.noversionuri'} eq '/res/adm/pages/menu.html') { return ''; }
+ if ($ENV{'request.state'} eq 'construct' ||
+ $ENV{'request.noversionuri'} eq '/res/adm/pages/menu.html') { return ''; }
return 'LONCAPAstale();';
}
@@ -945,9 +1006,11 @@ NAVCONTROL
}
sub utilityfunctions {
+ my $caller = shift;
unless (($ENV{'browser.interface'} eq 'textual') ||
- ($ENV{'environment.remote'} eq 'off')) { return ''; }
- my $currenturl=&Apache::lonenc::check_encrypt($ENV{'request.noversionuri'});
+ ($ENV{'environment.remote'} eq 'off') || ($caller eq '/adm/menu')) { return ''; }
+ my $currenturl=&Apache::lonnet::clutter(&Apache::lonnet::fixversion((split(/\?/,$ENV{'request.noversionuri'}))[0]));
+ $currenturl=&Apache::lonenc::check_encrypt(&Apache::lonnet::unescape($currenturl));
my $currentsymb=&Apache::lonenc::check_encrypt($ENV{'request.symb'});
my $nav_control=&nav_control_js();
@@ -995,6 +1058,27 @@ function gocstr(url,filename) {
this.document.cstrdelete.submit();
return;
}
+ if (url == '/adm/printout') {
+ this.document.cstrprint.postdata.value = filename
+ this.document.cstrprint.curseed.value = 0;
+ this.document.cstrprint.problemtype.value = 0;
+ if (this.document.lonhomework) {
+ if ((this.document.lonhomework.rndseed) && (this.document.lonhomework.rndseed.value != null) && (this.document.lonhomework.rndseed.value != '')) {
+ this.document.cstrprint.curseed.value = this.document.lonhomework.rndseed.value
+ }
+ if (this.document.lonhomework.problemtype) {
+ for (var i=0; i
+
+
ENDCONSTSPACEFORM
}
@@ -1057,7 +1156,11 @@ sub handler {
$r->send_http_header;
return OK if $r->header_only;
- my $form=&serverform();
+ my $form;
+ if ($ENV{'environment.remote'} ne 'off' &&
+ $ENV{'browser.interface'} ne 'textual') {
+ $form=&serverform();
+ }
my $bodytag=&Apache::loncommon::bodytag('Main Menu');
my $function='student';
if ($ENV{'request.role'}=~/^(cc|in|ta|ep)/) {
@@ -1074,14 +1177,26 @@ sub handler {
$pgbg=&Apache::loncommon::designparm($function.'.pgbg',$domain);
$tabbg=&Apache::loncommon::designparm($function.'.tabbg',$domain);
$font=&Apache::loncommon::designparm($function.'.font',$domain);
-# ---- Print the screen, pretent to be in text mode to generate text-based menu
+ my $script_tag;
+ if ($ENV{'environment.remote'} ne 'off') {
+ my $utility=&utilityfunctions('/adm/menu');
+ $script_tag=(<
+$utility
+
+ENDSCRIPT
+ }
+# ---- Print the screen, pretend to be in text mode to generate text-based menu
unless ($ENV{'browser.interface'} eq 'textual') {
$ENV{'browser.interface'}='faketextual';
$ENV{'environment.remote'}='off';
}
+ my $html=&Apache::lonxml::xmlbegin();
$r->print(<
+$html
+
LON-CAPA Main Menu
+$script_tag
$bodytag
ENDHEADER