[Rt-commit] rt branch, 4.4/cf-default-values, updated. rt-4.2.3-207-g734aa9e
? sunnavy
sunnavy at bestpractical.com
Thu Jun 12 07:16:50 EDT 2014
The branch, 4.4/cf-default-values has been updated
via 734aa9eb50ce5872ad09eecdcdc18c88a46a0cc2 (commit)
from 4f67026e92003a0b3475fcec26444dd1e6f45512 (commit)
Summary of changes:
lib/RT/Queue.pm | 50 ++++++++++++++++++++++++++++++
share/html/Admin/Queues/DefaultValues.html | 20 ++++++++++++
share/html/Ticket/Create.html | 6 ++--
3 files changed, 73 insertions(+), 3 deletions(-)
- Log -----------------------------------------------------------------
commit 734aa9eb50ce5872ad09eecdcdc18c88a46a0cc2
Author: sunnavy <sunnavy at bestpractical.com>
Date: Thu Jun 12 19:15:43 2014 +0800
queue-level default values for priority/starts/due
diff --git a/lib/RT/Queue.pm b/lib/RT/Queue.pm
index 6ca78c4..fd961e1 100644
--- a/lib/RT/Queue.pm
+++ b/lib/RT/Queue.pm
@@ -1155,6 +1155,56 @@ sub PreInflate {
return 1;
}
+sub DefaultValue {
+ my $self = shift;
+ my $field = shift;
+ return undef unless $field =~ /Priority|Due|Starts/;
+ my $attr = $self->FirstAttribute('DefaultValues');
+ return undef unless $attr && $attr->Content;
+ return $attr->Content->{$field};
+}
+
+sub SetDefaultValue {
+ my $self = shift;
+ my %args = (
+ Name => undef,
+ Value => undef,
+ @_
+ );
+ my $field = shift;
+ my $attr = $self->FirstAttribute('DefaultValues');
+
+ my ($old_value, $old_content, $new_value);
+ if ( $attr && $attr->Content ) {
+ $old_content = $attr->Content;
+ $old_value = $old_content->{$args{Name}};
+ }
+
+ unless ( defined $old_value && length $old_value ) {
+ $old_value = $self->loc('(no value)');
+ }
+
+ $new_value = $args{Value};
+ unless ( defined $new_value && length $new_value ) {
+ $new_value = $self->loc( '(no value)' );
+ }
+
+ return 1 if $new_value eq $old_value;
+
+ my $ret = $self->SetAttribute(
+ Name => 'DefaultValues',
+ Content => {
+ %{ $old_content || {} }, $args{Name} => $args{Value},
+ },
+ );
+
+ if ( $ret ) {
+ return ( $ret, $self->loc( 'Default value of [_1] changed from [_2] to [_3]', $args{Name}, $old_value, $new_value ) );
+ }
+ else {
+ return ( $ret, $self->loc( "Can't change default value of [_1] from [_2] to [_3]", $args{Name}, $old_value, $new_value ) );
+ }
+}
RT::Base->_ImportOverlays();
diff --git a/share/html/Admin/Queues/DefaultValues.html b/share/html/Admin/Queues/DefaultValues.html
index 456575c..1f99c76 100644
--- a/share/html/Admin/Queues/DefaultValues.html
+++ b/share/html/Admin/Queues/DefaultValues.html
@@ -51,6 +51,18 @@
<form method="post" action="DefaultValues.html" name="ModifyDefaultValues" id="ModifyDefaultValues">
<input type="hidden" name="id" value="<% $queue->id %>" />
+
+<h2><&|/l&>Core Fields</&></h2>
+<table border="0">
+<tr><td class="label"><&|/l&>Priority</&>:</td>
+<td><& /Elements/SelectPriority,
+ Name => "Priority",
+ Default => $queue->DefaultValue('Priority'),
+&></td></tr>
+<tr><td class="label"><&|/l&>Starts</&>:</td><td><& /Elements/SelectDate, Name => "Starts", Default => $queue->DefaultValue('Starts') || '' &></td></tr>
+<tr><td class="label"><&|/l&>Due</&>:</td><td><& /Elements/SelectDate, Name => "Due", Default => $queue->DefaultValue('Due') || '' &></td></tr>
+</table>
+
<h2><&|/l&>Ticket Custom Fields</&></h2>
<& /Elements/EditCustomFields, CustomFields => $ticket_cfs, NamePrefix => 'Default-', Object => RT::Ticket->new($session{CurrentUser}), QueueObj => $queue &>
@@ -70,6 +82,14 @@ my $txn_cfs = $queue->TicketTransactionCustomFields;
my @results;
if ( $ARGS{Update} ) {
+ for my $field ( qw/Priority Starts Due/ ) {
+ my ($ret, $msg) = $queue->SetDefaultValue(
+ Name => $field,
+ Value => $ARGS{$field},
+ );
+ push @results, $msg;
+ }
+
for my $cf_id ( map { /^Default-(\d+)-/ ? $1 : () } keys %ARGS ) {
my $cf = RT::CustomField->new($session{CurrentUser});
$cf->Load($cf_id);
diff --git a/share/html/Ticket/Create.html b/share/html/Ticket/Create.html
index ede62bd..8426965 100644
--- a/share/html/Ticket/Create.html
+++ b/share/html/Ticket/Create.html
@@ -228,7 +228,7 @@
<tr><td class="label"><&|/l&>Priority</&>:</td>
<td><& /Elements/SelectPriority,
Name => "InitialPriority",
- Default => $ARGS{InitialPriority} ? $ARGS{InitialPriority} : $QueueObj->InitialPriority,
+ Default => $ARGS{InitialPriority} ? $ARGS{InitialPriority} : $QueueObj->InitialPriority || $QueueObj->DefaultValue('Priority'),
&></td></tr>
<tr><td class="label"><&|/l&>Final Priority</&>:</td>
<td><& /Elements/SelectPriority,
@@ -258,8 +258,8 @@
color => "#663366" &>
<table>
-<tr><td class="label"><&|/l&>Starts</&>:</td><td><& /Elements/SelectDate, Name => "Starts", Default => $ARGS{Starts} || '' &></td></tr>
-<tr><td class="label"><&|/l&>Due</&>:</td><td><& /Elements/SelectDate, Name => "Due", Default => $ARGS{Due} || '' &></td></tr>
+<tr><td class="label"><&|/l&>Starts</&>:</td><td><& /Elements/SelectDate, Name => "Starts", Default => $ARGS{Starts} || $QueueObj->DefaultValue('Starts') || '' &></td></tr>
+<tr><td class="label"><&|/l&>Due</&>:</td><td><& /Elements/SelectDate, Name => "Due", Default => $ARGS{Due} || $QueueObj->DefaultValue('Due') || '' &></td></tr>
<& /Elements/EditCustomFields,
%ARGS,
Object => $ticket,
-----------------------------------------------------------------------
More information about the rt-commit
mailing list