[Rt-commit] rt branch, 4.4/core-spawnlinkedticketinqueue, created. rt-4.2.12-436-g248b2f5

Todd Wade todd at bestpractical.com
Fri Oct 30 23:47:55 EDT 2015


The branch, 4.4/core-spawnlinkedticketinqueue has been created
        at  248b2f5d1a97ac200efee45f4f5fccb5e51e065f (commit)

- Log -----------------------------------------------------------------
commit 248b2f5d1a97ac200efee45f4f5fccb5e51e065f
Author: Todd Wade <todd at bestpractical.com>
Date:   Fri Oct 30 23:43:15 2015 -0400

    core RT-Extension-SpawnLinkedTicketInQueue
    
    Add controls to create linked tickets in the Links block on the ticket
    display page.
    
    t/web/helpers-http-cache-headers.t
    - provide a way to exclude header checking for a given helper
    - SpawnLinkedTicket can exclude cache headers because it is a redirect
    
    t/web/ticket_display_unset_fields.t
    - new code adds content that should not be there according to tests
      + update tests to check for link labels (add the : in the check)

diff --git a/share/html/Elements/ShowLinks b/share/html/Elements/ShowLinks
index 8f881b0..75dc170 100644
--- a/share/html/Elements/ShowLinks
+++ b/share/html/Elements/ShowLinks
@@ -60,6 +60,26 @@
     </td>
   </tr>
 % } }
+</table>
+<table>
+  <tr>
+    <td>
+      <form action="<% RT->Config->Get('WebPath') ."/Helpers/SpawnLinkedTicket" %>" name="SpawnLinkedTicket">
+        <input type="hidden" name="CloneTicket" value="<% $Object->id %>">
+        <input type="submit" value="<&|/l&>Create</&>" name="SpawnLinkedTicket">
+        <select name="LinkType">
+          <option value="DependsOn-new"><% loc('Depends on') %></option>
+          <option value="new-DependsOn"><% loc('Depended on by') %></option>
+          <option value="MemberOf-new"><% loc('Parents') %></option>
+          <option value="new-MemberOf"><% loc('Children') %></option>
+          <option value="RefersTo-new"><% loc('Refers to') %></option>
+          <option value="new-RefersTo"><% loc('Referred to by') %></option>
+        </select>
+        <&|/l&>Ticket in</&>
+        <& /Elements/SelectQueue, ShowNullOption => 0, Name => 'CloneQueue' &>
+      </form>
+    </td>
+  </tr>
 % # Allow people to add more rows to the table
 % $m->callback( %ARGS );
   <& /Elements/ShowCustomFields, Object => $Object, Grouping => 'Links', Table => 0 &>
diff --git a/share/html/Helpers/SpawnLinkedTicket b/share/html/Helpers/SpawnLinkedTicket
new file mode 100644
index 0000000..16db734
--- /dev/null
+++ b/share/html/Helpers/SpawnLinkedTicket
@@ -0,0 +1,60 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
+%#                                          <sales at 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 }}}
+<%INIT>
+my $query_string = $m->comp('/Elements/QueryString',
+    CloneTicket => $CloneTicket,
+    Queue       => $CloneQueue,
+    $LinkType   => $CloneTicket,
+);
+RT::Interface::Web::Redirect( RT->Config->Get('WebURL') ."Ticket/Create.html?$query_string" );
+</%INIT>
+<%ARGS>
+$CloneTicket => undef
+$CloneQueue => undef
+$LinkType => undef
+</%ARGS>
diff --git a/t/web/helpers-http-cache-headers.t b/t/web/helpers-http-cache-headers.t
index 39ef0eb..926ec95 100644
--- a/t/web/helpers-http-cache-headers.t
+++ b/t/web/helpers-http-cache-headers.t
@@ -22,6 +22,11 @@ ok $m->login, 'logged in';
 
 my $docroot = join '/', qw(share html);
 
+# files to exclude from testing headers
+my @exclude = (
+    'SpawnLinkedTicket', # results in redirect, expires header not expected
+);
+
 # find endpoints to loop over
 my @endpoints = (
     "/NoAuth/css/aileron/squished-".("0"x32).".css",
@@ -32,6 +37,7 @@ find({
     if ( -f $_ && $_ !~ m|autohandler$| ) {
       return if m{/\.[^/]+\.sw[op]$}; # vim swap files
       ( my $endpoint = $_ ) =~ s|^$docroot||;
+      return if grep $endpoint =~ m{/$_$}, @exclude;
       push @endpoints, $endpoint;
     }
   },
diff --git a/t/web/ticket_display_unset_fields.t b/t/web/ticket_display_unset_fields.t
index 448056e..8556c26 100644
--- a/t/web/ticket_display_unset_fields.t
+++ b/t/web/ticket_display_unset_fields.t
@@ -49,7 +49,7 @@ diag "test with root";
 
     $m->content_contains( "Last Contact", "has Told as root can set it" );
     for my $label (@link_labels) {
-        $m->content_contains( "$label", "has $label as root can create" );
+        $m->content_contains( "$label:", "has $label as root can create" );
     }
 
     $m->goto_ticket( $bar->id );
@@ -68,11 +68,11 @@ diag "test without ModifyTicket right";
     $m->goto_ticket( $foo->id );
     $m->content_lacks( "Last Contact", "lacks Told as it is unset" );
     for my $label ( @link_labels ) {
-        $m->content_lacks( $label, "lacks $label as it is unset" );
+        $m->content_lacks( "$label:", "lacks $label as it is unset" );
     }
 
     $m->goto_ticket( $bar->id );
-    $m->content_contains( "Depends on", "has Depends on as it is set" );
+    $m->content_contains( "Depends on:", "has Depends on as it is set" );
 }
 
 undef $m;

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


More information about the rt-commit mailing list