bug fixes

This commit is contained in:
JT Smith 2005-03-17 20:13:01 +00:00
parent c7c2c8d178
commit 736d341312
10 changed files with 148 additions and 132 deletions

View file

@ -7,6 +7,13 @@
- fix [ 1160034 ] 6.5.0 - newly added posts do not appear
- fix [ 1027992 ] pagination in forum doesn't take you to correct page
- fix [ 1149585 ] visitor as admin
- Fixed a bug where the wrong toolbar was displayed for AssetProxied
Navigation assets.
- fix [ 1165010 ] Navigation Display title gets reset
- fix [ 1159992 ] Integer value zero not returned in form fields
- fix [ 1165425 ] View Userprofile - Style is missing for non-public profiles
- fix [ 1165434 ] View Userprofile - Perm. denied page not parsed for macros
- fix [ 1138654 ] 6.3 CVS - raw form parameter not processed
6.5.2

View file

@ -480,7 +480,7 @@ sub duplicate {
my $self = shift;
my $assetToDuplicate = shift || $self;
my $newAsset = $self->addChild($assetToDuplicate->get);
my $sth = WebGUI::SQL->read("select * from metaData_values where assetId = ".quote($self->getId));
my $sth = WebGUI::SQL->read("select * from metaData_values where assetId = ".quote($assetToDuplicate->getId));
while( my $h = $sth->hashRef) {
WebGUI::SQL->write("insert into metaData_values (fieldId, assetId, value) values (".
quote($h->{fieldId}).",".quote($newAsset->getId).",".quote($h->{value}).")");
@ -1527,7 +1527,6 @@ Returns a toolbar with a set of icons that hyperlink to functions that delete, e
sub getToolbar {
my $self = shift;
return undef if ($self->{_toolbarOff});
my $toolbar = deleteIcon('func=delete',$self->get("url"),WebGUI::International::get(43,"Asset"))
.editIcon('func=edit',$self->get("url"))
.moveUpIcon('func=promote',$self->get("url"))
@ -1540,6 +1539,20 @@ sub getToolbar {
return '<img src="'.$self->getIcon(1).'" border="0" title="'.$self->getName.'" alt="'.$self->getName.'" align="absmiddle">'.$toolbar;
}
#-------------------------------------------------------------------
=head2 getToolbarState ( )
Returns 0 if the state is normal, and 1 if the toolbar state has been toggled. See toggleToolbar() for details.
=cut
sub getToolbarState {
my $self = shift;
return $self->{_toolbarState};
}
#-------------------------------------------------------------------
=head2 getUiLevel ( )
@ -1602,7 +1615,10 @@ sub getValue {
}
$self->{_propertyDefinitions} = \%properties;
}
return $session{form}{$key} || $self->get($key) || $self->{_propertyDefinitions}{$key}{defaultValue};
return $session{form}{$key} if (exists $session{form}{$key});
my $storedValue = $self->get($key);
return $storedValue if (defined $storedValue);
return $self->{_propertyDefinitions}{$key}{defaultValue};
}
return undef;
}
@ -2152,16 +2168,16 @@ sub trash {
=head2 toggleToolbar ( )
Toggles whether to render a toolbar in an asset. This is mostly useful for macros that wish to proxy an asset but not display the toolbar.
Toggles a toolbar to a special state so that custom toolbars can be rendered under special circumstances. This is mostly useful for macros that wish to proxy an asset but not display the toolbar.
=cut
sub toggleToolbar {
my $self = shift;
if ($self->{_toolbarOff}) {
$self->{_toolbarOff} = 0;
if ($self->{_toolbarState}) {
$self->{_toolbarState} = 0;
} else {
$self->{_toolbarOff} = 1;
$self->{_toolbarState} = 1;
}
}

View file

@ -13,6 +13,7 @@ package WebGUI::Asset::Event;
use strict;
use Tie::CPHash;
use WebGUI::DateTime;
use WebGUI::Form;
use WebGUI::Grouping;
use WebGUI::HTML;
use WebGUI::HTMLForm;
@ -160,7 +161,6 @@ sub definition {
#-------------------------------------------------------------------
sub getEditForm {
my $self = shift;
my $tabform = $self->SUPER::getEditForm();
#return $tabform;
$tabform->getTab("properties")->HTMLArea(
@ -253,14 +253,21 @@ sub getEditForm {
'month'=>WebGUI::International::get(702,"EventsCalendar"),
'year'=>WebGUI::International::get(703,"EventsCalendar"),
);
$tabform->getTab("properties")->raw(
'<tr><td class="formdescription" valign="top">'.WebGUI::International::get(8,"EventsCalendar").'</td><td class="tableData">'
);
$tabform->getTab("properties")->integer("interval","",1,"","","",3);
$tabform->getTab("properties")->selectList("recursEvery",\%recursEvery);
$tabform->getTab("properties")->raw('<tr><td class="formdescription" valign="top">'.WebGUI::International::get(9,"EventsCalendar").'</td><td class="tableData">');
$tabform->getTab("properties")->date("until");
$tabform->getTab("properties")->raw("</td><tr>");
$tabform->getTab("properties")->readOnly(
-label=>WebGUI::International::get(8,"EventsCalendar"),
-value=>WebGUI::Form::integer({
name=>"interval",
defaultValue=>1
})
.WebGUI::Form::selectList({
name=>"recursEvery",
options=>\%recursEvery
})
.' '.WebGUI::International::get(9,"EventsCalendar").' '
.WebGUI::Form::date({
name=>"until"
})
);
}
# $tabform->getTab("display")->template(
# -name=>"confirmationTemplateId",
@ -322,6 +329,47 @@ sub getName {
}
#-------------------------------------------------------------------
sub processPropertiesFromFormPost {
my $self = shift;
$self->SUPER::processPropertiesFromFormPost;
if ($session{form}{assetId} eq "new") {
$self->update({eventEndDate=>$self->get("eventStartDate")}) unless ($self->get("eventEndDate") >= $self->get("eventStartDate"));
if ($session{form}{recursEvery} ne "never") {
my $until = WebGUI::DateTime::setToEpoch($session{form}{until});
$until = $self->get("eventEndDate") unless ($until >= $self->get("eventEndDate"));
my $interval = ($session{form}{interval} < 1) ? 1 : $session{form}{interval};
my $recurringEventId = WebGUI::Id::generate();
$self->update({EventsCalendar_recurringId=>$recurringEventId});
my $start = $self->get("eventStartDate");
my $end = $self->get("eventEndDate");
my $i = 0;
while ($start < $until) {
$i++;
if ($session{form}{recursEvery} eq "day") {
$start = WebGUI::DateTime::addToDate($self->get("eventStartDate"),0,0,($i*$interval));
$end = WebGUI::DateTime::addToDate($self->get("eventEndDate"),0,0,($i*$interval));
} elsif ($session{form}{recursEvery} eq "week") {
$start = WebGUI::DateTime::addToDate($self->get("eventStartDate"),0,0,(7*$i*$interval));
$end = WebGUI::DateTime::addToDate($self->get("eventEndDate"),0,0,(7*$i*$interval));
} elsif ($session{form}{recursEvery} eq "month") {
$start = WebGUI::DateTime::addToDate($self->get("eventStartDate"),0,($i*$interval),0);
$end = WebGUI::DateTime::addToDate($self->get("eventEndDate"),0,($i*$interval),0);
} elsif ($session{form}{recursEvery} eq "year") {
$start = WebGUI::DateTime::addToDate($self->get("eventStartDate"),($i*$interval),0,0);
$end = WebGUI::DateTime::addToDate($self->get("eventEndDate"),($i*$interval),0,0);
}
my $newEvent = $self->getParent->duplicate($self);
$newEvent->update({
eventStartDate=>$start,
eventEndDate=>$end
});
}
}
}
}
#-------------------------------------------------------------------
sub view {
my $self = shift;
@ -414,108 +462,6 @@ sub www_edit {
}
#-------------------------------------------------------------------
=head2 www_editSave ( )
Saves the event or a new (series of) event(s).
=cut
sub www_editSave {
my $self = shift;
my $object = $self;
# Somebody please help me debug this... it was adding recurring events just fine; then
# I changed something and it stopped working... :( I suspect it has something to do
# with processPropertiesFromFormPost. It's as if $session{form}{recursEvery} always equals never.
if ($session{form}{assetId} eq "new") {
$self = $self->getParent() if ($self->getValue("className") eq "WebGUI::Asset::Event");
return WebGUI::Privilege::insufficient() unless ($self->canEdit);
my (@startDate, @endDate, @regStartDate, @regEndDate, @reminderStartDate,
@reminderEndDate, $until, @eventId, $i, $recurringEventId);
$startDate[0] = WebGUI::DateTime::setToEpoch($session{form}{eventStartDate});
$startDate[0] = time() unless ($startDate[0] > 0);
$endDate[0] = WebGUI::DateTime::setToEpoch($session{form}{eventEndDate});
$endDate[0] = $startDate[0] unless ($endDate[0] >= $startDate[0]);
# $regStartDate[0] = WebGUI::DateTime::setToEpoch($session{form}{regStartDate});
# $regEndDate[0] = WebGUI::DateTime::setToEpoch($session{form}{regStartDate});
# $regEndDate[0] = $regStartDate[0] unless ($regEndDate[0] >= $regStartDate[0]);
# $reminderStartDate[0] = WebGUI::DateTime::setToEpoch($session{form}{reminderStartDate});
# $reminderEndDate[0] = WebGUI::DateTime::setToEpoch($session{form}{reminderStartDate});
# $reminderEndDate[0] = $reminderStartDate[0] unless ($reminderEndDate[0] >= $reminderStartDate[0]);
$session{form}{title} = $session{form}{title} || WebGUI::International::get(557,"EventsCalendar");
$until = WebGUI::DateTime::setToEpoch($session{form}{until});
$until = $endDate[0] unless ($until >= $endDate[0]);
$eventId[0] = WebGUI::Id::generate();
$session{form}{interval} = 1 if ($session{form}{interval} < 1);
if ($session{form}{recursEvery} eq "never") {
$recurringEventId = 0;
my $newEvent = $self->addChild({
className=>"WebGUI::Asset::Event",
title=>$session{form}{title},
description=>$session{form}{description},
EventsCalendar_recurringId=>$recurringEventId
});
$newEvent->processPropertiesFromFormPost;
$newEvent->updateHistory("edited");
$newEvent->{_parent} = $self;
} else {
$recurringEventId = WebGUI::Id::generate();
my $firstEvent = $self->addChild({
className=>"WebGUI::Asset::Event",
title=>$session{form}{title},
eventStartDate=>$startDate[0],
eventEndDate=>$endDate[0],
description=>$session{form}{description},
EventsCalendar_recurringId=>$recurringEventId,
eventLocation=>$session{form}{description},
templateId=>$self->getValue("eventTemplateId")
});
$firstEvent->processPropertiesFromFormPost;
$firstEvent->updateHistory("edited");
$firstEvent->{_parent} = $self;
while ($startDate[$i] < $until) {
$i++;
$eventId[$i] = WebGUI::Id::generate();
if ($session{form}{recursEvery} eq "day") {
$startDate[$i] = addToDate($startDate[0],0,0,($i*$session{form}{interval}));
$endDate[$i] = addToDate($endDate[0],0,0,($i*$session{form}{interval}));
} elsif ($session{form}{recursEvery} eq "week") {
$startDate[$i] = addToDate($startDate[0],0,0,(7*$i*$session{form}{interval}));
$endDate[$i] = addToDate($endDate[0],0,0,(7*$i*$session{form}{interval}));
} elsif ($session{form}{recursEvery} eq "month") {
$startDate[$i] = addToDate($startDate[0],0,($i*$session{form}{interval}),0);
$endDate[$i] = addToDate($endDate[0],0,($i*$session{form}{interval}),0);
} elsif ($session{form}{recursEvery} eq "year") {
$startDate[$i] = addToDate($startDate[0],($i*$session{form}{interval}),0,0);
$endDate[$i] = addToDate($endDate[0],($i*$session{form}{interval}),0,0);
}
my $newEvent = $self->duplicate($firstEvent);
$newEvent->update({
eventStartDate=>$startDate[$i],
eventEndDate=>$endDate[$i]
});
print "\n$i\n";
$newEvent->fixUrl;
$newEvent->updateHistory("edited");
$newEvent->{_parent} = $self;
}
}
} else {
return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless ($self->canEdit);
$self->processPropertiesFromFormPost;
$self->updateHistory("edited");
}
return $self->www_manageAssets if ($session{form}{proceed} eq "manageAssets" && $session{form}{assetId} eq "new");
if ($session{form}{proceed} ne "") {
my $method = "www_".$session{form}{proceed};
$session{asset} = $object;
return $object->$method();
}
return (($self->getParent)->getContainer)->www_view;
}
#-------------------------------------------------------------------

View file

@ -182,6 +182,19 @@ sub getThumbnailUrl {
return $self->getStorageLocation->getThumbnailUrl($self->get("filename"));
}
#-------------------------------------------------------------------
=head2 getToolbar ( )
Returns a toolbar with a set of icons that hyperlink to functions that delete, edit, promote, demote, cut, and copy.
=cut
sub getToolbar {
my $self = shift;
return undef if ($self->getToolbarState);
return $self->SUPER::getToolbar();
}
#-------------------------------------------------------------------
sub processPropertiesFromFormPost {

View file

@ -104,6 +104,21 @@ sub getIcon {
}
#-------------------------------------------------------------------
=head2 getToolbar ( )
Returns a toolbar with a set of icons that hyperlink to functions that delete, edit, promote, demote, cut, and copy.
=cut
sub getToolbar {
my $self = shift;
return undef if ($self->getToolbarState);
return $self->SUPER::getToolbar();
}
#-------------------------------------------------------------------
=head2 getUiLevel ()

View file

@ -88,13 +88,6 @@ sub definition {
#-------------------------------------------------------------------
sub duplicate {
my $self = shift;
return $self->getParent->duplicateTree($self);
}
#-------------------------------------------------------------------
sub getEditForm {
@ -308,8 +301,8 @@ sub view {
foreach my $event (@{$children}) {
if (ref $event eq "WebGUI::Asset::Event") {
my $eventStartDate = $event->getValue("eventStartDate");
my $eventEndDate = $event->getValue("eventEndDate");
my $eventStartDate = $event->get("eventStartDate");
my $eventEndDate = $event->get("eventEndDate");
if ($eventStartDate > $eventEndDate) {
#Fix bad data. Everything that has a beginning must have an end [no earlier than its beginning].
$event->update({ "eventEndDate"=>$eventStartDate });
@ -348,8 +341,8 @@ sub view {
#Now also test to see if we're at the maxDate yet and after the minDate.
if (($date[1] == $thisMonthDate[1]) && (WebGUI::DateTime::addToDate($eventStartDate,0,0,$i) <= ($maxDate + 2678400))){
push(@{$events{$date[2]}}, {
description=>$event->getValue("description"),
name=>$event->getValue("title"),
description=>$event->get("description"),
name=>$event->get("title"),
'start.date.human'=>$startDate,
'start.time.human'=>$startTime." ".$startAmPm,
'start.date.epoch'=>$eventStartDate,

View file

@ -15,6 +15,7 @@ use Tie::IxHash;
use WebGUI::Asset::Wobject;
use WebGUI::ErrorHandler;
use WebGUI::Form;
use WebGUI::Icon;
use WebGUI::International;
use WebGUI::Privilege;
use WebGUI::Session;
@ -27,6 +28,7 @@ our @ISA = qw(WebGUI::Asset::Wobject);
#-------------------------------------------------------------------
sub definition {
my $class = shift;
my $definition = shift;
@ -71,6 +73,7 @@ sub definition {
return $class->SUPER::definition($definition);
}
#-------------------------------------------------------------------
sub getEditForm {
my $self = shift;
my $tabform = $self->SUPER::getEditForm;
@ -211,6 +214,7 @@ sub getEditForm {
return $tabform;
}
#-------------------------------------------------------------------
sub getIcon {
my $self = shift;
my $small = shift;
@ -218,11 +222,32 @@ sub getIcon {
return $session{config}{extrasURL}.'/assets/navigation.gif';
}
#-------------------------------------------------------------------
sub getName {
return WebGUI::International::get("navigation","Navigation");
}
#-------------------------------------------------------------------
=head2 getToolbar ( )
Returns a toolbar with a set of icons that hyperlink to functions that delete, edit, promote, demote, cut, and copy.
=cut
sub getToolbar {
my $self = shift;
if ($self->getToolbarState) {
my $toolbar = editIcon('func=edit',$self->get("url"));
return '<img src="'.$self->getIcon(1).'" border="0" title="'.$self->getName.'" alt="'.$self->getName.'" align="absmiddle">'.$toolbar;
}
return $self->SUPER::getToolbar();
}
#-------------------------------------------------------------------
sub view {
my $self = shift;
# we've got to determine what our start point is based upon user conditions
@ -354,6 +379,7 @@ sub view {
}
#-------------------------------------------------------------------
sub www_edit {
my $self = shift;
return WebGUI::Privilege::insufficient() unless $self->canEdit;

View file

@ -20,7 +20,7 @@ sub process {
my ($url) = WebGUI::Macro::getParams(shift);
my $asset = WebGUI::Asset->newByUrl($url);
if (defined $asset) {
$asset->toggleToolbar if ($asset->get("className") =~ /WebGUI::Asset::File/ || $asset->get("className") =~ /WebGUI::Asset::Snippet/ );
$asset->toggleToolbar;
return $asset->canView ? $asset->view : undef;
} else {
return "Invalid Asset URL";

View file

@ -225,7 +225,7 @@ sub www_viewProfile {
$u = WebGUI::User->new($session{form}{uid});
$vars->{displayTitle} = '<h1>'.WebGUI::International::get(347).' '.$u->username.'</h1>';
return WebGUI::Privilege::notMember() if($u->username eq "");
return $vars->{displayTitle}.WebGUI::International::get(862) if($u->profileField("publicProfile") < 1 && ($session{user}{userId} ne $session{form}{uid} || WebGUI::Grouping::isInGroup(3)));
return WebGUI::Operation::Shared::userStyle($vars->{displayTitle}.WebGUI::International::get(862)) if($u->profileField("publicProfile") < 1 && ($session{user}{userId} ne $session{form}{uid} || WebGUI::Grouping::isInGroup(3)));
return WebGUI::Privilege::insufficient() if(!WebGUI::Grouping::isInGroup(2));
$a = WebGUI::SQL->read("select * from userProfileField,userProfileCategory where userProfileField.profileCategoryId=userProfileCategory.profileCategoryId
and userProfileCategory.visible=1 and userProfileField.visible=1 order by userProfileCategory.sequenceNumber,

View file

@ -4288,7 +4288,7 @@ A randomly generated number. This is often used on images (such as banner ads) t
},
'38' => {
message => q|You do not have sufficient privileges to perform this operation. Please &#94;a(log in with an account); that has sufficient privileges before attempting this operation.|,
message => q|You do not have sufficient privileges to perform this operation. Please ^a(log in with an account); that has sufficient privileges before attempting this operation.|,
lastUpdated => 1031514049
},