X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FElements%2FRT__Scrip%2FColumnMap;h=87ddc0cfb1023126cf8499c5315527f35e135f40;hp=d417cef393b8171fff682291bf4eac4428c476ce;hb=187086c479a09629b7d180eec513fb7657f4e291;hpb=e9e0cf0989259b94d9758eceff448666a2e5a5cc diff --git a/rt/share/html/Elements/RT__Scrip/ColumnMap b/rt/share/html/Elements/RT__Scrip/ColumnMap index d417cef39..87ddc0cfb 100644 --- a/rt/share/html/Elements/RT__Scrip/ColumnMap +++ b/rt/share/html/Elements/RT__Scrip/ColumnMap @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2018 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -48,25 +48,38 @@ <%ARGS> $Name $Attr => undef +$GenericMap => {} <%ONCE> my $COLUMN_MAP = { - id => { - title => '#', # loc - attribute => 'id', - align => 'right', - value => sub { return $_[0]->id }, - }, Queue => { title => 'Queue', # loc value => sub { - return $_[0]->QueueObj->Name if $_[0]->Queue; - return $_[0]->loc('Global'); + return $_[0]->loc('Global') if $_[0]->IsGlobal; + return join(", ", map {$_->Name} @{$_[0]->AddedTo->ItemsArrayRef}); }, }, QueueId => { title => 'Queue', # loc - value => sub { $_[0]->Queue }, + value => sub { + return 0 if $_[0]->IsGlobal; + return join(", ", map {$_->Id} @{$_[0]->AddedTo->ItemsArrayRef}); + }, + }, + From => { + title => 'Queue', + value => sub { + my $request_path = $HTML::Mason::Commands::r->path_info; + my $queue_id = $m->request_args->{'id'}; + if ( $request_path =~ m{/Admin/Queues/Scrips\.html} and $queue_id ) { + return '&From=' . $queue_id; + } elsif ( $request_path =~ m{/Admin/Global/Scrips\.html} ) { + return '&From=Global'; + } + else { + return q{}; + } + }, }, Condition => { title => 'Condition', # loc @@ -78,30 +91,93 @@ my $COLUMN_MAP = { }, Template => { title => 'Template', # loc - value => sub { return $_[0]->loc( $_[0]->TemplateObj->Name ) }, + value => sub { return $_[0]->loc( $_[0]->Template ) }, }, AutoDescription => { title => 'Condition, Action and Template', # loc value => sub { return $_[0]->loc( "[_1] [_2] with template [_3]", $_[0]->loc($_[0]->ConditionObj->Name), $_[0]->loc($_[0]->ActionObj->Name), - $_[0]->loc($_[0]->TemplateObj->Name), + $_[0]->loc($_[0]->Template), ) }, }, Description => { title => 'Description', # loc - attribute => 'Description', - value => sub { return $_[0]->Description() }, + attribute => 'Description', + value => sub { return $_[0]->Description() }, + }, + Disabled => { + title => 'Status', # loc + attribute => 'Disabled', + value => sub { return $_[0]->Disabled? $_[0]->loc('Disabled'): $_[0]->loc('Enabled') }, + }, + RemoveCheckBox => { + title => sub { + my $name = 'RemoveScrip'; + my $checked = $m->request_args->{ $name .'All' }? 'checked="checked"': ''; + + return \qq{}; + }, + value => sub { + my $id = $_[0]->id; + return '' if $_[0]->IsGlobal; + + my $name = 'RemoveScrip'; + 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{} + }, + }, + Move => { + title => 'Move', # loc + value => sub { + my $id = $_[0]->id; + + my $context = $_[2] || 0; + return '' unless $_[0]->IsAdded( $context ); + + my $name = 'MoveScrip'; + my $args = $m->caller_args( 1 ); + my @pass = ref $args->{'PassArguments'} + ? @{$args->{'PassArguments'}} + : ($args->{'PassArguments'}); + my %pass = map { $_ => $args->{$_} } grep exists $args->{$_}, @pass; + + my $uri = RT->Config->Get('WebPath') . $m->request_path; + + my @res = ( + \' $id ), + \'">', loc('[Up]'), \'', + \' $id ), + \'">', loc('[Down]'), \'' + ); + + return @res; + }, }, Stage => { - title => 'Stage', # loc - attribute => 'Stage', - value => sub { return $_[0]->Stage() }, + title => 'Stage', # loc + value => sub { + my $os = RT::ObjectScrip->new( $_[0]->CurrentUser ); + my $id = $_[0]->IsGlobal ? 0 : $_[-1]; + $os->LoadByCols( Scrip => $_[0]->id, ObjectId => $id ); + return $_[0]->loc( $os->FriendlyStage ); + }, }, }; <%INIT> -$m->callback( COLUMN_MAP => $COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 ); +$m->callback( GenericMap => $GenericMap, COLUMN_MAP => $COLUMN_MAP, CallbackName => 'ColumnMap', CallbackOnce => 1 ); return GetColumnMapEntry( Map => $COLUMN_MAP, Name => $Name, Attribute => $Attr );