[LON-CAPA-cvs] cvs: loncom /interface lonsupportreq.pm

raeburn lon-capa-cvs@mail.lon-capa.org
Fri, 31 Dec 2004 20:29:27 -0000


raeburn		Fri Dec 31 15:29:27 2004 EDT

  Modified files:              
    /loncom/interface	lonsupportreq.pm 
  Log:
  Reset initial coursecode item if page is reloaded. Use short code for any code items where long code is missing.  If institutional sections exist, default to 'Select' in select box.
  
  
Index: loncom/interface/lonsupportreq.pm
diff -u loncom/interface/lonsupportreq.pm:1.21 loncom/interface/lonsupportreq.pm:1.22
--- loncom/interface/lonsupportreq.pm:1.21	Thu Dec 30 21:46:18 2004
+++ loncom/interface/lonsupportreq.pm	Fri Dec 31 15:29:27 2004
@@ -36,7 +36,7 @@
 sub print_request_form {
     my ($r,$origurl,$function) = @_;
     my ($os,$browser,$bversion,$uhost,$uname,$udom,$uhome,$urole,$usec,$email,$cid,$cdom,$cnum,$ctitle,$ccode,$sectionlist,$lastname,$firstname,$server);
-    my $bodytag = &Apache::loncommon::bodytag('',$function,'topmargin="0",marginheight="0"',1);
+    my $bodytag = &Apache::loncommon::bodytag('',$function,'topmargin="0" marginheight="0" onLoad="initialize_codes()"',1);
     my $tablecolor = &Apache::loncommon::designparm($function.'.tabbg');
     if (($tablecolor eq '') || ($tablecolor eq '#FFFFFF')) {
         $tablecolor = '#EEEE99';
@@ -135,7 +135,11 @@
     my $totcodes = 0;
     my $format_reply;
     my $jscript = '';
-
+    my $loaditems = qq|
+function initialize_codes() {
+    return;
+}
+    |;
     if ($cdom) {
         $codedom = $cdom;
     }
@@ -152,11 +156,14 @@
         $totcodes = &retrieve_instcodes(\%coursecodes,$codedom,$totcodes);
     }
     if ($totcodes > 0) {
-        $format_reply = &Apache::lonnet::auto_instcode_format($caller,$codedom,\%coursecodes,\%codes,\@codetitles,\%cat_titles,\%cat_order);
         if ($ccode eq '') {
-            my $numtypes = @codetitles;
-            &build_code_selections(\%codes,\@codetitles,\%cat_titles,\%cat_order,\%idlist,\%idnums,\%idlist_titles);
-            &javascript_code_selections($numtypes,\%cat_titles,\$jscript,\%idlist,\%idnums,\%idlist_titles,\@codetitles);
+            $format_reply = &Apache::lonnet::auto_instcode_format($caller,$codedom,\%coursecodes,\%codes,\@codetitles,\%cat_titles,\%cat_order);
+            if ($format_reply eq 'ok') {
+                my $numtypes = @codetitles;
+                &build_code_selections(\%codes,\@codetitles,\%cat_titles,\%cat_order,\%idlist,\%idnums,\%idlist_titles);
+                &javascript_code_selections($numtypes,\%cat_titles,\$jscript,\%idlist,\%idnums,\%idlist_titles,\@codetitles);
+                $loaditems = '';
+            }
         }
     }
     $r->print(<<ENDHEAD);
@@ -392,6 +399,11 @@
                     } else {
                         $longitems[0] = $idlist_titles{$codetitles[0]};
                     }
+                    for (my $i=0; $i<@longitems; $i++) {
+                        if ($longitems[$i] eq '') {
+                            $longitems[$i] = $items[$i];
+                        }
+                    }
                 } else {
                     @longitems = @items;
                 }
@@ -452,12 +464,13 @@
                <td>
 END
     if ($sectionlist) {
-        $r->print("<select name=\"section\">");
+        $r->print("<select name=\"section\"\n>".
+                  "  <option value=\"\" selected=\"selected\">Select</option>\n");
         foreach (sort keys %groupid) {
             if ($_ eq $groupid{$_} || $groupid{$_} eq '') {
-                $r->print("<option value=\"$_\" />$_");
+                $r->print("  <option value=\"$_\" >$_</option>\n");
             } else {
-                $r->print("<option value=\"$_\" />$_ - (LON-CAPA sec: $groupid{$_})");
+                $r->print("  <option value=\"$_\" >$_ - (LON-CAPA sec: $groupid{$_})</option>\n");
             }
         }
         $r->print("</select>");
@@ -1206,6 +1219,22 @@
         }
     }
     $$script_tag .= (<<END_OF_BLOCK);
