[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