diff options
Diffstat (limited to 'rt/share/html/Admin/Scrips/Elements/SelectTemplate')
-rw-r--r-- | rt/share/html/Admin/Scrips/Elements/SelectTemplate | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/rt/share/html/Admin/Scrips/Elements/SelectTemplate b/rt/share/html/Admin/Scrips/Elements/SelectTemplate new file mode 100644 index 000000000..ee7e96bf5 --- /dev/null +++ b/rt/share/html/Admin/Scrips/Elements/SelectTemplate @@ -0,0 +1,108 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC +%# <sales@bestpractical.com> +%# +%# (Except where explicitly superseded by other copyright notices) +%# +%# +%# LICENSE: +%# +%# This work is made available to you under the terms of Version 2 of +%# the GNU General Public License. A copy of that license should have +%# been provided with this software, but in any event can be snarfed +%# from www.gnu.org. +%# +%# This work is distributed in the hope that it will be useful, but +%# WITHOUT ANY WARRANTY; without even the implied warranty of +%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +%# General Public License for more details. +%# +%# 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., 51 Franklin Street, Fifth Floor, Boston, MA +%# 02110-1301 or visit their web page on the internet at +%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. +%# +%# +%# CONTRIBUTION SUBMISSION POLICY: +%# +%# (The following paragraph is not intended to limit the rights granted +%# to you to modify and distribute this software under the terms of +%# the GNU General Public License and is only of importance to you if +%# you choose to contribute your changes and enhancements to the +%# community by submitting them to Best Practical Solutions, LLC.) +%# +%# By intentionally submitting any modifications, corrections or +%# derivatives to this work, or any other work intended for use with +%# Request Tracker, to Best Practical Solutions, LLC, you confirm that +%# you are the copyright holder for those contributions and you grant +%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, +%# royalty-free, perpetual, license to use, copy, create derivative +%# works based on those contributions, and sublicense and distribute +%# those contributions and any derivatives thereof. +%# +%# END BPS TAGGED BLOCK }}} +<select name="<% $Name %>"> +<option value=""><% $current || '-' %></option> +% foreach my $name ( @list ) { +<option value="<% $name %>" \ + <% lc($Default||'') eq lc $name ? 'selected="selected"' : '' |n %> +><% loc($name) %></option> +% } +</select> +<%ARGS> +$Name => 'Template' +$Queue => undef +$Scrip => undef +$Default => undef +</%ARGS> +<%INIT> + +my $current; +$current = $Scrip->Template if $Scrip; + +my @list; +if ( $Scrip && $Scrip->id && !$Scrip->IsAddedToAny ) { + my $templates = RT::Templates->new($session{'CurrentUser'}); + $templates->UnLimit; + @list = $templates->DistinctFieldValues('Name'); +} else { + my $global = RT::Templates->new($session{'CurrentUser'}); + $global->LimitToGlobal; + + my %global; + + while (my $t = $global->Next) { + $global{ lc $t->Name } = $t->Name + } + + my @queues; + push @queues, @{ $Scrip->AddedTo->ItemsArrayRef } if $Scrip && $Scrip->id; + push @queues, $Queue if $Queue && $Queue->id; + + my (%names, %counters); + foreach my $queue ( @queues ) { + my $templates = RT::Templates->new($session{'CurrentUser'}); + $templates->LimitToQueue( $queue->id ); + foreach my $name ( map $_->Name, @{ $templates->ItemsArrayRef } ) { + next if $global{ lc $name }; + $counters{ lc $name }++; + $names{lc $name} = $name; + } + } + delete $counters{ $_ } + foreach grep $counters{$_} != @queues, + keys %counters; + + @list = + map $global{$_} || $names{$_}, + keys %global, keys %counters; +} + +@list = sort { lc loc($a) cmp lc loc($b) } @list + if @list; + +</%INIT> |