0.12_05 commit r0_12_05
authorTony Cook <tony@develop-help.com>
Wed, 14 Aug 2002 04:10:39 +0000 (04:10 +0000)
committertony <tony@45cb6cf1-00bc-42d2-bb5a-07f51df49f94>
Wed, 14 Aug 2002 04:10:39 +0000 (04:10 +0000)
26 files changed:
MANIFEST
Makefile
schema/bse.sql
site/cgi-bin/modules/BSE/DB/Mysql.pm
site/cgi-bin/modules/BSE/Edit/Article.pm
site/cgi-bin/modules/BSE/UserReg.pm
site/cgi-bin/modules/Image.pm
site/cgi-bin/modules/Images.pm
site/cgi-bin/modules/Order.pm
site/cgi-bin/modules/OrderItem.pm
site/cgi-bin/modules/OrderItems.pm
site/cgi-bin/modules/Orders.pm
site/cgi-bin/modules/OtherParents.pm
site/cgi-bin/modules/Product.pm
site/cgi-bin/modules/Products.pm
site/cgi-bin/modules/SiteUser.pm
site/cgi-bin/modules/Squirrel/GPG.pm
site/cgi-bin/modules/Squirrel/PGP5.pm
site/cgi-bin/modules/Squirrel/PGP6.pm
site/docs/bse.pod
site/templates/admin/article_img.tmpl
site/templates/admin/edit_1.tmpl
site/templates/admin/edit_catalog.tmpl
site/templates/admin/edit_product.tmpl
site/templates/user/userpage_base.tmpl
t/t30rules.t [new file with mode: 0644]

index 4041f1e..5d027e4 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -254,4 +254,5 @@ t/BSE/Test.pm
 t/t00smoke.t
 t/t10edit.t
 t/t20gen.t
+t/t30rules.t   Check for use strict and warnings
 test.cfg.base
index 7366972..29c7774 100755 (executable)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-VERSION=0.12_04
+VERSION=0.12_05
 DISTNAME=bse-$(VERSION)
 DISTBUILD=$(DISTNAME)
 DISTTAR=../$(DISTNAME).tar
index c82e50a..ced97e9 100644 (file)
@@ -399,6 +399,8 @@ create table site_users (
   profession integer not null,
   otherProfession varchar(127) not null,
 
+  previousLogon datetime not null,
+
   primary key (id),
   unique (userId)
 );
index 08d2ac9..aef15e3 100644 (file)
@@ -103,8 +103,8 @@ EOS
    'select * from site_users where userId = ?',
    getSiteUserByPkey =>
    'select * from site_users where id = ?',
-   addSiteUser => 'insert site_users values(null,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
-   replaceSiteUser => 'replace site_users values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
+   addSiteUser => 'insert site_users values(null,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
+   replaceSiteUser => 'replace site_users values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
    'SiteUsers.removeSubscriptions'=>
    'delete from subscribed_users where userId = ?',
    'SiteUsers.removeSub'=>
