--- loncom/interface/loncommon.pm 2008/02/24 22:59:13 1.641
+++ loncom/interface/loncommon.pm 2008/03/20 19:46:44 1.647
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.641 2008/02/24 22:59:13 raeburn Exp $
+# $Id: loncommon.pm,v 1.647 2008/03/20 19:46:44 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -78,6 +78,58 @@ my $readit;
## Global Variables
##
+
+# ----------------------------------------------- SSI with retries:
+#
+
+=pod
+
+=head1 Server Side incliude with retries:
+
+=over 4
+
+=item * ssi_with_retries(resource, retries form)
+
+Performs an ssi with some number of retries. Retries continue either
+until the result is ok or until the retry count supplied by the
+caller is exhausted.
+
+Inputs:
+resource - Identifies the resource to insert.
+retries - Count of the number of retries allowed.
+form - Hash that identifies the rendering options.
+
+Returns:
+content - The content of the response. If retries were exhausted this is empty.
+response - The response from the last attempt (which may or may not have been successful.
+
+=cut
+
+sub ssi_with_retries {
+ my ($resource, $retries, %form) = @_;
+
+
+ my $ok = 0; # True if we got a good response.
+ my $content;
+ my $response;
+
+ # Try to get the ssi done. within the retries count:
+
+ do {
+ ($content, $response) = &Apache::lonnet::ssi($resource, %form);
+ $ok = $response->is_success;
+ $retries--;
+ } while (!$ok && ($retries > 0));
+
+ if (!$ok) {
+ $content = ''; # On error return an empty content.
+ }
+ return ($content, $response);
+
+}
+
+
+
# ----------------------------------------------- Filetypes/Languages/Copyright
my %language;
my %supported_language;
@@ -319,7 +371,7 @@ sub storeresurl {
unless ($resurl=~/^\/res/) { return 0; }
$resurl=~s/\/$//;
&Apache::lonnet::put('environment',{'lastresurl' => $resurl});
- &Apache::lonnet::appenv('environment.lastresurl' => $resurl);
+ &Apache::lonnet::appenv({'environment.lastresurl' => $resurl});
return 1;
}
@@ -3942,7 +3994,7 @@ ENDROLE
$dc_info = '('.$dc_info.')';
}
- if ($env{'environment.remote'} eq 'off') {
+ if (($env{'environment.remote'} eq 'off') || ($args->{'suppress_header_logos'})) {
# No Remote
if ($env{'request.state'} eq 'construct') {
$forcereg=1;
@@ -4738,6 +4790,14 @@ table.LC_pick_box td.LC_pick_box_title {
width: 184px;
padding: 8px;
}
+table.LC_pick_box td.LC_selfenroll_pick_box_title {
+ background: $tabbg;
+ font-weight: bold;
+ text-align: right;
+ width: 350px;
+ padding: 8px;
+}
+
table.LC_pick_box td.LC_pick_box_value {
text-align: left;
padding: 8px;
@@ -5282,10 +5342,7 @@ Inputs: none
sub font_settings {
my $headerstring='';
- if (($env{'browser.os'} eq 'mac') && (!$env{'browser.mathml'})) {
- $headerstring.=
- '';
- } elsif (!$env{'browser.mathml'} && $env{'browser.unicode'}) {
+ if (!$env{'browser.mathml'} && $env{'browser.unicode'}) {
$headerstring.=
'';
}
@@ -6653,6 +6710,72 @@ sub personal_data_fieldtitles {
return %fieldtitles;
}
+sub sorted_inst_types {
+ my ($dom) = @_;
+ my ($usertypes,$order) = &Apache::lonnet::retrieve_inst_usertypes($dom);
+ my $othertitle = &mt('All users');
+ if ($env{'request.course.id'}) {
+ $othertitle = 'any';
+ }
+ my @types;
+ if (ref($order) eq 'ARRAY') {
+ @types = @{$order};
+ }
+ if (@types == 0) {
+ if (ref($usertypes) eq 'HASH') {
+ @types = sort(keys(%{$usertypes}));
+ }
+ }
+ if (keys(%{$usertypes}) > 0) {
+ $othertitle = &mt('Other users');
+ if ($env{'request.course.id'}) {
+ $othertitle = 'other';
+ }
+ }
+ return ($othertitle,$usertypes,\@types);
+}
+
+sub get_institutional_codes {
+ my ($settings,$allcourses,$LC_code) = @_;
+# Get complete list of course sections to update
+ my @currsections = ();
+ my @currxlists = ();
+ my $coursecode = $$settings{'internal.coursecode'};
+
+ if ($$settings{'internal.sectionnums'} ne '') {
+ @currsections = split(/,/,$$settings{'internal.sectionnums'});
+ }
+
+ if ($$settings{'internal.crosslistings'} ne '') {
+ @currxlists = split(/,/,$$settings{'internal.crosslistings'});
+ }
+
+ if (@currxlists > 0) {
+ foreach (@currxlists) {
+ if (m/^([^:]+):(\w*)$/) {
+ unless (grep/^$1$/,@{$allcourses}) {
+ push @{$allcourses},$1;
+ $$LC_code{$1} = $2;
+ }
+ }
+ }
+ }
+
+ if (@currsections > 0) {
+ foreach (@currsections) {
+ if (m/^(\w+):(\w*)$/) {
+ my $sec = $coursecode.$1;
+ my $lc_sec = $2;
+ unless (grep/^$sec$/,@{$allcourses}) {
+ push @{$allcourses},$sec;
+ $$LC_code{$sec} = $lc_sec;
+ }
+ }
+ }
+ }
+ return;
+}
+
=pod
=back
@@ -7361,7 +7484,7 @@ sub DrawBarGraph {
$ValuesHash{$id.'.'.$key} = $value;
}
#
- &Apache::lonnet::appenv(%ValuesHash);
+ &Apache::lonnet::appenv(\%ValuesHash);
return '
';
}
@@ -7451,7 +7574,7 @@ sub DrawXYGraph {
$ValuesHash{$id.'.'.$key} = $value;
}
#
- &Apache::lonnet::appenv(%ValuesHash);
+ &Apache::lonnet::appenv(\%ValuesHash);
return '
';
}
@@ -7553,7 +7676,7 @@ sub DrawXYYGraph {
$ValuesHash{$id.'.'.$key} = $value;
}
#
- &Apache::lonnet::appenv(%ValuesHash);
+ &Apache::lonnet::appenv(\%ValuesHash);
return '
';
}
@@ -7685,7 +7808,7 @@ sub store_settings {
'got error:'.$put_result);
}
# Make sure these settings stick around in this session, too
- &Apache::lonnet::appenv(%AppHash);
+ &Apache::lonnet::appenv(\%AppHash);
return;
}