several bug fixes

This commit is contained in:
JT Smith 2004-09-15 21:47:00 +00:00
parent 930368341e
commit 3b7e401e95
5 changed files with 41 additions and 28 deletions

View file

@ -6,13 +6,18 @@
- bugfix [ 1028561 ] Manage Users - Next Page Link Broken - bugfix [ 1028561 ] Manage Users - Next Page Link Broken
- bugfix [ 1028494 ] Folder not shown in Manage Collateral - bugfix [ 1028494 ] Folder not shown in Manage Collateral
- bugfix [ 1028446 ] Can't copy Navigation - bugfix [ 1028446 ] Can't copy Navigation
- bugfix [ 1027705 ] %row in sub self_and_sisters should be case-insensitive
(Yary Hluchan).
- bugfix [ 1027834 ] Theme Importer fails due to getNextId
- bugfix [ 1027698 ] Attatchment::saveFromFilesystem fails when 1st arg is a
dir (Yary Hluchan)
- bugfix [ 1027684 ] cp silent failure in Attatchment.pm (Yary Hluchan)
- bugfix [ 1027681 ] Some warnings hard to track down (Yary Hluchan)
6.2.2 6.2.2
- Made a dramatic performance enhancement to the page tree system by - Made a dramatic performance enhancement to the page tree system by
restructuring an overused, and inefficent method. restructuring an overused, and inefficent method.
- Added a gotcha warning about setting the TZ environment variable on Windows
systems.
- bugfix [1024275]. Drag and drop not working (Leendert Bottelberghs). - bugfix [1024275]. Drag and drop not working (Leendert Bottelberghs).
- bugfix [ 1025671 ] Crash on manage page tree. (Leendert Bottelberghs) - bugfix [ 1025671 ] Crash on manage page tree. (Leendert Bottelberghs)
- bugfix [ 1025271 ] Cut page not working. (Leendert Bottelberghs) - bugfix [ 1025271 ] Cut page not working. (Leendert Bottelberghs)

View file

@ -145,7 +145,7 @@ sub copy {
$b = FileHandle->new(">".$newNode->getPath.$session{os}{slash}.'thumb-'.$_[0]->getFilename); $b = FileHandle->new(">".$newNode->getPath.$session{os}{slash}.'thumb-'.$_[0]->getFilename);
if (defined $b) { if (defined $b) {
binmode($b); binmode($b);
cp($a,$b); cp($a,$b) or WebGUI::ErrorHandler::warn("Couldn't copy thumbnail: ".)$newNode->getPath.$session{os}{slash}.'thumb-'.$_[0]->getFilename." :".$!);
$b->close; $b->close;
} }
$a->close; $a->close;
@ -613,25 +613,29 @@ sub saveFromFilesystem {
} }
$_[0]->{_filename} = WebGUI::URL::makeCompliant($_[0]->getFilename); $_[0]->{_filename} = WebGUI::URL::makeCompliant($_[0]->getFilename);
$_[0]->getNode->create(); $_[0]->getNode->create();
$a = FileHandle->new($_[1],"r"); if (-d $_[1]) {
if (defined $a) { WebGUI::ErrorHandler::warn($_[1]." is a directory, not a file.");
binmode($a);
$b = FileHandle->new(">".$_[0]->getPath);
if (defined $b) {
binmode($b);
cp($a,$b);
$b->close;
$_[0]->createThumbnail($_[2]);
$_[0]->resizeImage($_[3]);
} else {
WebGUI::ErrorHandler::warn("Couldn't open file ".$_[0]->getPath." for writing due to error: ".$!);
$_[0]->{_filename} = "";
}
$a->close;
} else { } else {
WebGUI::ErrorHandler::warn("Couldn't open file ".$_[1]." for reading due to error: ".$!); $a = FileHandle->new($_[1],"r");
$_[0]->{_filename} = ""; if (defined $a) {
} binmode($a);
$b = FileHandle->new(">".$_[0]->getPath);
if (defined $b) {
binmode($b);
cp($a,$b) or WebGUI::ErrorHandler::warn("Couldn't copy $_[1] to ".$_[0]->getPath.": $!");;
$b->close;
$_[0]->createThumbnail($_[2]);
$_[0]->resizeImage($_[3]);
} else {
WebGUI::ErrorHandler::warn("Couldn't open file ".$_[0]->getPath." for writing due to error: ".$!);
$_[0]->{_filename} = "";
}
$a->close;
} else {
WebGUI::ErrorHandler::warn("Couldn't open file ".$_[1]." for reading due to error: ".$!);
$_[0]->{_filename} = "";
}
}
} else { } else {
$_[0]->{_filename} = ""; $_[0]->{_filename} = "";
} }

