Diff for /loncom/interface/lonsupportreq.pm between versions 1.19 and 1.20

version 1.19, 2004/12/30 16:18:16 version 1.20, 2004/12/30 21:16:38
Line 127  END Line 127  END
     my $totcodes = 0;      my $totcodes = 0;
     my $format_reply;      my $format_reply;
     my $jscript = '';      my $jscript = '';
    
     if ($cdom) {      if ($cdom) {
         $codedom = $cdom;          $codedom = $cdom;
     }      }
Line 148  END Line 148  END
         if ($ccode eq '') {          if ($ccode eq '') {
             my $numtypes = @codetitles;              my $numtypes = @codetitles;
             &build_code_selections(\%codes,\@codetitles,\%cat_titles,\%cat_order,\%idlist,\%idnums,\%idlist_titles);              &build_code_selections(\%codes,\@codetitles,\%cat_titles,\%cat_order,\%idlist,\%idnums,\%idlist_titles);
             &javascript_code_selections($numtypes,\$jscript,\%idlist,\%idnums,\%idlist_titles,\@codetitles);              &javascript_code_selections($numtypes,\%cat_titles,\$jscript,\%idlist,\%idnums,\%idlist_titles,\@codetitles);
         }          }
     }      }
     $r->print(<<ENDHEAD);      $r->print(<<ENDHEAD);
Line 372  END Line 372  END
                       '<select name="'.$codetitles[0].'" onChange="courseSet('."'$codetitles[0]'".')">'."\n".                        '<select name="'.$codetitles[0].'" onChange="courseSet('."'$codetitles[0]'".')">'."\n".
                       ' <option value="-1" />Select'."\n");                        ' <option value="-1" />Select'."\n");
                 my @items = ();                  my @items = ();
                   my @longitems = ();
                 if ($idlist{$codetitles[0]} =~ /","/) {                  if ($idlist{$codetitles[0]} =~ /","/) {
                     @items = split/","/,$idlist{$codetitles[0]};                      @items = split/","/,$idlist{$codetitles[0]};
                 } else {                  } else {
                     $items[0] = $idlist{$codetitles[0]};                      $items[0] = $idlist{$codetitles[0]};
                 }                  }
                 foreach (@items) {                  if (defined($idlist_titles{$codetitles[0]})) {
                     $r->print(' <option value="'.$_.'" />'.$_);                      if ($idlist_titles{$codetitles[0]} =~ /","/) {
                           @longitems = split/","/,$idlist_titles{$codetitles[0]};
                       } else {
                           $longitems[0] = $idlist_titles{$codetitles[0]};
                       }
                   } else {
                       @longitems = @items;
                   }
                   for (my $i=0; $i<@items; $i++) {
                       $r->print(' <option value="'.$items[$i].'">'.$longitems[$i].'</option>');
                 }                  }
                 $r->print('</select></td>');                  $r->print('</select></td>');
                 for (my $i=1; $i<$numtitles; $i++) {                  for (my $i=1; $i<$numtitles; $i++) {
Line 590  sub print_request_receipt { Line 600  sub print_request_receipt {
     my $vlinkcolor = &Apache::loncommon::designparm($function.'.vlink');      my $vlinkcolor = &Apache::loncommon::designparm($function.'.vlink');
     my $tablecolor = &Apache::loncommon::designparm($function.'.tabbg');      my $tablecolor = &Apache::loncommon::designparm($function.'.tabbg');
     my @formvars = ('username','email','uname','udom','sourceurl','phone','section','coursecode','title','subject','description','screenshot');      my @formvars = ('username','email','uname','udom','sourceurl','phone','section','coursecode','title','subject','description','screenshot');
   
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},\@formvars);      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},\@formvars);
     my $coursecode = $ENV{'form.coursecode'};      my $coursecode = $ENV{'form.coursecode'};
     if ($coursecode eq '') {      if ($coursecode eq '') {
Line 959  sub build_code_selections { Line 970  sub build_code_selections {
                     %{$$idlist{$$codetitles[3]}{$key_a}{$key_b}} = ();                      %{$$idlist{$$codetitles[3]}{$key_a}{$key_b}} = ();
                     foreach my $key_c (keys %{$idarrays{$$codetitles[3]}{$key_a}{$key_b}}) {                      foreach my $key_c (keys %{$idarrays{$$codetitles[3]}{$key_a}{$key_b}}) {
                         my @sorted_c = ();                          my @sorted_c = ();
                           my @sorted_c_titles = ();
                         &sort_cats($num,$cat_order,$codetitles,\@{$idarrays{$$codetitles[3]}{$key_a}{$key_b}{$key_c}},\@sorted_c);                          &sort_cats($num,$cat_order,$codetitles,\@{$idarrays{$$codetitles[3]}{$key_a}{$key_b}{$key_c}},\@sorted_c);
                           if (defined($$cat_titles{$$codetitles[3]})) {
                               foreach (@sorted_c) {
                                   push @sorted_c_titles, $$cat_titles{$$codetitles[3]}{$_};
                               }
                           }
                         $$idlist{$$codetitles[3]}{$key_a}{$key_b}{$key_c} = join('","',@sorted_c);                          $$idlist{$$codetitles[3]}{$key_a}{$key_b}{$key_c} = join('","',@sorted_c);
                         $$idnums{$$codetitles[3]}{$key_a}{$key_b}{$key_c} = scalar(@sorted_c);                          $$idnums{$$codetitles[3]}{$key_a}{$key_b}{$key_c} = scalar(@sorted_c);
                           if (defined($$cat_titles{$$codetitles[3]})) {
                               $$idlist_titles{$$codetitles[2]}{$key_a}{$key_b} = join('","',@sorted_c_titles);
                           }
                     }                      }
                 }                  }
             }              }
