diff options
Diffstat (limited to 'rt/html/Elements/SelectQueue')
-rw-r--r-- | rt/html/Elements/SelectQueue | 69 |
1 files changed, 42 insertions, 27 deletions
diff --git a/rt/html/Elements/SelectQueue b/rt/html/Elements/SelectQueue index 56aede89f..0decb5bc9 100644 --- a/rt/html/Elements/SelectQueue +++ b/rt/html/Elements/SelectQueue @@ -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 %# <jesse@bestpractical.com> %# %# (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: @@ -44,26 +46,26 @@ %# %# END BPS TAGGED BLOCK }}} % if ($Lite) { -% my $d = new RT::Queue($session{'CurrentUser'}); -% $d->Load($Default); -<INPUT NAME="<%$Name%>" size=25 DEFAULT="<%$d->Name%>"> -% } else { -<SELECT NAME ="<%$Name%>"> -% if ($ShowNullOption) { -<OPTION VALUE="">-</OPTION> +% my $d = new RT::Queue($session{'CurrentUser'}); +% $d->Load($Default); +<input name="<%$Name%>" size="25" value="<%$d->Name%>" /> % } -% while (my $queue=$q->Next) { -% if ($ShowAllQueues || $queue->CurrentUserHasRight($CheckQueueRight)) { -<OPTION VALUE="<%($NamedValues ? $queue->Name : $queue->Id) %>" <%( $queue->Id eq $Default ? 'SELECTED' : '')%>><%$queue->Name%> -% if (($Verbose) and ($queue->Description) ){ -(<%$queue->Description%>) -% } -</OPTION> +% else { +<select name="<%$Name%>"> +% if ($ShowNullOption) { + <option value="">-</option> +% } +% for my $queue (@{$session{$cache_key}}) { + <option value="<% ($NamedValues ? $queue->{Name} : $queue->{Id}) %>" <% ($queue->{Id} eq $Default ? 'selected="selected"' : '') |n %>> + <%$queue->{Name}%> +% if ($Verbose and $queue->{Description}) { + (<%$queue->{Description}%>) +% } + </option> +% } +</select> % } -% } -</SELECT> -% } -<%ARGS> +<%args> $CheckQueueRight => 'CreateTicket' $ShowNullOption => 1 $ShowAllQueues => 1 @@ -72,11 +74,24 @@ $Verbose => undef $NamedValues => 0 $Default => 0 $Lite => 0 -</%ARGS> - -<%INIT> - -my $q=new RT::Queues($session{'CurrentUser'}); -$q->UnLimit; +</%args> +<%init> +my $cache_key = "SelectQueue---" + . $session{'CurrentUser'}->Id + . "---$CheckQueueRight---$ShowAllQueues"; -</%INIT> +if (not defined $session{$cache_key} and not $Lite) { + my $q = new RT::Queues($session{'CurrentUser'}); + $q->UnLimit; + + while (my $queue = $q->Next) { + if ($ShowAllQueues || $queue->CurrentUserHasRight($CheckQueueRight)) { + push @{$session{$cache_key}}, { + Id => $queue->Id, + Name => $queue->Name, + Description => $queue->Description, + }; + } + } +} +</%init> |