--- loncom/interface/lonhtmlcommon.pm 2009/08/13 15:43:45 1.182.4.2 +++ loncom/interface/lonhtmlcommon.pm 2008/12/01 17:45:20 1.188 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # a pile of common html routines # -# $Id: lonhtmlcommon.pm,v 1.182.4.2 2009/08/13 15:43:45 raeburn Exp $ +# $Id: lonhtmlcommon.pm,v 1.188 2008/12/01 17:45:20 droeschl Exp $ # # Copyright Michigan State University Board of Trustees # @@ -62,31 +62,6 @@ use Apache::lonlocal; use Apache::lonnet; use LONCAPA; -############################################## -############################################## - -=pod - -=item confirm_success - -Successful completion of an operation message - -=cut - -sub confirm_success { - my ($message,$failure)=@_; - if ($failure) { - return ''."\n" - .''.&mt('Error').' '."\n" - .$message."\n" - .''."\n"; - } else { - return ''."\n" - .''.&mt('OK').' '."\n" - .$message."\n" - .''."\n"; - } -} ############################################## ############################################## @@ -130,13 +105,11 @@ sub dragmath_js { my ($popup) = @_; return < - // ENDDRAGMATHJS @@ -312,7 +285,7 @@ sub checkbox { $Str .= 'value="'.$value.'"'; } if ($checked) { - $Str .= ' checked="checked"'; + $Str .= ' checked="1"'; } $Str .= ' />'; return $Str; @@ -334,7 +307,7 @@ sub radio { $Str .= 'value="'.$value.'"'; } if ($checked eq $value) { - $Str .= ' checked="checked"'; + $Str .= ' checked="1"'; } $Str .= ' />'; return $Str; @@ -432,7 +405,6 @@ sub date_setter { my $result = "\n\n"; $result .= < -// ENDJS $result .= ' '; @@ -979,7 +950,6 @@ sub Create_PrgWin { #the whole function called through timeout is due to issues #in mozilla Read BUG #2665 if you want to know the whole story &r_print($r,'"); + "\nwindow.setTimeout(openpopwin,0)"); $prog_state{'formname'}='popremain'; $prog_state{'inputname'}="remaining"; } elsif ($type eq 'inline') { @@ -1025,14 +993,10 @@ sub Create_PrgWin { # update progress sub Update_PrgWin { my ($r,$prog_state,$displayString)=@_; - &r_print($r,''); + $displayString.'";'); $$prog_state{'laststart'}=&Time::HiRes::time(); } @@ -1085,15 +1049,11 @@ sub Increment_PrgWin { if ($user_browser eq 'explorer' && $user_os =~ 'mac') { $lasttime = ''; } - &r_print($r,''); + ': '.$time_est.' '.&mt('remaining').' '.$lasttime.'";'.''); $$prog_state{'laststart'}=&Time::HiRes::time(); } @@ -1101,11 +1061,7 @@ sub Increment_PrgWin { sub Close_PrgWin { my ($r,$prog_state)=@_; if ($$prog_state{'type'} eq 'popup') { - &r_print($r,''."\n"); + &r_print($r,''."\n"); } elsif ($$prog_state{'type'} eq 'inline') { &Update_PrgWin($r,$prog_state,&mt('Done')); } @@ -1186,8 +1142,7 @@ sub spellheader { my $nothing=&javascript_nothing(); return (< -// // -// ]]> ENDCHECK } @@ -1272,8 +1226,7 @@ sub htmlareaselectactive { my @fields=@_; unless (&htmlareabrowser()) { return ''; } if (&htmlareablocked()) { return '
'.&enablelink(@fields); } - my $output='
'. + $output.="\nwindow.status='Activated Editfields';\n
". &disablelink(@fields); return $output; } @@ -1352,7 +1303,7 @@ returns: nothing my @Crumbs; sub breadcrumbs { - my ($component,$component_help,$menulink,$helplink,$css_class,$no_mt) = @_; + my ($component,$component_help,$menulink,$helplink,$css_class) = @_; # $css_class ||= 'LC_breadcrumbs'; my $Str = "\n".''; # if (defined($component)) { - $Str .= ' -
'; @@ -1362,7 +1313,7 @@ returns: nothing my $bug = ''; my $help=''; # Crumb Symbol - my $crumbsymbol = '» '; + my $crumbsymbol = ' ▶ '; # The last breadcrumb does not have a link, so handle it separately. my $last = pop(@Crumbs); # @@ -1432,12 +1383,8 @@ returns: nothing $Str .= $links.''; - if ($no_mt) { - $Str .= $component; - } else { - $Str .= &mt($component); - } + $Str .= ''. + &mt($component); if ($icons ne '') { $Str .= ' '.$icons; } @@ -1518,9 +1465,6 @@ returns: nothing # routines, but can also be called directly to start and end rows which have # needs that are not accommodated by the *_select_row() routines. -{ # Start: row_count block for pick_box -my @row_count; - sub start_pick_box { my ($css_class) = @_; if (defined($css_class)) { @@ -1528,7 +1472,6 @@ sub start_pick_box { } else { $css_class= 'class="LC_pick_box"'; } - unshift(@row_count,0); my $output = <<"END"; END @@ -1536,7 +1479,6 @@ END } sub end_pick_box { - shift(@row_count); my $output = <<"END";
END @@ -1552,12 +1494,11 @@ END sub row_title { 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 = 'class="'.$css_title_class.'"'; $css_value_class ||= 'LC_pick_box_value'; + $css_value_class = 'class="'.$css_value_class.'"'; if ($title ne '') { $title .= ':'; @@ -1567,7 +1508,7 @@ sub row_title {
$title + ENDONE return $output; } @@ -1589,9 +1530,6 @@ ENDTWO return $output; } -} # End: row_count block for pick_box - - sub role_select_row { my ($roles,$title,$css_class,$show_separate_custom,$cdom,$cnum) = @_; my $output; @@ -1599,7 +1537,7 @@ sub role_select_row { $output = &row_title($title,$css_class); } $output .= qq| - \n|; foreach my $role (@$roles) { my $plrole; if ($role eq 'ow') { @@ -1644,7 +1582,6 @@ sub course_selection { my ($formname,$totcodes,$codetitles,$idlist,$idlist_titles) = @_; my $output = qq| |; my $courseform=''.&Apache::loncommon::selectcourse_link @@ -1728,7 +1664,7 @@ sub status_select_row { $output = &row_title($title,$css_class,'LC_pick_box_select'); } $output .= qq| - \n|; foreach my $status_type (sort(keys(%{$types}))) { $output .= ' '; } @@ -1772,6 +1708,7 @@ sub email_default_row { sub submit_row { my ($title,$cmd,$submit_text,$css_class) = @_; + $submit_text = &mt($submit_text); my $output = &row_title($title,$css_class,'LC_pick_box_submit'); $output .= qq|
@@ -2068,6 +2005,74 @@ END 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', +# icon => 'icon filename', +# alttext => 'alt text for the icon', +# 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. +# TODO: +# check for empty values +# -------------------------- + +sub generate_menu { + my @menu = @_; + my $menu_html = qq|
|; + + foreach my $category (@menu) { #FIXME: insert appropriate classnames for styles when they're finished. + $menu_html .='
+

'.mt($category->{'categorytitle'}).'

+
    '; + foreach my $item ( @{ $category->{items} } ) { + next unless $item->{'permission'}; + $menu_html .= qq|
  • '; + if($item->{'icon'}){ + $menu_html .= qq||;
+		if($item->{'alttext'}){
+		    $menu_html .= $item->{'alttext'}.''; + } else { #use linktext as alt text for the icon + $menu_html .= qq|$item->{'linktext'}"/>|; + } + } + $menu_html .= qq|'; + $menu_html .= mt($item->{'linktext'}).''; + if (exists($item->{'help'})) { + $menu_html .= Apache::loncommon::help_open_topic($item->{'help'}); + } + $menu_html .= '
  • '; + } + $menu_html .= '
'; + } + $menu_html .= qq|
|; + return $menu_html; +} 1;