[tools 1/2] testbot/web: Better initialize and check the Days Stats page parameter.

Francois Gouget fgouget at codeweavers.com
Thu Mar 10 05:00:49 CST 2022


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 at 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) = @_;
-- 
2.30.2




More information about the wine-devel mailing list