Diff for /loncom/interface/lonhtmlcommon.pm between versions 1.182.4.13 and 1.183

version 1.182.4.13, 2010/03/19 22:34:23 version 1.183, 2008/11/11 20:12:17
Line 62  use Apache::lonlocal; Line 62  use Apache::lonlocal;
 use Apache::lonnet;  use Apache::lonnet;
 use LONCAPA;  use LONCAPA;
   
 sub coursepreflink {  
     my ($text,$category)=@_;  
     if (&Apache::lonnet::allowed('opa',$env{'request.course.id'})) {  
         return '<a href="/adm/courseprefs?phase=display&amp;actions='.$category.'">'.$text.'</a>';  
     } else {  
         return '';  
     }  
 }  
   
 sub raw_href_to_link {  
     my ($message)=@_;  
     $message=~s/(https?\:\/\/[^\s\'\"\<]+)([\s\<]|$)/<a href="$1"><tt>$1<\/tt><\/a>$2/gi;  
     return $message;  
 }  
   
 ##############################################  
 ##############################################  
   
 =pod  
   
 =item confirm_success  
   
 Successful completion of an operation message  
   
 =cut  
   
 sub confirm_success {  
    my ($message,$failure)=@_;  
    if ($failure) {  
       return '<span class="LC_error" style="font-size: inherit;">'."\n"  
             .'<img src="/adm/lonIcons/navmap.wrong.gif" alt="'.&mt('Error').'" /> '."\n"  
             .$message."\n"  
             .'</span>'."\n";  
    } else {  
       return '<span class="LC_success">'."\n"  
             .'<img src="/adm/lonIcons/navmap.correct.gif" alt="'.&mt('OK').'" /> '."\n"  
             .$message."\n"  
             .'</span>'."\n";  
    }  
 }  
   
 ##############################################  ##############################################
 ##############################################  ##############################################
Line 145  sub dragmath_js { Line 105  sub dragmath_js {
     my ($popup) = @_;      my ($popup) = @_;
     return <<ENDDRAGMATHJS;      return <<ENDDRAGMATHJS;
                 <script type="text/javascript">                  <script type="text/javascript">
                 // <![CDATA[  
                   function mathedit(textarea, doc) {                    function mathedit(textarea, doc) {
                      targetEntry = textarea;                       targetEntry = textarea;
                      targetDoc   = doc;                       targetDoc   = doc;
                      newwin  = window.open("/adm/dragmath/applet/$popup.html","","width=565,height=500,resizable");                       newwin  = window.open("/adm/dragmath/applet/$popup.html","","width=565,height=500,resizable");
                   }                    }
                 // ]]>  
                 </script>                  </script>
   
 ENDDRAGMATHJS  ENDDRAGMATHJS
Line 237  sub select_recent { Line 195  sub select_recent {
  unless ($value =~/^error\:/) {   unless ($value =~/^error\:/) {
     my $escaped = &Apache::loncommon::escape_url($value);      my $escaped = &Apache::loncommon::escape_url($value);
     &Apache::loncommon::inhibit_menu_check(\$escaped);      &Apache::loncommon::inhibit_menu_check(\$escaped);
             if ($area eq 'residx') {  
                 next if ((!&Apache::lonnet::allowed('bre',$value)) && (!&Apache::lonnet::allowed('bro',$value)));  
             }  
     $return.="\n<option value='$escaped'>".      $return.="\n<option value='$escaped'>".
  &unescape((split(/\&/,$recent{$value}))[1]).   &unescape((split(/\&/,$recent{$value}))[1]).
  '</option>';   '</option>';
Line 330  sub checkbox { Line 285  sub checkbox {
         $Str .= 'value="'.$value.'"';          $Str .= 'value="'.$value.'"';
     }       } 
     if ($checked) {      if ($checked) {
         $Str .= ' checked="checked"';          $Str .= ' checked="1"';
     }      }
     $Str .= ' />';      $Str .= ' />';
     return $Str;      return $Str;
Line 352  sub radio { Line 307  sub radio {
         $Str .= 'value="'.$value.'"';          $Str .= 'value="'.$value.'"';
     }       } 
     if ($checked eq $value) {      if ($checked eq $value) {
         $Str .= ' checked="checked"';          $Str .= ' checked="1"';
     }      }
     $Str .= ' />';      $Str .= ' />';
     return $Str;      return $Str;
Line 436  sub date_setter { Line 391  sub date_setter {
         ($tzname,$sec,$min,$hour,$mday,$month,$year) = &get_timedates($currentvalue);           ($tzname,$sec,$min,$hour,$mday,$month,$year) = &get_timedates($currentvalue); 
     }      }
     unless ($wasdefined) {      unless ($wasdefined) {
           ($tzname,$sec,$min,$hour,$mday,$month,$year) = &get_timedates($now);
  if (($defhour) || ($defmin) || ($defsec)) {   if (($defhour) || ($defmin) || ($defsec)) {
             ($tzname,$sec,$min,$hour,$mday,$month,$year) = &get_timedates($now);  
     $sec=($defsec?$defsec:0);      $sec=($defsec?$defsec:0);
     $min=($defmin?$defmin:0);      $min=($defmin?$defmin:0);
     $hour=($defhour?$defhour:0);      $hour=($defhour?$defhour:0);
Line 450  sub date_setter { Line 405  sub date_setter {
     my $result = "\n<!-- $dname date setting form -->\n";      my $result = "\n<!-- $dname date setting form -->\n";
     $result .= <<ENDJS;      $result .= <<ENDJS;
 <script type="text/javascript">  <script type="text/javascript">
 // <![CDATA[  
     function $dname\_checkday() {      function $dname\_checkday() {
         var day   = document.$formname.$dname\_day.value;          var day   = document.$formname.$dname\_day.value;
         var month = document.$formname.$dname\_month.value;          var month = document.$formname.$dname\_month.value;
Line 511  document.$formname.$dname\_year.value, Line 465  document.$formname.$dname\_year.value,
         }          }
   
     }      }
 // ]]>  
 </script>  </script>
 ENDJS  ENDJS
     $result .= '  <span style="white-space: nowrap;">';      $result .= '  <span style="white-space: nowrap;">';
Line 523  ENDJS Line 476  ENDJS
     unshift(@Months,'If you can read this an error occurred');      unshift(@Months,'If you can read this an error occurred');
     if ($includeempty) { $monthselector.="<option value=''></option>"; }      if ($includeempty) { $monthselector.="<option value=''></option>"; }
     for(my $m = 1;$m <=$#Months;$m++) {      for(my $m = 1;$m <=$#Months;$m++) {
         $monthselector .= qq{      <option value="$m"};          $monthselector .= qq{      <option value="$m" };
         $monthselector .= ' selected="selected"' if ($m-1 eq $month);          $monthselector .= "selected " if ($m-1 eq $month);
         $monthselector .= '> '.&mt($Months[$m]).' </option>'."\n";          $monthselector .= '> '.&mt($Months[$m]).' </option>';
     }      }
     $monthselector.= '  </select>';      $monthselector.= '  </select>';
     # Day      # Day
     my $dayselector = qq{<input type="text" name="$dname\_day" $state value="$mday" size="3" $special onchange="javascript:$dname\_checkday()" />};      my $dayselector = qq{<input type="text" name="$dname\_day" $state value="$mday" size="3" $special onchange="javascript:$dname\_checkday()" />};
     # Year      # Year
     my $yearselector = qq{<input type="text" name="$dname\_year" $state value="$year" size="5" $special onchange="javascript:$dname\_checkday()" />};      my $yearselector = qq{<input type="year" name="$dname\_year" $state value="$year" size="5" $special onchange="javascript:$dname\_checkday()" />};
     #      #
     my $hourselector = qq{<select name="$dname\_hour" $special $state >};      my $hourselector = qq{<select name="$dname\_hour" $special $state >};
     if ($includeempty) {       if ($includeempty) { 
         $hourselector.=qq{<option value=''></option>};          $hourselector.=qq{<option value=''></option>};
     }      }
     for (my $h = 0;$h<24;$h++) {      for (my $h = 0;$h<24;$h++) {
         $hourselector .= qq{<option value="$h"};          $hourselector .= qq{<option value="$h" };
         $hourselector .= ' selected="selected"' if (defined($hour) && $hour == $h);          $hourselector .= "selected " if (defined($hour) && $hour == $h);
         $hourselector .= ">";          $hourselector .= ">";
         my $timest='';          my $timest='';
         if ($h == 0) {          if ($h == 0) {
Line 627  Inputs: Line 580  Inputs:
   
 =item $dname  =item $dname
   
 The name passed to &date_setter, which prefixes the form elements.  The name passed to &datesetter, which prefixes the form elements.
   
 =item $defaulttime  =item $defaulttime
   
Line 996  sub Create_PrgWin { Line 949  sub Create_PrgWin {
   
  #the whole function called through timeout is due to issues   #the whole function called through timeout is due to issues
  #in mozilla Read BUG #2665 if you want to know the whole story   #in mozilla Read BUG #2665 if you want to know the whole story
  &r_print($r,'<script type="text/javascript">'."\n".   &r_print($r,'<script type="text/javascript">'.
         '// <![CDATA['."\n".  
         "var popwin;          "var popwin;
          function openpopwin () {           function openpopwin () {
          popwin=open(\'\',\'popwin\',\'width=400,height=100\');".           popwin=open(\'\',\'popwin\',\'width=400,height=100\');".
Line 1008  sub Create_PrgWin { Line 960  sub Create_PrgWin {
       &mt('Starting').'" /><\\/form>'.$end_page.        &mt('Starting').'" /><\\/form>'.$end_page.
               "\');".                "\');".
         "popwin.document.close();}".          "popwin.document.close();}".
         "\nwindow.setTimeout(openpopwin,0)\n".          "\nwindow.setTimeout(openpopwin,0)</script>");
         '// ]]>'."\n".  
         '</script>');  
  $prog_state{'formname'}='popremain';   $prog_state{'formname'}='popremain';
  $prog_state{'inputname'}="remaining";   $prog_state{'inputname'}="remaining";
     } elsif ($type eq 'inline') {      } elsif ($type eq 'inline') {
Line 1043  sub Create_PrgWin { Line 993  sub Create_PrgWin {
 # update progress  # update progress
 sub Update_PrgWin {  sub Update_PrgWin {
     my ($r,$prog_state,$displayString)=@_;      my ($r,$prog_state,$displayString)=@_;
     &r_print($r,'<script type="text/javascript">'."\n".      &r_print($r,'<script type="text/javascript">'.$$prog_state{'window'}.'.document.'.
              '// <![CDATA['."\n".  
              $$prog_state{'window'}.'.document.'.  
      $$prog_state{'formname'}.'.'.       $$prog_state{'formname'}.'.'.
      $$prog_state{'inputname'}.'.value="'.       $$prog_state{'inputname'}.'.value="'.
      $displayString.'";'."\n".       $displayString.'";</script>');
              '// ]]>'."\n".  
              '</script>');  
     $$prog_state{'laststart'}=&Time::HiRes::time();      $$prog_state{'laststart'}=&Time::HiRes::time();
 }  }
   
Line 1068  sub Increment_PrgWin { Line 1014  sub Increment_PrgWin {
     #       # 
     my $str;      my $str;
     if ($min == 0 && $sec > 1) {      if ($min == 0 && $sec > 1) {
         $str = '[_1] seconds';          $str = '[_2] seconds';
     } elsif ($min == 1 && $sec > 1) {      } elsif ($min == 1 && $sec > 1) {
         $str = '1 minute [_2] seconds';          $str = '1 minute [_2] seconds';
     } elsif ($min == 1 && $sec < 2) {      } elsif ($min == 1 && $sec < 2) {
Line 1103  sub Increment_PrgWin { Line 1049  sub Increment_PrgWin {
     if ($user_browser eq 'explorer' && $user_os =~ 'mac') {      if ($user_browser eq 'explorer' && $user_os =~ 'mac') {
         $lasttime = '';          $lasttime = '';
     }      }
     &r_print($r,'<script>'."\n".      &r_print($r,'<script>'.$$prog_state{'window'}.'.document.'.
              '// <![CDATA['."\n".  
              $$prog_state{'window'}.'.document.'.  
      $$prog_state{'formname'}.'.'.       $$prog_state{'formname'}.'.'.
      $$prog_state{'inputname'}.'.value="'.       $$prog_state{'inputname'}.'.value="'.
      $$prog_state{'done'}.'/'.$$prog_state{'max'}.       $$prog_state{'done'}.'/'.$$prog_state{'max'}.
      ': '.$time_est.' '.&mt('remaining').' '.$lasttime.'";'."\n".       ': '.$time_est.' '.&mt('remaining').' '.$lasttime.'";'.'</script>');
              '// ]]>'."\n".  
              '</script>');  
     $$prog_state{'laststart'}=&Time::HiRes::time();      $$prog_state{'laststart'}=&Time::HiRes::time();
 }  }
   
Line 1119  sub Increment_PrgWin { Line 1061  sub Increment_PrgWin {
 sub Close_PrgWin {  sub Close_PrgWin {
     my ($r,$prog_state)=@_;      my ($r,$prog_state)=@_;
     if ($$prog_state{'type'} eq 'popup') {      if ($$prog_state{'type'} eq 'popup') {
  &r_print($r,'<script>'."\n".   &r_print($r,'<script>popwin.close()</script>'."\n");
                  '// <![CDATA['."\n".  
                  'popwin.close()'."n".  
                  '// ]]>'."\n".  
                  '</script>'."\n");  
     } elsif ($$prog_state{'type'} eq 'inline') {      } elsif ($$prog_state{'type'} eq 'inline') {
  &Update_PrgWin($r,$prog_state,&mt('Done'));   &Update_PrgWin($r,$prog_state,&mt('Done'));
     }      }
Line 1154  sub crumbs { Line 1092  sub crumbs {
     my $output='';      my $output='';
     unless ($noformat) { $output.='<br /><tt><b>'; }      unless ($noformat) { $output.='<br /><tt><b>'; }
     $output.='<font size="'.$size.'">'.$prefix.'/';      $output.='<font size="'.$size.'">'.$prefix.'/';
     if (($env{'user.adv'}) || ($env{'user.author'})) {      if ($env{'user.adv'}) {
  my $path=$prefix.'/';   my $path=$prefix.'/';
  foreach my $dir (split('/',$uri)) {   foreach my $dir (split('/',$uri)) {
             if (! $dir) { next; }              if (! $dir) { next; }
Line 1204  sub spellheader { Line 1142  sub spellheader {
   
     my $nothing=&javascript_nothing();      my $nothing=&javascript_nothing();
     return (<<ENDCHECK);      return (<<ENDCHECK);
 <script type="text/javascript">  <script type="text/javascript"> 
 // <![CDATA[  
 //<!-- BEGIN LON-CAPA Internal  //<!-- BEGIN LON-CAPA Internal
 var checkwin;  var checkwin;
   
Line 1216  function spellcheckerwindow(string) { Line 1153  function spellcheckerwindow(string) {
     checkwin.document.close();      checkwin.document.close();
 }  }
 // END LON-CAPA Internal -->  // END LON-CAPA Internal -->
 // ]]>  
 </script>  </script>
 ENDCHECK  ENDCHECK
 }  }
Line 1290  sub htmlareaselectactive { Line 1226  sub htmlareaselectactive {
     my @fields=@_;      my @fields=@_;
     unless (&htmlareabrowser()) { return ''; }      unless (&htmlareabrowser()) { return ''; }
     if (&htmlareablocked()) { return '<br />'.&enablelink(@fields); }      if (&htmlareablocked()) { return '<br />'.&enablelink(@fields); }
     my $output='<script type="text/javascript" defer="defer">'.      my $output='<script type="text/javascript" defer="1">';
                '// <![CDATA[';  
     my $lang = &htmlarea_lang();      my $lang = &htmlarea_lang();
     foreach my $field (@fields) {      foreach my $field (@fields) {
  $output.="   $output.="
Line 1304  sub htmlareaselectactive { Line 1239  sub htmlareaselectactive {
     oFCKeditor.Config['DefaultLanguage'] = '$lang';      oFCKeditor.Config['DefaultLanguage'] = '$lang';
 }";  }";
     }      }
     $output.="\nwindow.status='Activated Editfields';\n".      $output.="\nwindow.status='Activated Editfields';\n</script><br />".
              '// ]]>'."\n".  
              '</script><br />'.  
  &disablelink(@fields);   &disablelink(@fields);
     return $output;      return $output;
 }  }
Line 1370  returns: nothing Line 1303  returns: nothing
     my @Crumbs;      my @Crumbs;
           
     sub breadcrumbs {      sub breadcrumbs {
         my ($component,$component_help,$menulink,$helplink,$css_class,$no_mt) = @_;          my ($component,$component_help,$menulink,$helplink,$css_class) = @_;
         #          #
  $css_class ||= 'LC_breadcrumbs';   $css_class ||= 'LC_breadcrumbs';
         my $Str = "\n".'<table class="'.$css_class.'"><tr><td>';          my $Str = "\n".'<table class="'.$css_class.'"><tr><td>';
Line 1380  returns: nothing Line 1313  returns: nothing
         my $bug = '';          my $bug = '';
  my $help='';   my $help='';
  # Crumb Symbol   # Crumb Symbol
  my $crumbsymbol = '&raquo;&nbsp;';   my $crumbsymbol = ' &#x25b6; ';
         # The last breadcrumb does not have a link, so handle it separately.          # The last breadcrumb does not have a link, so handle it separately.
         my $last = pop(@Crumbs);          my $last = pop(@Crumbs);
         #          #
Line 1389  returns: nothing Line 1322  returns: nothing
         if ($menulink) {          if ($menulink) {
             my $description = 'Menu';              my $description = 'Menu';
             my $no_mt_descr = 0;              my $no_mt_descr = 0;
             if ((exists($env{'request.course.id'})) &&              if (exists($env{'request.course.id'}) && 
                 ($env{'request.course.id'} ne '') &&                  $env{'request.course.id'} ne '') {
                 ($env{'course.'.$env{'request.course.id'}.'.description'} ne '')) {  
                 $description =                   $description = 
                     $env{'course.'.$env{'request.course.id'}.'.description'};                      $env{'course.'.$env{'request.course.id'}.'.description'};
                 $no_mt_descr = 1;                  $no_mt_descr = 1;
Line 1451  returns: nothing Line 1383  returns: nothing
         $Str .= $links.'</td>';          $Str .= $links.'</td>';
         #          #
         if (defined($component)) {          if (defined($component)) {
             $Str .= '<td class="'.$css_class.'_component">';              $Str .= '<td class="'.$css_class.'_component">'.
             if ($no_mt) {                  &mt($component);
                 $Str .= $component;  
             } else {  
                 $Str .= &mt($component);  
             }  
     if ($icons ne '') {      if ($icons ne '') {
  $Str .= '&nbsp;'.$icons;   $Str .= '&nbsp;'.$icons;
     }      }
Line 1537  returns: nothing Line 1465  returns: nothing
 # routines, but can also be called directly to start and end rows which have   # routines, but can also be called directly to start and end rows which have 
 # needs that are not accommodated by the *_select_row() routines.      # needs that are not accommodated by the *_select_row() routines.    
   
 { # Start: row_count block for pick_box  
 my @row_count;  
   
 sub start_pick_box {  sub start_pick_box {
     my ($css_class) = @_;      my ($css_class) = @_;
     if (defined($css_class)) {      if (defined($css_class)) {
Line 1547  sub start_pick_box { Line 1472  sub start_pick_box {
     } else {      } else {
  $css_class= 'class="LC_pick_box"';   $css_class= 'class="LC_pick_box"';
     }      }
     unshift(@row_count,0);  
     my $output = <<"END";      my $output = <<"END";
  <table $css_class>   <table $css_class>
 END  END
Line 1555  END Line 1479  END
 }  }
   
 sub end_pick_box {  sub end_pick_box {
     shift(@row_count);  
     my $output = <<"END";      my $output = <<"END";
        </table>         </table>
 END  END
Line 1571  END Line 1494  END
   
 sub row_title {  sub row_title {
     my ($title,$css_title_class,$css_value_class) = @_;      my ($title,$css_title_class,$css_value_class) = @_;
     $row_count[0]++;  
     my $css_class = ($row_count[0] % 2)?'LC_odd_row':'LC_even_row';  
     $css_title_class ||= 'LC_pick_box_title';      $css_title_class ||= 'LC_pick_box_title';
     $css_title_class = 'class="'.$css_title_class.'"';      $css_title_class = 'class="'.$css_title_class.'"';
   
     $css_value_class ||= 'LC_pick_box_value';      $css_value_class ||= 'LC_pick_box_value';
       $css_value_class = 'class="'.$css_value_class.'"';
   
     if ($title ne '') {      if ($title ne '') {
         $title .= ':';          $title .= ':';
Line 1586  sub row_title { Line 1508  sub row_title {
             <td $css_title_class>              <td $css_title_class>
        $title         $title
             </td>              </td>
             <td class="$css_value_class $css_class">              <td $css_value_class>
 ENDONE  ENDONE
     return $output;      return $output;
 }  }
Line 1608  ENDTWO Line 1530  ENDTWO
     return $output;      return $output;
 }  }
   
 } # End: row_count block for pick_box  
   
   
 sub role_select_row {  sub role_select_row {
     my ($roles,$title,$css_class,$show_separate_custom,$cdom,$cnum) = @_;      my ($roles,$title,$css_class,$show_separate_custom,$cdom,$cnum) = @_;
     my $crstype = 'Course';  
     if ($cdom ne '' && $cnum ne '') {  
         $crstype = &Apache::loncommon::course_type($cdom.'_'.$cnum);  
     }  
     my $output;      my $output;
     if (defined($title)) {      if (defined($title)) {
         $output = &row_title($title,$css_class);          $output = &row_title($title,$css_class);
     }      }
     $output .= qq|      $output .= qq|
                                   <select name="roles" multiple="multiple" >\n|;                                    <select name="roles" multiple >\n|;
     foreach my $role (@$roles) {      foreach my $role (@$roles) {
         my $plrole;          my $plrole;
         if ($role eq 'ow') {          if ($role eq 'ow') {
Line 1641  sub role_select_row { Line 1556  sub role_select_row {
                 $plrole = &mt('Custom Role');                  $plrole = &mt('Custom Role');
             }              }
         } else {          } else {
             $plrole=&Apache::lonnet::plaintext($role,$crstype);              $plrole=&Apache::lonnet::plaintext($role);
         }          }
         if (($role ne 'cr') || (!$show_separate_custom)) {          if (($role ne 'cr') || (!$show_separate_custom)) {
             $output .= '  <option value="'.$role.'">'.$plrole.'</option>';              $output .= '  <option value="'.$role.'">'.$plrole.'</option>';
Line 1656  sub role_select_row { Line 1571  sub role_select_row {
   
 sub course_select_row {  sub course_select_row {
     my ($title,$formname,$totcodes,$codetitles,$idlist,$idlist_titles,      my ($title,$formname,$totcodes,$codetitles,$idlist,$idlist_titles,
  $css_class,$crstype) = @_;   $css_class) = @_;
     my $output = &row_title($title,$css_class);      my $output = &row_title($title,$css_class);
     $output .= &course_selection($formname,$totcodes,$codetitles,$idlist,$idlist_titles,$crstype);      $output .= &course_selection($formname,$totcodes,$codetitles,$idlist,$idlist_titles);
     $output .= &row_closure();      $output .= &row_closure();
     return $output;      return $output;
 }  }
   
 sub course_selection {  sub course_selection {
     my ($formname,$totcodes,$codetitles,$idlist,$idlist_titles,$crstype) = @_;      my ($formname,$totcodes,$codetitles,$idlist,$idlist_titles) = @_;
     my $output = qq|      my $output = qq|
 <script type="text/javascript">  <script type="text/javascript">
 // <![CDATA[  
     function coursePick (formname) {      function coursePick (formname) {
         for  (var i=0; i<formname.coursepick.length; i++) {          for  (var i=0; i<formname.coursepick.length; i++) {
             if (formname.coursepick[i].value == 'category') {              if (formname.coursepick[i].value == 'category') {
Line 1690  sub course_selection { Line 1604  sub course_selection {
             formname.courselist = '';              formname.courselist = '';
         }          }
     }      }
 // ]]>  
 </script>  </script>
     |;      |;
   
     my ($allcrs,$pickspec);  
     if ($crstype eq 'Community') {  
         $allcrs = &mt('All communities');  
         $pickspec = &mt('Pick specific communities:');  
     } else {  
         $allcrs = &mt('All courses');  
         $pickspec = &mt('Pick specific course(s):');  
     }  
   
     my $courseform='<b>'.&Apache::loncommon::selectcourse_link      my $courseform='<b>'.&Apache::loncommon::selectcourse_link
                      ($formname,'pickcourse','pickdomain','coursedesc','',1,$crstype).'</b>';                       ($formname,'pickcourse','pickdomain','coursedesc','',1).'</b>';
         $output .= '<input type="radio" name="coursepick" value="all" onclick="coursePick(this.form)" />'.$allcrs.'<br />';          $output .= '<input type="radio" name="coursepick" value="all" onclick="coursePick(this.form)" />'.&mt('All courses').'<br />';
     if ($totcodes > 0) {      if ($totcodes > 0) {
         my $numtitles = @$codetitles;          my $numtitles = @$codetitles;
         if ($numtitles > 0) {          if ($numtitles > 0) {
Line 1750  sub course_selection { Line 1653  sub course_selection {
             $output .= '</tr></table><br />';              $output .= '</tr></table><br />';
         }          }
     }      }
     $output .= '<input type="radio" name="coursepick" value="specific" onclick="coursePick(this.form);opencrsbrowser('."'".$formname."','dccourse','dcdomain','coursedesc','','1'".')" />'.$pickspec.' '.$courseform.'&nbsp;&nbsp;<input type="text" value="0" size="4" name="coursetotal" /><input type="hidden" name="courselist" value="" />selected.<br />'."\n";      $output .= '<input type="radio" name="coursepick" value="specific" onclick="coursePick(this.form);opencrsbrowser('."'".$formname."','dccourse','dcdomain','coursedesc','','1'".')" />'.&mt('Pick specific course(s):').' '.$courseform.'&nbsp;&nbsp;<input type="text" value="0" size="4" name="coursetotal" /><input type="hidden" name="courselist" value="" />selected.<br />'."\n";
     return $output;      return $output;
 }  }
   
Line 1761  sub status_select_row { Line 1664  sub status_select_row {
         $output = &row_title($title,$css_class,'LC_pick_box_select');          $output = &row_title($title,$css_class,'LC_pick_box_select');
     }      }
     $output .= qq|      $output .= qq|
                                     <select name="types" multiple="multiple">\n|;                                      <select name="types" multiple>\n|;
     foreach my $status_type (sort(keys(%{$types}))) {      foreach my $status_type (sort(keys(%{$types}))) {
         $output .= '  <option value="'.$status_type.'">'.$$types{$status_type}.'</option>';          $output .= '  <option value="'.$status_type.'">'.$$types{$status_type}.'</option>';
     }      }
Line 1846  sub topic_bar { Line 1749  sub topic_bar {
     return '      return '
 <div class="LC_topic_bar">  <div class="LC_topic_bar">
     <img alt="'.&mt('Step [_1]',$imgnum).      <img alt="'.&mt('Step [_1]',$imgnum).
               '" src="/res/adm/pages/bl_step'.$imgnum.'.gif" />&nbsp;'.$title.'                '"src="/res/adm/pages/bl_step'.$imgnum.'.gif" />&nbsp;
       <span>'.$title.'</span>
 </div>  </div>
 ';  ';
 }  }
Line 1983  sub set_form_elements { Line 1887  sub set_form_elements {
             $values{$name}[$i] =~ s/([\r\n\f]+)/\\n/g;              $values{$name}[$i] =~ s/([\r\n\f]+)/\\n/g;
             $values{$name}[$i] =~ s/"/\\"/g;              $values{$name}[$i] =~ s/"/\\"/g;
         }          }
         if (($$elements{$name} eq 'text') || ($$elements{$name} eq 'hidden')) {          if ($$elements{$name} eq 'text') {
             my $numvalues = @{$values{$name}};              my $numvalues = @{$values{$name}};
             if ($numvalues > 1) {              if ($numvalues > 1) {
                 my $valuestring = join('","',@{$values{$name}});                  my $valuestring = join('","',@{$values{$name}});
Line 2018  sub set_form_elements { Line 1922  sub set_form_elements {
                     $output .= qq|                      $output .= qq|
       if (courseForm.elements['$name'].value == "$value") {        if (courseForm.elements['$name'].value == "$value") {
           courseForm.elements['$name'].checked = true;            courseForm.elements['$name'].checked = true;
       } else {  
           courseForm.elements['$name'].checked = false;  
       }|;        }|;
                 }                  }
             }              }
Line 2061  sub set_form_elements { Line 1963  sub set_form_elements {
         }          }
     }      }
     $output .= "      $output .= "
     return;  
 }\n";  }\n";
     return $output;      return $output;
 }  }
Line 2103  END Line 2004  END
     return $scripttag;      return $scripttag;
 }  }
   
   ##############################################
   ##############################################
   
   # generate_menu
   #
   # Generates html markup for a menu. 
   #
   # Inputs:
   # An array of following structure:
   #   ({ categorytitle => 'Categorytitle',
   # items => [
   #    { linktext    => 'Text to be displayed',
   # url    => 'URL the link is pointing to, i.e. /adm/site?action=dosomething',
   # permission  => 'Contains permissions as returned from lonnet::allowed(),
   # must evaluate to true in order to activate the link',
   # help    => 'Name of the corresponding helpfile',
   # linktitle   => 'Description of the link (used for title tag)'
   #    },
   #    ...
   # ]
   #   }, 
   #   ...
   #   )
   #
   # Outputs: A scalar containing the html markup for the menu.
   
   # ---- Remove when done ----
   # This routine is part of the redesign of LON-CAPA and it's 
   # subject to change during this project.
   # Don't rely on its current functionality as it might be 
   # changed or removed.
   # --------------------------
   
   sub generate_menu {
       my @menu = @_;
       my $menu_html = '';
   
       foreach my $category (@menu) { #FIXME: insert appropriate classnames for styles when they're finished.
    $menu_html .='<div class=""><h3 class="">'.$category->{'categorytitle'}.'</h3><ul class="">';
    foreach my $item (@{ $category->{items} }) {
       next if (! $item->{'permission'});
       $menu_html .= '<li class="">'.
       qq{<a href="$item->{'url'}" title="$item->{'linktitle'}">}.
       &mt($item->{'linktext'}).'</a>';
       if (exists($item->{'help'})) {
    $menu_html .= &Apache::loncommon::help_open_topic($item->{'help'});
       }
       $menu_html .= '</li>';
    }
    $menu_html .= '</div>';
       }
       return $menu_html;
   }
   
   
 1;  1;

Removed from v.1.182.4.13  
changed lines
  Added in v.1.183


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