[Rt-commit] rtir branch, 2.9-trunk, updated. 2.6.1rc1-251-g439ae22

Ruslan Zakirov ruz at bestpractical.com
Wed Aug 10 09:16:15 EDT 2011


The branch, 2.9-trunk has been updated
       via  439ae2228be7167d4bd6153cbb4cc56c75234e81 (commit)
       via  d5b1b99ab2d84132d8630caff3437851dbad619d (commit)
       via  3fd4946aea8d6c7ea3a0dc902f68bac8fba3c6c3 (commit)
       via  64b82d086304c5e18383f15986090aecb89f19cf (commit)
       via  b678688bb84c5c5d834a8eea8001ec20c33e701f (commit)
       via  85587c406f189b68d15ec9205e3e2646207f7f1b (commit)
       via  b2325ee09dcc5764a38d6816c8621976b25fc54e (commit)
       via  2043bd7f2bcd6dda15c284edb15cd8df268b4ef9 (commit)
       via  b3c1bbce72223224d7cc02a8396879907c23e39e (commit)
       via  96dc1efb40f12324c44e8079c3015ad585d24286 (commit)
       via  1856b29eaa872dc7a5c617a1ef75d44d40dc8ac8 (commit)
      from  bd9c9e2dfefe8de707ddc64b69b8f7eee9a19bb6 (commit)

Summary of changes:
 TODO.porting_over_RT4 |   11 +-
 etc/RTIR_Config.pm    |  708 ++++++++++++++++++++++++++++++-------------------
 html/RTIR/Update.html |   97 ++++---
 3 files changed, 497 insertions(+), 319 deletions(-)

- Log -----------------------------------------------------------------
commit 96dc1efb40f12324c44e8079c3015ad585d24286
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Wed Aug 10 01:46:01 2011 +0400

    we pass another test file

diff --git a/TODO.porting_over_RT4 b/TODO.porting_over_RT4
index 25c947b..7d5ed2f 100644
--- a/TODO.porting_over_RT4
+++ b/TODO.porting_over_RT4
@@ -91,9 +91,6 @@
 
 Test Summary Report
 -------------------
-t/016-date-started.t                          (Wstat: 256 Tests: 68 Failed: 1)
-  Failed test:  40
-  Non-zero exit status: 1
 t/incident/bulk-abandon.t                     (Wstat: 65280 Tests: 87 Failed: 0)
   Non-zero exit status: 255
   Parse errors: Bad plan.  You planned 105 tests but ran 87.

commit b3c1bbce72223224d7cc02a8396879907c23e39e
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Wed Aug 10 01:49:14 2011 +0400

    update TODO

diff --git a/TODO.porting_over_RT4 b/TODO.porting_over_RT4
index 7d5ed2f..3de8b7b 100644
--- a/TODO.porting_over_RT4
+++ b/TODO.porting_over_RT4
@@ -17,6 +17,8 @@
 * make sure we release DBIx::SB with cud-from-select branch
   merged and depend on it
 
+* upgrade script that inserts new actions, conditions and scrips
+
 * upgrade script that renames wrongly named scrips, we have
   a few scrips that named wrongly
 

commit 2043bd7f2bcd6dda15c284edb15cd8df268b4ef9
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Wed Aug 10 11:42:12 2011 +0400

    make Update.html more consistent with RTIR
    
    * side-by-side compatible
    * order of inputs

diff --git a/html/RTIR/Update.html b/html/RTIR/Update.html
index b6f58af..20c5254 100644
--- a/html/RTIR/Update.html
+++ b/html/RTIR/Update.html
@@ -26,8 +26,8 @@
 <& /Elements/Tabs &>
 
 % $m->callback(CallbackName => 'BeforeActionList', ARGSRef => \%ARGS, Ticket => $Ticket);
