--- loncom/interface/loncommon.pm 2007/11/13 23:05:45 1.614
+++ loncom/interface/loncommon.pm 2008/03/23 23:06:31 1.636.2.4
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# a pile of common routines
#
-# $Id: loncommon.pm,v 1.614 2007/11/13 23:05:45 albertel Exp $
+# $Id: loncommon.pm,v 1.636.2.4 2008/03/23 23:06:31 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -78,6 +78,72 @@ my $readit;
## Global Variables
##
+# ----------------------------------------------- SSI with retries:
+#
+
+=pod
+
+=head1 Server Side include 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:
+
+=over 4
+
+resource - Identifies the resource to insert.
+
+retries - Count of the number of retries allowed.
+
+form - Hash that identifies the rendering options.
+
+=back
+
+Returns:
+
+=over 4
+
+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.
+
+=back
+
+=back
+
+=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;
@@ -472,7 +538,10 @@ sub setsec_javascript {
my ($sec_element,$formname) = @_;
my $setsections = qq|
function setSect(sectionlist) {
- var sectionsArray = sectionlist.split(",");
+ var sectionsArray = new Array();
+ if ((sectionlist != '') && (typeof sectionlist != "undefined")) {
+ sectionsArray = sectionlist.split(",");
+ }
var numSections = sectionsArray.length;
document.$formname.$sec_element.length = 0;
if (numSections == 0) {
@@ -779,10 +848,10 @@ sub helpLatexCheatsheet {
}
return '