version 1.183, 2008/11/11 20:12:17
|
version 1.203, 2009/02/22 18:30:27
|
Line 467 document.$formname.$dname\_year.value,
|
Line 467 document.$formname.$dname\_year.value,
|
} |
} |
</script> |
</script> |
ENDJS |
ENDJS |
$result .= ' <span style="white-space: nowrap;">'; |
$result .= ' <span class="LC_nobreak">'; |
my $monthselector = qq{<select name="$dname\_month" $special $state onchange="javascript:$dname\_checkday()" >}; |
my $monthselector = qq{<select name="$dname\_month" $special $state onchange="javascript:$dname\_checkday()" >}; |
# Month |
# Month |
my @Months = qw/January February March April May June |
my @Months = qw/January February March April May June |
Line 1278 Inputs: $component (the large text on th
|
Line 1278 Inputs: $component (the large text on th
|
$menulink (boolean, controls whether to include a link to /adm/menu) |
$menulink (boolean, controls whether to include a link to /adm/menu) |
$helplink (if 'nohelp' don't include the orange help link) |
$helplink (if 'nohelp' don't include the orange help link) |
$css_class (optional name for the class to apply to the table for CSS) |
$css_class (optional name for the class to apply to the table for CSS) |
|
$no_mt (optional flag, 1 if &mt() is _not_ to be applied to $component |
|
when including the text on the right. |
Returns a string containing breadcrumbs for the current page. |
Returns a string containing breadcrumbs for the current page. |
|
|
=item clear_breadcrumbs |
=item clear_breadcrumbs |
Line 1303 returns: nothing
|
Line 1305 returns: nothing
|
my @Crumbs; |
my @Crumbs; |
|
|
sub breadcrumbs { |
sub breadcrumbs { |
my ($component,$component_help,$menulink,$helplink,$css_class) = @_; |
my ($component,$component_help,$menulink,$helplink,$css_class,$no_mt) = @_; |
# |
# |
$css_class ||= 'LC_breadcrumbs'; |
$css_class ||= 'LC_breadcrumbs'; |
my $Str = "\n".'<table class="'.$css_class.'"><tr><td>'; |
my $Str1 = '<ol id="LC_MenuBreadcrumbs">'; |
|
my $Str = ''; |
# |
# |
# Make the faq and bug data cascade |
# Make the faq and bug data cascade |
my $faq = ''; |
my $faq = ''; |
my $bug = ''; |
my $bug = ''; |
my $help=''; |
my $help=''; |
# Crumb Symbol |
# Crumb Symbol |
my $crumbsymbol = ' ▶ '; |
my $crumbsymbol = '▶ '; |
# 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 1336 returns: nothing
|
Line 1339 returns: nothing
|
no_mt =>$no_mt_descr, |
no_mt =>$no_mt_descr, |
}); |
}); |
} |
} |
my $links .= |
my $links .= '<li>'. |
join($crumbsymbol, |
join('</li><li>'.$crumbsymbol, |
map { |
map { |
$faq = $_->{'faq'} if (exists($_->{'faq'})); |
$faq = $_->{'faq'} if (exists($_->{'faq'})); |
$bug = $_->{'bug'} if (exists($_->{'bug'})); |
$bug = $_->{'bug'} if (exists($_->{'bug'})); |
Line 1355 returns: nothing
|
Line 1358 returns: nothing
|
} |
} |
$result; |
$result; |
} @Crumbs |
} @Crumbs |
); |
).'</li>'; |
$links .= $crumbsymbol if ($links ne ''); |
$links .= '<li>'.$crumbsymbol if ($links ne ''); |
if ($last->{'no_mt'}) { |
if ($last->{'no_mt'}) { |
$links .= '<b>'.$last->{'text'}.'</b>'; |
$links .= '<b>'.$last->{'text'}.'</b></li>'; |
} else { |
} else { |
$links .= '<b>'.&mt($last->{'text'}).'</b>'; |
$links .= '<b>'.&mt($last->{'text'}).'</b></li>'; |
} |
} |
# |
# |
my $icons = ''; |
my $icons = ''; |
Line 1380 returns: nothing
|
Line 1383 returns: nothing
|
$faq,$bug); |
$faq,$bug); |
} |
} |
# |
# |
$Str .= $links.'</td>'; |
$Str1 .= $links.'</ol>'; |
# |
# |
if (defined($component)) { |
if (defined($component)) { |
$Str .= '<td class="'.$css_class.'_component">'. |
$Str .= "\n".'<table class="'.$css_class.'">' |
&mt($component); |
.'<tr><td class="'.$css_class.'_component">'; |
|
if ($no_mt) { |
|
$Str .= $component; |
|
} else { |
|
$Str .= &mt($component); |
|
} |
if ($icons ne '') { |
if ($icons ne '') { |
$Str .= ' '.$icons; |
$Str .= ' '.$icons; |
} |
} |
$Str .= '</td>'; |
$Str .= '</td></tr></table>'."\n"; |
} |
} |
$Str .= '</tr></table>'."\n"; |
|
# |
# |
# Return the @Crumbs stack to what we started with |
# Return the @Crumbs stack to what we started with |
push(@Crumbs,$last); |
push(@Crumbs,$last); |
shift(@Crumbs); |
shift(@Crumbs); |
# |
# |
return $Str; |
return "$Str\n$Str1"; |
} |
} |
|
|
sub clear_breadcrumbs { |
sub clear_breadcrumbs { |
Line 1465 returns: nothing
|
Line 1472 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 1472 sub start_pick_box {
|
Line 1482 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 1479 END
|
Line 1490 END
|
} |
} |
|
|
sub end_pick_box { |
sub end_pick_box { |
|
shift(@row_count); |
my $output = <<"END"; |
my $output = <<"END"; |
</table> |
</table> |
END |
END |
Line 1493 END
|
Line 1505 END
|
} |
} |
|
|
sub row_title { |
sub row_title { |
|
$row_count[0]++; |
|
my $css_class = ($row_count[0] % 2)?'LC_odd_row':'LC_even_row'; |
my ($title,$css_title_class,$css_value_class) = @_; |
my ($title,$css_title_class,$css_value_class) = @_; |
$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 1508 sub row_title {
|
Line 1521 sub row_title {
|
<td $css_title_class> |
<td $css_title_class> |
$title |
$title |
</td> |
</td> |
<td $css_value_class> |
<td class="$css_value_class $css_class"> |
ENDONE |
ENDONE |
return $output; |
return $output; |
} |
} |
Line 1530 ENDTWO
|
Line 1543 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 $output; |
my $output; |
Line 1537 sub role_select_row {
|
Line 1553 sub role_select_row {
|
$output = &row_title($title,$css_class); |
$output = &row_title($title,$css_class); |
} |
} |
$output .= qq| |
$output .= qq| |
<select name="roles" multiple >\n|; |
<select name="roles" multiple="multiple">\n|; |
foreach my $role (@$roles) { |
foreach my $role (@$roles) { |
my $plrole; |
my $plrole; |
if ($role eq 'ow') { |
if ($role eq 'ow') { |
Line 1664 sub status_select_row {
|
Line 1680 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>\n|; |
<select name="types" multiple="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 1708 sub email_default_row {
|
Line 1724 sub email_default_row {
|
|
|
sub submit_row { |
sub submit_row { |
my ($title,$cmd,$submit_text,$css_class) = @_; |
my ($title,$cmd,$submit_text,$css_class) = @_; |
|
$submit_text = &mt($submit_text); |
my $output = &row_title($title,$css_class,'LC_pick_box_submit'); |
my $output = &row_title($title,$css_class,'LC_pick_box_submit'); |
$output .= qq| |
$output .= qq| |
<br /> |
<br /> |
Line 2015 END
|
Line 2032 END
|
# An array of following structure: |
# An array of following structure: |
# ({ categorytitle => 'Categorytitle', |
# ({ categorytitle => 'Categorytitle', |
# items => [ |
# items => [ |
# { linktext => 'Text to be displayed', |
# { |
# url => 'URL the link is pointing to, i.e. /adm/site?action=dosomething', |
# 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(), |
# permission => 'Contains permissions as returned from lonnet::allowed(), |
# must evaluate to true in order to activate the link', |
# 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', |
# help => 'Name of the corresponding helpfile', |
# linktitle => 'Description of the link (used for title tag)' |
# linktitle => 'Description of the link (used for title tag)' |
# }, |
# }, |
Line 2036 END
|
Line 2056 END
|
# Don't rely on its current functionality as it might be |
# Don't rely on its current functionality as it might be |
# changed or removed. |
# changed or removed. |
# -------------------------- |
# -------------------------- |
|
|
sub generate_menu { |
sub generate_menu { |
my @menu = @_; |
my @menu = @_; |
my $menu_html = ''; |
|
|
|
foreach my $category (@menu) { #FIXME: insert appropriate classnames for styles when they're finished. |
# usage: $wrap->(element, content, {attribute => value,...}); |
$menu_html .='<div class=""><h3 class="">'.$category->{'categorytitle'}.'</h3><ul class="">'; |
# output: content enclosed in html conform tags |
foreach my $item (@{ $category->{items} }) { |
my $wrap = sub { |
next if (! $item->{'permission'}); |
return |
$menu_html .= '<li class="">'. |
qq|<$_[0]| |
qq{<a href="$item->{'url'}" title="$item->{'linktitle'}">}. |
. join( '', map { qq| $_="${$_[2]}{$_}"| } keys %{ $_[2] } ) |
&mt($item->{'linktext'}).'</a>'; |
. ($_[1] ? qq|>$_[1]</$_[0]>| : qq|/>|). "\n"; |
if (exists($item->{'help'})) { |
}; |
$menu_html .= &Apache::loncommon::help_open_topic($item->{'help'}); |
|
} |
# subs for specific html elements |
$menu_html .= '</li>'; |
my $h3 = sub { return $wrap->( "h3", @_ ) }; |
} |
my $div = sub { return $wrap->( "div", @_ ) }; |
$menu_html .= '</div>'; |
my $ul = sub { return $wrap->( "ul", @_ ) }; |
|
my $li = sub { return $wrap->( "li", @_ ) }; |
|
my $a = sub { return $wrap->( "a", @_ ) }; |
|
my $img = sub { return $wrap->( "img", @_ ) }; |
|
|
|
my @categories; # each element represents the entire markup for a category |
|
|
|
foreach my $category (@menu) { |
|
my @links; # contains the links for the current $category |
|
foreach my $link (@{$$category{items}}) { |
|
next unless $$link{permission}; |
|
|
|
# create the markup for the current $link and push it into @links. |
|
# each entry consists of an image and a text optionally followed |
|
# by a help link. |
|
push @links, $li->( |
|
$a->( |
|
$img->("", { |
|
class => "LC_noBorder LC_middle", |
|
src => "/res/adm/pages/$$link{icon}", |
|
alt => mt(defined($$link{alttext}) ? |
|
$$link{alttext} : $$link{linktext}) |
|
}), { |
|
href => $$link{url}, |
|
title => mt($$link{linktitle}) |
|
}). |
|
$a->(mt($$link{linktext}), { |
|
href => $$link{url}, |
|
title => mt($$link{linktitle}), |
|
class => "LC_menubuttons_link" |
|
}). |
|
(defined($$link{help}) ? |
|
Apache::loncommon::help_open_topic($$link{help}) : ''), |
|
{class => "LC_menubuttons_inline_text"}); |
|
} |
|
|
|
# wrap categorytitle in <h3>, concatenate with |
|
# joined and in <ul> tags wrapped @links |
|
# and wrap everything in an enclosing <div> and push it into |
|
# @categories |
|
# such that each element looks like: |
|
# <div><h3>title</h3><ul><li>...</li>...</ul></div> |
|
# the category won't be added if there aren't any links |
|
push @categories, |
|
$div->($h3->(mt($$category{categorytitle}), {class=>"LC_hcell"}). |
|
$ul->(join('' ,@links), {class =>"LC_ListStyleNormal" }), |
|
{class=>"LC_ContentBoxSpecial LC_400Box"}) if scalar(@links); |
} |
} |
return $menu_html; |
|
} |
|
|
|
|
# wrap the joined @categories in another <div> (column layout) |
|
return $div->(join('', @categories), {class => "LC_columnSection"}); |
|
} |
|
|
1; |
1; |
|
|