[Rt-commit] rt branch, 4.0/apply-scrips-to-multiple-queues, updated. rt-4.0.4-212-g7864845

Ruslan Zakirov ruz at bestpractical.com
Fri Feb 3 15:52:17 EST 2012


The branch, 4.0/apply-scrips-to-multiple-queues has been updated
       via  786484506b3bd56cca4b3508962de3d518d1b220 (commit)
       via  7d5746aa6534f8b868bd62096231dcd1084ea367 (commit)
       via  20633fa64c086dce3b4ec0085b882f7437a1ddd2 (commit)
      from  449e8e6c3e263c80ee36cc27c743042b50c699dc (commit)

Summary of changes:
 etc/RT_Config.pm.in                     |    2 +-
 lib/RT/ObjectScrips.pm                  |    6 +++++
 lib/RT/Scrips.pm                        |    1 +
 share/html/Admin/Scrips/Modify.html     |    2 +-
 share/html/Elements/RT__Scrip/ColumnMap |   10 +++++++++
 share/html/Elements/Tabs                |    2 +-
 t/api/scrip.t                           |   32 ++++++++++++++++++++++++++----
 t/web/scrips.t                          |    2 +-
 8 files changed, 48 insertions(+), 9 deletions(-)

- Log -----------------------------------------------------------------
commit 20633fa64c086dce3b4ec0085b882f7437a1ddd2
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Fri Feb 3 22:42:08 2012 +0400

    use "applies" in the UI
    
    Apply is used in scrips' API already, so we use add there,
    but in UI to be similar to CF UI we should use 'applies'.