+ var display = new Array($numtitles)
+ if (caller == "") {
+    document.logproblem.Year.length = 0
+    document.logproblem.Year.options[0] = new Option("Select","-1",true,true)
+    display[0] = new Array(idyears.length)
+    for (var i=0; i<idyears.length; i++) {
+      display[0][i] = idyears[i]
+      if (longtitles[0] == 1) {
+          if (idyearslongs[i] != "") {
+              display[0][i] = idyearslongs[i]
+          }
+      }
+      document.logproblem.Year.options[i+1] = new Option(display[0][i],idyears[i],false,false)
+    }
+    document.logproblem.Year.selectedIndex = 0;
+ }
  if (caller == "$$codetitles[0]") {
    document.logproblem.Department.length = 0
    document.logproblem.Number.length = 0
@@ -1218,13 +1247,15 @@
    else {
     document.logproblem.Semester.length = 0
     document.logproblem.Semester.options[0] = new Option("Select","-1",true,true)
+    display[1] = new Array(idsems[idyr-1].length)
     for (var i=0; i<idsems[idyr-1].length; i++) {
+      display[1][i] = idsems[idyr-1][i]
       if (longtitles[1] == 1) {
-          document.logproblem.Semester.options[i+1] = new Option(idsemslongs[idyr-1][i],idsems[idyr-1][i],false,false)
-      }
-      else {
-          document.logproblem.Semester.options[i+1] = new Option(idsems[idyr-1][i],idsems[idyr-1][i],false,false)
+          if (idsemslongs[idyr-1][i] != "") {
+              display[1][i] = idsemslongs[idyr-1][i]
+          }
       }
+      document.logproblem.Semester.options[i+1] = new Option(display[1][i],idsems[idyr-1][i],false,false)
     }
    }
    document.logproblem.Semester.selectedIndex = 0;
@@ -1238,13 +1269,15 @@
    }
    else {
     document.logproblem.Department.options[0] = new Option("Select","-1",true,true)    
+    display[2] = new Array(idcodes[idyr-1][idsem-1].length)
     for (var i=0; i<idcodes[idyr-1][idsem-1].length; i++) {
+      display[2][i] = idcodes[idyr-1][idsem-1][i]
       if (longtitles[2] == 1) {
-          document.logproblem.Department.options[i+1] = new Option(idcodeslongs[idyr-1][idsem-1][i],idcodes[idyr-1][idsem-1][i],false,false)
-      }
-      else {
-          document.logproblem.Department.options[i+1] = new Option(idcodes[idyr-1][idsem-1][i],idcodes[idyr-1][idsem-1][i],false,false)
+          if (idcodeslongs[idyr-1][idsem-1][i] != "") {
+              display[2][i] = idcodeslongs[idyr-1][idsem-1][i]
+          }
       }
+      document.logproblem.Department.options[i+1] = new Option(display[2][i],idcodes[idyr-1][idsem-1][i],false,false)
     }
    }
    document.logproblem.Department.selectedIndex = 0
@@ -1256,18 +1289,25 @@
    }
    else {
     document.logproblem.Number.options[0] = new Option("Select","-1",true,true)
+    display[3] = new Array (idcourses[idyr-1][idsem-1][iddept-1].length)
     for (var i=0; i<idcourses[idyr-1][idsem-1][iddept-1].length; i++) {
+      display[3][i] = idcourses[idyr-1][idsem-1][iddept-1][i]
       if (longtitles[3] == 1) {
-        document.logproblem.Number.options[i+1] = new Option(idcourseslongs[idyr-1][idsem-1][iddept-1][i],idcourses[idyr-1][idsem-1][iddept-1][i],false,false)
-      }
-      else {
-        document.logproblem.Number.options[i+1] = new Option(idcourses[idyr-1][idsem-1][iddept-1][i],idcourses[idyr-1][idsem-1][iddept-1][i],false,false)
+        if (idcourseslongs[idyr-1][idsem-1][iddept-1][i] != "") {
+            display[3][i] = idcourseslongs[idyr-1][idsem-1][iddept-1][i]
+        }
       }
+      document.logproblem.Number.options[i+1] = new Option(display[3][i],idcourses[idyr-1][idsem-1][iddept-1][i],false,false)
     }
    }
    document.logproblem.Number.selectedIndex = 0
  }
 }
+
+function initialize_codes() {
+    courseSet();
+    return;
+}
 END_OF_BLOCK
 }