diff options
Diffstat (limited to 'rt/share/html/Elements/ColumnMap')
-rw-r--r-- | rt/share/html/Elements/ColumnMap | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/rt/share/html/Elements/ColumnMap b/rt/share/html/Elements/ColumnMap new file mode 100644 index 000000000..71517e063 --- /dev/null +++ b/rt/share/html/Elements/ColumnMap @@ -0,0 +1,151 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC +%# <jesse@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 }}} +<%ARGS> +$Class => 'RT__Ticket' +$Name +$Attr => undef +</%ARGS> +<%ONCE> + +# This is scary and should totally be refactored -- jesse +my $COLUMN_MAP = { + id => { + attribute => 'id', + title => 'id', # loc + align => 'right', + value => sub { return $_[0]->id } + }, + + Created => { + attribute => 'Created', + title => 'Created', # loc + value => sub { return $_[0]->CreatedObj->AsString } + }, + CreatedRelative => { + attribute => 'Created', + title => 'Created', # loc + value => sub { return $_[0]->CreatedObj->AgeAsString } + }, + CreatedBy => { + attribute => 'CreatedBy', + title => 'Created By', # loc + value => sub { return $_[0]->CreatorObj->Name } + }, + LastUpdated => { + attribute => 'LastUpdated', + title => 'Last Updated', # loc + value => sub { return $_[0]->LastUpdatedObj->AsString } + }, + LastUpdatedRelative => { + attribute => 'LastUpdated', + title => 'Last Updated', # loc + value => sub { return $_[0]->LastUpdatedObj->AgeAsString } + }, + LastUpdatedBy => { + attribute => 'LastUpdatedBy', + title => 'Last Updated By', # loc + value => sub { return $_[0]->LastUpdatedByObj->Name } + }, + + + CheckBox => { + title => sub { + my $name = $_[1] || 'SelectedTickets'; + my $checked = $m->request_args->{ $name .'All' }? 'checked="checked"': ''; + + return \qq{<input type="checkbox" name="${name}All" value="1" $checked + onclick="setCheckbox(this.form, '$name', this.checked)" />}; + }, + value => sub { + my $id = $_[0]->id; + + my $name = $_[2] || 'SelectedTickets'; + return \qq{<input type="checkbox" name="$name" value="$id" checked="checked" />} + if $m->request_args->{ $name . 'All'}; + + my $arg = $m->request_args->{ $name }; + my $checked = ''; + if ( $arg && ref $arg ) { + $checked = 'checked="checked"' if grep $_ == $id, @$arg; + } + elsif ( $arg ) { + $checked = 'checked="checked"' if $arg == $id; + } + return \qq{<input type="checkbox" name="$name" value="$id" $checked />} + }, + }, + RadioButton => { + title => \' ', + value => sub { + my $id = $_[0]->id; + + my $name = $_[2] || 'SelectedTicket'; + my $arg = $m->request_args->{ $name }; + my $checked = ''; + $checked = 'checked="checked"' if $arg && $arg == $id; + return \qq{<input type="radio" name="SelectedTicket" value="$id" $checked />}; + }, + }, + (map { + my $value = RT->Config->Get($_); + $_ => { value => sub { return \$value } }; + + } qw(WebPath WebBaseURL WebURL)), +}; + +</%ONCE> +<%INIT> +$m->callback( COLUMN_MAP => $COLUMN_MAP, CallbackName => 'Once', CallbackOnce => 1 ); +$m->callback( COLUMN_MAP => $COLUMN_MAP ); + +# first deal with class specific things +my $class_map = $m->comp("/Elements/$Class/ColumnMap", Attr => $Attr, Name => $Name ); +return $class_map if defined $class_map; +return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr ); + +</%INIT> |