index 9b5f0c6..abd6453 100644 (file)
@@ -266,16 +266,16 @@ sub iter_get_images {
 sub iter_get_kids {
   my ($article, $articles) = @_;
 
+  my @children;
   $article->{id} or return;
   if (UNIVERSAL::isa($article, 'Article')) {
-    $article->children;
+    @children = $article->children;
   }
   elsif ($article->{id}) {
-    return $articles->children($article->{id});
-  }
-  else {
-    return;
+    @children = $articles->children($article->{id});
   }
+
+  return sort { $b->{displayOrder} <=> $a->{displayOrder} } @children;
 }
 
 sub tag_if_have_child_type {
@@ -944,7 +944,7 @@ sub validate {
 }
 
 sub validate_old {
-  my ($self, $data, $articles, $rmsg, $errors) = @_;
+  my ($self, $article, $data, $articles, $rmsg, $errors) = @_;
 
   $self->_validate_common($data, $articles, $errors);
 
index 6d1cf3f..5a683d6 100644 (file)
@@ -9,6 +9,7 @@ use BSE::SubscriptionTypes;
 use BSE::SubscribedUsers;
 use BSE::Mail;
 use BSE::EmailRequests;
+use BSE::Util::SQL qw/now_datetime/;
 
 use constant MAX_UNACKED_CONF_MSGS => 3;
 use constant MIN_UNACKED_CONF_GAP => 2 * 24 * 60 * 60;
@@ -84,6 +85,9 @@ sub logon {
                             $msgs->(baduserpass=>"Invalid user or password"));
   }
   $session->{userid} = $user->{userId};
+  $user->{previousLogon} = $user->{lastLogon};
+  $user->{lastLogon} = now_datetime;
+  $user->save;
   use CGI::Cookie;
   print "Set-Cookie: ",CGI::Cookie->new(-name=>"userid", 
                                        -value=>$user->{userId},
@@ -397,8 +401,8 @@ sub register {
   $user{userId} = $userid;
   $user{password} = $pass;
   $user{email} = $email;
-  use BSE::Util::SQL qw/now_datetime/;
-  $user{lastLogon} = $user{whenRegistered} = now_datetime;
+  $user{lastLogon} = $user{whenRegistered} = 
+    $user{previousLogon} = now_datetime;
   $user{keepAddress} = 0;
   $user{wantLetter} = 0;
   
index bb8655f..4ca07d5 100644 (file)
@@ -1,5 +1,5 @@
 package Image;
-
+use strict;
 # represents an image from the database
 use Squirrel::Row;
 use vars qw/@ISA/;
index d7cd601..15e0376 100644 (file)
@@ -1,5 +1,5 @@
 package Images;
-
+use strict;
 use Squirrel::Table;
 use vars qw(@ISA $VERSION);
 @ISA = qw(Squirrel::Table);
index fe7f208..9325c29 100644 (file)
@@ -1,5 +1,5 @@
 package Order;
-
+use strict;
 # represents an order from the database
 use Squirrel::Row;
 use vars qw/@ISA/;
index 3efa940..0cbbed1 100644 (file)
@@ -1,5 +1,5 @@
 package OrderItem;
-
+use strict;
 # represents an order line item from the database
 use Squirrel::Row;
 use vars qw/@ISA/;
index 9867a69..2560b34 100644 (file)
@@ -1,5 +1,5 @@
 package OrderItems;
-
+use strict;
 use Squirrel::Table;
 use vars qw(@ISA $VERSION);
 @ISA = qw(Squirrel::Table);
index 2d044d3..a99b17e 100644 (file)
@@ -1,5 +1,5 @@
 package Orders;
-
+use strict;
 use Squirrel::Table;
 use vars qw(@ISA $VERSION);
 @ISA = qw(Squirrel::Table);
index 89889e3..d3e8d57 100644 (file)
@@ -1,4 +1,5 @@
 package OtherParents;
+use strict;
 use Squirrel::Table;
 use vars qw(@ISA $VERSION);
 @ISA = qw(Squirrel::Table);
index e2a1e1f..d1640a3 100644 (file)
@@ -1,5 +1,5 @@
 package Product;
-
+use strict;
 # represents a product from the database
 use Article;
 use vars qw/@ISA/;
index d01f1cd..fbaa20d 100644 (file)
@@ -1,5 +1,5 @@
 package Products;
-
+use strict;
 use Squirrel::Table;
 use vars qw(@ISA $VERSION);
 @ISA = qw(Squirrel::Table);
index a499141..af304a2 100644 (file)
@@ -10,7 +10,7 @@ sub columns {
             name1 name2 address city state postcode telephone facsimile 
             country wantLetter confirmed confirmSecret waitingForConfirmation
             textOnlyMail title organization referral otherReferral
-            prompt otherPrompt profession otherProfession/;
+            prompt otherPrompt profession otherProfession previousLogon/;
 }
 
 sub removeSubscriptions {
index ed1b2a9..4e43b39 100644 (file)
@@ -1,4 +1,5 @@
 package Squirrel::GPG;
+use strict;
 
 sub new {
   return bless {}, $_[0];
index a822ff6..eeb8afa 100644 (file)
@@ -1,4 +1,5 @@
 package Squirrel::PGP5;
+use strict;
 
 sub new {
   return bless {}, $_[0];
index 2cffa0b..61675f3 100644 (file)
@@ -1,4 +1,5 @@
 package Squirrel::PGP6;
+use strict;
 
 sub new {
   return bless {}, $_[0];
index 56d6ed9..83ce6dc 100644 (file)
@@ -10,6 +10,40 @@ Maybe I'll add some other bits here.
 
 =head1 CHANGES
 
+=head2 0.12_05
+
+=over
+
+=item *
+
+test script to check that all modules and scripts have use strict and
+all scripts have -w in the #! line
+
+=item *
+
+the width and height values were swapped for display of an articles
+images in the image manager template
+
+=item *
+
+children weren't sorted on article editing pages
+
+=item *
+
+updated templates from Adrian.
+
+=item *
+
+added a previousLogon field to accept the last value of lastLogon at
+logon, so the previous value could be displayed.
+
+=item *
+
+editing an article would give a server error on save (due to some late
+changes)
+
+=back
+
 =head2 0.12_04
 
 =over
index 660d518..db98ab2 100644 (file)
@@ -82,7 +82,7 @@
           <: iterator begin images :> 
           <tr bgcolor="#FFFFFF"> 
             <td align="center" colspan="3"> <img src="/images/<: image image :>" alt="<: image alt :>" width="<: 
-              image height :>" height="<: image width :>"></td>
+              image width :>" height="<: image height :>"></td>
           </tr>
           <tr bgcolor="#FFFFFF"> 
             <th width="50%"> Alt Text</th>
index 17cb36d..40ea328 100644 (file)
                       </tr>
                       <:iterator end files:> 
                     </table>
-              </td></tr></table>
+              </td></tr></table><br>
               <:or Files:><p>No files are attached to this article.<:eif Files:> 
                 <a href="<:script:>?filelist=1&id=<:article id:>"><b>Manage Files</b></a></p>
             </td>
             <td nowrap bgcolor="#FFFFFF" valign="top"><:help edit files:></td>
           </tr>
           <tr> 
-            <th valign="top" nowrap bgcolor="#FFFFFF" align="left"> Uploaded images: 
+            <th valign="top" nowrap bgcolor="#FFFFFF" align="left"> Images: 
             </th>
-            <td align="center" bgcolor="#FFFFFF" width="100%"><:if Images:> <p><a href="<:script:>?id=<:article id:>&showimages=1"><b>Manage Images</b></a></p> <:iterator begin 
+            <td align="center" bgcolor="#FFFFFF" width="100%"><:if Images:> <:iterator begin 
               images:> <img src="/images/<: image image :>" alt="<:image alt :>" width= 
               <:image width:> height=<:image height:>> <:iterator separator images:> 
               <hr noshade size="1">
-              <: iterator end images :> &nbsp; <br>
-             <:or Images:><p>No images are attached to this article.  <a href="<:script:>?id=<:article id:>&showimages=1"><b>Manage Images</b></a></p>
+              <: iterator end images :>
+              <p align="left"><a href="<:script:>?id=<:article id:>&showimages=1"><b>Manage Images</b></a></p>
+             <:or Images:><p align="left">No images are attached to this article.  <a href="<:script:>?id=<:article id:>&showimages=1"><b>Manage Images</b></a></p>
              <:eif Images:>
            </td>
             <td bgcolor="#FFFFFF" valign="top"><:help edit images:> </td>
index 29f9ef6..e993817 100644 (file)
             <td nowrap bgcolor="#FFFFFF" valign="top"><:help edit files:></td>
           </tr>
           <tr> 
-            <th valign="top" bgcolor="#FFFFFF" nowrap align="left"> Uploaded images: 
+            <th valign="top" bgcolor="#FFFFFF" nowrap align="left"> Images: 
             </th>
-            <td align="center" bgcolor="#FFFFFF" width="100%"> <:if Images:> <p><a href="<:script:>?id=<:article id:>&showimages=1"><b>Manage Images</b></a></p> <:iterator begin 
+            <td align="center" bgcolor="#FFFFFF" width="100%"> <:if Images:> <:iterator begin 
               images:> <img src="/images/<: image image :>" alt="<:image alt :>" width= 
               <:image width:> height=<:image height:>> <:iterator separator images:> 
               <hr noshade size="1">
-              <: iterator end images :> &nbsp; <br>
-             <:or Images:><p>No images are attached to this article.  <a href="<:script:>?id=<:article id:>&showimages=1"><b>Manage Images</b></a></p>
+              <: iterator end images :>
+              <p align="left"><a href="<:script:>?id=<:article id:>&showimages=1"><b>Manage Images</b></a></p>
+             <:or Images:><p align="left">No images are attached to this article.  <a href="<:script:>?id=<:article id:>&showimages=1"><b>Manage Images</b></a></p>
              <:eif Images:>
            </td>
             <td bgcolor="#FFFFFF" valign="top"><:help catalog images:></td>
 <:if HaveChildType:>
 <:if new:>
 <:or new:>
-<table><tr>
-<td><form action="/cgi-bin/admin/add.pl" method="POST">
+<p>
+<form action="/cgi-bin/admin/add.pl" method="POST">
 <input type=hidden name="parentid" value="<:article id:>">
 <input type=hidden name="type" value="Catalog">
-<p>
+
     <input type=submit value="Add Sub-catalog">
-  </p>
-</form></td>
-<td><form action="/cgi-bin/admin/add.pl" method="POST">
+</form>
+<form action="/cgi-bin/admin/add.pl" method="POST">
 <input type=hidden name="parentid" value="<:article id:>">
 <input type=hidden name="parentid" value="Product">
-<p>
     <input type=submit value="Add Product">
-  </p>
-</form></td></tr></table>
+</form></p>
 <:eif new:> <:or HaveChildType:> <:eif HaveChildType:> 
 <p><font size="-1">BSE Release <:release:></font></p>
 </body
index ed090db..a45dbff 100644 (file)
                     </table>
                   </td>
                 </tr>
-              </table>
+              </table><br>
               <:or Files:><p>No files are attached to this article.<:eif Files:> 
                 <a href="<:script:>?filelist=1&id=<:product id:>"><b>Manage Files</b></a></p>
             </td>
               files:></td>
           </tr>
           <tr> 
-            <th valign="top" nowrap bgcolor="#FFFFFF" align="left"> Uploaded images: 
+            <th valign="top" nowrap bgcolor="#FFFFFF" align="left"> Images: 
             </th>
-            <td align="center" bgcolor="#FFFFFF" width="100%"> <:if Images:> <p><a href="<:script:>?id=<:article id:>&showimages=1"><b>Manage Images</b></a></p> <:iterator begin 
+            <td align="center" bgcolor="#FFFFFF" width="100%"> <:if Images:> <:iterator begin 
               images:> <img src="/images/<: image image :>" alt="<:image alt :>" width= 
               <:image width:> height=<:image height:>> <:iterator separator images:> 
               <hr noshade size="1">
-              <: iterator end images :> &nbsp; <br>
-             <:or Images:><p>No images are attached to this article.  <a href="<:script:>?id=<:article id:>&showimages=1"><b>Manage Images</b></a></p>
+              <: iterator end images :>
+              <p align="left"><a href="<:script:>?id=<:article id:>&showimages=1"><b>Manage Images</b></a></p>
+             <:or Images:><p align="left">No images are attached to this article.  <a href="<:script:>?id=<:article id:>&showimages=1"><b>Manage Images</b></a></p>
              <:eif Images:>
             </td>
             <td valign="top" bgcolor="#FFFFFF" width="100%"><:help product images:></td>
index 9a3be6c..3fbf089 100644 (file)
@@ -40,7 +40,7 @@
       <td align="center"> 
         <p><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Hello <:user 
           userId:><br>
-          Last logged in: <:date user lastLogon:></font><br>
+          Last logged in: <:date user previousLogon:></font><br>
           <br>
         </p>
         </td>
diff --git a/t/t30rules.t b/t/t30rules.t
new file mode 100644 (file)
index 0000000..a270944
--- /dev/null
@@ -0,0 +1,25 @@
+#!perl -w
+use strict;
+use BSE::Test qw(ok);
+use File::Find;
+
+my @files;
+open MANIFEST, "< MANIFEST" or die "Cannot open MANIFEST";
+while (<MANIFEST>) {
+  chomp;
+  next if /^\s*\#/;
+  s/\s+.*//;
+  push @files, $_ if /\.(pm|t|pl)$/;
+}
+close MANIFEST;
+my @scripts = grep /\.(pl|t)$/, @files;
+print "1..",scalar(@files) + scalar(@scripts),"\n";
+for my $file (@files) {
+  open SRC, "< $file" or die "Cannot open $file: $!";
+  my $data = do { local $/; <SRC> };
+  close SRC;
+  ok($data =~ /^use\s+strict/m, "use strict in $file");
+  if ($file =~ /\.(pl|t)$/) {
+    ok($data =~ /#!.*perl.*-w/, "-w in $file");
+  }
+}