summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Object.pm
diff options
context:
space:
mode:
authormkanat%bugzilla.org <>2007-11-29 09:20:05 +0100
committermkanat%bugzilla.org <>2007-11-29 09:20:05 +0100
commit9dfa47cccbf6cf4f98d807c1c61400fc138e18ff (patch)
tree14f2bcdec784bc9ad056894af2d85e92acd5f295 /Bugzilla/Object.pm
parentab73b625a7fb071794cd1152de3c8486d91788f6 (diff)
downloadbugzilla-9dfa47cccbf6cf4f98d807c1c61400fc138e18ff.tar.gz
bugzilla-9dfa47cccbf6cf4f98d807c1c61400fc138e18ff.tar.xz
Bug 397099: Date/Time Fields should have a JavaScript widget for picking a date
Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, r=glob, a=mkanat
Diffstat (limited to 'Bugzilla/Object.pm')
-rw-r--r--Bugzilla/Object.pm14
1 files changed, 13 insertions, 1 deletions
diff --git a/Bugzilla/Object.pm b/Bugzilla/Object.pm
index 9e155bc10..2cf671bc2 100644
--- a/Bugzilla/Object.pm
+++ b/Bugzilla/Object.pm
@@ -27,12 +27,15 @@ use Bugzilla::Constants;
use Bugzilla::Util;
use Bugzilla::Error;
+use Date::Parse;
+
use constant NAME_FIELD => 'name';
use constant ID_FIELD => 'id';
use constant LIST_ORDER => NAME_FIELD;
use constant UPDATE_VALIDATORS => {};
use constant NUMERIC_COLUMNS => ();
+use constant DATE_COLUMNS => ();
###############################
#### Initialization ####
@@ -237,6 +240,7 @@ sub update {
my $old_self = $self->new($self->id);
my %numeric = map { $_ => 1 } $self->NUMERIC_COLUMNS;
+ my %date = map { $_ => 1 } $self->DATE_COLUMNS;
my (@update_columns, @values, %changes);
foreach my $column ($self->UPDATE_COLUMNS) {
my ($old, $new) = ($old_self->{$column}, $self->{$column});
@@ -246,7 +250,9 @@ sub update {
if (!defined $new || !defined $old) {
next if !defined $new && !defined $old;
}
- elsif ( ($numeric{$column} && $old == $new) || $old eq $new ) {
+ elsif ( ($numeric{$column} && $old == $new)
+ || ($date{$column} && str2time($old) == str2time($new))
+ || $old eq $new ) {
next;
}
@@ -474,6 +480,12 @@ current value in the database. It only updates columns that have changed.
Any column listed in NUMERIC_COLUMNS is treated as a number, not as a string,
during these comparisons.
+=item C<DATE_COLUMNS>
+
+This is much like L</NUMERIC_COLUMNS>, except that it treats strings as
+dates when being compared. So, for example, C<2007-01-01> would be
+equal to C<2007-01-01 00:00:00>.
+
=back
=head1 METHODS