From b4b0c7e72d7eaee2fbfc7022022c9698323203dd Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 31 Dec 2009 13:16:41 +0000 Subject: import rt 3.8.7 --- rt/share/html/Elements/EditCustomFieldSelect | 161 +++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 rt/share/html/Elements/EditCustomFieldSelect (limited to 'rt/share/html/Elements/EditCustomFieldSelect') diff --git a/rt/share/html/Elements/EditCustomFieldSelect b/rt/share/html/Elements/EditCustomFieldSelect new file mode 100644 index 000000000..8fe79f9f9 --- /dev/null +++ b/rt/share/html/Elements/EditCustomFieldSelect @@ -0,0 +1,161 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# +%# +%# (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 }}} +%# Build up the set of cascading select boxes as "guides" +%# each one limits the options of the final one a bit +%# (perhaps by tweaking the .display style?) +% my $selected = 0; +% my @category; +% my $id = $NamePrefix . $CustomField->Id; +% my $out = $m->scomp('SELF:options', %ARGS, SelectedRef => \$selected, CategoryRef => \@category); +% if (@category and not $CustomField->BasedOnObj->id) { + +%# XXX - Hide this select from w3m? +
+% } elsif ($CustomField->BasedOnObj->id) { + + +% } +% if (@category) { +%# this hidden select is to supply a full list of values, +%# see filter_cascade() in js/cascaded.js + +% } + +<%ARGS> +$Object => undef +$CustomField => undef +$NamePrefix => undef +$Default => undef +$Values => undef +$Multiple => 0 +$Rows => undef + + +<%METHOD options> +% @Default = grep defined && length, @Default; +% # $Values->HasEntry is too slow here +% if ( !@Default && $Values ) { +% @Default = map $_->Content, @{$Values->ItemsArrayRef}; +% } +% $_ = lc $_ foreach @Default; +% my $selected; +% my $CFVs = $CustomField->Values; +% my @levels; +% while ( my $value = $CFVs->Next ) { +% my $name = $value->Name; +% my $category = $value->Category || ''; +% my $level = (split /:/, $category, 2)[0] || ''; +% while (@levels) { +% if ($levels[-1] eq $level) { +% $level = ''; +% last; +% } elsif (index($level, $levels[-1]) != 0) { +% $m->out(''); +% pop @levels; +% } else { +% last; +% } +% } +% if ( length $level ) { +% push @$CategoryRef, [0+@levels, $level]; + +% push @levels, $level; +% } + +% } +% for (@levels) { + +% } +<%ARGS> +$CustomField => undef +@Default => () +$Values => undef +$SelectedRef => undef +$CategoryRef => undef + + -- cgit v1.2.1