- fix [ 1265771 ] assets that were formerly prototypes are... (mwilson)

- fix [ 1280018 ] add new sql report - all query fields visible (mwilson)
 - fix [ 1283740 ] overridden in WebGUI/Mail.pm (mwilson)
 - fix [ 1282511 ] WebGUI::Form::submit disabled (mwilson)
 - fix [ 1281854 ] migration.txt - 5.6, 5.7 need some updating. (mwilson)
 - fix [ 1281842 ] rand() needs srand() on win32 mod_perl (mwilson)
 - fix [ 1281435 ] Asset::paste() or Asset::setParent() needs... (mwilson)
 - fix [ 1280374 ] Events calendar with no end date set loops... (mwilson)
 - fix [ 1230352 ] Navigation Template (mwilson)
This commit is contained in:
Matthew Wilson 2005-09-11 17:36:39 +00:00
parent 560318df51
commit 7b20b2db03
13 changed files with 159 additions and 426 deletions

View file

@ -406,8 +406,8 @@ sub getAssetAdderLinks {
}
my $sth = WebGUI::SQL->read("select asset.className,asset.assetId,max(assetData.revisionDate) from asset left join assetData on asset.assetId=assetData.assetId where assetData.isPrototype=1 and asset.state='published' and asset.className in ($constraint) group by assetData.assetId");
while (my ($class,$id,$date) = $sth->array) {
my $asset = WebGUI::Asset->new($id,$class,$date);
next unless ($asset->canView && $asset->canAdd && $asset->getUiLevel <= $session{user}{uiLevel});
my $asset = WebGUI::Asset->new($id,$class);
next unless ($asset->get("isPrototype") eq '1' && $asset->canView && $asset->canAdd && $asset->getUiLevel <= $session{user}{uiLevel});
my $url = $self->getUrl("func=add;class=".$class.";prototype=".$id);
$url = WebGUI::URL::append($url,$addToUrl) if ($addToUrl);
$links{$asset->getTitle}{url} = $url;
@ -416,6 +416,7 @@ sub getAssetAdderLinks {
$links{$asset->getTitle}{'isPrototype'} = 1;
$links{$asset->getTitle}{'asset'} = $asset;
}
$sth->finish;
my @sortedLinks;
foreach my $label (sort keys %links) {
push(@sortedLinks,{

View file

@ -14,25 +14,16 @@ use strict;
use Tie::CPHash;
use WebGUI::DateTime;
use WebGUI::Form;
use WebGUI::Grouping;
use WebGUI::HTML;
use WebGUI::HTMLForm;
use WebGUI::HTTP;
use WebGUI::Icon;
use WebGUI::Id;
use WebGUI::International;
use WebGUI::MessageLog;
use WebGUI::Operation;
use WebGUI::Paginator;
use WebGUI::Privilege;
use WebGUI::Session;
use WebGUI::Style;
use WebGUI::Asset::Template;
use WebGUI::URL;
use WebGUI::User;
use WebGUI::Utility;
use WebGUI::Asset;
use WebGUI::Asset::Wobject::EventsCalendar;
our @ISA = qw(WebGUI::Asset);
@ -50,119 +41,36 @@ sub definition {
description => {
fieldType=>"HTMLArea",
defaultValue=>undef
},
},
eventStartDate => {
fieldType=>"dateTime",
defaultValue=>time()
},
},
eventEndDate => {
fieldType=>"dateTime",
defaultValue=>time()
},
},
EventsCalendar_recurringId => {
fieldType=>"hidden",
defaultValue=>undef
},
},
eventLocation => {
fieldType=>"text",
defaultValue=>undef
},
# allowRegistration => {
# fieldType=>"yesNo",
# defaultValue=>0
# },
# allowUnregistration => {
# fieldType=>"yesNo",
# defaultValue=>0
# },
# regConfirm => {
# fieldType=>"yesNo",
# defaultValue=>0
# },
# regNotify => {
# fieldType=>"yesNo",
# defaultValue=>0
# },
# regStartDate => {
# fieldType=>"dateTime",
# defaultValue=>time()
# },
# regEndDate => {
# fieldType=>"dateTime",
# defaultValue=>time()
# },
# allowReminders => {
# fieldType=>"yesNo",
# defaultValue=>0
# },
# reminderStartDate => {
# fieldType=>"dateTime",
# defaultValue=>time()
# },
# reminderEndDate => {
# fieldType=>"dateTime",
# defaultValue=>time()
# },
# reminderRecurs => {
# fieldType=>"interval",
# defaultValue=>604800
# },
# chargeForEvent => {
# fieldType=>"yesNo",
# defaultValue=>0
# },
# firstAttendeeFee => {
# fieldType=>"float",
# defaultValue=>0
# },
# secondAttendeeFee => {
# fieldType=>"float",
# defaultValue=>0
# },
# availableSeats => {
# fieldType=>"integer",
# defaultValue=>0
# },
},
templateId => {
fieldType=>"template",
defaultValue=>'PBtmpl0000000000000023'
},
# regConfirmTemplateId => {
# fieldType=>"template",
# defaultValue=>'MWtmplregConfirm000001'
# },
# regNotifyTemplateId => {
# fieldType=>"template",
# defaultValue=>'MWtmplregNotify0000001'
# },
# reminderTemplateId => {
# fieldType=>"template",
# defaultValue=>'MWtmplreminder00000001'
# },
# groupCanRegister => {
# fieldType=>"group",
# defaultValue=>'2'
# },
# groupCanReminder => {
# fieldType=>"group",
# defaultValue=>'2'
# },
# groupRegNotify => {
# fieldType=>"group",
# defaultValue=>'3'
# }
}
}
});
return $class->SUPER::definition($definition);
}
#-------------------------------------------------------------------
sub getEditForm {
my $self = shift;
my $tabform = $self->SUPER::getEditForm();
#return $tabform;
$tabform->getTab("properties")->HTMLArea(
-name=>"description",
-label=>WebGUI::International::get(512,"Asset_Event"),
@ -189,70 +97,7 @@ sub getEditForm {
-hoverHelp=>WebGUI::International::get('515 description',"Asset_Event"),
-value=>$self->getValue("eventLocation")
);
# $tabform->getTab("properties")->yesNo(
# -name=>"allowRegistration",
# -label=>WebGUI::International::get(516,"Asset_Event"),
# -value=>$self->getValue("allowRegistration")
# );
# $tabform->getTab("properties")->yesNo(
# -name=>"allowUnregistration", -label=>WebGUI::International::get(517,"Asset_Event"),
# -value=>$self->getValue("allowUnregistration")
# );
# $tabform->getTab("properties")->yesNo(
# -name=>"regConfirm", -label=>WebGUI::International::get(518,"Asset_Event"),
# -value=>$self->getValue("regConfirm")
# );
# $tabform->getTab("properties")->yesNo(
# -name=>"regNotify", -label=>WebGUI::International::get(519,"Asset_Event"),
# -value=>$self->getValue("regNotify")
# );
# $tabform->getTab("properties")->dateTime(
# -name=>"regStartDate", -label=>WebGUI::International::get(520,"Asset_Event"),
# -extras=>'onBlur="this.form.regEndDate.value=this.form.regStartDate.value;this.form.until.value=this.form.regStartDate.value;"',
# -value=>$self->getValue("regStartDate")
# );
# $tabform->getTab("properties")->dateTime(
# -name=>"regEndDate", -label=>WebGUI::International::get(521,"Asset_Event"),
# -extras=>'onBlur="this.form.until.value=this.form.regEndDate.value;"',
# -value=>$self->getValue("regEndDate")
# );
# $tabform->getTab("properties")->yesNo(
# -name=>"allowReminders", -label=>WebGUI::International::get(522,"Asset_Event"),
# -value=>$self->getValue("allowReminders")
# );
# $tabform->getTab("properties")->dateTime(
# -name=>"reminderStartDate", -label=>WebGUI::International::get(523,"Asset_Event"),
# -extras=>'onBlur="this.form.reminderEndDate.value=this.form.reminderStartDate.value;this.form.until.value=this.form.reminderStartDate.value;"',
# -value=>$self->getValue("reminderStartDate")
# );
# $tabform->getTab("properties")->dateTime(
# -name=>"reminderEndDate", -label=>WebGUI::International::get(524,"Asset_Event"),
# -extras=>'onBlur="this.form.until.value=this.form.reminderEndDate.value;"',
# -value=>$self->getValue("regEndDate")
# );
# $tabform->getTab("properties")->interval(
# -name=>"reminderRecurs",
# -label=>WebGUI::International::get(524.5,"Asset_Event"),
# -value=>$self->getValue("reminderRecurs")
# );
# Not quite implemented yet...
# $tabform->getTab("properties")->yesNo(
# -name=>"chargeForEvent", -label=>WebGUI::International::get(525,"Asset_Event"),
# -value=>$self->getValue("chargeForEvent")
# );
# $tabform->getTab("properties")->float(
# -name=>"firstAttendeeFee", -label=>WebGUI::International::get(526,"Asset_Event"),
# -value=>$self->getValue("firstAttendeeFee")
# );
# $tabform->getTab("properties")->float(
# -name=>"secondAttendeeFee", -label=>WebGUI::International::get(527,"Asset_Event"),
# -value=>$self->getValue("secondAttendeeFee")
# );
# $tabform->getTab("properties")->integer(
# -name=>"availableSeats", -label=>WebGUI::International::get(528,"Asset_Event"),
# -value=>$self->getValue("availableSeats")
# );
if (($session{form}{func} eq "addStyledEvent") || ($session{form}{func} eq "add") || ($session{form}{func} eq "addEvent")) {
if ($session{form}{func} eq "add") {
my %recursEvery;
tie %recursEvery, 'Tie::IxHash';
%recursEvery = (
@ -279,13 +124,6 @@ sub getEditForm {
})
);
}
# $tabform->getTab("display")->template(
# -name=>"confirmationTemplateId",
# -value=>$self->getValue("confirmationTemplateId"),
# -namespace=>"EventsCalendar/Event",
# -label=>WebGUI::International::get(529,"Asset_Event"),
# -afterEdit=>'func=edit'
# );
$tabform->getTab("display")->template(
-name=>"templateId",
-value=>$self->getValue("templateId"),
@ -293,30 +131,6 @@ sub getEditForm {
-label=>WebGUI::International::get(530,"Asset_Event"),
-hoverHelp=>WebGUI::International::get('530 description',"Asset_Event"),
);
# $tabform->getTab("display")->template(
# -name=>"regNotifyTemplateId",
# -value=>$self->getValue("regNotifyTemplateId"),
# -namespace=>"EventsCalendar/Event",
# -label=>WebGUI::International::get(531,"Asset_Event"),
# );
# $tabform->getTab("display")->template(
# -name=>"reminderTemplateId",
# -value=>$self->getValue("reminderTemplateId"),
# -namespace=>"EventsCalendar/Event",
# -label=>WebGUI::International::get(532,"Asset_Event"),
# );
# $tabform->getTab("security")->group(
# -name=>"groupCanRegister", -label=>WebGUI::International::get(533,"Asset_Event"),
# -value=>[$self->getValue("groupCanRegister")]
# );
# $tabform->getTab("security")->group(
# -name=>"groupCanReminder", -label=>WebGUI::International::get(534,"Asset_Event"),
# -value=>[$self->getValue("groupCanReminder")]
# );
# $tabform->getTab("security")->group(
# -name=>"groupNotify", -label=>WebGUI::International::get(535,"Asset_Event"),
# -value=>[$self->getValue("regNotifyGroupId")]
# );
return $tabform;
}
@ -329,7 +143,7 @@ sub processPropertiesFromFormPost {
$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") {
if ($session{form}{recursEvery} && $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};
@ -402,10 +216,9 @@ sub view {
$var{"edit.label"} = WebGUI::International::get(575,"Asset_Event");
$var{"delete.url"} = WebGUI::URL::page('func=deleteEvent;rid='.$self->getValue("EventsCalendar_recurringId"));
$var{"delete.label"} = WebGUI::International::get(576,"Asset_Event");
my $vars = \%var;
#get parent so we can get the parent's style. Hopefully the parent is an EventsCalendar. If not, oh well.
my $parent = $self->getParent;
return WebGUI::Style::process($self->processTemplate($vars,$self->getValue("templateId")),$parent->getValue("styleTemplateId"));
return WebGUI::Style::process($self->processTemplate(\%var,$self->getValue("templateId")),$parent->getValue("styleTemplateId"));
}
@ -421,7 +234,7 @@ sub www_deleteEvent {
.WebGUI::International::get(77,"Asset_Event").'</a><p>' if (($session{form}{rid} ne "") and ($session{form}{rid} ne "0"));
$output .= '<a href="'.$self->getUrl.'">'.WebGUI::International::get(78,"Asset_Event").'</a>';
$output .= '</blockquote>';
return return WebGUI::Style::process($output,$self->getParent->getValue("styleTemplateId"));
return WebGUI::Style::process($output,$self->getParent->getValue("styleTemplateId"));
}
@ -452,16 +265,5 @@ sub www_edit {
}
#-------------------------------------------------------------------
#sub www_editStyled {
# my $self = shift;
# #get parent so we can get the parent's style. Hopefully the parent is a wobject. If not, oh well.
# my $parent = WebGUI::Asset->newByDynamicClass($self->get("parentId"));
# return WebGUI::Privilege::noAccess() unless (($parent->getValue("className") eq "WebGUI::Asset::Wobject::EventsCalendar") && #($parent->canEdit));
# return WebGUI::Style::process($self->getEditForm->print,$parent->getValue("styleTemplateId"));
#}
1;

View file

@ -672,6 +672,7 @@ sub view {
$currentPageUrl =~ s/^\///;
$p->setDataByQuery($sql, undef, undef, undef, "url", $currentPageUrl);
foreach my $dataSet (@{$p->getPageData()}) {
next unless ($dataSet->{className} eq "WebGUI::Asset::Post" || $dataSet->{className} eq "WebGUI::Asset::Post::Thread"); #handle non posts!
my $reply = WebGUI::Asset::Post->new($dataSet->{assetId}, $dataSet->{className}, $dataSet->{revisionDate});
$reply->{_thread} = $self; # caching thread for better performance
my %replyVars = %{$reply->getTemplateVars};

View file

@ -62,14 +62,6 @@ sub definition {
fieldType=>"selectList",
defaultValue=>'0'
},
# type =>{
# fieldType=>"selectList",
# defaultValue=>'0'
# },
# groupIdManage =>{
# fieldType=>"group",
# defaultValue=>'4'
# },
startMonth=>{
fieldType=>"selectList",
defaultValue=>"current"
@ -98,88 +90,70 @@ sub definition {
sub getEditForm {
my $self = shift;
my $tabform = $self->SUPER::getEditForm();
# $tabform->getTab("properties")->selectList(
# -name=>"type",
# -label=>WebGUI::International::get(501,"Asset_EventsCalendar"),
# -value=>[$self->getValue("type")],
# -options=>{
# 0=>WebGUI::International::get(502,"Asset_EventsCalendar"),
# 1=>WebGUI::International::get(503,"Asset_EventsCalendar"),
# 2=>WebGUI::International::get(504,"Asset_EventsCalendar"),
# 3=>WebGUI::International::get(505,"Asset_EventsCalendar"),
# 4=>WebGUI::International::get(506,"Asset_EventsCalendar")
# },
# );
$tabform->getTab("properties")->selectList(
-name=>"scope",
-label=>WebGUI::International::get(507,"Asset_EventsCalendar"),
-value=>[$self->getValue("scope")],
-options=>{
0=>WebGUI::International::get(508,"Asset_EventsCalendar"),
1=>WebGUI::International::get(510,"Asset_EventsCalendar"),
2=>WebGUI::International::get(509,"Asset_EventsCalendar"),
}
);
$tabform->getTab("display")->template(
-name=>"templateId",
-label=>WebGUI::International::get(94,"Asset_EventsCalendar"),
-value=>$self->getValue('templateId'),
-namespace=>"EventsCalendar"
);
$tabform->getTab("display")->template(
-name=>"eventTemplateId",
-label=>WebGUI::International::get(80,"Asset_EventsCalendar"),
-value=>$self->getValue('eventTemplateId'),
-namespace=>"EventsCalendar/Event",
);
$tabform->getTab("display")->selectList(
-name=>"startMonth",
-options=>{
"january"=>WebGUI::International::get('january','Asset_EventsCalendar'),
"now"=>WebGUI::International::get(98,"Asset_EventsCalendar"),
"current"=>WebGUI::International::get(82,"Asset_EventsCalendar"),
"first"=>WebGUI::International::get(83,"Asset_EventsCalendar")
},
-label=>WebGUI::International::get(81,"Asset_EventsCalendar"),
-value=>[$self->getValue("startMonth")]
);
my %options;
tie %options, 'Tie::IxHash';
%options = (
$tabform->getTab("properties")->selectList(
-name=>"scope",
-label=>WebGUI::International::get(507,"Asset_EventsCalendar"),
-value=>[$self->getValue("scope")],
-options=>{
0=>WebGUI::International::get(508,"Asset_EventsCalendar"),
1=>WebGUI::International::get(510,"Asset_EventsCalendar"),
2=>WebGUI::International::get(509,"Asset_EventsCalendar"),
}
);
$tabform->getTab("display")->template(
-name=>"templateId",
-label=>WebGUI::International::get(94,"Asset_EventsCalendar"),
-value=>$self->getValue('templateId'),
-namespace=>"EventsCalendar"
);
$tabform->getTab("display")->template(
-name=>"eventTemplateId",
-label=>WebGUI::International::get(80,"Asset_EventsCalendar"),
-value=>$self->getValue('eventTemplateId'),
-namespace=>"EventsCalendar/Event",
);
$tabform->getTab("display")->selectList(
-name=>"startMonth",
-options=>{
"january"=>WebGUI::International::get('january','Asset_EventsCalendar'),
"now"=>WebGUI::International::get(98,"Asset_EventsCalendar"),
"current"=>WebGUI::International::get(82,"Asset_EventsCalendar"),
"first"=>WebGUI::International::get(83,"Asset_EventsCalendar")
},
-label=>WebGUI::International::get(81,"Asset_EventsCalendar"),
-value=>[$self->getValue("startMonth")]
);
my %options;
tie %options, 'Tie::IxHash';
%options = (
"last"=>WebGUI::International::get(85,"Asset_EventsCalendar"),
"after12"=>WebGUI::International::get(86,"Asset_EventsCalendar"),
"after9"=>WebGUI::International::get(87,"Asset_EventsCalendar"),
"after6"=>WebGUI::International::get(88,"Asset_EventsCalendar"),
"after3"=>WebGUI::International::get(89,"Asset_EventsCalendar"),
"current"=>WebGUI::International::get(82,"Asset_EventsCalendar")
);
$tabform->getTab("display")->selectList(
-name=>"endMonth",
-options=>\%options,
-label=>WebGUI::International::get(84,"Asset_EventsCalendar"),
-value=>[$self->getValue("endMonth")]
);
$tabform->getTab("display")->selectList(
-name=>"defaultMonth",
-options=>{
"current"=>WebGUI::International::get(82,"Asset_EventsCalendar"),
"last"=>WebGUI::International::get(85,"Asset_EventsCalendar"),
"after12"=>WebGUI::International::get(86,"Asset_EventsCalendar"),
"after9"=>WebGUI::International::get(87,"Asset_EventsCalendar"),
"after6"=>WebGUI::International::get(88,"Asset_EventsCalendar"),
"after3"=>WebGUI::International::get(89,"Asset_EventsCalendar"),
"current"=>WebGUI::International::get(82,"Asset_EventsCalendar")
);
$tabform->getTab("display")->selectList(
-name=>"endMonth",
-options=>\%options,
-label=>WebGUI::International::get(84,"Asset_EventsCalendar"),
-value=>[$self->getValue("endMonth")]
);
$tabform->getTab("display")->selectList(
-name=>"defaultMonth",
-options=>{
"current"=>WebGUI::International::get(82,"Asset_EventsCalendar"),
"last"=>WebGUI::International::get(85,"Asset_EventsCalendar"),
"first"=>WebGUI::International::get(83,"Asset_EventsCalendar")
},
-label=>WebGUI::International::get(90,"Asset_EventsCalendar"),
-value=>[$self->getValue("defaultMonth")]
);
$tabform->getTab("display")->integer(
-name=>"paginateAfter",
-label=>WebGUI::International::get(19,"Asset_EventsCalendar"),
-value=>$self->getValue("paginateAfter")
);
# $tabform->getTab("security")->group(
# -name=>"groupIdManage",
# -label=>WebGUI::International::get(500,"Asset_EventsCalendar"),
# -value=>[$self->getValue("groupIdManage")],
# -uiLevel=>6
# );
"first"=>WebGUI::International::get(83,"Asset_EventsCalendar")
},
-label=>WebGUI::International::get(90,"Asset_EventsCalendar"),
-value=>[$self->getValue("defaultMonth")]
);
$tabform->getTab("display")->integer(
-name=>"paginateAfter",
-label=>WebGUI::International::get(19,"Asset_EventsCalendar"),
-value=>$self->getValue("paginateAfter")
);
return $tabform;
}
@ -187,14 +161,6 @@ sub getEditForm {
#-------------------------------------------------------------------
sub view {
# All of this really needs to be redone like the old
# EventsCalendar... except this time using getLineage to
# filter instead of doing all sorts of pruning. Also, caching
# needs to be re-enabled. Also, see the note below at line
# 407 - each dayloop event array needs to be sorted by startTime.
my $self = shift;
#define default view month range. Note that this could be different from
#the range a user is allowed to view - set by the events calendar limitations.
@ -215,25 +181,18 @@ sub view {
my ( $junk, $sameDate, $p, @list, $date, $flag, %previous, $maxDate, $minDate);
my $monthloop;
#had to disable caching because each event can have its own security.
# It can be re-added, of course.
my $scope = $self->getValue("scope");
my $children;
# get All My Children.
if ($scope == 0) { #calendar's scope is regular (immediate descendants)
$children = $self->getLineage(["children"],{returnObjects=>1,
includeOnlyClasses=>["WebGUI::Asset::Event","WebGUI::Asset::Relation"]});
includeOnlyClasses=>["WebGUI::Asset::Event"]});
} elsif ($scope == 2) { #calendar is master
$children = $self->getLineage(["descendants"],{returnObjects=>1,
includeOnlyClasses=>["WebGUI::Asset::Event","WebGUI::Asset::Relation"]});
includeOnlyClasses=>["WebGUI::Asset::Event"]});
} elsif ($scope == 1) { #calendar is global
$children = WebGUI::Asset::getRoot()->getLineage(["descendants"],{returnObjects=>1,
includeOnlyClasses=>["WebGUI::Asset::Event","WebGUI::Asset::Relation"]});
includeOnlyClasses=>["WebGUI::Asset::Event"]});
}
# get Type of Calendar
# my $calType = $self->getValue("type");
my $startMonth = $self->getValue("startMonth");
#define range of allowed months from the wobject settings.
@ -299,8 +258,6 @@ sub view {
next if (($eventEndDate < $minDate) && $startsNow);
#Hide this event unless we are allowed to see it. Funny that each event has 4 date/time pairs.
next unless $event->canView;
# only display events for this person's Personal Calendar, if it's so set.
# next unless (($calType != 1) || ($event->isMyEvent()));
my $eventLength = WebGUI::DateTime::getDaysInInterval($eventStartDate,$eventEndDate);
my ($startYear, $startMonth, $startDay, $startDate, $startTime, $startAmPm, $startDayOfWeek) = split " ",
WebGUI::DateTime::epochToHuman($eventStartDate, "%y %c %D %z %Z %w");
@ -359,68 +316,65 @@ sub view {
$previous{start} = $startYear."-".$startMonth."-".$startDay;
$previous{end} = $endYear."-".$endMonth."-".$endDay;
# } elsif (ref $event eq "WebGUI::Asset::Relation") {
# print "\n";
}
}
if (($startsNow || ($startMonth eq "first")) && ($calHasEvent == 0)) {
# if (($startsNow || ($startMonth eq "first")) && ($calHasEvent == 0)) {
#Let's process an extra month if this month had no events,
#and if we're at the beginning of the calendar, and if
#the calendar is supposed to start with the first event or now.
$calMonthEnd++ unless $monthHasEvent;
next unless $monthHasEvent;
# $calMonthEnd++ unless $monthHasEvent;
# next unless $monthHasEvent;
# }
my $dayOfWeekCounter = 1;
my $firstDayInFirstWeek = WebGUI::DateTime::getFirstDayInMonthPosition($thisMonth);
my $daysInMonth = WebGUI::DateTime::getDaysInMonth($thisMonth);
my @prepad;
while ($dayOfWeekCounter < $firstDayInFirstWeek) {
push(@prepad,{
count => $dayOfWeekCounter
});
$dayOfWeekCounter++;
}
my $dayOfWeekCounter = 1;
my $firstDayInFirstWeek = WebGUI::DateTime::getFirstDayInMonthPosition($thisMonth);
my $daysInMonth = WebGUI::DateTime::getDaysInMonth($thisMonth);
my @prepad;
while ($dayOfWeekCounter < $firstDayInFirstWeek) {
push(@prepad,{
count => $dayOfWeekCounter
});
$dayOfWeekCounter++;
my @date = WebGUI::DateTime::epochToArray($thisMonth);
my @dayloop;
for (my $dayCounter=1; $dayCounter <= $daysInMonth; $dayCounter++) {
#----------------------------------------------------------------------------
#sort each day's events here - still needs to be done!
#----------------------------------------------------------------------------
push(@dayloop, {
dayOfWeek => $dayOfWeekCounter,
day=>$dayCounter,
isStartOfWeek=>($dayOfWeekCounter==1),
isEndOfWeek=>($dayOfWeekCounter==7),
isToday=>($date[0]."-".$date[1]."-".$dayCounter eq $now[0]."-".$now[1]."-".$now[2]),
event_loop=>\@{$events{$dayCounter}},
url=>$events{$dayCounter}->[0]->{url}
});
if ($dayOfWeekCounter == 7) {
$dayOfWeekCounter = 1;
} else {
$dayOfWeekCounter++;
}
my @date = WebGUI::DateTime::epochToArray($thisMonth);
my @dayloop;
for (my $dayCounter=1; $dayCounter <= $daysInMonth; $dayCounter++) {
#----------------------------------------------------------------------------
#sort each day's events here - still needs to be done!
#----------------------------------------------------------------------------
push(@dayloop, {
dayOfWeek => $dayOfWeekCounter,
day=>$dayCounter,
isStartOfWeek=>($dayOfWeekCounter==1),
isEndOfWeek=>($dayOfWeekCounter==7),
isToday=>($date[0]."-".$date[1]."-".$dayCounter eq $now[0]."-".$now[1]."-".$now[2]),
event_loop=>\@{$events{$dayCounter}},
url=>$events{$dayCounter}->[0]->{url}
});
if ($dayOfWeekCounter == 7) {
$dayOfWeekCounter = 1;
} else {
$dayOfWeekCounter++;
}
}
my @postpad;
while ($dayOfWeekCounter <= 7 && $dayOfWeekCounter > 1) {
push(@postpad,{
count => $dayOfWeekCounter
});
$dayOfWeekCounter++;
}
push(@$monthloop, {
'daysInMonth'=>$daysInMonth,
'day_loop'=>\@dayloop,
'prepad_loop'=>\@prepad,
'postpad_loop'=>\@postpad,
'month'=>WebGUI::DateTime::getMonthName($date[1]),
'year'=>$date[0]
});
}
my @postpad;
while ($dayOfWeekCounter <= 7 && $dayOfWeekCounter > 1) {
push(@postpad,{
count => $dayOfWeekCounter
});
$dayOfWeekCounter++;
}
push(@$monthloop, {
'daysInMonth'=>$daysInMonth,
'day_loop'=>\@dayloop,
'prepad_loop'=>\@prepad,
'postpad_loop'=>\@postpad,
'month'=>WebGUI::DateTime::getMonthName($date[1]),
'year'=>$date[0]
});
}
my %var;
$var{month_loop} = \@$monthloop;
# $var{"canManage"} = $self->canManage;
$var{"addevent.url"} = $self->getUrl().'?func=addStyledEvent;class=WebGUI::Asset::Event';
$var{"addevent.url"} = $self->getUrl().'?func=add;class=WebGUI::Asset::Event';
$var{"addevent.label"} = WebGUI::International::get(20,"Asset_EventsCalendar");
$var{'sunday.label'} = WebGUI::DateTime::getDayName(7);
$var{'monday.label'} = WebGUI::DateTime::getDayName(1);
@ -473,42 +427,6 @@ sub view {
}
#-------------------------------------------------------------------
=head2 www_addStyledEvent ( )
Adds an event.
=cut
sub www_addStyledEvent {
my $self = shift;
my %properties = (
groupIdView => $self->get("groupIdView"),
groupIdEdit => $self->get("groupIdEdit"),
ownerUserId => $self->get("ownerUserId"),
encryptPage => $self->get("encryptPage"),
templateId => $self->get("eventTemplateId"),
styleTemplateId => $self->get("styleTemplateId"),
printableStyleTemplateId => $self->get("printableStyleTemplateId"),
isHidden => $self->get("isHidden"),
startDate => $self->get("startDate"),
endDate => $self->get("endDate"),
assetId=> "new",
className=>"WebGUI::Asset::Event"
);
$properties{isHidden} = 1 unless (WebGUI::Utility::isIn(ref $session{form}{class}, @{$session{config}{assetContainers}}));
my $newAsset = WebGUI::Asset->newByPropertyHashRef(\%properties);
$newAsset->{_parent} = $self;
#get parent so we can get the parent's style. Hopefully the parent is an EventsCalendar. If not, oh well.
# return "You must add an Event as a child of an EventsCalendar." unless ($self->getValue("className") = "WebGUI::Asset::Wobject::EventsCalendar");
return WebGUI::Privilege::noAccess() unless ($self->canEdit);
return WebGUI::Style::process($newAsset->getEditForm->print,$self->getValue("styleTemplateId"));
}
#-------------------------------------------------------------------
sub www_edit {
my $self = shift;

View file

@ -150,7 +150,8 @@ Alphanumeric ID tag of Asset.
sub paste {
my $self = shift;
my $assetId = shift;
my $pastedAsset = WebGUI::Asset->newByDynamicClass($assetId);
my $pastedAsset = WebGUI::Asset->newByDynamicClass($assetId);
return 0 unless ($self->get("state") eq "published");
if ($self->getId eq $pastedAsset->get("parentId") || $pastedAsset->setParent($self)) {
$pastedAsset->publish;
$pastedAsset->updateHistory("pasted to parent ".$self->getId);

View file

@ -248,7 +248,7 @@ Returns the highest rank, top of the highest rank Asset under current Asset.
sub getFirstChild {
my $self = shift;
unless (exists $self->{_firstChild}) {
my ($lineage) = WebGUI::SQL->quickArray("select min(lineage) from asset where parentId=".quote($self->getId));
my ($lineage) = WebGUI::SQL->quickArray("select min(asset.lineage) from asset,assetData where asset.parentId=".quote($self->getId)." and asset.assetId=assetData.assetId and asset.state='published'");
$self->{_firstChild} = WebGUI::Asset->newByLineage($lineage);
}
return $self->{_firstChild};
@ -266,7 +266,7 @@ Returns the lowest rank, bottom of the lowest rank Asset under current Asset.
sub getLastChild {
my $self = shift;
unless (exists $self->{_lastChild}) {
my ($lineage) = WebGUI::SQL->quickArray("select max(lineage) from asset where parentId=".quote($self->getId));
my ($lineage) = WebGUI::SQL->quickArray("select max(asset.lineage) from asset,assetData where asset.parentId=".quote($self->getId)." and asset.assetId=assetData.assetId and asset.state='published'");
$self->{_lastChild} = WebGUI::Asset->newByLineage($lineage);
}
return $self->{_lastChild};

View file

@ -86,6 +86,7 @@ sub AUTOLOAD {
my $name = ucfirst((split /::/, $AUTOLOAD)[-1]);
my %params = @_;
$params{uiLevelOverride} ||= $self->{_uiLevelOverride};
$params{rowClass} = $self->{_class};
my $cmd = "use WebGUI::Form::".$name;
eval ($cmd);
if ($@) {

View file

@ -20,10 +20,11 @@ use WebGUI::SQL;
#-------------------------------------------------------------------
sub process {
return '' unless $session{asset};
my ($label, $format, $time);
($label, $format) = WebGUI::Macro::getParams(shift);
$format = '%z' if ($format eq "");
($time) = WebGUI::SQL->quickArray("SELECT lastUpdated FROM asset where assetId=".quote($session{asset}->getId),WebGUI::SQL->getSlave);
($time) = WebGUI::SQL->quickArray("SELECT max(revisionDate) FROM assetData where assetId=".quote($session{asset}->getId),WebGUI::SQL->getSlave);
return WebGUI::International::get(43,'Asset_Survey') if $time eq 0;
return $label.epochToHuman($time,$format) if ($time);
}

View file

@ -104,7 +104,7 @@ sub send {
$message .= $_[2]."\n";
#footer
$message .= WebGUI::Macro::process("\n".$session{setting}{mailFooter});
$message .= "\n\n\nThis message was intended for ".$_[0].", but was overridden in the config file.\n\n\n";
$message .= "\n\n\nThis message was intended for ".$_[0].", but was overridden in the config file.\n\n\n" if ($session{config}{emailOverride});
if ($session{setting}{smtpServer} =~ /\/sendmail/) {
if (open(MAIL,"| $session{setting}{smtpServer} -t -oi")) {
print MAIL $message;

View file

@ -59,7 +59,8 @@ Generates a captcha image (105px x 26px) and returns the filename and challenge
sub addFileFromCaptcha {
my $self = shift;
my $challenge;
$challenge.= ('A'..'Z')[26*rand] foreach (1..6);
srand;
$challenge.= ('A'..'Z')[rand(26)] foreach (1..6);
my $filename = "captcha.".WebGUI::Id::generate().".png";
my $image = Image::Magick->new;
$image->Set(size=>'105x26');

View file

@ -333,7 +333,7 @@ a URL will be made from the parent's URL and the <b>Menu Title</b>.<br>
},
'extra head tags description' => {
message => q|These tags will be added to the &lt;HEAD&gt; section of each page that the asset appears on.<br>
message => q|These tags will be added to the &lt;head&gt; section of each page that the asset appears on.<br>
<i>UI level: 5</i>
</p>|,
lastUpdated => 1119149899,
@ -382,9 +382,9 @@ These are the icons and URLs that allow editing, cutting, copying, deleting and
},
'extra head tags' => {
message => q|Extra HEAD tags|,
message => q|Extra &lt;head&gt; elements (tags)|,
context => q|label for Asset form|,
lastUpdated => 1106762071,
lastUpdated => 1126381168,
},
'create package' => {