View file

@ -376,6 +376,7 @@ The message you wish to write to the log.
sub writeLog { sub writeLog {
if (my $log = FileHandle->new(">>".$WebGUI::Session::session{config}{logfile})) { if (my $log = FileHandle->new(">>".$WebGUI::Session::session{config}{logfile})) {
print $log $_[0]; print $log $_[0];
printf $log '%s:%d (sub %s) ',(caller(2))[1,2,3];
$log->close; $log->close;
} else { } else {
use CGI; use CGI;

View file

@ -20,6 +20,7 @@ use WebGUI::Grouping;
use WebGUI::HTMLForm; use WebGUI::HTMLForm;
use WebGUI::HTTP; use WebGUI::HTTP;
use WebGUI::Icon; use WebGUI::Icon;
use WebGUI::Id;
use WebGUI::International; use WebGUI::International;
use WebGUI::Node; use WebGUI::Node;
use WebGUI::Operation::Shared; use WebGUI::Operation::Shared;
@ -111,7 +112,7 @@ sub www_addThemeComponentSave {
$id =~ /^(.*?)\_(.*)/; $id =~ /^(.*?)\_(.*)/;
my $type = $1; my $type = $1;
$id = $2; $id = $2;
my $componentId = getNextId("themeComponentId"); my $componentId = WebGUI::Id::generate();
WebGUI::SQL->write("insert into themeComponent (themeId,themeComponentId,type,id) WebGUI::SQL->write("insert into themeComponent (themeId,themeComponentId,type,id)
values ($session{form}{themeId}, $componentId, ".quote($type).", ".quote($id).")"); values ($session{form}{themeId}, $componentId, ".quote($type).", ".quote($id).")");
} }
@ -245,7 +246,7 @@ sub www_editTheme {
sub www_editThemeSave { sub www_editThemeSave {
return WebGUI::Privilege::insufficient unless (WebGUI::Grouping::isInGroup(9)); return WebGUI::Privilege::insufficient unless (WebGUI::Grouping::isInGroup(9));
if ($session{form}{themeId} eq "new") { if ($session{form}{themeId} eq "new") {
$session{form}{themeId} = getNextId("themeId"); $session{form}{themeId} = WebGUI::Id::generate();
WebGUI::SQL->write("insert into theme (themeId,webguiVersion,original,versionNumber) WebGUI::SQL->write("insert into theme (themeId,webguiVersion,original,versionNumber)
values ($session{form}{themeId},".quote($WebGUI::VERSION).",1,0)"); values ($session{form}{themeId},".quote($WebGUI::VERSION).",1,0)");
} }
@ -385,17 +386,17 @@ sub www_importThemeSave {
return WebGUI::Privilege::insufficient unless (WebGUI::Grouping::isInGroup(9)); return WebGUI::Privilege::insufficient unless (WebGUI::Grouping::isInGroup(9));
my $propertiesFile = WebGUI::Attachment->new("_theme.properties","temp",$session{form}{extractionPoint}); my $propertiesFile = WebGUI::Attachment->new("_theme.properties","temp",$session{form}{extractionPoint});
my $theme = $propertiesFile->getHashref; my $theme = $propertiesFile->getHashref;
my $themeId = getNextId("themeId"); my $themeId = WebGUI::Id::generate();
WebGUI::SQL->write("insert into theme (themeId,name,designer,designerURL,webguiVersion,versionNumber,original) values WebGUI::SQL->write("insert into theme (themeId,name,designer,designerURL,webguiVersion,versionNumber,original) values
($themeId, ".quote($theme->{name}).", ".quote($theme->{designer}).", ".quote($theme->{designerURL}) ($themeId, ".quote($theme->{name}).", ".quote($theme->{designer}).", ".quote($theme->{designerURL})
.", ".quote($theme->{webguiVersion}).", $theme->{versionNumber}, 0)"); .", ".quote($theme->{webguiVersion}).", $theme->{versionNumber}, 0)");
my $collateralFolderId = getNextId("collateralFolderId"); my $collateralFolderId = WebGUI::Id::generate();
WebGUI::SQL->write("insert into collateralFolder (collateralFolderId,name,parentId) values ($collateralFolderId, WebGUI::SQL->write("insert into collateralFolder (collateralFolderId,name,parentId) values ($collateralFolderId,
".quote($theme->{name}).", 0)"); ".quote($theme->{name}).", 0)");
foreach my $key (keys %{$theme->{components}}) { foreach my $key (keys %{$theme->{components}}) {
my $type = $theme->{components}{$key}{type}; my $type = $theme->{components}{$key}{type};
if ($type eq "template") { if ($type eq "template") {
$theme->{components}{$key}{properties}{$type."Id"} = getNextId($type."Id"); $theme->{components}{$key}{properties}{$type."Id"} = WebGUI::Id::generate();
my (@fields, @values); my (@fields, @values);
foreach my $property (keys %{$theme->{components}{$key}{properties}}) { foreach my $property (keys %{$theme->{components}{$key}{properties}}) {
push(@fields,$property); push(@fields,$property);
@ -405,7 +406,7 @@ sub www_importThemeSave {
my $id = $theme->{components}{$key}{properties}{$type."Id"}; my $id = $theme->{components}{$key}{properties}{$type."Id"};
$id .= "_".$theme->{components}{$key}{properties}{namespace} if ($type eq "template"); $id .= "_".$theme->{components}{$key}{properties}{namespace} if ($type eq "template");
WebGUI::SQL->write("insert into themeComponent (themeId,themeComponentId,type,id) WebGUI::SQL->write("insert into themeComponent (themeId,themeComponentId,type,id)
values ($themeId, ".getNextId("themeComponentId").", ".quote($type).", ".quote($id).")"); values ($themeId, ".WebGUI::Id::generate().", ".quote($type).", ".quote($id).")");
} elsif (isIn($type, qw(image file snippet))) { } elsif (isIn($type, qw(image file snippet))) {
$theme->{components}{$key}{properties}{collateralFolderId} = $collateralFolderId; $theme->{components}{$key}{properties}{collateralFolderId} = $collateralFolderId;
my $c = WebGUI::Collateral->new("new"); my $c = WebGUI::Collateral->new("new");
@ -413,7 +414,7 @@ sub www_importThemeSave {
$c->saveFromFilesystem($propertiesFile->getNode->getPath.$session{os}{slash} $c->saveFromFilesystem($propertiesFile->getNode->getPath.$session{os}{slash}
.$theme->{components}{$key}{properties}{filename}); .$theme->{components}{$key}{properties}{filename});
WebGUI::SQL->write("insert into themeComponent (themeId,themeComponentId,type,id) WebGUI::SQL->write("insert into themeComponent (themeId,themeComponentId,type,id)
values ($themeId, ".getNextId("themeComponentId").", ".quote($type).", " values ($themeId, ".WebGUI::Id::generate().", ".quote($type).", "
.quote($c->get("collateralId")).")"); .quote($c->get("collateralId")).")");
} }
} }

View file

@ -17,6 +17,7 @@ package WebGUI::Page;
use HTML::Template; use HTML::Template;
use strict; use strict;
use Tie::IxHash; use Tie::IxHash;
use Tie::CPHash;
use WebGUI::Cache; use WebGUI::Cache;
use WebGUI::DateTime; use WebGUI::DateTime;
use WebGUI::ErrorHandler; use WebGUI::ErrorHandler;
@ -1417,6 +1418,7 @@ Returns an array of hashrefs containing the page properties of this node and it'
sub self_and_sisters { sub self_and_sisters {
my ($self, $sth, %row, @result); my ($self, $sth, %row, @result);
$self = shift; $self = shift;
tie %row,'Tie::CPHash';
$sth = WebGUI::SQL->read( $sth = WebGUI::SQL->read(
"select a.* "select a.*
from page as a, from page as a,