summaryrefslogtreecommitdiff
path: root/rt/share/html/m/ticket
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2013-06-04 00:21:24 -0700
committerIvan Kohler <ivan@freeside.biz>2013-06-04 00:21:24 -0700
commit679854b8bbc65d112071111bbd7f34a6a481fb30 (patch)
treedda0862fdf7853f4f61e4cf155c8bbc93768c994 /rt/share/html/m/ticket
parent9b328d940af56b9924a342192ebb0790478fa705 (diff)
RT 4.0.13
Diffstat (limited to 'rt/share/html/m/ticket')
-rw-r--r--rt/share/html/m/ticket/autohandler47
-rw-r--r--rt/share/html/m/ticket/create104
-rw-r--r--rt/share/html/m/ticket/history49
-rw-r--r--rt/share/html/m/ticket/reply134
-rw-r--r--rt/share/html/m/ticket/select_create_queue47
-rw-r--r--rt/share/html/m/ticket/show88
6 files changed, 365 insertions, 104 deletions
diff --git a/rt/share/html/m/ticket/autohandler b/rt/share/html/m/ticket/autohandler
index ac24959a1..30cdc0621 100644
--- a/rt/share/html/m/ticket/autohandler
+++ b/rt/share/html/m/ticket/autohandler
@@ -1,3 +1,50 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC
+%# <sales@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>
# Redirect to the approvals view if we're trying to get an approvals ticket
MaybeRedirectToApproval(
diff --git a/rt/share/html/m/ticket/create b/rt/share/html/m/ticket/create
index 052a1a55f..9fd04e436 100644
--- a/rt/share/html/m/ticket/create
+++ b/rt/share/html/m/ticket/create
@@ -1,3 +1,50 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC
+%# <sales@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 }}}
<%ARGS>
$QuoteTransaction => undef
$CloneTicket => undef
@@ -93,7 +140,7 @@ my @results;
my $title = loc("Create a ticket");
-my $QueueObj = new RT::Queue($session{'CurrentUser'});
+my $QueueObj = RT::Queue->new($session{'CurrentUser'});
$QueueObj->Load($Queue) || Abort(loc("Queue could not be loaded."));
$m->callback( QueueObj => $QueueObj, title => \$title, results => \@results, ARGSRef => \%ARGS );
@@ -108,33 +155,7 @@ my $ValidCFs = $m->comp(
ARGSRef => \%ARGS
);
-# {{{ deal with deleting uploaded attachments
-foreach my $key (keys %ARGS) {
- if ($key =~ m/^DeleteAttach-(.+)$/) {
- delete $session{'Attachments'}{$1};
- }
- $session{'Attachments'} = { %{$session{'Attachments'} || {}} };
-}
-# }}}
-
-# {{{ store the uploaded attachment in session
-if ($ARGS{'Attach'}) { # attachment?
- my $attachment = MakeMIMEEntity(
- AttachmentFieldName => 'Attach'
- );
-
- my $file_path = Encode::decode_utf8("$ARGS{'Attach'}");
- $session{'Attachments'} = {
- %{$session{'Attachments'} || {}},
- $file_path => $attachment,
- };
-}
-# }}}
-
-# delete temporary storage entry to make WebUI clean
-unless (keys %{$session{'Attachments'}} and $ARGS{'id'} eq 'new') {
- delete $session{'Attachments'};
-}
+ProcessAttachments(ARGSRef => \%ARGS);
my $checks_failure = 0;
@@ -208,7 +229,7 @@ if ((!exists $ARGS{'AddMoreAttach'}) and (defined($ARGS{'id'}) and $ARGS{'id'} e
<%perl>
$showrows->(
- loc("Subject") => '<input name="Subject" size="30" maxsize="200" value="'.$escape->($ARGS{Subject} || '').'" />');
+ loc("Subject") => '<input type="text" name="Subject" size="30" maxsize="200" value="'.$escape->($ARGS{Subject} || '').'" />');
</%perl>
<span class="content-label label"><%loc("Describe the issue below")%></span>
<& /Elements/MessageBox, exists $ARGS{Content} ? (Default => $ARGS{Content}, IncludeSignature => 0 ) : ( QuoteTransaction => $QuoteTransaction ), Height => 5 &>
@@ -234,9 +255,9 @@ $showrows->(
$m->scomp(
"/Elements/SelectStatus",
Name => "Status",
- Default => $ARGS{Status} || 'new',
+ QueueObj => $QueueObj,
+ Default => $ARGS{Status} || $QueueObj->Lifecycle->DefaultOnCreate,
DefaultValue => 0,
- SkipDeleted => 1
),
loc("Owner") =>
@@ -245,7 +266,7 @@ $showrows->(
"/Elements/SelectOwner",
Name => "Owner",
QueueObj => $QueueObj,
- Default => $ARGS{Owner} || $RT::Nobody->Id,
+ Default => $ARGS{Owner} || RT->Nobody->Id,
DefaultValue => 0
),
@@ -268,7 +289,7 @@ $showrows->(
loc("Admin Cc") =>
$m->scomp( "/Elements/EmailInput", Name => 'AdminCc', Size => '40', Default => $ARGS{AdminCc} )
- . '<span class="comment" colspan="2"><i><font size="-2">'
+ . '<span class="comment"><i><font size="-2">'
. loc(
"(Sends a carbon-copy of this update to a comma-delimited list of administrative email addresses. These people <strong>will</strong> receive future updates.)"
)
@@ -277,13 +298,11 @@ $showrows->(
);
+</%perl>
-$m->scomp("/Ticket/Elements/EditCustomFields", %ARGS, QueueObj => $QueueObj );
-
-
-$m->scomp("/Ticket/Elements/EditTransactionCustomFields", %ARGS, QueueObj => $QueueObj );
+<& /Ticket/Elements/EditCustomFields, %ARGS, QueueObj => $QueueObj &>
+<& /Ticket/Elements/EditTransactionCustomFields, %ARGS, QueueObj => $QueueObj &>
-</%perl>
% if (exists $session{'Attachments'}) {
<%loc("Attached file") %>
@@ -300,15 +319,16 @@ $m->scomp("/Ticket/Elements/EditTransactionCustomFields", %ARGS, QueueObj => $Qu
$showrows->(
loc("Attach file") =>
- '<div class="value" colspan="5">
-<input type="file" name="Attach" />
-<input type="submit" class="button" name="AddMoreAttach" value="' . loc("Add More Files") . '" />'
+ '<input type="file" name="Attach" />
+<input type="submit" class="button" name="AddMoreAttach" value="' . loc("Add More Files") . '" />
+<input type="hidden" class="hidden" name="UpdateAttach" value="1" />
+'
);
</%perl>
% if ( $gnupg_widget ) {
-%$m->scomp("/Elements/GnuPG/SignEncryptWidget", self => $gnupg_widget, QueueObj => $QueueObj )
+<& /Elements/GnuPG/SignEncryptWidget, self => $gnupg_widget, QueueObj => $QueueObj &>
% }
diff --git a/rt/share/html/m/ticket/history b/rt/share/html/m/ticket/history
index a49945d77..dcc25692b 100644
--- a/rt/share/html/m/ticket/history
+++ b/rt/share/html/m/ticket/history
@@ -1,3 +1,50 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC
+%# <sales@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 }}}
<%args>
$id => undef
</%args>
@@ -6,7 +53,7 @@ my $t = RT::Ticket->new($session{CurrentUser});
$t->Load($id);
my $history = $t->Transactions()->ItemsArrayRef;
</%init>
-<&| /m/_elements/wrapper, title => $t->Subject &>
+<&| /m/_elements/wrapper, title => loc("#[_1]: [_2]", $t->Id, $t->Subject || '') &>
<div class="history">
<& /m/_elements/ticket_menu, ticket => $t &>
<&|/Widgets/TitleBox &>
diff --git a/rt/share/html/m/ticket/reply b/rt/share/html/m/ticket/reply
index ea2a6cad4..d3b0f6f0d 100644
--- a/rt/share/html/m/ticket/reply
+++ b/rt/share/html/m/ticket/reply
@@ -1,3 +1,50 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC
+%# <sales@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 }}}
<&|/m/_elements/wrapper, title => loc('Update ticket #[_1]', $t->id) &>
<& /m/_elements/ticket_menu, ticket => $t &>
<& /Elements/ListActions, actions => \@results &>
@@ -8,9 +55,13 @@
<input type="hidden" class="hidden" name="DefaultStatus" value="<% $DefaultStatus ||''%>" />
<input type="hidden" class="hidden" name="Action" value="<% $ARGS{Action}||'' %>" />
+% if ($gnupg_widget) {
+<& /Elements/GnuPG/SignEncryptWidget:ShowIssues, self => $gnupg_widget &>
+% }
+
<div class="entry"><span class="label"><&|/l&>Status</&>:</span>
<div class="value">
-<& /Elements/SelectStatus, Name=>"Status", DefaultLabel => loc("[_1] (Unchanged)", loc($t->Status)), Default => $ARGS{'Status'} || ($t->Status eq $DefaultStatus ? undef : $DefaultStatus)&>
+<& /Elements/SelectStatus, Name=>"Status", TicketObj => $t, DefaultLabel => loc("[_1] (Unchanged)", loc($t->Status)), Default => $ARGS{'Status'} || ($t->Status eq $DefaultStatus ? undef : $DefaultStatus)&>
</div></div>
<div class="entry"><span class="label"><&|/l&>Owner</&>:</span>
@@ -19,7 +70,7 @@
Name => "Owner",
TicketObj => $t,
QueueObj => $t->QueueObj,
- DefaultLabel => loc("[_1] (Unchanged)", $t->OwnerObj->Name),
+ DefaultLabel => loc("[_1] (Unchanged)", $m->scomp('/Elements/ShowUser', User => $t->OwnerObj)),
Default => $ARGS{'Owner'}
&>
</div></div>
@@ -30,6 +81,7 @@
InUnits => $ARGS{'UpdateTimeWorked-TimeUnits'}||'minutes',
&>
</span></div>
+% $m->callback( %ARGS, CallbackName => 'AfterWorked', Ticket => $t );
<input type="hidden" class="hidden" name="id" value="<%$t->Id%>" /><br />
<div class="entry"><span class="label"><&|/l&>Update Type</&>:</span>
<div class="value"><select name="UpdateType">
@@ -41,7 +93,7 @@
% }
</select>
</div></div>
-<div class="entry"><span class="label"><&|/l&>Subject</&>:</span><div class="value"> <input name="UpdateSubject" size="60" value="<% $ARGS{UpdateSubject} || $t->Subject()%>" />
+<div class="entry"><span class="label"><&|/l&>Subject</&>:</span><div class="value"> <input type="text" name="UpdateSubject" size="60" value="<% $ARGS{UpdateSubject} || $t->Subject()%>" />
% $m->callback( %ARGS, CallbackName => 'AfterSubject' );
</div></div>
@@ -62,6 +114,32 @@
<& /Elements/MessageBox, Name=>"UpdateContent", IncludeSignature => $IncludeSignature, %ARGS &>
% }
</div></div>
+
+% if (exists $session{'Attachments'}) {
+
+<%loc("Attached file") %>
+
+<%loc("Check box to delete")%><br />
+% foreach my $attach_name (keys %{$session{'Attachments'}}) {
+<input type="checkbox" class="checkbox" name="DeleteAttach-<%$attach_name%>" value="1" /><%$attach_name%><br />
+% } # end of foreach
+
+
+% } # end of if
+
+<div class="entry">
+<span class="label"><&|/l&>Attach file</&>:</span>
+<div class="value">
+<input type="file" name="Attach" />
+<input type="submit" class="button" name="AddMoreAttach" value="<% loc("Add More Files") %>" />
+<input type="hidden" class="hidden" name="UpdateAttach" value="1" />
+</div>
+</div>
+
+% if ( $gnupg_widget ) {
+<& /Elements/GnuPG/SignEncryptWidget, self => $gnupg_widget, QueueObj => $t->QueueObj &>
+% }
+
<& /Elements/Submit, Label => loc('Update Ticket'), Name => 'SubmitTicket' &>
</form>
</&>
@@ -113,35 +191,7 @@ $CanRespond = 1 if ( $t->CurrentUserHasRight('ReplyToTicket') or
$CanComment = 1 if ( $t->CurrentUserHasRight('CommentOnTicket') or
$t->CurrentUserHasRight('ModifyTicket') );
-
-# {{{ deal with deleting uploaded attachments
-foreach my $key (keys %ARGS) {
- if ($key =~ m/^DeleteAttach-(.+)$/) {
- delete $session{'Attachments'}{$1};
- }
- $session{'Attachments'} = { %{$session{'Attachments'} || {}} };
-}
-# }}}
-
-# {{{ store the uploaded attachment in session
-if ($ARGS{'Attach'}) { # attachment?
- my $attachment = MakeMIMEEntity(
- AttachmentFieldName => 'Attach'
- );
-
- my $file_path = Encode::decode_utf8("$ARGS{'Attach'}");
- $session{'Attachments'} = {
- %{$session{'Attachments'} || {}},
- $file_path => $attachment,
- };
-}
-# }}}
-
-# delete temporary storage entry to make WebUI clean
-unless (keys %{$session{'Attachments'}} and $ARGS{'UpdateAttach'}) {
- delete $session{'Attachments'};
-}
-# }}}
+ProcessAttachments(ARGSRef => \%ARGS);
# check email addresses for RT's
{
@@ -159,13 +209,29 @@ unless (keys %{$session{'Attachments'}} and $ARGS{'UpdateAttach'}) {
}
}
-if ( !$checks_failure && exists $ARGS{SubmitTicket} ) {
+my $gnupg_widget = $m->comp('/Elements/GnuPG/SignEncryptWidget:new', Arguments => \%ARGS );
+$m->comp( '/Elements/GnuPG/SignEncryptWidget:Process',
+ self => $gnupg_widget,
+ TicketObj => $t,
+);
+
+my $skip_update = 0;
+$m->callback( CallbackName => 'BeforeUpdate', ARGSRef => \%ARGS, skip_update => \$skip_update,
+ checks_failure => $checks_failure, results => \@results, TicketObj => $t );
+
+if ( !$checks_failure && !$skip_update && exists $ARGS{SubmitTicket} ) {
+ my $status = $m->comp('/Elements/GnuPG/SignEncryptWidget:Check',
+ self => $gnupg_widget,
+ TicketObj => $t,
+ );
+ $checks_failure = 1 unless $status;
+ $m->callback( Ticket => $t, ARGSRef => \%ARGS, CallbackName => 'BeforeDisplay' );
return $m->comp('/m/ticket/show', TicketObj => $t, %ARGS);
}
</%INIT>
<%ARGS>
$id => undef
-$Action => 'reply'
+$Action => 'Respond'
$DefaultStatus => undef
</%ARGS>
diff --git a/rt/share/html/m/ticket/select_create_queue b/rt/share/html/m/ticket/select_create_queue
index 88cf2033b..e9bc3b2ce 100644
--- a/rt/share/html/m/ticket/select_create_queue
+++ b/rt/share/html/m/ticket/select_create_queue
@@ -1,3 +1,50 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC
+%# <sales@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 $queues = RT::Queues->new($session{'CurrentUser'});
$queues->UnLimit();
diff --git a/rt/share/html/m/ticket/show b/rt/share/html/m/ticket/show
index 4190bd349..ead23a75e 100644
--- a/rt/share/html/m/ticket/show
+++ b/rt/share/html/m/ticket/show
@@ -1,3 +1,50 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2013 Best Practical Solutions, LLC
+%# <sales@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 }}}
<%args>
$id => undef
</%args>
@@ -12,7 +59,7 @@ unless ($id) {
if ($ARGS{'id'} eq 'new') {
# {{{ Create a new ticket
- my $Queue = new RT::Queue( $session{'CurrentUser'} );
+ my $Queue = RT::Queue->new( $session{'CurrentUser'} );
$Queue->Load($ARGS{'Queue'});
unless ( $Queue->id ) {
Abort('Queue not found');
@@ -29,7 +76,6 @@ if ($ARGS{'id'} eq 'new') {
unless ( $Ticket->CurrentUserHasRight('ShowTicket') ) {
Abort("No permission to view newly created ticket #".$Ticket->id.".");
}
- # }}}
} else {
$Ticket ||= LoadTicket($ARGS{'id'});
@@ -37,7 +83,7 @@ if ($ARGS{'id'} eq 'new') {
TicketObj => $Ticket,
ActionsRef => \@Actions, ARGSRef => \%ARGS );
if ( defined $ARGS{'Action'} ) {
- if ($ARGS{'Action'} =~ /^(Steal|Kill|Take|SetTold)$/) {
+ if ($ARGS{'Action'} =~ /^(Steal|Delete|Take|SetTold)$/) {
my $action = $1;
my ($res, $msg) = $Ticket->$action();
push(@Actions, $msg);
@@ -64,11 +110,14 @@ if ($ARGS{'id'} eq 'new') {
push @Actions, ProcessTicketLinks( ARGSRef => \%ARGS, TicketObj => $Ticket );
push @Actions, ProcessTicketDates( ARGSRef => \%ARGS, TicketObj => $Ticket );
push @Actions, ProcessObjectCustomFieldUpdates(ARGSRef => \%ARGS, TicketObj => $Ticket );
+ push @Actions, ProcessTicketReminders( ARGSRef => \%ARGS, TicketObj => $Ticket );
- # XXX: we shouldn't block actions here if user has no right to see the ticket,
- # but we should allow him to see actions he has done
unless ($Ticket->CurrentUserHasRight('ShowTicket')) {
- Abort("No permission to view ticket");
+ if (@Actions) {
+ Abort("A change was applied successfully, but you no longer have permissions to view the ticket", Actions => \@Actions);
+ } else {
+ Abort("No permission to view ticket");
+ }
}
if ( $ARGS{'MarkAsSeen'} ) {
$Ticket->SetAttribute(
@@ -111,12 +160,6 @@ while ( my $attach = $Attachments->Next() ) {
unshift( @{ $documents{ $attach->Filename } }, $attach );
}
-my $Customers = $Ticket->Customers;
-my @customers;
-while ( my $customer = $Customers->Next() ) {
- push @customers, $customer;
-}
-
my $CustomFields = $Ticket->CustomFields;
$m->callback(
CallbackName => 'MassageCustomFields',
@@ -161,7 +204,7 @@ my $print_value = sub {
};
</%init>
-<&| /m/_elements/wrapper, title => $Ticket->Subject &>
+<&| /m/_elements/wrapper, title => loc("#[_1]: [_2]", $Ticket->Id, $Ticket->Subject || '') &>
<div id="ticket-show">
<& /m/_elements/ticket_menu, ticket => $Ticket &>
@@ -204,6 +247,10 @@ my $print_value = sub {
<div class="label queue"><&|/l&>Queue</&>:</div>
<div class="value queue"><& /Ticket/Elements/ShowQueue, QueueObj => $Ticket->QueueObj &></div>
</div>
+ <div class="entry">
+ <div class="label bookmark"><&|/l&>Bookmark</&>:</div>
+ <div class="value bookmark"><& /Ticket/Elements/Bookmark, id => $Ticket->id &></div>
+ </div>
</&>
% if ($Ticket->CustomFields->First) {
@@ -297,7 +344,7 @@ if ($size) {
</%PERL>
<li><font size="-2">
-<a href="<%RT->Config->Get('WebPath')%>/Ticket/Attachment/<%$rev->TransactionId%>/<%$rev->Id%>/<%$rev->Filename | u%>">
+<a href="<%RT->Config->Get('WebPath')%>/Ticket/Attachment/<%$rev->TransactionId%>/<%$rev->Id%>/<%$rev->Filename | un%>">
<&|/l, $rev->CreatedAsString, $size, $rev->CreatorObj->Name &>[_1] ([_2]) by [_3]</&>
</a>
</font></li>
@@ -323,19 +370,6 @@ if ($size) {
</&>
% }
-% if ( @customers ) {
- <&| /Widgets/TitleBox, title => loc("Customers"),
- class => 'ticket-info-customers',
- &>
-% foreach my $customer ( @customers ) {
-% my $resolver = $customer->TargetURI->Resolver or next;
-<div class="entry"><a href="<% $resolver->HREF %>"><% $resolver->AsString |n%></A>
-</div>
-% } #foreach
- </&>
-% } # if @customers
-
-
<&| /Widgets/TitleBox, title => loc("Dates"),
class => 'ticket-info-dates',
&>