Skip Menu | Logged in as guest | Logout
 
This RT instance is for bugs reports or feature requests only. If you need help, please send email to rt-users@bestpractical.com or to sales@bestpractical.com for commercial support.
Ticket metadata
Id: 8721
Status: open
Priority: 99/50
Queue: rt3

Owner: Emmanuel Lacour
Requestors: Emmanuel Lacour
Cc: Andrew Kornilov
AdminCc:

Created: Mon Dec 10 15:02:49 2007
Starts: Not set
Started: Sun Jan 20 18:36:55 2008
Last Contact: Sat Jul 24 17:05:05 2010
Due: Not set
Closed: Sun Jan 20 18:36:55 2008
Updated: Sat Jul 24 17:05:05 2010 by jesse



History Brief headersFull headers
Subject: Re: [fsck.com #8721] [Rt-devel] [patch] Date type support for CustomFields
Date: Sat, 24 Jul 2010 11:20:00 -0700
To: sunnavy via RT <rt-bugs@bestpractical.com>
From: Jesse Vincent <jesse@bestpractical.com>
Download (untitled) / with headers
text/plain 575b

Are there tests for timezone based searching for users in multiple
timezones?

Create a ticket in US/Eastern

Give it a date cf value of 2010-06-21 17:00:01

From Europe/Moscow, search for all tickets with a date field == 2010-06-22

make sure it matches

From Europe/Moscow, search for all tickets with a date field after 2010-06-21

make sure it matches

From Europe/Moscow, search for all tickets with a date field before 2010-06-23

make sure it matches

From Europe/Moscow, search for all tickets with a date field of
2010-06-22 01:00:01

make sure it matches

thanks!
Subject: Re: [fsck.com #8721] [Rt-devel] [patch] Date type support for CustomFields
Date: Fri, 23 Jul 2010 07:25:09 +0800
To: Jesse Vincent via RT <rt-bugs@bestpractical.com>
From: sunnavy <sunnavy@bestpractical.com>
Download (untitled) / with headers
text/plain 1024b
ahh, it lives in another test file, I haven't attached that because all tests passed.
see attached.

On 10-07-22 10:41, Jesse Vincent via RT wrote:
>
> <URL: http://issues.bestpractical.com/Ticket/Display.html?id=8721 >
>
>
>
>
> On Thu 22.Jul'10 at 4:20:06 -0400, sunnavy via RT wrote:
> >
> > <URL: http://issues.bestpractical.com/Ticket/Display.html?id=8721 >
> >
> > On 10-07-22 03:23, Jesse Vincent via RT wrote:
> > >
> > > <URL: http://issues.bestpractical.com/Ticket/Display.html?id=8721 >
> > >
> > > Potential issues mentioned at dinner for the date cf patch (at least pre-ivan):
> > >
> > > * may not support ranged search on one or omore databases.
> > currently it is just like normal cf
> > > * may not honor user timezone for display/input
> > tested and it works.
> > > * may not properly store all dates in utc in the database
> > ditto.
>
> Looking at the test file you attached, I don't see any of this actually
> tested. That's the sort of stuff that needs to be tested in the .t file.
>
>
Download cf_date.t
application/x-troff 4.9k

Message body not shown because it is not plain text.

Subject: Re: [fsck.com #8721] [Rt-devel] [patch] Date type support for CustomFields
Date: Thu, 22 Jul 2010 07:43:08 -0700
To: sunnavy via RT <rt-bugs@bestpractical.com>
From: Jesse Vincent <jesse@bestpractical.com>
Download (untitled) / with headers
text/plain 752b



On Thu 22.Jul'10 at 4:20:06 -0400, sunnavy via RT wrote:
>
> <URL: http://issues.bestpractical.com/Ticket/Display.html?id=8721 >
>
> On 10-07-22 03:23, Jesse Vincent via RT wrote:
> >
> > <URL: http://issues.bestpractical.com/Ticket/Display.html?id=8721 >
> >
> > Potential issues mentioned at dinner for the date cf patch (at least pre-ivan):
> >
> > * may not support ranged search on one or omore databases.
> currently it is just like normal cf
> > * may not honor user timezone for display/input
> tested and it works.
> > * may not properly store all dates in utc in the database
> ditto.

Looking at the test file you attached, I don't see any of this actually
tested. That's the sort of stuff that needs to be tested in the .t file.
Subject: Re: [fsck.com #8721] [Rt-devel] [patch] Date type support for CustomFields
Date: Thu, 22 Jul 2010 16:21:48 +0800
To: Jesse Vincent via RT <rt-bugs@bestpractical.com>
From: sunnavy <sunnavy@bestpractical.com>
Download (untitled) / with headers
text/plain 443b
On 10-07-22 03:23, Jesse Vincent via RT wrote:
>
> <URL: http://issues.bestpractical.com/Ticket/Display.html?id=8721 >
>
> Potential issues mentioned at dinner for the date cf patch (at least pre-ivan):
>
> * may not support ranged search on one or omore databases.
currently it is just like normal cf
> * may not honor user timezone for display/input
tested and it works.
> * may not properly store all dates in utc in the database
ditto.
Subject: Re: [fsck.com #8721] [Rt-devel] [patch] Date type support for CustomFields
Date: Thu, 22 Jul 2010 03:23:40 -0400
To: sunnavy via RT <rt-bugs@bestpractical.com>
From: Jesse Vincent <jesse@bestpractical.com>
Download (untitled) / with headers
text/plain 246b
Potential issues mentioned at dinner for the date cf patch (at least pre-ivan):

* may not support ranged search on one or omore databases.
* may not honor user timezone for display/input
* may not properly store all dates in utc in the database
Download (untitled) / with headers
text/plain 751b
I found special treating for this type of cf for search doesn't work:
the comments in code ( _DateCustomFieldLimit in Tickets_Overlay.pm ) says:
# if we're specifying =, that means we want everything on a
# particular single day. in the database, we need to check for >
# and < the edges of that day.

in fact, calling LimitCustomField() won't trigger _DateCustomFieldLimit.
(FIELD is still 'CF...' when calling $self->Limit in LimitCustomField )
I tried to force trigger _DateCustomFieldLimit and it still failed to do what it says.

a test case is attached.

besides that, seems good.

On Tue Jul 20 22:48:52 2010, ivan wrote:
> Here is a patch for 3.8.8 which corrects the search issues and applies
> cleanly
> to 3.8.8.
Subject: cf_date_search.t
Download cf_date_search.t
application/x-troff 1.5k

Message body not shown because it is not plain text.

Subject: Re: [fsck.com #8721] [Rt-devel] [patch] Date type support for CustomFields
Date: Wed, 21 Jul 2010 17:15:26 -0400
To: Ivan Kohler via RT <rt-bugs@bestpractical.com>
From: Jesse Vincent <jesse@bestpractical.com>
Download (untitled) / with headers
text/plain 109b

Thanks, Ivan!

Sunnavy, could you put this through its paces and write up a test suite for it?

Best,
Jesse
Here is a patch for 3.8.8 which corrects the search issues and applies cleanly to 3.8.8.



Subject: RT_Date_CustomField-3.8.8.patch

Message body not shown because it is too large.

Download (untitled) / with headers
text/plain 346b
On Thu Oct 29 20:49:17 2009, guest wrote:
> Both don't work with 3.8.6rc1, error message is:
>
> could not find component for path 'EditCustomFieldDate'
>
> when i'm trying to create a new ticket


You're right, there is two missing files in those patches (you can find them in previous patches).

Here is a last patch for 3.8.6 with all files.
Subject: RT_Date_CustomField-3.8.6-elacour.patch

Message body not shown because it is too large.

elacour patch for 3.8.4, not really reviewed, but little tests showed that it works.
Subject: RT_Date_CustomField-3.8.4-elacour.patch
diff --git a/lib/RT/CustomField_Overlay.pm b/lib/RT/CustomField_Overlay.pm
index 0af2fd0..bc9a325 100755
--- a/lib/RT/CustomField_Overlay.pm
+++ b/lib/RT/CustomField_Overlay.pm
@@ -96,6 +96,11 @@ our %FieldTypes = (
'Enter one value with autocompletion', # loc
'Enter up to [_1] values with autocompletion', # loc
],
+ Date => [
+ 'Select multiple dates', # loc
+ 'Select date', # loc
+ 'Select up to [_1] dates', # loc
+ ],
);


@@ -839,7 +844,7 @@ Returns an array of all possible composite values for custom fields.

sub TypeComposites {
my $self = shift;
- return grep !/(?:[Tt]ext|Combobox)-0/, map { ("$_-1", "$_-0") } $self->Types;
+ return grep !/(?:[Tt]ext|Combobox|Date)-0/, map { ("$_-1", "$_-0") } $self->Types;
}

=head2 LookupTypes
@@ -1008,6 +1013,15 @@ sub AddValueForObject {
$extra_values--;
}
}
+ # For date, we need to store Content as ISO date
+ if ($self->Type eq 'Date') {
+ my $DateObj = new RT::Date( $self->CurrentUser );
+ $DateObj->Set(
+ Format => 'unknown',
+ Value => $args{'Content'},
+ );
+ $args{'Content'} = $DateObj->ISO;
+ }
my $newval = RT::ObjectCustomFieldValue->new( $self->CurrentUser );
my $val = $newval->Create(
ObjectType => ref($obj),
diff --git a/lib/RT/Interface/Web.pm b/lib/RT/Interface/Web.pm
index 01b701b..73723ab 100755
--- a/lib/RT/Interface/Web.pm
+++ b/lib/RT/Interface/Web.pm
@@ -1251,6 +1251,9 @@ sub _ProcessObjectCustomFieldUpdates {
$values_hash{ $val } = 1 if $val;
}

+ # For Date Cfs, @values is empty when there is no changes (no datas in form input)
+ return @results if ( $cf->Type eq 'Date' && ! @values );
+
$cf_values->RedoSearch;
while ( my $cf_value = $cf_values->Next ) {
next if $values_hash{ $cf_value->id };
diff --git a/lib/RT/Record.pm b/lib/RT/Record.pm
index 02dc6fd..adb48dc 100755
--- a/lib/RT/Record.pm
+++ b/lib/RT/Record.pm
@@ -1711,6 +1711,25 @@ sub _AddCustomFieldValue {
}

my $new_content = $new_value->Content;
+
+ # For date, we need to display them in "human" format in result message
+ if ($cf->Type eq 'Date') {
+ my $DateObj = new RT::Date( $self->CurrentUser );
+ $DateObj->Set(
+ Format => 'ISO',
+ Value => $new_content,
+ );
+ $new_content = $DateObj->AsString;
+
+ if ( defined $old_content && length $old_content ) {
+ $DateObj->Set(
+ Format => 'ISO',
+ Value => $old_content,
+ );
+ $old_content = $DateObj->AsString;
+ }
+ }
+
unless ( defined $old_content && length $old_content ) {
return ( $new_value_id, $self->loc( "[_1] [_2] added", $cf->Name, $new_content ));
}
@@ -1799,11 +1818,21 @@ sub DeleteCustomFieldValue {
return ( 0, $self->loc( "Couldn't create a transaction: [_1]", $Msg ) );
}

+ my $old_value = $TransactionObj->OldValue;
+ # For date, we need to display them in "human" format in result message
+ if ( $cf->Type eq 'Date' ) {
+ my $DateObj = new RT::Date( $self->CurrentUser );
+ $DateObj->Set(
+ Format => 'ISO',
+ Value => $old_value,
+ );
+ $old_value = $DateObj->AsString;
+ }
return (
$TransactionId,
$self->loc(
"[_1] is no longer a value for custom field [_2]",
- $TransactionObj->OldValue, $cf->Name
+ $old_value, $cf->Name
)
);
}
diff --git a/lib/RT/Tickets_Overlay.pm b/lib/RT/Tickets_Overlay.pm
index 8594aa3..e14327c 100755
--- a/lib/RT/Tickets_Overlay.pm
+++ b/lib/RT/Tickets_Overlay.pm
@@ -136,6 +136,7 @@ our %FIELD_METADATA = (
QueueAdminCc => [ 'WATCHERFIELD' => 'AdminCc' => 'Queue', ], #loc_left_pair
QueueWatcher => [ 'WATCHERFIELD' => undef => 'Queue', ], #loc_left_pair
CustomFieldValue => [ 'CUSTOMFIELD', ], #loc_left_pair
+ DateCustomFieldValue => [ 'DATECUSTOMFIELD', ],
CustomField => [ 'CUSTOMFIELD', ], #loc_left_pair
CF => [ 'CUSTOMFIELD', ], #loc_left_pair
Updated => [ 'TRANSDATE', ], #loc_left_pair
@@ -158,6 +159,7 @@ our %dispatch = (
WATCHERFIELD => \&_WatcherLimit,
MEMBERSHIPFIELD => \&_WatcherMembershipLimit,
CUSTOMFIELD => \&_CustomFieldLimit,
+ DATECUSTOMFIELD => \&_DateCustomFieldLimit,
);
our %can_bundle = ();# WATCHERFIELD => "yes", );

@@ -1325,6 +1327,101 @@ sub _CustomFieldJoin {
return ($TicketCFs, $CFs);
}

+=head2 _DateCustomFieldLimit
+
+Limit based on CustomFields of type Date
+
+Meta Data:
+ none
+
+=cut
+
+sub _DateCustomFieldLimit {
+ my ( $self, $_field, $op, $value, %rest ) = @_;
+
+ my $field = $rest{'SUBKEY'} || die "No field specified";
+
+ # For our sanity, we can only limit on one queue at a time
+
+ my ($queue, $cfid, $column);
+ ($queue, $field, $cfid, $column) = $self->_CustomFieldDecipher( $field );
+
+# If we're trying to find custom fields that don't match something, we
+# want tickets where the custom field has no value at all. Note that
+# we explicitly don't include the "IS NULL" case, since we would
+# otherwise end up with a redundant clause.
+
+ my $null_columns_ok;
+ if ( ( $op =~ /^NOT LIKE$/i ) or ( $op eq '!=' ) ) {
+ $null_columns_ok = 1;
+ }
+
+ my $cfkey = $cfid ? $cfid : "$queue.$field";
+ my ($TicketCFs, $CFs) = $self->_CustomFieldJoin( $cfkey, $cfid, $field );
+
+ $self->_OpenParen;
+
+ if ( $CFs && !$cfid ) {
+ $self->SUPER::Limit(
+ ALIAS => $CFs,
+ FIELD => 'Name',
+ VALUE => $field,
+ ENTRYAGGREGATOR => 'AND',
+ );
+ }
+
+ $self->_OpenParen if $null_columns_ok;
+
+ my $date = RT::Date->new( $self->CurrentUser );
+ $date->Set( Format => 'unknown', Value => $value );
+
+ if ( $op eq "=" ) {
+
+ # if we're specifying =, that means we want everything on a
+ # particular single day. in the database, we need to check for >
+ # and < the edges of that day.
+
+ $date->SetToMidnight( Timezone => 'server' );
+ my $daystart = $date->ISO;
+ $date->AddDay;
+ my $dayend = $date->ISO;
+
+ $self->_OpenParen;
+
+ $self->_SQLLimit(
+ ALIAS => $TicketCFs,
+ FIELD => 'Content',
+ OPERATOR => ">=",
+ VALUE => $daystart,
+ %rest,
+ );
+
+ $self->_SQLLimit(
+ ALIAS => $TicketCFs,
+ FIELD => 'Content',
+ OPERATOR => "<=",
+ VALUE => $dayend,
+ %rest,
+ ENTRYAGGREGATOR => 'AND',
+ );
+
+ $self->_CloseParen;
+
+ }
+ else {
+ $self->_SQLLimit(
+ ALIAS => $TicketCFs,
+ FIELD => 'Content',
+ OPERATOR => $op,
+ VALUE => $date->ISO,
+ %rest,
+ );
+ }
+
+ $self->_CloseParen;
+
+}
+
=head2 _CustomFieldLimit

Limit based on CustomFields
@@ -2582,6 +2679,11 @@ sub LimitCustomField {
$args{CUSTOMFIELD} = $CF->Id;
}

+ # Handle special customfields types
+ if ($CF->Type eq 'Date') {
+ $args{FIELD} = 'DateCustomFieldValue';
+ }
+
#If we are looking to compare with a null value.
if ( $args{'OPERATOR'} =~ /^is$/i ) {
$args{'DESCRIPTION'}
diff --git a/share/html/Search/Build.html b/share/html/Search/Build.html
index 06edfdd..18c4e42 100644
--- a/share/html/Search/Build.html
+++ b/share/html/Search/Build.html
@@ -183,7 +183,7 @@ my @new_values = ();

# {{{ Try to find if we're adding a clause
foreach my $arg ( keys %ARGS ) {
- next unless $arg =~ m/^ValueOf(\w+|'CF.{.*?}')$/
+ next unless $arg =~ m/^ValueOf(\w+|CF.{.*?})$/
&& ( ref $ARGS{$arg} eq "ARRAY"
? grep $_ ne '', @{ $ARGS{$arg} }
: $ARGS{$arg} ne '' );
diff --git a/share/html/Search/Elements/PickCFs b/share/html/Search/Elements/PickCFs
index ba25cde..3f6d188 100644
--- a/share/html/Search/Elements/PickCFs
+++ b/share/html/Search/Elements/PickCFs
@@ -76,22 +76,43 @@ $m->callback(
my @lines;
while ( my $CustomField = $CustomFields->Next ) {
my %line;
- $line{'Name'} = "'CF.{" . $CustomField->Name . "}'";
+ $line{'Name'} = "CF.{" . $CustomField->Name . "}";
$line{'Field'} = $CustomField->Name;
- $line{'Op'} = {
- Type => 'component',
- Path => '/Elements/SelectCustomFieldOperator',
- Arguments => { True => loc("is"),
- False => loc("isn't"),
- TrueVal=> '=',
- FalseVal => '!=',
- },
- };
- $line{'Value'} = {
- Type => 'component',
- Path => '/Elements/SelectCustomFieldValue',
- Arguments => { CustomField => $CustomField },
- };
+
+ # Op
+ if ($CustomField->Type eq 'Date') {
+ $line{'Op'} = {
+ Type => 'component',
+ Path => '/Elements/SelectDateRelation',
+ Arguments => {},
+ };
+ } else {
+ $line{'Op'} = {
+ Type => 'component',
+ Path => '/Elements/SelectCustomFieldOperator',
+ Arguments => { True => loc("is"),
+ False => loc("isn't"),
+ TrueVal=> '=',
+ FalseVal => '!=',
+ },
+ };
+ }
+
+ # Value
+ if ($CustomField->Type eq 'Date') {
+ $line{'Value'} = {
+ Type => 'component',
+ Path => '/Elements/SelectDate',
+ Arguments => {},
+ };
+ } else {
+ $line{'Value'} = {
+ Type => 'component',
+ Path => '/Elements/SelectCustomFieldValue',
+ Arguments => { CustomField => $CustomField },
+ };
+ }
+
push @lines, \%line;
}

hdp patch for 3.8.4, not really reviewed, but little tests showed that it works.
Subject: RT_Date_CustomField-3.8.4-hdp.patch

Message body not shown because it is too large.

patch doesn't seem to apply correctly to 3.8.4 + AT
This is working well for us - although we need the ability to use the bulk update page - and currently it does not have a box to do an update to...  Having that would be great!


Thanks
Matt

patch against trunk.

hdp.

Subject: rt-trunk-customfields-date.patch

Message body not shown because it is too large.

the previous patch was against 3.8.1; I'll put one together against trunk.


hdp.

Subject: [fsck.com #8721] [Rt-devel] [patch] Date type support for CustomFields
Date: Thu, 05 Feb 2009 12:49:20 -0500
To: rt-bugs@bestpractical.com
From: rt-devel-owner@lists.bestpractical.com
Download (untitled) / with headers
text/plain 237b
You are not allowed to post to this mailing list, and your message has
been automatically rejected. If you think that your messages are
being rejected in error, contact the mailing list owner at
rt-devel-owner@lists.bestpractical.com.

CC: rt-devel@lists.bestpractical.com
Subject: [fsck.com #8721] [Rt-devel] [patch] Date type support for CustomFields
Date: Thu, 5 Feb 2009 12:48:51 -0500
From: "Guest via RT" <rt-bugs@bestpractical.com>
Download (untitled) / with headers
text/plain 417b
(reply because I was dumb and commented the first time)

I've updated this patch. New features:

* use CF-$id for the input element id, to avoid any issues with quoting and
javascript (name is still ValueOf'CF.{Whatever}')

* searching using date terms (2 days ago) was broken, as far as I can tell.
fixed and tested.

* Date CFs get styled like the Date field on PickCFs. (web2, didn't touch the
other themes)

hdp.
RT-Send-CC: rt-devel@lists.bestpractical.com

(reply because I was dumb and commented the first time)

I've updated this patch.  New features:

* use CF-$id for the input element id, to avoid any issues with quoting and javascript (name is still ValueOf'CF.{Whatever}')

* searching using date terms (2 days ago) was broken, as far as I can tell.  fixed and tested.

* Date CFs get styled like the Date field on PickCFs. (web2, didn't touch the other themes)

 

hdp.

Subject: Re: [fsck.com #8721] [patch] Date type support for CustomFields
Date: Thu, 22 Jan 2009 22:52:24 +0200
To: <rt-bugs@bestpractical.com>
From: "Eynat Nir Mishor" <eynat.nirmishor@algosec.com>
Download (untitled) / with headers
text/plain 776b
I've taken most of this patch into RT 3.6.6 and it works great - thanks.



FYI: in order to deal with calendar widget in the search page, I did *not*
play with the quotes as elacour has.

*Instead*, I just handled escaping of apostrophe in JS code in two places:

In /Elements/SelectDate:

onLoadHook('createCalendarLink("<% escapeTextForJavascript($Name) |
n%>");');



In /Helpers/CalPopup.html

<a href="#" onclick="updateParentField('<% escapeTextForJavascript($field) |
n %>','<% $datestr %>'); return false;"><% $day %></a>



Where escapeTextForJavascript is a function that simply does s/'/\\'/g.



So for $field that contains apostrophe such as ValueOf'CF.{XXXX}' , I escape
' as \' and use |n to avoid encoding of ' as &#39;



Hope this helps,



Eynat


Hello

I did patch my RT 3.8.1 : problem is :

My customfield that were using "combo box: select one value" are all broken :

Only the name of the customfield and the " Combox, select one value" appear but the the combox itself does not appear anymore. Even If I try to create new customfield it's the same. . Below is a copy/paste : the strange thing is that on this paste it shows the combo box, but on my RT web site none is showned.

I hope you will not add this patch to 3.8.2 without testing it otherwise it will just create a new bug.

thanks for your help.

test
Boîte combo : Sélectionnez ou saisissez une valeur


- 01 02


On Fri Jun 13 14:06:31 2008, sartak wrote:
> On Fri Jun 13 07:00:13 2008, elacour@easter-eggs.com wrote:
> > Jesse, ruz, here is an updated patch which fix this. I tested it a
> lot here,
> > seems ok, can you review it?
>
> Hi Emmanuel,
>
> I'm reviewing this patch. So far it looks great!
>
> I notice that the patch does define an "enter multiple dates" but it
> seems to be disabled. Is this intentional? Removing Date from the regex
> in the TypeComposites method makes it available.
>
> There seems to be issues with your hunks that remove quoting from CFs.
> If the CF name has funny characters (I tested with "z-day"),
> SearchBuilder complains.
>
> I'm going to be writing tests against this, both regular mech and
> Selenium. If all goes well it should be in RT 3.8.1. We *really* want
> to get 3.8.0 out the door, so we're in a feature freeze.
>
> Shawn

 

Download (untitled) / with headers
text/plain 790b
On Fri Jun 13 07:00:13 2008, elacour@easter-eggs.com wrote:
> Jesse, ruz, here is an updated patch which fix this. I tested it a
lot here,
> seems ok, can you review it?

Hi Emmanuel,

I'm reviewing this patch. So far it looks great!

I notice that the patch does define an "enter multiple dates" but it
seems to be disabled. Is this intentional? Removing Date from the regex
in the TypeComposites method makes it available.

There seems to be issues with your hunks that remove quoting from CFs.
If the CF name has funny characters (I tested with "z-day"),
SearchBuilder complains.

I'm going to be writing tests against this, both regular mech and
Selenium. If all goes well it should be in RT 3.8.1. We *really* want
to get 3.8.0 out the door, so we're in a feature freeze.

Shawn

On Sun May 18 16:52:37 2008, elacour@easter-eggs.com wrote:
>
> Here is my first comment ... there seems to be a side effect on the
> search builder, when you have an empty search, you choose a queue and it
> seems we have to reload the page to show customfields :(
> Another "quotes" in search builder problem :(

Jesse, ruz, here is an updated patch which fix this. I tested it a lot here, seems ok, can you review it?

Message body not shown because it is too large.

Subject: [Rt-devel] [patch] Date type support for CustomFields
Date: Mon, 10 Dec 2007 12:20:32 +0100
To: rt-devel@lists.bestpractical.com
From: Emmanuel Lacour <elacour@easter-eggs.com>
Download (untitled) / with headers
text/plain 276b
Here is a patch against 3.6.5 to support date format for customfields
(with link to calendar, search capabilities and input validation).

I had to modify a little bit the Build.html Customfield handling,
because quotes in target javascript doesn't works.

--
Emmanuel Lacour

Message body is not shown because sender requested not to inline it.

Download (untitled) / with headers
text/plain 396b
_______________________________________________
List info: http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-devel

SAVE THOUSANDS OF DOLLARS ON RT SUPPORT:

If you sign up for a new RT support contract before December 31, we'll take
up to 20 percent off the price. This sale won't last long, so get in touch today.
Email us at sales@bestpractical.com or call us at +1 617 812 0745.