[Rt-commit] rt branch, 4.0/apply-scrips-to-multiple-queues, updated. rt-4.0.4-163-g60b8fec
Ruslan Zakirov
ruz at bestpractical.com
Tue Dec 27 17:08:39 EST 2011
The branch, 4.0/apply-scrips-to-multiple-queues has been updated
via 60b8fecb907fd8f217ffba3197df1e672fe0ec17 (commit)
via 27331f82eb505a8f5b0d97aff25bd4b67b82342d (commit)
via ddcfc59b4d40a2fac1675a529ac7820644b0f2de (commit)
via 500836b7355a0e81defba1143da74c2e06219083 (commit)
via f74afc66420c73e17797b06a2aa0d2c6e70072c5 (commit)
from 8f7634af69879f3adb44f7252c874546fcdc9813 (commit)
Summary of changes:
etc/schema.Oracle | 2 +-
etc/schema.Pg | 1 +
etc/schema.SQLite | 1 +
etc/schema.mysql | 1 +
lib/RT/Scrip.pm | 27 ++++++++++++++++++++++
share/html/Admin/Elements/EditScrip | 43 +++++++++++++++++++++++++++++++++-
t/approval/admincc.t | 15 ++++++-----
t/approval/basic.t | 10 ++++----
t/ticket/scrips_batch.t | 7 +++++-
9 files changed, 91 insertions(+), 16 deletions(-)
- Log -----------------------------------------------------------------
commit f74afc66420c73e17797b06a2aa0d2c6e70072c5
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date: Tue Dec 27 14:57:39 2011 +0400
an unique index on ObjectScrips table
diff --git a/etc/schema.Oracle b/etc/schema.Oracle
index 33787a9..039a646 100755
--- a/etc/schema.Oracle
+++ b/etc/schema.Oracle
@@ -162,7 +162,7 @@ CREATE TABLE ObjectScrips (
LastUpdatedBy NUMBER(11,0) DEFAULT 0 NOT NULL,
LastUpdated DATE
);
-
+CREATE UNIQUE INDEX ObjectScrips1 ON ObjectScrips (ObjectId, Scrip);
CREATE SEQUENCE ACL_seq;
CREATE TABLE ACL (
diff --git a/etc/schema.Pg b/etc/schema.Pg
index 94d89b2..5c2bab6 100755
--- a/etc/schema.Pg
+++ b/etc/schema.Pg
@@ -258,6 +258,7 @@ CREATE TABLE ObjectScrips (
);
+CREATE UNIQUE INDEX ObjectScrips1 ON ObjectScrips (ObjectId, Scrip);
diff --git a/etc/schema.SQLite b/etc/schema.SQLite
index c9bab8c..8867b03 100755
--- a/etc/schema.SQLite
+++ b/etc/schema.SQLite
@@ -174,6 +174,7 @@ CREATE TABLE ObjectScrips (
LastUpdated DATETIME NULL ,
PRIMARY KEY (id)
);
+CREATE UNIQUE INDEX ObjectScrips1 ON ObjectScrips (ObjectId, Scrip);
--- {{{ ACL
CREATE TABLE ACL (
diff --git a/etc/schema.mysql b/etc/schema.mysql
index cf2f96f..44889a0 100755
--- a/etc/schema.mysql
+++ b/etc/schema.mysql
@@ -165,6 +165,7 @@ CREATE TABLE ObjectScrips (
PRIMARY KEY (id)
) ENGINE=InnoDB CHARACTER SET utf8;
+CREATE UNIQUE INDEX ObjectScrips1 ON ObjectScrips (ObjectId, Scrip);
CREATE TABLE ACL (
id INTEGER NOT NULL AUTO_INCREMENT,
commit 500836b7355a0e81defba1143da74c2e06219083
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date: Tue Dec 27 15:25:59 2011 +0400
show stage selector only when we create a scrip
diff --git a/share/html/Admin/Elements/EditScrip b/share/html/Admin/Elements/EditScrip
index 6ee5ae2..a6f07d3 100755
--- a/share/html/Admin/Elements/EditScrip
+++ b/share/html/Admin/Elements/EditScrip
@@ -79,11 +79,13 @@
Queue => $Queue,
&></td></tr>
+% if ( $id eq 'new' ) {
<tr><td class="label"><&|/l&>Stage</&>:</td><td class="value">\
<& /Admin/Elements/SelectStage,
Name => "Scrip-$id-Stage",
- Default => $ARGS{"Scrip-$id-Stage"} || $scrip->Stage,
+ Default => $ARGS{"Scrip-$id-Stage"},
&></td></tr>
+% }
</table>
</&>
commit ddcfc59b4d40a2fac1675a529ac7820644b0f2de
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date: Wed Dec 28 00:05:07 2011 +0400
scrips disabling in the UI and API
diff --git a/lib/RT/Scrip.pm b/lib/RT/Scrip.pm
index 4147a23..c979d2b 100644
--- a/lib/RT/Scrip.pm
+++ b/lib/RT/Scrip.pm
@@ -348,6 +348,33 @@ sub Stage {
return undef;
}
+=head2 Disabled
+
+Returns the current value of Disabled.
+
+=cut
+
+sub Disabled {
+ my $self = shift;
+ my $record = RT::ObjectScrip->new( $self->CurrentUser );
+ $record->LoadByCols( Scrip => $self->id );
+ return $record->Disabled;
+}
+
+=head2 SetDisabled
+
+Takes a boolean.
+1 will cause this scrip to no longer be avaialble for objects.
+0 will re-enable this field.
+
+=cut
+
+sub SetDisabled {
+ my $self = shift;
+ return RT::ObjectScrip->new( $self->CurrentUser )
+ ->SetDisabledOnAll( Scrip => $self->id, Value => shift );
+}
+
=head2 Apply { TicketObj => undef, TransactionObj => undef}
diff --git a/share/html/Admin/Elements/EditScrip b/share/html/Admin/Elements/EditScrip
index a6f07d3..bc3ce32 100755
--- a/share/html/Admin/Elements/EditScrip
+++ b/share/html/Admin/Elements/EditScrip
@@ -87,6 +87,31 @@
&></td></tr>
% }
+% if ( $id ne 'new' && $added_to_any ) {
+<tr><td class="label"><&|/l&>Added</&>:</td><td class="value">\
+% if ( $scrip->IsAdded(0) ) {
+<% loc('Global') %>
+% } else {
+% my $added_to = $scrip->AddedTo;
+% my $found = 0;
+% while ( my $queue = $added_to->Next ) {
+% $m->out(', ') if $found++;
+<% $queue->Name %>
+% last if $found == 10;
+% }
+% $m->out(', ...') if $found == 10;
+% }
+<td></tr>
+% }
+
+% if ( $id eq 'new' || $added_to_any ) {
+<tr><td class="label"> </td><td>
+<input type="hidden" class="hidden" name="SetEnabled" value="1" />
+<input type="checkbox" class="checkbox" name="Scrip-<% $id %>-Enabled" value="1" <% $EnabledChecked |n%> />
+<label for="Scrip-<% $id %>-Enabled"><&|/l&>Enabled (Unchecking this box disables this scrip)</&></label>
+</td></tr>
+% }
+
</table>
</&>
@@ -147,10 +172,18 @@ if ( $id ) {
$SubmitLabel = loc('Save Changes');
}
+my $EnabledChecked = qq[checked="checked"];
+my $added_to_any = 0;
+
unless ( $id ) {
$id = 'new';
$SubmitLabel = loc('Create');
}
+else {
+ my $disabled = $scrip->Disabled;
+ $added_to_any = 1 if defined $disabled;
+ $EnabledChecked = '' if $disabled;
+}
my $min_lines = 10;
@@ -185,6 +218,7 @@ if ( $id eq 'new' ) {
CustomCommitCode => $ARGS{"Scrip-new-CustomCommitCode"},
CustomIsApplicableCode => $ARGS{"Scrip-new-CustomIsApplicableCode"},
Stage => $ARGS{"Scrip-new-Stage"},
+ Disabled => $ARGS{"Scrip-new-Enabled"}? 0 : 1,
);
}
else {
@@ -192,8 +226,11 @@ else {
return (undef, loc("Couldn't load scrip #[_1]", $id))
unless $scrip->id;
+ $ARGS{"Scrip-$id-Disabled"} = $ARGS{"Scrip-$id-Enabled"}? 0 : 1
+ if $ARGS{"SetEnabled"};
+
my @attribs = qw(ScripAction ScripCondition Template Stage
- Description CustomPrepareCode CustomCommitCode CustomIsApplicableCode);
+ Description CustomPrepareCode CustomCommitCode CustomIsApplicableCode Disabled);
my @results = UpdateRecordObject(
AttributesRef => \@attribs,
AttributePrefix => 'Scrip-'.$scrip->Id,
commit 27331f82eb505a8f5b0d97aff25bd4b67b82342d
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date: Wed Dec 28 00:06:25 2011 +0400
Stage in the UI only available during creation
diff --git a/t/ticket/scrips_batch.t b/t/ticket/scrips_batch.t
index 44d7f8e..a6d22b5 100644
--- a/t/ticket/scrips_batch.t
+++ b/t/ticket/scrips_batch.t
@@ -37,7 +37,12 @@ my $sid;
is value_name($form, "Scrip-$sid-ScripCondition"), 'On Transaction', 'correct condition';
is value_name($form, "Scrip-$sid-ScripAction"), 'User Defined', 'correct action';
is value_name($form, "Scrip-$sid-Template"), 'Global template: Blank', 'correct template';
- is value_name($form, "Scrip-$sid-Stage"), 'TransactionBatch', 'correct stage';
+
+ {
+ my $rec = RT::ObjectScrip->new( RT->SystemUser );
+ $rec->LoadByCols( Scrip => $sid, ObjectId => $queue->id );
+ is $rec->Stage, 'TransactionBatch', "correct stage";
+ }
my $tmp_fn = File::Spec->catfile( RT::Test->temp_directory, 'transactions' );
open my $tmp_fh, '+>', $tmp_fn or die $!;
commit 60b8fecb907fd8f217ffba3197df1e672fe0ec17
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date: Wed Dec 28 02:03:42 2011 +0400
new default order of script is different
fix tests by re-ordering them
diff --git a/t/approval/admincc.t b/t/approval/admincc.t
index b439296..c12db2a 100644
--- a/t/approval/admincc.t
+++ b/t/approval/admincc.t
@@ -84,7 +84,12 @@ mail_ok {
Requestor => 'minion',
Queue => $q->Id,
);
-} { from => qr/RT System/,
+} { from => qr/PO via RT/,
+ to => 'minion at company.com',
+ subject => qr/PO for stationary/,
+ body => qr/automatically generated in response/
+},
+{ from => qr/RT System/,
bcc => qr/ceo.*coo|coo.*ceo/i,
subject => qr/PO for stationary/i,
},
@@ -92,12 +97,8 @@ mail_ok {
to => 'cto at company.com',
subject => qr/New Pending Approval: CTO Approval/,
body => qr/pending your approval.*Your approval is requested.*Blah/s
-},
-{ from => qr/PO via RT/,
- to => 'minion at company.com',
- subject => qr/PO for stationary/,
- body => qr/automatically generated in response/
-};
+}
+;
ok ($tid,$tmsg);
diff --git a/t/approval/basic.t b/t/approval/basic.t
index 2d00eb5..b1a6ed1 100644
--- a/t/approval/basic.t
+++ b/t/approval/basic.t
@@ -86,14 +86,14 @@ mail_ok {
$t->Create(Subject => "PO for stationary",
Owner => "root", Requestor => 'minion',
Queue => $q->Id);
-} { from => qr/RT System/,
- to => 'cfo at company.com',
- subject => qr/New Pending Approval: CFO Approval/,
- body => qr/pending your approval.*Your approval is requested.*Blah/s
-},{ from => qr/PO via RT/,
+} { from => qr/PO via RT/,
to => 'minion at company.com',
subject => qr/PO for stationary/,
body => qr/automatically generated in response/
+}, { from => qr/RT System/,
+ to => 'cfo at company.com',
+ subject => qr/New Pending Approval: CFO Approval/,
+ body => qr/pending your approval.*Your approval is requested.*Blah/s
};
ok ($tid,$tmsg);
-----------------------------------------------------------------------
More information about the Rt-commit
mailing list