Use SetParam() to provide the default value. This allows removing the Days field and GetDisplayValue() method. FormPage::Validate() must be called after the property descriptors have been set otherwise it has no property to check. This removes the need for redefining Validate(). Treat "00" the same as "0".
Signed-off-by: Francois Gouget fgouget@codeweavers.com --- testbot/web/Stats.pl | 31 ++++--------------------------- 1 file changed, 4 insertions(+), 27 deletions(-)
diff --git a/testbot/web/Stats.pl b/testbot/web/Stats.pl index c96e6fdafb..42408a3a81 100644 --- a/testbot/web/Stats.pl +++ b/testbot/web/Stats.pl @@ -37,34 +37,18 @@ sub _initialize($$$) { my ($self, $Request, $RequiredRole) = @_;
- $self->{Days} = $self->GetParam("Days"); - $self->Validate(); - $self->{start} = Time(); my @PropertyDescriptors = ( CreateBasicPropertyDescriptor("Days", "Days to analyze", !1, 1, "N", 2), ); $self->SUPER::_initialize($Request, $RequiredRole, @PropertyDescriptors); -} - -sub Validate($) -{ - my ($self) = @_;
- if (!defined $self->{Days}) - { - $self->{Days} = 7; - $self->{NoStats} = 1; - } - elsif ($self->{Days} !~ /^[0-9]{1,2}$/) + if (!$self->GetParam("Days") or !$self->Validate() or + !int($self->GetParam("Days"))) # 00 case! { - $self->{ErrField} = "Days"; - $self->{ErrMessage} = "The number of days must be between 1 and 99"; + $self->SetParam("Days", 7) if (!defined $self->{ErrMessage}); $self->{NoStats} = 1; - $self->{Days} = 7; - return undef; } - return $self->SUPER::Validate(); }
sub GetPageTitle($$) @@ -211,7 +195,7 @@ sub GenerateBody($) my $VMs = CreateVMs(); $VMs->FilterEnabledRole(); my @SortedVMs = sort _CompareVMs @{$VMs->GetItems()}; - my $Stats = GetStatistics($VMs, $self->{Days} * 24 * 60 * 60); + my $Stats = GetStatistics($VMs, $self->GetParam("Days") * 24 * 60 * 60);
### Show global statistics
@@ -377,13 +361,6 @@ sub GenerateBody($) print "</tbody></table></div>\n"; }
-sub GetDisplayValue($$) -{ - my ($self, $PropertyDescriptor) = @_; - - return $self->{$PropertyDescriptor->GetName()}; -} - sub GetActions($) { #my ($self) = @_;