-<form action="Update.html" name="TicketUpdate" 
-    method="post" enctype="multipart/form-data">
+<form action="Update.html" name="TicketUpdate" method="post" enctype="multipart/form-data">
+<input type="hidden" name="id" value="<% $id %>" />
 <input type="hidden" name="QuoteTransaction" value="<% $ARGS{'QuoteTransaction'} || '' %>" />
 % if ( $ARGS{'Status'} ) {
 <input type="hidden" name="DefaultStatus" value="<% $DefaultStatus %>" />
@@ -38,14 +38,14 @@
 
 <& /Elements/GnuPG/SignEncryptWidget:ShowIssues, self => $gnupg_widget &>
 
-<table>
-<tr><td><a href="Edit.html?id=<% $id %>"><&|/l&>Correspondents</&></a></td><td align="right" colspan=2></td></tr>
+<div id="ticket-update-metadata">
+<&|/Widgets/TitleBox, title => loc('Correspondents'), title_href => "Edit.html?id=$id" &>
 
+<table width="100%" border="0">
 
-% foreach my $type (qw(Requestors Cc AdminCc)) { 
-<tr><td>&nbsp;</td><td align="right" valign="top">
-<%loc($type)%>:
-</td><td valign="top" align="left">
+% foreach my $type (qw(Requestors Cc AdminCc)) {
+<tr><td class="label"><% loc($type) %>:</td>
+<td class="value">
 <ul class="userlist">
 % my $people = $Ticket->$type()->UserMembersObj;
 % while (my $person = $people->Next) {
@@ -56,14 +56,13 @@
 </td></tr>
 % }
 </table>
-<hr />
+</&>
 
-<table border="0">
+<&|/Widgets/TitleBox, title => loc('Ticket and Transaction') &>
+<table width="100%" border="0">
 
-<tr><td align="right"><&|/l&>Status</&>:</td>
-<td><% loc($Ticket->Status) %></td></tr>
-<tr><td align="right"><&|/l&>Update Type</&>:</td>
-<td><select name="UpdateType">
+<tr><td class="label"><&|/l&>Update Type</&>:</td>
+<td class="value"><select name="UpdateType">
 % if ($CanComment) {
   <option value="private" <% $CommentDefault || '' %>><&|/l&>Comments (Not sent to requestors)</&></option>
 % }
@@ -72,27 +71,57 @@
 % }
 </select>
 </td></tr>
-<tr><td class="label">
-<&|/l&>Owner</&>:  
-</td><td>
-<& /Elements/SelectOwner, 
-    Name=>"Owner", 
-    Default => ($ARGS{Owner}||$Ticket->Owner()||$session{'CurrentUser'}->Id||undef), 
-    QueueObj => $Ticket->QueueObj, 
-    TicketObj => $Ticket &>
-<&|/l&>Worked</&>: <& /Elements/EditTimeValue,
-    Name    => 'UpdateTimeWorked',
-    Default => $ARGS{'UpdateTimeWorked'} || $Ticket->TimeWorked || '',
+
+<tr>
+    <td class="label"><&|/l&>Status</&>:</td>
+    <td class="value"><% loc($Ticket->Status) %></td>
+</tr>
+
+<& /Ticket/Elements/EditBasics,
+    TicketObj => $Ticket,
+    InTable   => 1,
+    fields    => [
+        {   name => 'Owner',
+            comp => '/Elements/SelectOwner',
+            args => {
+                Name         => "Owner",
+                TicketObj    => $Ticket,
+                QueueObj     => $Ticket->QueueObj,
+                DefaultLabel => loc("[_1] (Unchanged)", $m->scomp(
+                    '/Elements/ShowUser', User => $Ticket->OwnerObj
+                ) ),
+                Default      => $ARGS{'Owner'} || $Ticket->Owner
+                    || $session{'CurrentUser'}->id,
+            }
+        },
+        {   name => 'Worked',
+            comp => '/Elements/EditTimeValue',
+            args => {
+                Name => 'UpdateTimeWorked',
+                Default => $ARGS{UpdateTimeWorked}||'',
+                InUnits => $ARGS{'UpdateTimeWorked-TimeUnits'}||'minutes',
+            }
+        },
+    ],
 &>
-</td></tr>
-<tr><td align="right"><&|/l&>Subject</&>:</td><td> <input type="text" name="UpdateSubject" size="60" value="<% $Subject || '' %>" /></td></tr>
 
-<& /RTIR/Elements/UpdateData, %ARGS, Ticket => $Ticket, Type => 'Incident', GnuPGWidget => $gnupg_widget &>
+</table></&></div>
 
-<input type="hidden" name="id" value="<% $id %>" /><br />
-</table>
+<div id="ticket-update-message">
+<&|/Widgets/TitleBox, title => loc('Message'), class => 'messagedetails' &>
+<table width="100%" border="0">
+
+<tr>
+    <td class="label"><&|/l&>Subject</&>:</td>
+    <td class="value"><input type="text" name="UpdateSubject" value="<% $Subject || '' %>" /></td>
+</tr>
+
+<& /RTIR/Elements/UpdateData, %ARGS, Ticket => $Ticket, Type => 'Incident', GnuPGWidget => $gnupg_widget &>
 
 <& /Elements/Submit, Name => 'SubmitTicket' &>
+
+</table></&></div>
+
 </form>
 
 <%INIT>

commit b2325ee09dcc5764a38d6816c8621976b25fc54e
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Wed Aug 10 11:44:26 2011 +0400

    update TODO

diff --git a/TODO.porting_over_RT4 b/TODO.porting_over_RT4
index 3de8b7b..c9aa5f3 100644
--- a/TODO.porting_over_RT4
+++ b/TODO.porting_over_RT4
@@ -32,11 +32,17 @@
 
 * scan code for hardcoded statuses
 
+* use ShowSimplifiedRecipients
+
+* tranasaction custom fields
+
 * protection from mail loops by filtering watchers' email addresses on
   Create/PeopleModify, like we have in RT
 
 === FIXES
 
+* Don't see Articles on IR's Update.html
+
 * BulkAbandon needs a lot of love. see TODO comments
 
 * BulkAbandon misses Query arguments when updated

commit 64b82d086304c5e18383f15986090aecb89f19cf
Merge: b2325ee b678688
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Wed Aug 10 15:17:24 2011 +0400

    Merge branch '2.6-trunk' into 2.9-trunk

diff --cc etc/RTIR_Config.pm
index 91295b8,b322c02..03da24d
--- a/etc/RTIR_Config.pm
+++ b/etc/RTIR_Config.pm
@@@ -301,145 -218,246 +218,370 @@@ Set(@RTIR_HomepageComponents, qw
      RefreshHomepage
  ));
  
- # if true then Blocks queue functionality inactive and disabled
+ =item C<@Active_MakeClicky>
+ 
+ Define list of enabled MakeClicky extensions; RTIR extends the
+ default 'httpurl', and additionally provides 'ip', 'ipdecimal',
+ 'email', 'domain' and 'RIPE'.
+ 
+ It is possible to add your own types of clicky links using callbacks;
+ see F<html/Callbacks/RTIR/Elements/MakeClicky/Default> for an example.
+ 
+ B<NOTE> that list is order-sensetive, when one action matches text
+ other actions don't apply to the same matched text.
+ 
+ By default RTIR enables 'httpurl_overwrite', 'ip', 'email' and 'domain'.
+ 
+ =cut
+ 
+ Set(@Active_MakeClicky, qw(httpurl_overwrite ip email domain));
+ 
+ =back
+ 
+ =head1 Custom Fields
+ 
+ =over 4
+ 
+ =item C<%RTIR_CustomFieldsDefaults>
+ 
+ Set the defaults for RTIR custom fields. Values are case-sensitive.
+ 
+ =cut
+ 
+ Set(
+     %RTIR_CustomFieldsDefaults,
+     SLA => {
+         InHours    => 'Full service',
+         OutOfHours => 'Full service: out of hours',
+     },
+     'How Reported'  => "",
+     'Reporter Type' => "",
+     IP              => "",
+     Netmask         => "",
+     Port            => "",
+     'Where Blocked' => "",
+     Function        => "",
+     Classification  => "",
+     Description     => "",
+     Resolution      => {
+         resolved => "successfully resolved",
+         rejected => "no resolution reached",
+     },
+     Constituency => 'EDUNET',
+ );
+ 
+ =item C<$_RTIR_Constituency_Propagation>
+ 
+ Set constituency propagation algorithm. Valid values are 'no',
+ 'inherit' and 'reject', by default 'no' propagation happens.
+ 
+ Read more about constituencies in F<lib/RT/IR/Constituency.pod>.
+ Algorithms are described in 'Changing the value' chapter.
+ 
+ =cut
+ 
+ Set( $_RTIR_Constituency_Propagation,    'no' );
+ 
+ =back
+ 
+ =head1 Blocks
+ 
+ =over 4
+ 
+ =item C<$RTIR_DisableBlocksQueue>
+ 
+ If true then Blocks queue functionality inactive and disabled.
+ 
+ =cut
+ 
  Set($RTIR_DisableBlocksQueue, 0);
  
- # When requestor replies on the block in pending state RTIR
- # changes state, you can set regular expresion so state would
- # be changed only when it matches
+ =item C<$RTIR_BlockAproveActionRegexp>
+ 
+ When requestor replies on the block in pending state RTIR
+ changes state, you can set regular expresion so state would
+ be changed only when content matches the regexp.
+ 
+ =cut
+ 
  Set($RTIR_BlockAproveActionRegexp, undef);
  
- # Define list of enabled MakeClicky extensions; RTIR extends the
- # default 'httpurl', and additionally provides 'ip', 'ipdecimal',
- # 'email', 'domain' and 'RIPE'.  It is possible to add your own types
- # of clicky links using callbacks; see
- # html/Callbacks/RTIR/Elements/MakeClicky/Default for an example.
- # NOTE that list is order-sensetive, when one action matches text
- # other actions don't apply to the same matched text
- Set(@Active_MakeClicky, qw(httpurl_overwrite ip email domain));
+ =back
+ 
+ =head1 Research Tools
+ 
+ RTIR comes with a few research tools available at F<Tools/Lookup.html>.
+ 
+ =over 4
+ 
+ =item C<@RTIRResearchTools>
+ 
+ Which research tools should RTIR display for address/domain lookups.
+ 
+ For each tool listed in this section, RTIR will attempt to display
+ using the following mason components:
+ 
+     html/RTIR/Tools/Elements/ToolForm____
+     html/RTIR/Tools/Elements/ToolResults____
+ 
+ =cut
+ 
+ Set( @RTIRResearchTools, (qw(Traceroute Whois Iframe)));
+ 
+ =item C<$RTIRIframeResearchToolConfig>
+ 
+ One of the research tools available in RTIR allows you to
+ configure a set of search URLs that incident handlers
+ can use to open searches in IFRAMES.
+ 
+ Entries are keyed by integer in the order you'd like to see
+ them in the dropdown on the research page. Each entry consists
+ of a hashref containing "FriendlyName" and "URL". The URLs will
+ be evaluated to replace __SearchTerm__ with the user's current
+ search term.
+ 
+ =cut
+ 
+ Set($RTIRIframeResearchToolConfig, {
+     1 => { FriendlyName => 'Google', URL => 'https://encrypted.google.com/search?q=__SearchTerm__' },
+     2 => { FriendlyName => 'CVE', URL => 'http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=__SearchTerm__'},
+     3 => { FriendlyName => 'TrustedSource.org', URL => 'http://www.trustedsource.org/query/__SearchTerm__'},
+     4 => { FriendlyName => 'McAfee SiteAdvisor', URL => 'http://www.siteadvisor.com/sites/__SearchTerm__'},
+     5 => { FriendlyName => 'BFK DNS Logger', URL => 'http://www.bfk.de/bfk_dnslogger.html?query=__SearchTerm__#result'}
+ } );
+ 
+ =item C<$TracerouteCommand>
+ 
+ Path to traceroute command.
+ 
+ =cut
+ 
+ Set($TracerouteCommand, '/usr/sbin/traceroute');
+ 
+ =item C<$whois>
+ 
+ Whois servers for the research tool.
+ 
+ Host is of the form "hostname:port"
+ 
+ =cut
+ 
+ Set($whois, {
+     1 => {
+         Host         => "whois.iana.org",
+         FriendlyName => "IANA",
+     },
+     5 => {
+         Host         => "whois.ripe.net",
+         FriendlyName => "RIPE",
+     },
+     2 => {
+         Host         => "whois.internic.net",
+         FriendlyName => "INTERNIC",
+     },
+     3 => {
+         Host         => "whois.arin.net",
+         FriendlyName => "ARIN",
+     },
+ } );
+ 
+ =back
+ 
+ =head1 Service Level Agreements (SLA)
+ 
+ RTIR comes with very basic SLA implementation. Depending on the following
+ options Due date of tickets is maintained.
+ 
+ =over 4
+ 
+ =item C<$SLAModule>
+ 
+ Set the name of the Business::SLA class. Use this if you have
+ a custom SLA module, for example:
+ 
+     Set($SLAModule, 'Business::MySLA');
+ 
+ =cut
+ 
+ Set($SLAModule, '');
+ 
+ =item C<$SLA>
+ 
+ Define service levels and set the number of minutes.
+ 
+ =cut
+ 
+ Set($SLA, {
+     'Full service'               => { BusinessMinutes => 60,    RealMinutes => 0 },
+     'Full service: out of hours' => { BusinessMinutes => 120,   RealMinutes => 0 },
+     'Reduced service'            => { BusinessMinutes => 120,   RealMinutes => 0 },
+     'Now (in business hours)'    => { BusinessMinutes => 0,     RealMinutes => 0 },
+     '60 Real Minutes'            => { BusinessMinutes => undef, RealMinutes => 60 },
+ } );
+ 
+ =item C<$BusinessHours>
+ 
+ Set the Business Hours for your organization, for example:
+ 
+     Set($BusinessHours, {
+         0 => { Name => 'Sunday', Start => undef, End => undef },
+         1 => { Name => 'Monday', Start => '09:00', End => '18:00' },
+         2 => { Name => 'Tuesday', Start => '09:00', End => '18:00' },
+         ...
+     } );
+ 
+ If left unset, defaults are Monday through Friday 09:00 to 18:00
+ 
+ =cut
+ 
+ Set( $BusinessHours, undef );
+ 
+ =item C<$SLA_Response_InHours> and C<$SLA_Response_OutOfHours>
+ 
+ Set service levels for responses in business hours and out,
+ correspondingly.
+ 
+ =cut
+ 
+ Set($SLA_Response_InHours,    'Now (in business hours)');
+ Set($SLA_Response_OutOfHours, 'Now (in business hours)');
+ 
+ =item C<$SLA_Reopen_InHours> and C<$SLA_Reopen_OutOfHours>
+ 
+ Set service levels for tickets re-opened in business hours and out,
+ correspondingly.
+ 
+ =cut
+ 
+ Set($SLA_Reopen_InHours,    'Full service');
+ Set($SLA_Reopen_OutOfHours, 'Full service: out of hours');
+ 
+ =back
+ 
+ =cut
  
 +Set(
 +    %Lifecycles,
 +    incidents => {
 +        initial         => [],
 +        active          => ['open'],
 +        inactive        => ['resolved', 'abandoned'],
 +
 +        defaults => {
 +            on_create => 'open',
 +            on_merge  => 'resolved',
 +        },
 +
 +        transitions => {
 +            # from   => [ to list ],
 +            ''        => [qw(open)],
 +            open      => [qw(resolved abandoned)],
 +            resolved  => [qw(open)],
 +            abandoned => [qw(open)],
 +        },
 +        rights  => { '* -> *' => 'ModifyTicket', },
 +        actions => [
 +            'open -> resolved'  => {
 +                label => 'Resolve', update => 'Comment',
 +                All => 1, SelectAllTickets => 1,
 +            },
 +            'open -> resolved'  => {
 +                label => 'Quick Resolve',
 +            },
 +            'open -> abandoned' => {
 +                label => 'Abandon', update => 'Comment',
 +                All => 1, SelectAllTickets => 1,
 +            },
 +            '* -> open'  => {
 +                label => 'Re-open',
 +                All => 1, SelectAllTickets => 1,
 +            },
 +        ],
 +    },
 +    incident_reports => {
 +        initial         => [ 'new' ],
 +        active          => [ 'open' ],
 +        inactive        => [ 'resolved', 'rejected' ],
 +
 +        defaults => {
 +            on_create => 'new',
 +            on_merge  => 'resolved',
 +            approved  => 'open',
 +            denied    => 'rejected',
 +        },
 +
 +        transitions => {
 +            # from   => [ to list ],
 +            ''       => [qw(new open resolved)],
 +            new      => [qw(open resolved rejected)],
 +            open     => [qw(resolved rejected)],
 +            resolved => [qw(open)],
 +            rejected => [qw(open)],
 +        },
 +        rights  => { '* -> *' => 'ModifyTicket', },
 +        actions => [
 +            'new -> open'      => { label => 'Open It', update => 'Respond' },
 +            '* -> resolved'    => { label => 'Resolve', update => 'Comment' },
 +            '* -> resolved'    => { label => 'Quick Resolve' },
 +            '* -> rejected'    =>
 +                { label => 'Reject',  update => 'Respond', TakeOrStealFirst => 1 },
 +            '* -> rejected'    => { label => 'Quick Reject', TakeOrStealFirst => 1 },
 +            '* -> open'        => { label => 'Re-open' },
 +        ],
 +    },
 +    investigations => {
 +        initial         => [],
 +        active          => ['open'],
 +        inactive        => ['resolved'],
 +
 +        defaults => {
 +            on_create => 'open',
 +            on_merge  => 'resolved',
 +            approved  => 'open',
 +            denied    => 'resolved',
 +        },
 +
 +        transitions => {
 +            # from   => [ to list ],
 +            ''       => [qw(open resolved)],
 +            open     => [qw(resolved)],
 +            resolved => [qw(open)],
 +        },
 +        rights  => { '* -> *' => 'ModifyTicket', },
 +        actions => [
 +            '* -> resolved'    => { label => 'Resolve', update => 'Comment' },
 +            '* -> resolved'    => { label => 'Quick Resolve' },
 +            'resolved -> open' => { label => 'Re-open' },
 +        ],
 +    },
 +    blocks => {
 +        initial         => ['pending activation'],
 +        active          => [ 'active', 'pending removal' ],
 +        inactive        => ['removed'],
 +
 +        defaults => {
 +            on_create => 'pending activation',
 +            on_merge  => 'removed',
 +            approved  => 'active',
 +            denied    => 'removed',
 +        },
 +
 +        transitions => {
 +            ''                   => [ 'pending activation', 'active' ],
 +            'pending activation' => [ 'active', 'removed' ],
 +            active               => [ 'pending removal', 'removed' ],
 +            'pending removal'    => [ 'removed', 'active' ],
 +            removed              => [ 'active' ],
 +        },
 +        rights  => { '* -> *' => 'ModifyTicket', },
 +        actions => [
 +            '* -> active'  => { label => 'Activate', update => 'Comment' },
 +            '* -> removed' => { label => 'Remove', update => 'Comment' },
 +            '* -> removed' => { label => 'Quick Remove' },
 +            '* -> pending removal' =>
 +                { label => 'Pending Removal', update => 'Comment' },
 +        ],
 +    },
 +);
 +
  1;

commit 3fd4946aea8d6c7ea3a0dc902f68bac8fba3c6c3
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Wed Aug 10 15:21:44 2011 +0400

    move and PODify %Lifecycles config option

diff --git a/etc/RTIR_Config.pm b/etc/RTIR_Config.pm
index 03da24d..158cc81 100644
--- a/etc/RTIR_Config.pm
+++ b/etc/RTIR_Config.pm
@@ -20,6 +20,139 @@ Set the name of the RTIR application.
 
 Set( $rtirname, RT->Config->Get('rtname') );
 
+=item C<%Lifecycles>
+
+RTIR defines four lifecycles for each its queue: 'incidents',
+'incident_reports', 'investigations' and 'blocks'.
+
+Read F<etc/RT_Config.pm> which describes this option in details.
+
+=cut
+
+Set(
+    %Lifecycles,
+    incidents => {
+        initial         => [],
+        active          => ['open'],
+        inactive        => ['resolved', 'abandoned'],
+
+        defaults => {
+            on_create => 'open',
+            on_merge  => 'resolved',
+        },
+
+        transitions => {
+            # from   => [ to list ],
+            ''        => [qw(open)],
+            open      => [qw(resolved abandoned)],
+            resolved  => [qw(open)],
+            abandoned => [qw(open)],
+        },
+        rights  => { '* -> *' => 'ModifyTicket', },
+        actions => [
+            'open -> resolved'  => {
+                label => 'Resolve', update => 'Comment',
+                All => 1, SelectAllTickets => 1,
+            },
+            'open -> resolved'  => {
+                label => 'Quick Resolve',
+            },
+            'open -> abandoned' => {
+                label => 'Abandon', update => 'Comment',
+                All => 1, SelectAllTickets => 1,
+            },
+            '* -> open'  => {
+                label => 'Re-open',
+                All => 1, SelectAllTickets => 1,
+            },
+        ],
+    },
+    incident_reports => {
+        initial         => [ 'new' ],
+        active          => [ 'open' ],
+        inactive        => [ 'resolved', 'rejected' ],
+
+        defaults => {
+            on_create => 'new',
+            on_merge  => 'resolved',
+            approved  => 'open',
+            denied    => 'rejected',
+        },
+
+        transitions => {
+            # from   => [ to list ],
+            ''       => [qw(new open resolved)],
+            new      => [qw(open resolved rejected)],
+            open     => [qw(resolved rejected)],
+            resolved => [qw(open)],
+            rejected => [qw(open)],
+        },
+        rights  => { '* -> *' => 'ModifyTicket', },
+        actions => [
+            'new -> open'      => { label => 'Open It', update => 'Respond' },
+            '* -> resolved'    => { label => 'Resolve', update => 'Comment' },
+            '* -> resolved'    => { label => 'Quick Resolve' },
+            '* -> rejected'    =>
+                { label => 'Reject',  update => 'Respond', TakeOrStealFirst => 1 },
+            '* -> rejected'    => { label => 'Quick Reject', TakeOrStealFirst => 1 },
+            '* -> open'        => { label => 'Re-open' },
+        ],
+    },
+    investigations => {
+        initial         => [],
+        active          => ['open'],
+        inactive        => ['resolved'],
+
+        defaults => {
+            on_create => 'open',
+            on_merge  => 'resolved',
+            approved  => 'open',
+            denied    => 'resolved',
+        },
+
+        transitions => {
+            # from   => [ to list ],
+            ''       => [qw(open resolved)],
+            open     => [qw(resolved)],
+            resolved => [qw(open)],
+        },
+        rights  => { '* -> *' => 'ModifyTicket', },
+        actions => [
+            '* -> resolved'    => { label => 'Resolve', update => 'Comment' },
+            '* -> resolved'    => { label => 'Quick Resolve' },
+            'resolved -> open' => { label => 'Re-open' },
+        ],
+    },
+    blocks => {
+        initial         => ['pending activation'],
+        active          => [ 'active', 'pending removal' ],
+        inactive        => ['removed'],
+
+        defaults => {
+            on_create => 'pending activation',
+            on_merge  => 'removed',
+            approved  => 'active',
+            denied    => 'removed',
+        },
+
+        transitions => {
+            ''                   => [ 'pending activation', 'active' ],
+            'pending activation' => [ 'active', 'removed' ],
+            active               => [ 'pending removal', 'removed' ],
+            'pending removal'    => [ 'removed', 'active' ],
+            removed              => [ 'active' ],
+        },
+        rights  => { '* -> *' => 'ModifyTicket', },
+        actions => [
+            '* -> active'  => { label => 'Activate', update => 'Comment' },
+            '* -> removed' => { label => 'Remove', update => 'Comment' },
+            '* -> removed' => { label => 'Quick Remove' },
+            '* -> pending removal' =>
+                { label => 'Pending Removal', update => 'Comment' },
+        ],
+    },
+);
+
 =back
 
 =head1 Web Interface Configuration
@@ -459,129 +592,4 @@ Set($SLA_Reopen_OutOfHours, 'Full service: out of hours');
 =back
 
 =cut
-
-Set(
-    %Lifecycles,
-    incidents => {
-        initial         => [],
-        active          => ['open'],
-        inactive        => ['resolved', 'abandoned'],
-
-        defaults => {
-            on_create => 'open',
-            on_merge  => 'resolved',
-        },
-
-        transitions => {
-            # from   => [ to list ],
-            ''        => [qw(open)],
-            open      => [qw(resolved abandoned)],
-            resolved  => [qw(open)],
-            abandoned => [qw(open)],
-        },
-        rights  => { '* -> *' => 'ModifyTicket', },
-        actions => [
-            'open -> resolved'  => {
-                label => 'Resolve', update => 'Comment',
-                All => 1, SelectAllTickets => 1,
-            },
-            'open -> resolved'  => {
-                label => 'Quick Resolve',
-            },
-            'open -> abandoned' => {
-                label => 'Abandon', update => 'Comment',
-                All => 1, SelectAllTickets => 1,
-            },
-            '* -> open'  => {
-                label => 'Re-open',
-                All => 1, SelectAllTickets => 1,
-            },
-        ],
-    },
-    incident_reports => {
-        initial         => [ 'new' ],
-        active          => [ 'open' ],
-        inactive        => [ 'resolved', 'rejected' ],
-
-        defaults => {
-            on_create => 'new',
-            on_merge  => 'resolved',
-            approved  => 'open',
-            denied    => 'rejected',
-        },
-
-        transitions => {
-            # from   => [ to list ],
-            ''       => [qw(new open resolved)],
-            new      => [qw(open resolved rejected)],
-            open     => [qw(resolved rejected)],
-            resolved => [qw(open)],
-            rejected => [qw(open)],
-        },
-        rights  => { '* -> *' => 'ModifyTicket', },
-        actions => [
-            'new -> open'      => { label => 'Open It', update => 'Respond' },
-            '* -> resolved'    => { label => 'Resolve', update => 'Comment' },
-            '* -> resolved'    => { label => 'Quick Resolve' },
-            '* -> rejected'    =>
-                { label => 'Reject',  update => 'Respond', TakeOrStealFirst => 1 },
-            '* -> rejected'    => { label => 'Quick Reject', TakeOrStealFirst => 1 },
-            '* -> open'        => { label => 'Re-open' },
-        ],
-    },
-    investigations => {
-        initial         => [],
-        active          => ['open'],
-        inactive        => ['resolved'],
-
-        defaults => {
-            on_create => 'open',
-            on_merge  => 'resolved',
-            approved  => 'open',
-            denied    => 'resolved',
-        },
-
-        transitions => {
-            # from   => [ to list ],
-            ''       => [qw(open resolved)],
-            open     => [qw(resolved)],
-            resolved => [qw(open)],
-        },
-        rights  => { '* -> *' => 'ModifyTicket', },
-        actions => [
-            '* -> resolved'    => { label => 'Resolve', update => 'Comment' },
-            '* -> resolved'    => { label => 'Quick Resolve' },
-            'resolved -> open' => { label => 'Re-open' },
-        ],
-    },
-    blocks => {
-        initial         => ['pending activation'],
-        active          => [ 'active', 'pending removal' ],
-        inactive        => ['removed'],
-
-        defaults => {
-            on_create => 'pending activation',
-            on_merge  => 'removed',
-            approved  => 'active',
-            denied    => 'removed',
-        },
-
-        transitions => {
-            ''                   => [ 'pending activation', 'active' ],
-            'pending activation' => [ 'active', 'removed' ],
-            active               => [ 'pending removal', 'removed' ],
-            'pending removal'    => [ 'removed', 'active' ],
-            removed              => [ 'active' ],
-        },
-        rights  => { '* -> *' => 'ModifyTicket', },
-        actions => [
-            '* -> active'  => { label => 'Activate', update => 'Comment' },
-            '* -> removed' => { label => 'Remove', update => 'Comment' },
-            '* -> removed' => { label => 'Quick Remove' },
-            '* -> pending removal' =>
-                { label => 'Pending Removal', update => 'Comment' },
-        ],
-    },
-);
-
 1;

commit d5b1b99ab2d84132d8630caff3437851dbad619d
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Wed Aug 10 15:29:01 2011 +0400

    place submit button properly

diff --git a/html/RTIR/Update.html b/html/RTIR/Update.html
index 20c5254..874bab3 100644
--- a/html/RTIR/Update.html
+++ b/html/RTIR/Update.html
@@ -118,9 +118,11 @@
 
 <& /RTIR/Elements/UpdateData, %ARGS, Ticket => $Ticket, Type => 'Incident', GnuPGWidget => $gnupg_widget &>
 
+</table>
+
 <& /Elements/Submit, Name => 'SubmitTicket' &>
 
-</table></&></div>
+</&></div>
 
 </form>
 

commit 439ae2228be7167d4bd6153cbb4cc56c75234e81
Author: Ruslan Zakirov <ruz at bestpractical.com>
Date:   Wed Aug 10 17:15:01 2011 +0400

    replace block that showed watchers with recipients
    
    enable block by default when RTIR is installed

diff --git a/etc/RTIR_Config.pm b/etc/RTIR_Config.pm
index 158cc81..6332367 100644
--- a/etc/RTIR_Config.pm
+++ b/etc/RTIR_Config.pm
@@ -331,6 +331,14 @@ on the edit screen.
 
 Set($DisplayAfterEdit, 1);
 
+=item C<$SimplifiedRecipients>
+
+Set to show list of recipients above reply box.
+
+=cut
+
+Set( $SimplifiedRecipients, 1 );
+
 =item C<@RTIR_HomepageComponents>
 
 Components that available to add on the first page of the RTIR.
diff --git a/html/RTIR/Update.html b/html/RTIR/Update.html
index 874bab3..0c401b6 100644
--- a/html/RTIR/Update.html
+++ b/html/RTIR/Update.html
@@ -39,25 +39,6 @@
 <& /Elements/GnuPG/SignEncryptWidget:ShowIssues, self => $gnupg_widget &>
 
 <div id="ticket-update-metadata">
-<&|/Widgets/TitleBox, title => loc('Correspondents'), title_href => "Edit.html?id=$id" &>
-
-<table width="100%" border="0">
-
-% foreach my $type (qw(Requestors Cc AdminCc)) {
-<tr><td class="label"><% loc($type) %>:</td>
-<td class="value">
-<ul class="userlist">
-% my $people = $Ticket->$type()->UserMembersObj;
-% while (my $person = $people->Next) {
-<li><& /RTIR/ShowUser, id => $person->id &>
-</li>
-% }
-</ul>
-</td></tr>
-% }
-</table>
-</&>
-
 <&|/Widgets/TitleBox, title => loc('Ticket and Transaction') &>
 <table width="100%" border="0">
 
@@ -108,6 +89,9 @@
 </table></&></div>
 
 <div id="ticket-update-message">
+
+<& /Ticket/Elements/ShowSimplifiedRecipients, %ARGS, TicketObj => $Ticket &>
+
 <&|/Widgets/TitleBox, title => loc('Message'), class => 'messagedetails' &>
 <table width="100%" border="0">
 

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


More information about the Rt-commit mailing list