[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