Upgrade to 4.0.8 with modification of ExternalAuth.
[usit-rt.git] / share / html / Elements / RT__CustomField / ColumnMap
CommitLineData
84fb5b46
MKG
1%# BEGIN BPS TAGGED BLOCK {{{
2%#
3%# COPYRIGHT:
4%#
5%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC
6%# <sales@bestpractical.com>
7%#
8%# (Except where explicitly superseded by other copyright notices)
9%#
10%#
11%# LICENSE:
12%#
13%# This work is made available to you under the terms of Version 2 of
14%# the GNU General Public License. A copy of that license should have
15%# been provided with this software, but in any event can be snarfed
16%# from www.gnu.org.
17%#
18%# This work is distributed in the hope that it will be useful, but
19%# WITHOUT ANY WARRANTY; without even the implied warranty of
20%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21%# General Public License for more details.
22%#
23%# You should have received a copy of the GNU General Public License
24%# along with this program; if not, write to the Free Software
25%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
26%# 02110-1301 or visit their web page on the internet at
27%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
28%#
29%#
30%# CONTRIBUTION SUBMISSION POLICY:
31%#
32%# (The following paragraph is not intended to limit the rights granted
33%# to you to modify and distribute this software under the terms of
34%# the GNU General Public License and is only of importance to you if
35%# you choose to contribute your changes and enhancements to the
36%# community by submitting them to Best Practical Solutions, LLC.)
37%#
38%# By intentionally submitting any modifications, corrections or
39%# derivatives to this work, or any other work intended for use with
40%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
41%# you are the copyright holder for those contributions and you grant
42%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
43%# royalty-free, perpetual, license to use, copy, create derivative
44%# works based on those contributions, and sublicense and distribute
45%# those contributions and any derivatives thereof.
46%#
47%# END BPS TAGGED BLOCK }}}
48<%ARGS>
49$Name => undef
50$Attr => undef
51</%ARGS>
52<%ONCE>
53my $COLUMN_MAP = {
54 id => {
55 title => '#', # loc
56 attribute => 'id',
57 align => 'right',
58 value => sub { return $_[0]->id },
59 },
60 Disabled => {
61 title => \'&nbsp;',
62 attribute => 'Disabled',
63 value => sub { return $_[0]->Disabled? $_[0]->loc('Disabled'): $_[0]->loc('Enabled') },
64 },
65
66 map(
67 { my $c = $_; $c => {
68 title => $c, attribute => $c,
69 value => sub { return $_[0]->$c() },
70 } }
71 qw(Name Description Type LookupType Pattern)
72 ),
73 map(
74 { my $c = $_; my $short = $c; $short =~ s/^Friendly//;
75 $c => {
76 title => $short, attribute => $short,
77 value => sub { return $_[0]->$c() },
78 } }
79 qw(FriendlyLookupType FriendlyType FriendlyPattern)
80 ),
81 MaxValues => {
82 title => 'MaxValues', # loc
83 attribute => 'MaxValues',
84 value => sub {
85 my $v = $_[0]->MaxValues;
86 return !$v ? $_[0]->loc('unlimited') : $v == 0 ? $_[0]->loc('one') : $v;
87 },
88 },
89 AppliedTo => {
90 title => 'Applied', # loc
91 value => sub {
92 if ( $_[0]->IsApplied ) {
93 return $_[0]->loc('Global');
94 }
95
96 my $collection = $_[0]->AppliedTo;
97 return '' unless $collection;
98
99 $collection->RowsPerPage(10);
100
101 my $found = 0;
102 my $res = '';
103 while ( my $record = $collection->Next ) {
104 $res .= ', ' if $res;
105
106 my $id = '';
107 $id = $record->Name if $record->can('Name');
108 $id ||= "#". $record->id;
109 $res .= $id;
110
111 $found++;
112 }
113 $res .= ', ...' if $found >= 10;
114 return $res;
115 },
116
117 },
118 RemoveCheckBox => {
119 title => sub {
120 my $name = 'RemoveCustomField';
86404187 121 my $checked = $DECODED_ARGS->{ $name .'All' }? 'checked="checked"': '';
84fb5b46
MKG
122
123 return \qq{<input type="checkbox" name="}, $name, \qq{All" value="1" $checked
124 onclick="setCheckbox(this.form, },
125 $m->interp->apply_escapes($name,'j'),
126 \qq{, this.checked)" />};
127 },
128 value => sub {
129 my $id = $_[0]->id;
130 return '' if $_[0]->IsApplied;
131
132 my $name = 'RemoveCustomField';
86404187 133 my $arg = $DECODED_ARGS->{ $name };
84fb5b46
MKG
134
135 my $checked = '';
136 if ( $arg && ref $arg ) {
137 $checked = 'checked="checked"' if grep $_ == $id, @$arg;
138 }
139 elsif ( $arg ) {
140 $checked = 'checked="checked"' if $arg == $id;
141 }
142 return \qq{<input type="checkbox" name="}, $name, \qq{" value="$id" $checked />}
143 },
144 },
145 MoveCF => {
146 title => 'Move',
147 value => sub {
148 my $id = $_[0]->id;
149
150 my $context = $_[2] || 0;
151 return '' unless $_[0]->IsApplied( $context );
152
153 my $name = 'MoveCustomField';
154 my $args = $m->caller_args( 1 );
155 my @pass = ref $args->{'PassArguments'}
156 ? @{$args->{'PassArguments'}}
157 : ($args->{'PassArguments'});
158 my %pass = map { $_ => $args->{$_} } grep exists $args->{$_}, @pass;
159
160 my $uri = RT->Config->Get('WebPath') . $m->request_path;
161
162 my @res = (
163 \'<a href="',
164 $uri .'?'. $m->comp("/Elements/QueryString", %pass, MoveCustomFieldUp => $id ),
165 \'">', loc('[Up]'), \'</a>',
166 \' <a href="',
167 $uri .'?'. $m->comp("/Elements/QueryString", %pass, MoveCustomFieldDown => $id ),
168 \'">', loc('[Down]'), \'</a>'
169 );
170
171 return @res;
172 },
173 },
174};
175
176</%ONCE>
177<%INIT>
178$m->callback( COLUMN_MAP => $COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 );
179return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr );
180</%INIT>