[Rt-commit] r9872 - in rt/branches/3.6-EXPERIMENTAL-ABERDEEN:
html/Admin/Elements lib/RT/Extension
audreyt at bestpractical.com
audreyt at bestpractical.com
Mon Dec 10 13:58:54 EST 2007
Author: audreyt
Date: Mon Dec 10 13:58:54 2007
New Revision: 9872
Modified:
rt/branches/3.6-EXPERIMENTAL-ABERDEEN/html/Admin/Elements/RuleManagerTabs
rt/branches/3.6-EXPERIMENTAL-ABERDEEN/html/Admin/RuleManager/Modify.html
rt/branches/3.6-EXPERIMENTAL-ABERDEEN/html/Admin/RuleManager/index.html
rt/branches/3.6-EXPERIMENTAL-ABERDEEN/lib/RT/Extension/RuleManager.pm
Log:
* Simple Rule UI, most of it.
Modified: rt/branches/3.6-EXPERIMENTAL-ABERDEEN/html/Admin/Elements/RuleManagerTabs
==============================================================================
--- rt/branches/3.6-EXPERIMENTAL-ABERDEEN/html/Admin/Elements/RuleManagerTabs (original)
+++ rt/branches/3.6-EXPERIMENTAL-ABERDEEN/html/Admin/Elements/RuleManagerTabs Mon Dec 10 13:58:54 2007
@@ -55,7 +55,7 @@
if ($id) {
$tabs->{'R'} = {
title => loc('Rule #[_1]', $id),
- path => "Admin/Users/Modify.html?id=".$id,
+ path => "Admin/RuleManager/Modify.html?id=".$id,
};
}
if (
@@ -78,7 +78,7 @@
$tabs->{'this'}->{'subtabs'}->{$tab}->{"current_subtab"} = $current_subtab;
}
}
- $current_tab = "Admin/Users/Modify.html?id=".$id if $id;
+ $current_tab = "Admin/RuleManager/Modify.html?id=".$id if $id;
</%INIT>
<%ARGS>
$RuleObj => undef
Modified: rt/branches/3.6-EXPERIMENTAL-ABERDEEN/html/Admin/RuleManager/Modify.html
==============================================================================
--- rt/branches/3.6-EXPERIMENTAL-ABERDEEN/html/Admin/RuleManager/Modify.html (original)
+++ rt/branches/3.6-EXPERIMENTAL-ABERDEEN/html/Admin/RuleManager/Modify.html Mon Dec 10 13:58:54 2007
@@ -66,6 +66,54 @@
<td><input name="Name" value="<% ($Create) ? "" : $RuleObj->Name %>" /></td>
</tr>
+<tr><td align="right">
+<&|/l&>Match Field</&>:
+</td>
+<td>
+<& SELF:Select,
+ Name => 'Field',
+ Options => [RT::Extension::RuleManager::FieldOptions],
+ Default => ($Create ? '' : $RuleObj->Field),
+&>
+</td>
+</tr>
+
+<tr><td align="right">
+<&|/l&>Match Pattern</&>:
+</td>
+<td><input name="Pattern" value="<% ($Create) ? "" : $RuleObj->Pattern %>" /></td>
+</tr>
+
+<tr><td align="right">
+<&|/l&>Action</&>:
+</td>
+<td>
+<& SELF:Select,
+ Name => 'Handler',
+ Options => [RT::Extension::RuleManager::HandlerOptions],
+ Default => ($Create ? '' : $RuleObj->Handler),
+ Refresh => 1,
+&>
+</td>
+</tr>
+
+% if (!$Create and $RuleObj->Handler =~ /:$/) {
+<tr><td align="right">
+<&|/l&>Argument</&>:
+</td>
+<td><input name="Argument" value="<% ($Create) ? "" : $RuleObj->Argument %>" /></td>
+</tr>
+% }
+
+<tr><td align="right">
+<&|/l&>After action</&>:
+</td><td>
+<label style="font-weight: normal">
+<input type="checkbox" name="Final" value="1" <% $Create ? '' : $RuleObj->Final ? 'checked="checked"' : '' |n %> />
+<&|/l&>Stop processing the rules after this one.</&>
+</label>
+</tr>
+
</table>
<& /Elements/Submit, Label => loc('Save Changes') &>
</form>
@@ -92,12 +140,16 @@
|| RT::Extension::RuleManager->named($Name)
|| Abort("Couldn't load rule '$Name'");
}
+ else {
+ Abort("Couldn't load rule ''");
+ }
$title = loc('Editing Rule #[_1]', $RuleObj->id);
$current_tab = 'Admin/RuleManager/Modify.html?id='.$RuleObj->id;
}
if ($RuleObj and $RuleObj->Id) {
+ $ARGS{Final} = '' unless $ARGS{Final};
$RuleObj->UpdateRecordObject(\%ARGS);
}
</%INIT>
@@ -109,3 +161,17 @@
$Name => undef
$Create => undef
</%ARGS>
+
+<%METHOD Select>
+<select name="<% $Name %>" <% ($Refresh ? 'onchange="this.form.submit()"' : '') |n %>>
+% foreach my $val (@$Options) {
+<option value="<% $val %>" <% ($Default eq $val) ? 'selected="selected"' : '' |n %>><% loc($val) %></option>
+% }
+</select>
+<%ARGS>
+$Name
+$Options
+$Default => ''
+$Refresh => 0
+</%ARGS>
+</%METHOD>
Modified: rt/branches/3.6-EXPERIMENTAL-ABERDEEN/html/Admin/RuleManager/index.html
==============================================================================
--- rt/branches/3.6-EXPERIMENTAL-ABERDEEN/html/Admin/RuleManager/index.html (original)
+++ rt/branches/3.6-EXPERIMENTAL-ABERDEEN/html/Admin/RuleManager/index.html Mon Dec 10 13:58:54 2007
@@ -50,7 +50,7 @@
current_subtab => 'Admin/RuleManager/',
Title => loc('All Rules') &>
-<pre>
+<!--
- List rules by order, with move up/down buttons as well as deletion.
- Clicking on a rule brings Modify.html with the usual controls:
- Match
@@ -59,15 +59,24 @@
- Argument
- StopAfterProcessingIfMatched
- Auto-vivify the action/rule/template combination?
-</pre>
+-->
-<p><&|/l&>Select a rule</&>:</p>
+<h2><&|/l&>Select a rule</&>:</h2>
<ul>
%if (@$rules == 0) {
<li><em><&|/l&>No rules found.</&></em></li>
% }
%for my $rule (@$rules) {
-<li><a href="Modify.html?id=<%$rule->id%>"><%$rule->Name%></a></li>
+<li>
+<a href="Modify.html?id=<%$rule->id%>"><% length($rule->Name) ? $rule->Name : '(#'.$rule->Id.')' %></a>
+<br />
+<% $rule->Field %> matches <tt>/<% $rule->Pattern %>/</tt><br />
+= <% $rule->Handler %> <% $rule->FormattedArgument %>
+% if ($rule->Final) {
+<br />
++ <em><&|/l&>Stop processing the rules after this one.</&></em>
+% }
+</li>
%}
</ul>
<%INIT>
Modified: rt/branches/3.6-EXPERIMENTAL-ABERDEEN/lib/RT/Extension/RuleManager.pm
==============================================================================
--- rt/branches/3.6-EXPERIMENTAL-ABERDEEN/lib/RT/Extension/RuleManager.pm (original)
+++ rt/branches/3.6-EXPERIMENTAL-ABERDEEN/lib/RT/Extension/RuleManager.pm Mon Dec 10 13:58:54 2007
@@ -5,6 +5,17 @@
use YAML::Syck '1.00';
use constant RuleManagerTemplate => 'Rule Manager Template';
use constant RuleClass => 'RT::Extension::RuleManager::Rule';
+use constant FieldOptions => (
+ 'Subject', # loc
+ 'Sender', # loc
+ 'Body', # loc
+);
+use constant HandlerOptions => (
+ 'Send no autoreply', # loc
+ 'Send the autoreply in this template:', # loc
+ "Set the ticket's owner as this user:", # loc
+ 'Move the ticket to this queue:', # loc
+);
sub create {
my $self = shift;
@@ -99,7 +110,7 @@
package RT::Extension::RuleManager::Rule;
-use constant Fields => qw( Name Field Pattern Handler Argument );
+use constant Fields => qw( Name Field Pattern Handler Argument Final );
sub id { $_[0]{_pos}+1 }
sub Id { $_[0]{_pos}+1 }
@@ -116,6 +127,11 @@
RT::Extension::RuleManager->_save($self->{_root}) if $updated;
}
+sub FormattedArgument {
+ my $self = shift;
+ ($self->Handler =~ /:$/) ? $self->Argument : '';
+}
+
BEGIN {
no strict 'refs';
no warnings 'uninitialized';
More information about the Rt-commit
mailing list