summaryrefslogtreecommitdiff
path: root/rt/share/html
diff options
context:
space:
mode:
Diffstat (limited to 'rt/share/html')
-rw-r--r--rt/share/html/Admin/CustomFields/Modify.html11
-rw-r--r--rt/share/html/Admin/Elements/EditCustomFieldUILocation66
-rw-r--r--rt/share/html/Elements/EditCustomFieldTimeValue16
-rw-r--r--rt/share/html/Elements/ShowCustomFieldTimeValue4
-rwxr-xr-xrt/share/html/Ticket/Display.html2
-rw-r--r--rt/share/html/Ticket/Elements/EditTransactionCustomFields12
-rwxr-xr-xrt/share/html/Ticket/Update.html20
7 files changed, 122 insertions, 9 deletions
diff --git a/rt/share/html/Admin/CustomFields/Modify.html b/rt/share/html/Admin/CustomFields/Modify.html
index f53e4d7bb..5ef32127b 100644
--- a/rt/share/html/Admin/CustomFields/Modify.html
+++ b/rt/share/html/Admin/CustomFields/Modify.html
@@ -82,6 +82,14 @@
Default => $CustomFieldObj->LookupType, &>
</td></tr>
+% if ( $CustomFieldObj->Id
+% and $CustomFieldObj->LookupType =~ /RT::Transaction/ ) {
+<tr><td class="label"><&|/l&>Display&nbsp;with</&></td>
+<td><& /Admin/Elements/EditCustomFieldUILocation,
+ CustomField => $CustomFieldObj &>
+</td></tr>
+% }
+
<tr><td class="label"><&|/l&>Validation</&></td>
<td><& /Widgets/ComboBox,
Name => 'Pattern',
@@ -191,6 +199,8 @@ if ( $ARGS{'Update'} && $id ne 'new' ) {
$CustomFieldObj->SetBasedOn( $BasedOn );
+ $CustomFieldObj->SetUILocation( $UILocation );
+
my $paramtag = "CustomField-". $CustomFieldObj->Id ."-Value";
# Delete any fields that want to be deleted
foreach my $key ( keys %ARGS ) {
@@ -267,4 +277,5 @@ $ValuesClass => 'RT::CustomFieldValues'
$LinkValueTo => undef
$IncludeContentForValue => undef
$BasedOn => undef
+$UILocation => undef
</%ARGS>
diff --git a/rt/share/html/Admin/Elements/EditCustomFieldUILocation b/rt/share/html/Admin/Elements/EditCustomFieldUILocation
new file mode 100644
index 000000000..9cffafabb
--- /dev/null
+++ b/rt/share/html/Admin/Elements/EditCustomFieldUILocation
@@ -0,0 +1,66 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%#
+%# COPYRIGHT:
+%#
+%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
+%# <jesse@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 }}}
+<div id="ui-location-class-block">
+<select name="UILocation">
+% foreach my $tag (@tags) {
+<option value="<% $tag %>" <% $tag eq $CustomField->UILocation && 'selected="selected"' %>><% $description{$tag} %></option>
+% }
+</select>
+</div>
+
+<%INIT>
+my @sources;
+my @tags = ( '', 'TimeWorked' );
+my %description = (
+ '' => 'Custom fields',
+ 'TimeWorked' => 'Time Worked',
+);
+</%INIT>
+<%ARGS>
+$CustomField => undef
+</%ARGS>
diff --git a/rt/share/html/Elements/EditCustomFieldTimeValue b/rt/share/html/Elements/EditCustomFieldTimeValue
new file mode 100644
index 000000000..064554594
--- /dev/null
+++ b/rt/share/html/Elements/EditCustomFieldTimeValue
@@ -0,0 +1,16 @@
+% my $name = $NamePrefix . $CustomField->Id . '-Value';
+% if ($Multiple) {
+% $RT::Logger->error("TimeValue Multiple custom field not supported");
+% return;
+% }
+<& /Elements/EditTimeValue,
+ Name => $name,
+ Default => $Default,
+ InUnits => $ARGS{"$name-TimeUnits"} || 'minutes',
+&>
+<%ARGS>
+$CustomField => undef
+$NamePrefix => undef
+$Default => undef
+$Multiple => undef
+</%ARGS>
diff --git a/rt/share/html/Elements/ShowCustomFieldTimeValue b/rt/share/html/Elements/ShowCustomFieldTimeValue
new file mode 100644
index 000000000..16d26df60
--- /dev/null
+++ b/rt/share/html/Elements/ShowCustomFieldTimeValue
@@ -0,0 +1,4 @@
+<%$Object->Content|n%> min
+<%ARGS>
+$Object
+</%ARGS>
diff --git a/rt/share/html/Ticket/Display.html b/rt/share/html/Ticket/Display.html
index bc5294136..6fd8b85e6 100755
--- a/rt/share/html/Ticket/Display.html
+++ b/rt/share/html/Ticket/Display.html
@@ -155,7 +155,7 @@ if ($ARGS{'id'} eq 'new') {
push @Actions, ProcessTicketBasics( ARGSRef => \%ARGS, TicketObj => $TicketObj );
push @Actions, ProcessTicketLinks( ARGSRef => \%ARGS, TicketObj => $TicketObj );
push @Actions, ProcessTicketDates( ARGSRef => \%ARGS, TicketObj => $TicketObj );
- push @Actions, ProcessObjectCustomFieldUpdates(ARGSRef => \%ARGS, TicketObj => $TicketObj );
+ push @Actions, ProcessTicketCustomFieldUpdates(ARGSRef => \%ARGS, TicketObj => $TicketObj );
# 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
diff --git a/rt/share/html/Ticket/Elements/EditTransactionCustomFields b/rt/share/html/Ticket/Elements/EditTransactionCustomFields
index e2f42b2c5..630f67817 100644
--- a/rt/share/html/Ticket/Elements/EditTransactionCustomFields
+++ b/rt/share/html/Ticket/Elements/EditTransactionCustomFields
@@ -49,18 +49,23 @@
% if ($CustomFields->Count) {
% while (my $CF = $CustomFields->Next()) {
% next unless $CF->CurrentUserHasRight('ModifyCustomField');
+% next unless $CF->UILocation eq $UILocation;
<tr>
-<td class="label"><% loc($CF->Name) %>:</td>
+<td class="label">
+<% loc($CF->Name) %>:
+</td>
<td>
<& /Elements/EditCustomField,
CustomField => $CF,
NamePrefix => $NamePrefix
&>
+% if ( $CF->Type ne 'TimeValue' ) {
<em><% $CF->FriendlyType %></em>
-% if (my $msg = $m->notes('InvalidField-' . $CF->Id)) {
+% }
+% if (my $msg = $m->notes('InvalidField-' . $CF->Id)) {
<br />
<span class="cfinvalidfield"><% $msg %></span>
-% }
+% }
</td>
</td></tr>
% }
@@ -83,5 +88,6 @@ $m->callback( CallbackName => 'MassageTransactionCustomFields', CustomFields =>
$NamePrefix => "Object-RT::Transaction--CustomField-"
$TicketObj => undef
$QueueObj => undef
+$UILocation => ''
</%ARGS>
diff --git a/rt/share/html/Ticket/Update.html b/rt/share/html/Ticket/Update.html
index 50c6f9327..62db0d1c3 100755
--- a/rt/share/html/Ticket/Update.html
+++ b/rt/share/html/Ticket/Update.html
@@ -65,8 +65,8 @@
<table width="100%" border="0">
% $m->callback(CallbackName => 'AfterTableOpens', ARGSRef => \%ARGS, Ticket => $TicketObj);
-<tr><td class="label"><&|/l&>Status</&>:</td>
-<td>
+<tr><td valign="baseline" class="label"><&|/l&>Status</&>:</td>
+<td valign="baseline">
<& /Elements/SelectStatus, Name=>"Status", DefaultLabel => loc("[_1] (Unchanged)", loc($TicketObj->Status)), Default => $ARGS{'Status'} || ($TicketObj->Status eq $DefaultStatus ? undef : $DefaultStatus)&>
<span class="label"><&|/l&>Owner</&>:</span>
<& /Elements/SelectOwner,
@@ -76,13 +76,23 @@
DefaultLabel => loc("[_1] (Unchanged)", $m->scomp('/Elements/ShowUser', User => $TicketObj->OwnerObj)),
Default => $ARGS{'Owner'}
&>
-<span class="label"><&|/l&>Worked</&>:</span>
-<& /Elements/EditTimeValue,
+</td>
+<td rowspan=4 valign="top">
+<table style="float:right;">
+<tr>
+<td class="label"><&|/l&>Worked</&>:</td>
+<td><& /Elements/EditTimeValue,
Name => 'UpdateTimeWorked',
Default => $ARGS{UpdateTimeWorked}||'',
InUnits => $ARGS{'UpdateTimeWorked-TimeUnits'}||'minutes',
&>
</td></tr>
+<& /Ticket/Elements/EditTransactionCustomFields,
+ %ARGS,
+ TicketObj => $TicketObj,
+ UILocation => 'TimeWorked',
+&>
+</table></td></tr>
% my $skip;
% $m->callback( %ARGS, CallbackName => 'BeforeUpdateType', skip => \$skip );
% if (!$skip) {
@@ -131,7 +141,7 @@
% }
% $m->callback( %ARGS, CallbackName => 'AfterGnuPG' );
-<tr><td class="label" valign="top"><&|/l&>Message</&>:</td><td>
+<tr><td class="label" valign="top"><&|/l&>Message</&>:</td><td colspan=2>
% $m->callback( %ARGS, CallbackName => 'BeforeMessageBox' );
% if (exists $ARGS{UpdateContent}) {
% # preserve QuoteTransaction so we can use it to set up sane references/in/reply to