summaryrefslogtreecommitdiff
path: root/rt
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2015-07-13 20:55:30 -0700
committerMark Wells <mark@freeside.biz>2015-07-13 20:55:30 -0700
commitd0b51206d9d8ba21b820df6be0a342179fea68aa (patch)
treeebaf2dbe8f92cc605f9bd6e7b5c14e1980cea47d /rt
parent204aaf4c7b3ba6a2416a4133ba0079305b4f4bdc (diff)
remove "create ticket on custom field change" (#10139) to avoid conflicts with RT 4.2
Diffstat (limited to 'rt')
-rw-r--r--rt/etc/initialdata20
-rwxr-xr-xrt/etc/upgrade/4.0-customfield-checkbox-extension2
-rwxr-xr-xrt/etc/upgrade/upgrade-articles4
-rwxr-xr-xrt/lib/RT/Action.pm11
-rw-r--r--rt/lib/RT/Action/CreateTickets.pm24
-rwxr-xr-xrt/lib/RT/Condition.pm13
-rw-r--r--rt/lib/RT/Condition/CustomFieldChange.pm56
-rwxr-xr-xrt/lib/RT/Scrip.pm4
-rwxr-xr-xrt/share/html/Admin/Elements/EditScrip262
-rw-r--r--rt/share/html/Admin/Elements/EditScripOptions48
-rwxr-xr-xrt/share/html/Admin/Elements/SelectScripAction5
-rwxr-xr-xrt/share/html/Admin/Elements/SelectScripCondition5
12 files changed, 19 insertions, 435 deletions
diff --git a/rt/etc/initialdata b/rt/etc/initialdata
index 9b2af37..96255b5 100644
--- a/rt/etc/initialdata
+++ b/rt/etc/initialdata
@@ -247,16 +247,16 @@
},
#freeside
- { Name => 'On Custom Field Transaction',
- Description => 'When a custom field is changed',
- ExecModule => 'CustomFieldTransaction',
- ApplicableTransTypes => 'Any',
- },
- { Name => 'On Custom Field Change',
- Description => 'When a custom field is changed to some value',
- ExecModule => 'CustomFieldChange',
- ApplicableTransTypes => 'Any',
- },
+ #{ Name => 'On Custom Field Transaction',
+ # Description => 'When a custom field is changed',
+ # ExecModule => 'CustomFieldTransaction',
+ # ApplicableTransTypes => 'Any',
+ #},
+ #{ Name => 'On Custom Field Change',
+ # Description => 'When a custom field is changed to some value',
+ # ExecModule => 'CustomFieldChange',
+ # ApplicableTransTypes => 'Any',
+ #},
);
diff --git a/rt/etc/upgrade/4.0-customfield-checkbox-extension b/rt/etc/upgrade/4.0-customfield-checkbox-extension
index dc8904e..a83ac3e 100755
--- a/rt/etc/upgrade/4.0-customfield-checkbox-extension
+++ b/rt/etc/upgrade/4.0-customfield-checkbox-extension
@@ -53,7 +53,7 @@ use warnings;
use lib "/opt/rt3/local/lib";
use lib "/opt/rt3/lib";
-use RT -init
+use RT -init;
$| = 1;
diff --git a/rt/etc/upgrade/upgrade-articles b/rt/etc/upgrade/upgrade-articles
index 6ff4a2a..a3852df 100755
--- a/rt/etc/upgrade/upgrade-articles
+++ b/rt/etc/upgrade/upgrade-articles
@@ -56,8 +56,8 @@ use lib "/opt/rt3/lib";
use RT::Interface::CLI qw(Init);
Init();
- my $db_name = RT->Config->Get('DatabaseName');
- my $db_type = RT->Config->Get('DatabaseType');
+my $db_name = RT->Config->Get('DatabaseName');
+my $db_type = RT->Config->Get('DatabaseType');
my $dbh = $RT::Handle->dbh;
diff --git a/rt/lib/RT/Action.pm b/rt/lib/RT/Action.pm
index 1740b1d..5c295cb 100755
--- a/rt/lib/RT/Action.pm
+++ b/rt/lib/RT/Action.pm
@@ -172,17 +172,6 @@ sub Prepare {
}
-sub Options {
- my $self = shift;
- return();
-}
-
-sub Rules {
- my $self = shift;
- return () if !$self->ScripObj or !$self->ScripObj->ActionRules;
- return(split "\n", $self->ScripObj->ActionRules);
-}
-
RT::Base->_ImportOverlays();
1;
diff --git a/rt/lib/RT/Action/CreateTickets.pm b/rt/lib/RT/Action/CreateTickets.pm
index 03bc212..d19f152 100644
--- a/rt/lib/RT/Action/CreateTickets.pm
+++ b/rt/lib/RT/Action/CreateTickets.pm
@@ -733,7 +733,6 @@ sub ParseLines {
FinalPriority => $args{'finalpriority'} || 0,
SquelchMailTo => $args{'squelchmailto'},
Type => $args{'type'},
- $self->Rules
);
if ( $args{content} ) {
@@ -1140,7 +1139,10 @@ sub UpdateCustomFields {
}
foreach my $value (@values) {
- next unless length($value);
+ next if $ticket->CustomFieldValueIsEmpty(
+ Field => $cf,
+ Value => $value,
+ );
my ( $val, $msg ) = $ticket->AddCustomFieldValue(
Field => $cf,
Value => $value
@@ -1214,24 +1216,6 @@ sub PostProcess {
}
-sub Options {
- my $self = shift;
- my $queues = RT::Queues->new($self->CurrentUser);
- $queues->UnLimit;
- my @names;
- while (my $queue = $queues->Next) {
- push @names, $queue->Id, $queue->Name;
- }
- return (
- {
- 'name' => 'Queue',
- 'label' => 'In queue',
- 'type' => 'select',
- 'options' => \@names
- }
- )
-}
-
RT::Base->_ImportOverlays();
1;
diff --git a/rt/lib/RT/Condition.pm b/rt/lib/RT/Condition.pm
index bd495db..69aaf86 100755
--- a/rt/lib/RT/Condition.pm
+++ b/rt/lib/RT/Condition.pm
@@ -193,19 +193,6 @@ sub IsApplicable {
return(undef);
}
-sub Options {
- my $self = shift;
- return();
-}
-
-sub Rules {
- my $self = shift;
- return () if !$self->ScripObj or !$self->ScripObj->ConditionRules;
- # By default, option names and values are on consecutive lines.
- # Override this if you need anything more interesting.
- return(split "\n", $self->ScripObj->ConditionRules);
-}
-
sub DESTROY {
my $self = shift;
diff --git a/rt/lib/RT/Condition/CustomFieldChange.pm b/rt/lib/RT/Condition/CustomFieldChange.pm
deleted file mode 100644
index b9228a5..0000000
--- a/rt/lib/RT/Condition/CustomFieldChange.pm
+++ /dev/null
@@ -1,56 +0,0 @@
-package RT::Condition::CustomFieldChange;
-use base 'RT::Condition';
-use strict;
-
-=head2 IsApplicable
-
-If a custom field has a particular value.
-
-=cut
-
-# Based on Chuck Boeheim's code posted on the RT Wiki 3/13/06
-
-sub IsApplicable {
- my $self = shift;
- my $trans = $self->TransactionObj;
- my $scrip = $self->ScripObj;
- my %Rules = $self->Rules;
- my ($field, $value) = @Rules{'field', 'value'};
- return if !defined($field) or !defined($value);
-
- if ($trans->Type eq 'Create') {
- return 1 if $trans->TicketObj->FirstCustomFieldValue($field) eq $value;
- }
- if ($trans->Type eq 'CustomField') {
- my $cf = RT::CustomField->new($self->CurrentUser);
- $cf->Load($field);
- return 1 if $trans->Field == $cf->Id and $trans->NewValue eq $value;
- }
- return undef;
-}
-
-sub Options {
- my $self = shift;
- my %args = ( 'QueueObj' => undef, @_ );
- my $QueueObj = $args{'QueueObj'};
- my $cfs = $QueueObj->TicketCustomFields();
- my @fieldnames;
- while ( my $cf = $cfs->Next ) {
- push @fieldnames, $cf->Name, $cf->Name;
- }
- return (
- {
- 'name' => 'field',
- 'label' => 'Custom Field',
- 'type' => 'select',
- 'options' => \@fieldnames,
- },
- {
- 'name' => 'value',
- 'label' => 'Value',
- 'type' => 'text',
- },
- );
-}
-1;
-
diff --git a/rt/lib/RT/Scrip.pm b/rt/lib/RT/Scrip.pm
index eedd406..5bd86e0 100755
--- a/rt/lib/RT/Scrip.pm
+++ b/rt/lib/RT/Scrip.pm
@@ -113,8 +113,6 @@ sub Create {
CustomPrepareCode => undef,
CustomCommitCode => undef,
CustomIsApplicableCode => undef,
- ConditionRules => undef,
- ActionRules => undef,
@_
);
@@ -198,8 +196,6 @@ sub Create {
CustomPrepareCode => $args{'CustomPrepareCode'},
CustomCommitCode => $args{'CustomCommitCode'},
CustomIsApplicableCode => $args{'CustomIsApplicableCode'},
- ConditionRules => $args{'ConditionRules'},
- ActionRules => $args{'ActionRules'},
);
return ( $id, $msg ) unless $id;
diff --git a/rt/share/html/Admin/Elements/EditScrip b/rt/share/html/Admin/Elements/EditScrip
deleted file mode 100755
index defe09b..0000000
--- a/rt/share/html/Admin/Elements/EditScrip
+++ /dev/null
@@ -1,262 +0,0 @@
-%# BEGIN BPS TAGGED BLOCK {{{
-%#
-%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
-%# <sales@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 }}}
-<& /Elements/ListActions, actions => \@actions &>
-
-<form method="post" action="Scrip.html" id="ModifyScrip" name="ModifyScrip">
-<input type="hidden" class="hidden" name="id" value="<% $id %>" />
-<input type="hidden" class="hidden" name="Queue" value="<% $Queue %>" />
-
-<&| /Widgets/TitleBox, title => loc('Scrip Fields') &>
-<table>
-
-<tr><td class="label"><&|/l&>Description</&>:</td><td class="value">\
-% if ( $immutable ) {
-<% $scrip->Description %> <i>(system scrip)</i>
-<input type="hidden" name="Scrip-<% $id %>-Description" value="<% $scrip->Description %>">
-% } else {
-<input name="Scrip-<% $id %>-Description" \
- size="60" \
- value="<% $ARGS{"Scrip-$id-Description"} || $scrip->Description || '' %>" />
-% }
-</td></tr>
-
-<tr><td class="label"><&|/l&>Condition</&>:</td><td class="value">\
-% if ( $immutable ) {
-<% loc( $scrip->ConditionObj->Name ) %>
-<input type="hidden" name="Scrip-<%$id%>-Condition" value="<% $scrip->ConditionObj->Id %>">
-% } else {
-<& /Admin/Elements/SelectScripCondition,
- Name => "Scrip-$id-ScripCondition",
- Default => $ARGS{"Scrip-$id-ScripCondition"} || $scrip->ConditionObj->Id,
- ScripObj => $scrip,
- Queue => $Queue,
-&>
-% }
-</td></tr>
-
-<& /Admin/Elements/EditScripOptions,
- Name => "Condition",
- Default => $ARGS{"Scrip-$id-ConditionRules"} || $scrip->ConditionRules,
- Queue => $Queue,
- ScripX => $ARGS{"Scrip-$id-ScripCondition"} || $scrip->ConditionObj->Id,
-&>
-
-<tr><td class="label"><&|/l&>Action</&>:</td><td class="value">\
-% if ( $immutable ) {
-<% loc( $scrip->ActionObj->Name ) %>
-<input type="hidden" name="Scrip-<%$id%>-Action" value="<% $scrip->ActionObj->Id %>">
-% } else {
-<& /Admin/Elements/SelectScripAction,
- Name => "Scrip-$id-ScripAction",
- Default => $ARGS{"Scrip-$id-ScripAction"} || $scrip->ActionObj->Id,
- ScripObj => $scrip,
- Queue => $Queue,
-&>
-% }
-</td></tr>
-
-<& /Admin/Elements/EditScripOptions,
- Name => "Action",
- Default => $ARGS{"Scrip-$id-ActionRules"} || $scrip->ActionRules,
- Queue => $Queue,
- ScripX => $ARGS{"Scrip-$id-ScripAction"} || $scrip->ActionObj->Id,
-&>
-
-<tr><td class="label"><&|/l&>Template</&>:</td><td class="value">\
-%# immutable flag doesn't affect this
-<& /Admin/Elements/SelectTemplate,
- Name => "Scrip-$id-Template",
- Default => $ARGS{"Scrip-$id-Template"} || $scrip->TemplateObj->Id,
- Queue => $Queue,
-&>
-</td></tr>
-
-<tr><td class="label"><&|/l&>Stage</&>:</td><td class="value">\
-%# or this
-<& /Admin/Elements/SelectStage,
- Name => "Scrip-$id-Stage",
- Default => $ARGS{"Scrip-$id-Stage"} || $scrip->Stage,
-&></td></tr>
-
-</table>
-</&>
-
-% if ($session{CurrentUser}->HasRight(Object => $RT::System, Right => 'ExecuteCode')) {
-<& /Elements/Submit,
- Label => $SubmitLabel,
- Reset => 1,
-&><br />
-
-<&| /Widgets/TitleBox, title => loc('User Defined conditions and actions') &>
-<table>
-<tr><td colspan="2">
-<i><&|/l&>(Use these fields when you choose 'User Defined' for a condition or action)</&></i>
-</td></tr>
-
-<tr><td class="labeltop"><&|/l&>Custom condition</&>:</td><td class="value">
-% my $code = $ARGS{"Scrip-$id-CustomIsApplicableCode"} || $scrip->CustomIsApplicableCode || '';
-% my $lines = @{[ $code =~ /\n/gs ]} + 3;
-% $lines = $min_lines if $lines < $min_lines;
-<textarea cols="80" rows="<% $lines %>" name="Scrip-<% $id %>-CustomIsApplicableCode"><% $code %></textarea>
-</td></tr>
-
-<tr><td class="labeltop"><&|/l&>Custom action preparation code</&>:</td><td class="value">
-% $code = $ARGS{"Scrip-$id-CustomPrepareCode"} || $scrip->CustomPrepareCode || '';
-% $lines = @{[ $code =~ /\n/gs ]} + 3;
-% $lines = $min_lines if $lines < $min_lines;
-<textarea cols="80" rows="<% $lines %>" name="Scrip-<% $id %>-CustomPrepareCode"><% $code %></textarea>
-</td></tr>
-
-<tr><td class="labeltop"><&|/l&>Custom action cleanup code</&>:</td><td class="value">
-% $code = $ARGS{"Scrip-$id-CustomCommitCode"} || $scrip->CustomCommitCode || '';
-% $lines = @{[ $code =~ /\n/gs ]} + 3;
-% $lines = $min_lines if $lines < $min_lines;
-<textarea cols="80" rows="<% $lines %>" name="Scrip-<% $id || '' %>-CustomCommitCode"><% $code %></textarea>
-</td></tr>
-
-</table>
-</&>
-
-% }
-
-<& /Elements/Submit,
- Label => $SubmitLabel,
- Reset => 1,
-&>
-
-</form>
-<%init>
-
-my (@actions, $SubmitLabel);
-my $scrip = RT::Scrip->new( $session{'CurrentUser'} );
-my $immutable = 0;
-
-if ( $id ) {
- $scrip->Load( $id );
- unless ( $id = $scrip->id ) {
- push @actions, loc("Couldn't load scrip #[_1]", $id);
- }
- $SubmitLabel = loc('Save Changes');
- my $a = $scrip->FirstAttribute('Immutable');
- if ( defined($a) and $a->Content ) {
- $immutable = 1;
- }
-}
-
-unless ( $id ) {
- $id = 'new';
- $SubmitLabel = loc('Create');
-}
-
-my $min_lines = 10;
-
-my ($ok, $msg) = $scrip->CompileCheck;
-push @actions, $msg if !$ok;
-
-</%init>
-
-<%ARGS>
-$id => undef
-$title => undef
-$Queue => 0
-</%ARGS>
-
-<%METHOD Process>
-<%ARGS>
-$id => undef
-$Queue => undef
-</%ARGS>
-<%INIT>
-return ($id) unless $id;
-
-my @rules = ('ConditionRules', 'ActionRules');
-if ( exists($ARGS{"Scrip-$id-ScripCondition"}) ) {
- foreach my $rules (@rules) {
- my $prefix = join('-', 'Scrip', $id, $rules);
- $ARGS{$prefix} = join("\n", map {
- $_ =~ /^$rules-(.*)$/ ?
- ($1, $ARGS{$_}) : ()
- } keys(%ARGS)
- );
- }
-}
-
-my $scrip = RT::Scrip->new( $session{'CurrentUser'} );
-if ( $id eq 'new' ) {
- return $scrip->Create(
- Queue => $Queue,
- ScripAction => $ARGS{"Scrip-new-ScripAction"},
- ScripCondition => $ARGS{"Scrip-new-ScripCondition"},
- Template => $ARGS{"Scrip-new-Template"},
- Description => $ARGS{"Scrip-new-Description"},
- CustomPrepareCode => $ARGS{"Scrip-new-CustomPrepareCode"},
- CustomCommitCode => $ARGS{"Scrip-new-CustomCommitCode"},
- CustomIsApplicableCode => $ARGS{"Scrip-new-CustomIsApplicableCode"},
- Stage => $ARGS{"Scrip-new-Stage"},
- ConditionRules => $ARGS{"Scrip-new-ConditionRules"},
- ActionRules => $ARGS{"Scrip-new-ActionRules"},
- );
-}
-else {
- $scrip->Load( $id );
- return (undef, loc("Couldn't load scrip #[_1]", $id))
- unless $scrip->id;
-
- my @attribs = qw(Queue ScripAction ScripCondition Template Stage
- Description CustomPrepareCode CustomCommitCode CustomIsApplicableCode
- ConditionRules ActionRules);
- my @results = UpdateRecordObject(
- AttributesRef => \@attribs,
- AttributePrefix => 'Scrip-'.$scrip->Id,
- Object => $scrip,
- ARGSRef => \%ARGS
- );
- return ($scrip->id, @results);
-}
-</%INIT>
-</%METHOD>
diff --git a/rt/share/html/Admin/Elements/EditScripOptions b/rt/share/html/Admin/Elements/EditScripOptions
deleted file mode 100644
index 264ca3a..0000000
--- a/rt/share/html/Admin/Elements/EditScripOptions
+++ /dev/null
@@ -1,48 +0,0 @@
-% return if !@options;
-<tr><td></td><td><table>
-% my $prefix = $Name.'Rules-';
-% foreach my $o (@options) {
-% my $curr_value = $rules{ $o->{'name'} };
- <tr><td align="right"><% $o->{'label'} %>:</td>
- <td>
-% if ( $o->{'type'} eq 'text' ) {
- <input type="text" name="<% $prefix.$o->{'name'} %>" value="<% $curr_value %>">
-% }
-% elsif ( $o->{'type'} eq 'checkbox' ) {
- <input type="checkbox" name="<% $prefix.$o->{'name'} %>" value="1" <% $curr_value ? 'CHECKED' : '' %>>
-% }
-% elsif ( $o->{'type'} eq 'select' and ref $o->{'options'} ) {
- <select name="<% $prefix.$o->{'name'} %>">
-% my @choices = @{ $o->{'options'} };
-% while (@choices) {
-% my $v = shift @choices;
-% my $l = shift @choices;
- <option value="<% $v %>"<% ($curr_value eq $v) ? ' SELECTED' : ''%>>
- <% $l %></option>
-% }
- </select>
-% } # else $o->{'type'}
-</td></tr>
-% } #foreach $o
-</table></td></tr>
-
-<%INIT>
-my (@options, %rules);
-if ( $ScripX ) {
- my $ScripXObj = "RT::Scrip$Name"->new($session{'CurrentUser'});
- $ScripXObj->Load($ScripX);
- my $QueueObj = RT::Queue->new($session{'CurrentUser'});
- $QueueObj->Load($Queue);
- my $method = "Load$Name";
- my $XObj = $ScripXObj->$method();
- @options = $XObj->Options('QueueObj' => $QueueObj);
- %rules = split("\n", $Default);
-}
-</%INIT>
-
-<%ARGS>
-$Name => undef
-$Default => undef
-$Queue => 0
-$ScripX => undef
-</%ARGS>
diff --git a/rt/share/html/Admin/Elements/SelectScripAction b/rt/share/html/Admin/Elements/SelectScripAction
index 88c2f20..395a1a3 100755
--- a/rt/share/html/Admin/Elements/SelectScripAction
+++ b/rt/share/html/Admin/Elements/SelectScripAction
@@ -45,10 +45,7 @@
%# those contributions and any derivatives thereof.
%#
%# END BPS TAGGED BLOCK }}}
-<select name="<%$Name%>"
-onchange="var idobj = document.getElementsByName('id')[0];
-if (idobj.value=='new') idobj.value = '';
-form.submit()">
+<select name="<%$Name%>">
<option value=""
<% ! defined $Default && qq[ selected="selected"] |n %>
>-</option>
diff --git a/rt/share/html/Admin/Elements/SelectScripCondition b/rt/share/html/Admin/Elements/SelectScripCondition
index ae663c7..2cc5bc9 100755
--- a/rt/share/html/Admin/Elements/SelectScripCondition
+++ b/rt/share/html/Admin/Elements/SelectScripCondition
@@ -45,10 +45,7 @@
%# those contributions and any derivatives thereof.
%#
%# END BPS TAGGED BLOCK }}}
-<select name="<%$Name%>"
-onchange="var idobj = document.getElementsByName('id')[0];
-if (idobj.value=='new') idobj.value = '';
-form.submit()">
+<select name="<%$Name%>">
<option value=""
<% ! defined $Default && qq[ selected="selected"] %>
>-</option>