Line 975  sub build_code_selections { Line 995  sub build_code_selections {
                         %{$$idlist{$$codetitles[4]}{$key_a}{$key_b}{$key_c}} = ();                          %{$$idlist{$$codetitles[4]}{$key_a}{$key_b}{$key_c}} = ();
                         foreach my $key_d (keys %{$idarrays{$$codetitles[4]}{$key_a}{$key_b}{$key_c}}) {                          foreach my $key_d (keys %{$idarrays{$$codetitles[4]}{$key_a}{$key_b}{$key_c}}) {
                             my @sorted_d = ();                              my @sorted_d = ();
                               my @sorted_d_titles = ();
                             &sort_cats($num,$cat_order,$codetitles,$idarrays{$$codetitles[4]}{$key_a}{$key_b}{$key_c}{$key_d},\@sorted_d);                              &sort_cats($num,$cat_order,$codetitles,$idarrays{$$codetitles[4]}{$key_a}{$key_b}{$key_c}{$key_d},\@sorted_d);
                               if (defined($$cat_titles{$$codetitles[4]})) {
                                   foreach (@sorted_d) {
                                       push @sorted_d_titles, $$cat_titles{$$codetitles[4]}{$_};
                                   }
                               }
                             $$idlist{$$codetitles[4]}{$key_a}{$key_b}{$key_c}{$key_d} = join('","',@sorted_d);                              $$idlist{$$codetitles[4]}{$key_a}{$key_b}{$key_c}{$key_d} = join('","',@sorted_d);
                             $$idnums{$$codetitles[4]}{$key_a}{$key_b}{$key_c}{$key_d} = scalar(@sorted_d);                              $$idnums{$$codetitles[4]}{$key_a}{$key_b}{$key_c}{$key_d} = scalar(@sorted_d);
                         }                          }
Line 1081  sub recurse_list { Line 1107  sub recurse_list {
 }  }
   
 sub javascript_code_selections {  sub javascript_code_selections {
     my ($numcats,$script_tag,$idlist,$idnums,$idlist_titles,$codetitles) = @_;      my ($numcats,$cat_titles,$script_tag,$idlist,$idnums,$idlist_titles,$codetitles) = @_;
     my $numtitles = @{$codetitles};      my $numtitles = @{$codetitles};
     my @seltitles = ();       my @seltitles = ();
     for (my $j=0; $j<$numtitles; $j++) {      for (my $j=0; $j<$numtitles; $j++) {
         $seltitles[$j] = 'id'.$$codetitles[$j];          $seltitles[$j] = 'id'.$$codetitles[$j];
     }      }
     my $seltitle_str = join('","',@seltitles);      my $seltitle_str = join('","',@seltitles);
       my @longtitles = ();
       for (my $i=0; $i<$numtitles; $i++) {
          if (defined($$cat_titles{$$codetitles[$i]})) {
              $longtitles[$i] = 1;
          } else {
              $longtitles[$i] = 0;
          }
       }
       my $longtitles_str = join('","',@longtitles);
     $$script_tag .= <<END;      $$script_tag .= <<END;
 function courseSet(caller) {  function courseSet(caller) {
     var ids = new Array ("$seltitle_str");      var ids = new Array ("$seltitle_str");
     var formitems = new Array ($numtitles);      var formitems = new Array ($numtitles);
       var longtitles = new Array ("$longtitles_str");
     var idyr = document.logproblem.Year.selectedIndex      var idyr = document.logproblem.Year.selectedIndex
     var idsem  = document.logproblem.Semester.selectedIndex      var idsem  = document.logproblem.Semester.selectedIndex
     var iddept = document.logproblem.Department.selectedIndex      var iddept = document.logproblem.Department.selectedIndex
     var idclass = document.logproblem.Number.selectedIndex      var idclass = document.logproblem.Number.selectedIndex
     var idyears = new Array("$$idlist{$$codetitles[0]}");      var idyears = new Array("$$idlist{$$codetitles[0]}");
     var idsems = new Array ($$idnums{$$codetitles[0]});  
     var idsemlongs = new Array ($$idnums{$$codetitles[0]});  
     var idcodes = new Array ($$idnums{$$codetitles[0]});  
     var idcourses = new Array ($$idnums{$$codetitles[0]});  
 END  END
     my @sort_a = split/","/,$$idlist{$$codetitles[0]};       if ($longtitles[0]) {
           $$script_tag .=
             qq|      var idyearslongs = new Array("$$idlist_titles{$$codetitles[0]}")\n|;
       }
       $$script_tag .=
             "      var idsems = new Array ($$idnums{$$codetitles[0]})\n";
       if ($longtitles[1]) {
           $$script_tag .=
             "      var idsemslongs = new Array ($$idnums{$$codetitles[0]})\n";
       }
       $$script_tag .=
             "      var idcodes = new Array ($$idnums{$$codetitles[0]})\n";
       if ($longtitles[2]) {
           $$script_tag .=
             "      var idcodeslongs = new Array ($$idnums{$$codetitles[0]})\n";
       }
       $$script_tag .=
             "      var idcourses = new Array ($$idnums{$$codetitles[0]})\n";
       if ($longtitles[3]) {
           $$script_tag .=
             "      var idcourseslongs =  new Array ($$idnums{$$codetitles[0]})\n";
       }
       my @sort_a = split/","/,$$idlist{$$codetitles[0]};
     for (my $j=0; $j<@sort_a; $j++) {      for (my $j=0; $j<@sort_a; $j++) {
         $$script_tag .= qq| idsems[$j] = new Array("$$idlist{$$codetitles[1]}{$sort_a[$j]}")\n|;          $$script_tag .= qq| idsems[$j] = new Array("$$idlist{$$codetitles[1]}{$sort_a[$j]}")\n|;
         $$script_tag .= qq| idsemlongs[$j] = new Array("$$idlist_titles{$$codetitles[1]}{$sort_a[$j]}")\n|;          if ($longtitles[1]) {
               $$script_tag .= qq| idsemslongs[$j] = new Array("$$idlist_titles{$$codetitles[1]}{$sort_a[$j]}")\n|;
           }
         $$script_tag .= qq| idcodes[$j] = new Array($$idnums{$$codetitles[1]}{$sort_a[$j]})\n|;          $$script_tag .= qq| idcodes[$j] = new Array($$idnums{$$codetitles[1]}{$sort_a[$j]})\n|;
           if ($longtitles[2]) {
               $$script_tag .= qq| idcodeslongs[$j] = new Array($$idnums{$$codetitles[1]}{$sort_a[$j]})\n|;
           }
         $$script_tag .= qq| idcourses[$j] = new Array($$idnums{$$codetitles[1]}{$sort_a[$j]})\n|;          $$script_tag .= qq| idcourses[$j] = new Array($$idnums{$$codetitles[1]}{$sort_a[$j]})\n|;
           if ($longtitles[3]) {
               $$script_tag .= qq| idcourseslongs[$j] = new Array($$idnums{$$codetitles[1]}{$sort_a[$j]})\n|;
           }
         my @sort_b = split/","/,$$idlist{$$codetitles[1]}{$sort_a[$j]};          my @sort_b = split/","/,$$idlist{$$codetitles[1]}{$sort_a[$j]};
         for (my $k=0; $k<@sort_b; $k++) {          for (my $k=0; $k<@sort_b; $k++) {
             my $idcode_entry = $$idlist{$$codetitles[2]}{$sort_a[$j]}{$sort_b[$k]};              my $idcode_entry = $$idlist{$$codetitles[2]}{$sort_a[$j]}{$sort_b[$k]};
             $$script_tag .= qq| idcodes[$j][$k] = new Array("$idcode_entry")\n|;              $$script_tag .= qq| idcodes[$j][$k] = new Array("$idcode_entry")\n|;
               if ($longtitles[2]) {
                   my $idcodelong_entry = $$idlist_titles{$$codetitles[2]}{$sort_a[$j]}{$sort_b[$k]};
                   $$script_tag .= qq| idcodeslongs[$j][$k] = new Array("$idcodelong_entry")\n|;
               }
             $$script_tag .= qq| idcourses[$j][$k] = new Array($$idnums{$$codetitles[2]}{$sort_a[$j]}{$sort_b[$k]})\n|;              $$script_tag .= qq| idcourses[$j][$k] = new Array($$idnums{$$codetitles[2]}{$sort_a[$j]}{$sort_b[$k]})\n|;
               if ($longtitles[3]) {
                   $$script_tag .= qq| idcourseslongs[$j][$k] = new Array($$idnums{$$codetitles[2]}{$sort_a[$j]}{$sort_b[$k]})\n|;
               }
             my @sort_c = split/","/,$$idlist{$$codetitles[2]}{$sort_a[$j]}{$sort_b[$k]};              my @sort_c = split/","/,$$idlist{$$codetitles[2]}{$sort_a[$j]}{$sort_b[$k]};
             for (my $l=0; $l<@sort_c; $l++) {              for (my $l=0; $l<@sort_c; $l++) {
                 my $idcourse_entry = $$idlist{$$codetitles[3]}{$sort_a[$j]}{$sort_b[$k]}{$sort_c[$l]};                  my $idcourse_entry = $$idlist{$$codetitles[3]}{$sort_a[$j]}{$sort_b[$k]}{$sort_c[$l]};
                 $$script_tag .= qq| idcourses[$j][$k][$l] = new Array("$idcourse_entry")\n|;                  $$script_tag .= qq| idcourses[$j][$k][$l] = new Array("$idcourse_entry")\n|;
                   if ($longtitles[3]) {
                       my $idcourselong_entry = $$idlist_titles{$$codetitles[3]}{$sort_a[$j]}{$sort_b[$k]}{$sort_c[$l]};
                       $$script_tag .= qq| idcourseslongs[$j][$k][$l] = new Array("$idcourselong_entry")\n|;
                   }
             }              }
         }          }
     }      }
Line 1134  END Line 1207  END
     document.logproblem.Semester.length = 0      document.logproblem.Semester.length = 0
     document.logproblem.Semester.options[0] = new Option("Select","-1",true,true)      document.logproblem.Semester.options[0] = new Option("Select","-1",true,true)
     for (var i=0; i<idsems[idyr-1].length; i++) {      for (var i=0; i<idsems[idyr-1].length; i++) {
       document.logproblem.Semester.options[i+1] = new Option(idsemlongs[idyr-1][i],idsems[idyr-1][i],false,false)        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)
         }
     }      }
    }     }
    document.logproblem.Semester.selectedIndex = 0;     document.logproblem.Semester.selectedIndex = 0;
Line 1149  END Line 1227  END
    else {     else {
     document.logproblem.Department.options[0] = new Option("Select","-1",true,true)          document.logproblem.Department.options[0] = new Option("Select","-1",true,true)    
     for (var i=0; i<idcodes[idyr-1][idsem-1].length; i++) {      for (var i=0; i<idcodes[idyr-1][idsem-1].length; i++) {
       document.logproblem.Department.options[i+1] = new Option(idcodes[idyr-1][idsem-1][i],idcodes[idyr-1][idsem-1][i],false,false)        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)
         }
     }      }
    }     }
    document.logproblem.Department.selectedIndex = 0     document.logproblem.Department.selectedIndex = 0
Line 1162  END Line 1245  END
    else {     else {
     document.logproblem.Number.options[0] = new Option("Select","-1",true,true)      document.logproblem.Number.options[0] = new Option("Select","-1",true,true)
     for (var i=0; i<idcourses[idyr-1][idsem-1][iddept-1].length; i++) {      for (var i=0; i<idcourses[idyr-1][idsem-1][iddept-1].length; i++) {
       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 (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)
         }
     }      }
    }     }
    document.logproblem.Number.selectedIndex = 0     document.logproblem.Number.selectedIndex = 0

Removed from v.1.19  
changed lines
  Added in v.1.20


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>