diff --git a/share/html/Admin/Scrips/Modify.html b/share/html/Admin/Scrips/Modify.html
index 7167ee1..866ba48 100755
--- a/share/html/Admin/Scrips/Modify.html
+++ b/share/html/Admin/Scrips/Modify.html
@@ -58,7 +58,7 @@
 <& Elements/EditBasics, %ARGS, Scrip => $scrip &>
 
 % if ( $added_to_any ) {
-<tr><td class="label"><a href="Objects.html?id=<% $id %>"><&|/l&>Added</&></a>:</td>
+<tr><td class="label"><a href="Objects.html?id=<% $id %>"><&|/l&>Applies to</&></a>:</td>
 <td class="value">\
 % if ( $scrip->IsGlobal ) {
 <a href="<% RT->Config->Get('WebPath') %>/Admin/Global/Scrips.html"><% loc('Global') %></a>
diff --git a/share/html/Elements/Tabs b/share/html/Elements/Tabs
index e69aa9d..dd68a97 100755
--- a/share/html/Elements/Tabs
+++ b/share/html/Elements/Tabs
@@ -346,7 +346,7 @@ my $build_admin_menu = sub {
 
             my $tabs = PageMenu();
             $tabs->child( basics => title => loc('Basics') => path => "/Admin/Scrips/Modify.html?id=".$id );
-            $tabs->child( 'added-to' => title => loc('Added to'), path => "/Admin/Scrips/Objects.html?id=" . $id );
+            $tabs->child( 'applies-to' => title => loc('Applies to'), path => "/Admin/Scrips/Objects.html?id=" . $id );
         }
     }
 
diff --git a/t/web/scrips.t b/t/web/scrips.t
index daca113..7b386c5 100644
--- a/t/web/scrips.t
+++ b/t/web/scrips.t
@@ -173,7 +173,7 @@ note "apply scrip in different stage to different queues";
     my ($sid) = ($m->content =~ /Modify scrip #(\d+)/);
     ok $sid, "found scrip id on the page";
 
-    $m->follow_link_ok({ text => 'Added to' });
+    $m->follow_link_ok({ text => 'Applies to' });
     ok $m->form_name('AddRemoveScrip');
     $m->select('Stage' => 'Batch');
     $m->tick( "AddScrip-$sid" => $queue->id );

commit 7d5746aa6534f8b868bd62096231dcd1084ea367
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Sat Feb 4 00:25:50 2012 +0400

    Disabled column map for scrips

diff --git a/etc/RT_Config.pm.in b/etc/RT_Config.pm.in
index 511b152..d8e8780 100755
--- a/etc/RT_Config.pm.in
+++ b/etc/RT_Config.pm.in
@@ -2468,7 +2468,7 @@ Set(%AdminSearchResultFormat,
     Scrips =>
         q{'<a href="__WebPath__/Admin/Scrips/Modify.html?id=__id__">__id__</a>/TITLE:#'}
         .q{,'<a href="__WebPath__/Admin/Scrips/Modify.html?id=__id__">__Description__</a>/TITLE:Description'}
-        .q{, __Condition__, __Action__, __Template__},
+        .q{, __Condition__, __Action__, __Template__, __Disabled__},
 
     Templates =>
         q{'<a href="__WebPath__/__WebRequestPathDir__/Template.html?Queue=__QueueId__&Template=__id__">__id__</a>/TITLE:#'}
diff --git a/share/html/Elements/RT__Scrip/ColumnMap b/share/html/Elements/RT__Scrip/ColumnMap
index eb47a15..0f5a476 100644
--- a/share/html/Elements/RT__Scrip/ColumnMap
+++ b/share/html/Elements/RT__Scrip/ColumnMap
@@ -93,6 +93,16 @@ my $COLUMN_MAP = {
 	attribute => 'Description',
 	value     => sub { return $_[0]->Description() },
     },
+    Disabled => {
+        title     => \' ',
+        value     => sub {
+            my $v = $_[0]->Disabled;
+            return !defined $v
+                ? $_[0]->loc('Not applied')
+                : $v ? $_[0]->loc('Disabled')
+                : $_[0]->loc('Enabled')
+        },
+    },
     RemoveCheckBox => {
         title => sub {
             my $name = 'RemoveScrip';

commit 786484506b3bd56cca4b3508962de3d518d1b220
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Sat Feb 4 00:31:57 2012 +0400

    make sure disabled scrips are not executed

diff --git a/lib/RT/ObjectScrips.pm b/lib/RT/ObjectScrips.pm
index 93817ed..be67985 100644
--- a/lib/RT/ObjectScrips.pm
+++ b/lib/RT/ObjectScrips.pm
@@ -7,6 +7,12 @@ use base 'RT::SearchBuilder::ApplyAndSort';
 use RT::Scrips;
 use RT::ObjectScrip;
 
+sub _Init {
+    my $self = shift;
+    $self->{'with_disabled_column'} = 1;
+    return $self->SUPER::_Init( @_ );
+}
+
 sub Table { 'ObjectScrips'}
 
 sub LimitToScrip {
diff --git a/lib/RT/Scrips.pm b/lib/RT/Scrips.pm
index 67514f9..deb22c4 100644
--- a/lib/RT/Scrips.pm
+++ b/lib/RT/Scrips.pm
@@ -437,6 +437,7 @@ sub _FindScrips {
 
     $self->LimitToQueue( $self->{'TicketObj'}->QueueObj->Id );
     $self->LimitToGlobal;
+    $self->LimitToEnabled;
     $self->LimitByStage( $args{'Stage'} );
 
     my $ConditionsAlias = $self->NewAlias('ScripConditions');
diff --git a/t/api/scrip.t b/t/api/scrip.t
index 4b709f0..c43fb53 100644
--- a/t/api/scrip.t
+++ b/t/api/scrip.t
@@ -1,7 +1,7 @@
 
 use strict;
 use warnings;
-use RT::Test tests => 66;
+use RT::Test tests => 70;
 
 my $queue = RT::Test->load_or_create_queue( Name => 'General' );
 ok $queue && $queue->id, 'loaded or created queue';
@@ -171,17 +171,39 @@ note 'basic check for disabling scrips';
 {
     my $scrip = RT::Scrip->new(RT->SystemUser);
     my ($status, $msg) = $scrip->Create(
-        Queue          => $queue->Id,
-        ScripAction    => 'User Defined',
-        ScripCondition => 'User Defined',
-        Template       => 'Blank',
+        Queue => $queue->id,
+        ScripCondition => 'On Create',
+        ScripAction => 'User Defined',
+        CustomPrepareCode => 'return 1',
+        CustomCommitCode => '$self->TicketObj->SetPriority("87"); return 1',
+        Template => 'Blank'
     );
     ok($status, "created scrip");
     is($scrip->Disabled, 0, "not disabled");
 
+    {
+        my $ticket = RT::Ticket->new(RT->SystemUser);
+        my ($tid, undef, $msg) = $ticket->Create(
+            Queue => $queue->id,
+            Subject => "test",
+        );
+        ok($tid, "created ticket") or diag "error: $msg";
+        is ($ticket->Priority , '87', "Ticket priority is set right");
+    }
+
     ($status,$msg) = $scrip->SetDisabled(1);
     is($scrip->Disabled, 1, "disabled");
 
+    {
+        my $ticket = RT::Ticket->new(RT->SystemUser);
+        my ($tid, undef, $msg) = $ticket->Create(
+            Queue => $queue->id,
+            Subject => "test",
+        );
+        ok($tid, "created ticket") or diag "error: $msg";
+        isnt ($ticket->Priority , '87', "Ticket priority is set right");
+    }
+
     ($status, $msg) = $scrip->RemoveFromObject( $queue->id );
     ok($status, 'removed scrip from queue');
 

-----------------------------------------------------------------------


More information about the Rt-commit mailing list