From 3a651bfd3784bdbb4367b3d6385ccee33e8ebe5c Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 3 Aug 2007 21:49:03 +0000 Subject: merging RT_3_6_4 to HEAD --- rt/html/Elements/CollectionAsTable/Row | 18 +-- rt/html/Elements/Footer | 47 +++---- rt/html/Elements/Header | 119 +++++++++++------- rt/html/Elements/Menu | 128 +++++++++++-------- rt/html/Elements/PageLayout | 222 ++++++++++++++++++++++++--------- rt/html/Elements/QuickCreate | 37 +++--- rt/html/Elements/SimpleSearch | 12 +- rt/html/Elements/Tabs | 13 +- rt/html/Elements/TicketList | 46 +++++-- rt/html/Elements/TitleBoxStart | 49 +------- 10 files changed, 421 insertions(+), 270 deletions(-) (limited to 'rt/html/Elements') diff --git a/rt/html/Elements/CollectionAsTable/Row b/rt/html/Elements/CollectionAsTable/Row index 0de362ea8..64ecef41c 100644 --- a/rt/html/Elements/CollectionAsTable/Row +++ b/rt/html/Elements/CollectionAsTable/Row @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -22,7 +22,9 @@ %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software -%# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +%# 02110-1301 or visit their web page on the internet at +%# http://www.gnu.org/copyleft/gpl.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: @@ -53,17 +55,17 @@ $Warning => undef <%PERL> -$m->out('' ); +$m->out('' ); my $item; foreach my $column (@Format) { - if ( $column->{title} eq 'NEWLINE' ) { + if ( defined $column->{title} && $column->{title} eq 'NEWLINE' ) { while ( $item < $maxitems ) { $m->out(qq{ \n}); $item++; } $item = 0; - $m->out(''); - $m->out('' ); next; @@ -99,7 +101,7 @@ foreach my $column (@Format) { # Simple value; just escape it. @out = $m->interp->apply_escapes( $value => 'h' ); } - s/\n/
/gs for @out; + s/\n/
/gs for @out; $m->out( @out ); } else { @@ -108,5 +110,5 @@ foreach my $column (@Format) { } $m->out(''); } -$m->out(''); +$m->out(''); diff --git a/rt/html/Elements/Footer b/rt/html/Elements/Footer index 78a116f38..00a3c33d0 100644 --- a/rt/html/Elements/Footer +++ b/rt/html/Elements/Footer @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -22,7 +22,9 @@ %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software -%# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +%# 02110-1301 or visit their web page on the internet at +%# http://www.gnu.org/copyleft/gpl.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: @@ -43,20 +45,27 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} -% if ($Menu) { - - - - -% } +%# End of div#body from /Elements/PageLayout + <& /Elements/Callback, %ARGS &> + <%INIT> -my ($tab, $subtab, $class, $size, $padding); -my $basesize=16; +my ($tab, $class, $count); +my @ul; +push @ul, 'last-menu-level' + if $last_level; +push @ul, 'odd' + if $level % 2; +my $menu_class = join ' ', @ul; <%ARGS> $current_toptab => "" $toptabs => undef $level => 0 +$last_level => 0 diff --git a/rt/html/Elements/PageLayout b/rt/html/Elements/PageLayout index f13ee0dda..493f2275f 100644 --- a/rt/html/Elements/PageLayout +++ b/rt/html/Elements/PageLayout @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -22,7 +22,9 @@ %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software -%# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +%# 02110-1301 or visit their web page on the internet at +%# http://www.gnu.org/copyleft/gpl.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: @@ -43,72 +45,124 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} - - - - - -%# - -% my $notfirst = 0; foreach my $action (sort keys %{$topactions}) { - +
+% foreach my $action (reverse sort keys %{$topactions}) { + +% $m->out($topactions->{"$action"}->{'html'}); + % } - -
-
<%$AppName%> -%# - <%$topactions->{"$action"}->{'html'} |n %> -
- - - - - - -%# Vertical menu - - - -
- <& /Elements/Menu, toptabs => $toptabs, current_toptab => $current_toptab &> - - - - - - - - - -
- <%$title%> -
- -% if ($actions) { -% my @actions; -% foreach my $action (sort keys %{$actions}) { -% if ($actions->{"$action"}->{'html'}) { -% push @actions, $actions->{"$action"}->{'html'}; + + +%# End of div#quickbar from /Elements/Header + + + + +
+ + +% } + + +
<& /Elements/Callback, _CallbackName => 'BeforeBody', %ARGS &> %$m->flush_buffer(); # we've got the page laid out, let's flush the buffer; -<%INIT> +<%INIT> foreach my $tab (sort keys %{$toptabs}) { if ($current_toptab && $toptabs->{$tab}->{'path'} eq $current_toptab) { $toptabs->{$tab}->{"subtabs"} = $tabs; @@ -120,7 +174,53 @@ if (! defined($AppName)) { $AppName = loc("RT for [_1]", $RT::rtname); } +my ($menu_depth, $almost_last, $page_tabs); + +if ($RT::WebDefaultStylesheet ne '3.4-compat') { + ($menu_depth, $almost_last) = @{$m->comp('.menu_recurse', data => $toptabs)}; + + if (defined $almost_last->{subtabs} and %{$almost_last->{subtabs}}) { + $page_tabs = { + current_toptab => $almost_last->{current_subtab}, + %{$almost_last->{subtabs}}, + }; + + delete $almost_last->{subtabs}; + delete $almost_last->{current_subtab}; + } +} + +%# There's probably a better way to do this that involves three times as +%# much work and redoing the whole menu/tab system... which would seem a +%# bit out of scope. +%# +%# This function recurses through the menu and returns the second to +%# last menu, that is, the menu holding the last reference to +%# and submenu. It also returns the number of menu levels minus +%# the last submenu. +<%def .menu_recurse> + <%args> + $data => { } + $pdata => { } + $ppdata => { } + $level => 0 + + <%init> + for my $key (keys %$data) { + return $m->comp('.menu_recurse', data => $data->{$key}->{subtabs}, + pdata => $data->{$key}, + ppdata => $pdata, + level => $level+1) + if ref($data->{$key}) eq 'HASH' + and defined $data->{$key}->{subtabs} + and %{$data->{$key}->{subtabs}}; + } + $ppdata->{last_system_menu_level}++; + return [$level, $pdata]; + + + <%ARGS> $current_toptab => undef $current_tab => undef @@ -130,5 +230,5 @@ $tabs => undef $actions => undef $subactions => undef $title => $m->callers(-1)->path -$AppName => '' +$AppName => undef diff --git a/rt/html/Elements/QuickCreate b/rt/html/Elements/QuickCreate index 0b97121a4..75b3a4598 100644 --- a/rt/html/Elements/QuickCreate +++ b/rt/html/Elements/QuickCreate @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -22,7 +22,9 @@ %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software -%# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +%# 02110-1301 or visit their web page on the internet at +%# http://www.gnu.org/copyleft/gpl.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: @@ -43,28 +45,27 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} -<& /Elements/TitleBoxStart, title => loc('Quick ticket creation') &> +
+<&| /Widgets/TitleBox, title => loc('Quick ticket creation') &>
- + - - - - -%# +%#
-<&|/l&>Subject:
-
-<&|/l&>Queue:
<& /Elements/SelectQueue, Name => 'Queue', ShowNullOption => 0 &>
-
-<&|/l&>Owner:
+
+<&|/l&>Subject:
+
+<&|/l&>Queue:
<& /Elements/SelectNewTicketQueue, Name => 'Queue', ShowNullOption => 0 &> +
+<&|/l&>Owner:
-
-
+
-<& /Elements/TitleBoxEnd &> + +
+ diff --git a/rt/html/Elements/SimpleSearch b/rt/html/Elements/SimpleSearch index e9fc5c6ed..a4fd7e270 100644 --- a/rt/html/Elements/SimpleSearch +++ b/rt/html/Elements/SimpleSearch @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -22,7 +22,9 @@ %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software -%# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +%# 02110-1301 or visit their web page on the internet at +%# http://www.gnu.org/copyleft/gpl.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: @@ -43,14 +45,14 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} -
+ -
+
Advanced - +
diff --git a/rt/html/Elements/Tabs b/rt/html/Elements/Tabs index bbea3fe9a..f94711c3c 100644 --- a/rt/html/Elements/Tabs +++ b/rt/html/Elements/Tabs @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -22,7 +22,9 @@ %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software -%# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +%# 02110-1301 or visit their web page on the internet at +%# http://www.gnu.org/copyleft/gpl.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: @@ -78,11 +80,14 @@ my $basetabs = { title => 'Ticketing Main', path => '', }, - B => { title => loc('Search Tickets'), + Ab => { title => loc('Simple Ticket Search'), + path => 'Search/Simple.html' + }, + B => { title => loc('Adv. Ticket Search'), path => 'Search/Build.html' }, C => { title => loc('Tools'), - path => 'Tools/Offline.html' + path => 'Tools/index.html' }, P => { title => loc('Approval'), path => 'Approvals/' diff --git a/rt/html/Elements/TicketList b/rt/html/Elements/TicketList index 4195d6320..02b071624 100644 --- a/rt/html/Elements/TicketList +++ b/rt/html/Elements/TicketList @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -22,7 +22,9 @@ %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software -%# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +%# 02110-1301 or visit their web page on the internet at +%# http://www.gnu.org/copyleft/gpl.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: @@ -43,7 +45,7 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} - +
% if ($ShowHeader) { <& /Elements/CollectionAsTable/Header, @@ -69,7 +71,7 @@ <& /Elements/CollectionAsTable/Row, Format => \@Format, i => $i, record => $record, maxitems => $maxitems &> % } -
+
% if ($Rows && $ShowNavigation) {
@@ -77,7 +79,9 @@ % if (($TotalFound % $Rows) == 0) { % $oddRows = 0; % } else { $oddRows = 1; } -<&|/l, $Page, int($TotalFound/$Rows)+$oddRows&>Page [_1] of [_2] +% my $pages = int($TotalFound/$Rows)+$oddRows; +% $pages = 1 if $pages < 1; +<&|/l, $Page, $pages &>Page [_1] of [_2] <%perl> my $prev = $m->comp( @@ -100,18 +104,27 @@ my $next = $m->comp( ); % if ($Page > 1) { -<&|/l&>Previous Page +<&|/l&>Previous Page % } % if (($Page * $Rows) < $TotalFound) { -<&|/l&>Next Page +<&|/l&>Next Page % } % } <%INIT> my $maxitems = 0; $Format ||= $RT::DefaultSearchResultFormat; + +# DisplayFormat lets us use a "temporary" format for display, while +# still using our original format for next/prev page links. +# bulk update uses this feature to add checkboxes + + +$DisplayFormat ||= $Format; + # Scrub the html of the format string to remove any potential nasties. $Format = $m->comp('/Elements/ScrubHTML', Content => $Format); +$DisplayFormat = $m->comp('/Elements/ScrubHTML', Content => $DisplayFormat); unless ($Collection) { @@ -119,13 +132,13 @@ unless ($Collection) { $Collection->FromSQL($Query); } -my (@Format) = $m->comp('/Elements/CollectionAsTable/ParseFormat', Format => $Format); +my (@Format) = $m->comp('/Elements/CollectionAsTable/ParseFormat', Format => $DisplayFormat); # Find the maximum number of items in any row, so we can pad the table. my $item = 0; foreach my $col (@Format) { $item++; - if ( $col->{title} eq 'NEWLINE' ) { + if ( $col->{title} && ($col->{title} eq 'NEWLINE') ) { $item = 0; } else { @@ -133,10 +146,20 @@ foreach my $col (@Format) { } } +if ($OrderBy =~ /\|/) { + # Multiple Sorts + my @OrderBy = split /\|/,$OrderBy; + my @Order = split /\|/,$Order; + $Collection->OrderByCols( + map { { FIELD => $OrderBy[$_], ORDER => $Order[$_] } } ( 0 + .. $#OrderBy ) );; +} else { + $Collection->OrderBy(FIELD => $OrderBy, ORDER => $Order); +} -$Collection->OrderBy(FIELD => $OrderBy, ORDER => $Order); $Collection->RowsPerPage($Rows) if ($Rows); -$Collection->GotoPage($Page-1); # SB uses page 0 as the first page +$Page = 1 unless $Page > 0; # workaround problems with Page = '' or undef +$Collection->GotoPage( $Page - 1 ); # SB uses page 0 as the first page my $TotalFound = $Collection->CountAll(); @@ -151,6 +174,7 @@ $Order => undef $OrderBy => undef $BaseURL => undef $Format => $RT::DefaultSearchResultFormat +$DisplayFormat => undef $ShowNavigation => 1 $ShowHeader => 1 diff --git a/rt/html/Elements/TitleBoxStart b/rt/html/Elements/TitleBoxStart index d98fe2744..ba24fd92e 100644 --- a/rt/html/Elements/TitleBoxStart +++ b/rt/html/Elements/TitleBoxStart @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -22,7 +22,9 @@ %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software -%# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +%# 02110-1301 or visit their web page on the internet at +%# http://www.gnu.org/copyleft/gpl.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: @@ -43,46 +45,7 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} - - - - - - - -
- <%$class ? "class=\"$class\"" : "class=\"titlebox\""|n%>> - - X  - - <% $title_href && ""|n%><%$title |n %><% $title_href && "" |n%> - - - <%$class ? "class=\"$class\"": "class=\"titleboxright\""|n%>> - <%$titleright ? $titleright : ' ' |n %> -
-<%ARGS> -$width => "100%" -$class => undef -$bodyclass => undef -$title_href => undef -$title => undef -$title_class => '' - -$titleright_href => undef -$titleright => undef -$contentbg => "#d4d4d4" -$color => "#336699" - <%init> -my $id = rand(2000); - -$title_class = "CLASS=\"$title_class\"" if $title_class; +# For compatibility with 3.4 +$m->comp('/Widgets/TitleBoxStart', %ARGS ); -- cgit v1.2.1