diff --git a/lib/WebGUI/AdminConsole.pm b/lib/WebGUI/AdminConsole.pm index df468f079..c829d795a 100644 --- a/lib/WebGUI/AdminConsole.pm +++ b/lib/WebGUI/AdminConsole.pm @@ -67,15 +67,18 @@ sub _formatFunction { my $url; if (exists $function->{func}) { $url = WebGUI::URL::page("func=".$function->{func}); + $url = '#' if $session{form}{func} eq $function->{func}; } else { $url = WebGUI::URL::page("op=".$function->{op}); + $url = '#' if $session{form}{op} eq $function->{op}; } return { title=>WebGUI::International::get($function->{title}{id}, $function->{title}{namespace}), icon=>$session{config}{extrasURL}."/adminConsole/".$function->{icon}, 'icon.small'=>$session{config}{extrasURL}."/adminConsole/small/".$function->{icon}, url=>$url, - canUse=>WebGUI::Grouping::isInGroup($function->{group}) + canUse=>WebGUI::Grouping::isInGroup($function->{group}), + isCurrentOpFunc=>($session{form}{op} eq $function->{op} || $session{form}{func} eq $function->{func}) }; } diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index 7ce4f0a55..6599880e3 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -1409,7 +1409,7 @@ sub getLineage { if ($rules->{returnObjects}) { my $parent = $relativeCache{$parentId}; $relativeCache{$id} = $asset; - $asset->{_parent} = $parent; + $asset->{_parent} = $parent if exists $relativeCache{$properties->{parentId}}; $parent->{_firstChild} = $asset unless(exists $parent->{_firstChild}); $parent->{_lastChild} = $asset; } diff --git a/lib/WebGUI/Asset/Post.pm b/lib/WebGUI/Asset/Post.pm index 22e2c8487..61629a3e8 100644 --- a/lib/WebGUI/Asset/Post.pm +++ b/lib/WebGUI/Asset/Post.pm @@ -665,12 +665,19 @@ sub processPropertiesFromFormPost { $self->setStatusApproved; } my $storage = $self->getStorageLocation; - my $filename = $storage->addFileFromFormPost("file"); + my $filename; + my $attachmentLimit = $self->getThread->getParent->get("attachmentsPerPost"); + $filename = $storage->addFileFromFormPost("file", $attachmentLimit) if $attachmentLimit; if (defined $filename) { $self->setSize($storage->getFileSize($filename)); $storage->setPrivileges($self->get("ownerUserId"), $self->get("groupIdView"), $self->get("groupIdEdit")); foreach my $file (@{$storage->getFiles}) { - $storage->generateThumbnail($file); + if ($storage->isImage($file)) { + $storage->generateThumbnail($file,$session{setting}{maxImageSize}); + $storage->deleteFile($file); + $storage->renameFile('thumb-'.$file,$file); + $storage->generateThumbnail($file); + } } } $session{form}{proceed} = "redirectToParent"; diff --git a/lib/WebGUI/Asset/Post/Thread.pm b/lib/WebGUI/Asset/Post/Thread.pm index 1eea09212..5f94bf615 100644 --- a/lib/WebGUI/Asset/Post/Thread.pm +++ b/lib/WebGUI/Asset/Post/Thread.pm @@ -510,7 +510,8 @@ Subscribes the user to this thread. sub subscribe { my $self = shift; $self->createSubscriptionGroup; - WebGUI::Grouping::addUsersToGroups([$session{user}{userId}],[$self->get("subscriptionGroupId")]); + WebGUI::Cache->new("cspost_".$self->getId."_".$session{user}{userId}."_".$session{scratch}{discussionLayout}."_".$session{form}{pn})->delete; + WebGUI::Grouping::addUsersToGroups([$session{user}{userId}],[$self->get("subscriptionGroupId")]); } #------------------------------------------------------------------- @@ -528,7 +529,7 @@ sub trash { if ($self->getParent->get("lastPostId") eq $self->getId) { my $parentLineage = $self->getThread->get("lineage"); my ($id, $date) = WebGUI::SQL->quickArray("select Post.assetId, Post.dateSubmitted from Post, asset where asset.lineage like ".quote($parentLineage.'%')." and Post.assetId<>".quote($self->getId)." and Post.assetId=asset.assetId order by Post.dateSubmitted desc"); - $self->getParent->setLastPost($id,$date); + $self->getParent->setLastPost('','') ? $self->getParent->setLastPost($id,$date) : $id; } } @@ -569,7 +570,8 @@ Negates the subscribe method. sub unsubscribe { my $self = shift; - WebGUI::Grouping::deleteUsersFromGroups([$session{user}{userId}],[$self->get("subscriptionGroupId")]); + WebGUI::Cache->new("cspost_".$self->getId."_".$session{user}{userId}."_".$session{scratch}{discussionLayout}."_".$session{form}{pn})->delete; + WebGUI::Grouping::deleteUsersFromGroups([$session{user}{userId}],[$self->get("subscriptionGroupId")]); } diff --git a/lib/WebGUI/Asset/Shortcut.pm b/lib/WebGUI/Asset/Shortcut.pm index bc1570da2..75728bb22 100644 --- a/lib/WebGUI/Asset/Shortcut.pm +++ b/lib/WebGUI/Asset/Shortcut.pm @@ -212,6 +212,7 @@ sub getShortcut { } } $self->{_shortcut}{_properties}{templateId} = $self->get("overrideTemplateId") if ($self->get("overrideTemplate")); + $self->{_shortcut}{_properties}{collaborationTemplateId} = $self->get("overrideTemplateId") if ($self->get("overrideTemplate")); $self->{_shortcut}{_properties}{title} = $self->get("title") if ($self->get("overrideTitle")); $self->{_shortcut}{_properties}{description} = $self->get("description") if ($self->get("overrideDescription")); $self->{_shortcut}{_properties}{title} = $self->get("displayTitle") if ($self->get("overrideDisplayTitle")); diff --git a/lib/WebGUI/Asset/Wobject/Collaboration.pm b/lib/WebGUI/Asset/Wobject/Collaboration.pm index 8e3128733..9dd8829cd 100644 --- a/lib/WebGUI/Asset/Wobject/Collaboration.pm +++ b/lib/WebGUI/Asset/Wobject/Collaboration.pm @@ -830,7 +830,7 @@ sub setLastPost { my $self = shift; my $id = shift; my $date = shift; - $self->update(lastPostId=>$id, lastPostDate=>$date); + $self->update({lastPostId=>$id, lastPostDate=>$date}); } #------------------------------------------------------------------- @@ -843,6 +843,7 @@ Subscribes a user to this collaboration system. sub subscribe { my $self = shift; + WebGUI::Cache->new("wobject_".$self->getId."_".$session{user}{userId})->delete; WebGUI::Grouping::addUsersToGroups([$session{user}{userId}],[$self->get("subscriptionGroupId")]); } @@ -856,6 +857,7 @@ Unsubscribes a user from this collaboration system sub unsubscribe { my $self = shift; + WebGUI::Cache->new("wobject_".$self->getId."_".$session{user}{userId})->delete; WebGUI::Grouping::deleteUsersFromGroups([$session{user}{userId}],[$self->get("subscriptionGroupId")]); } diff --git a/lib/WebGUI/Asset/Wobject/IndexedSearch.pm b/lib/WebGUI/Asset/Wobject/IndexedSearch.pm index bdc47dd39..62dff69ce 100644 --- a/lib/WebGUI/Asset/Wobject/IndexedSearch.pm +++ b/lib/WebGUI/Asset/Wobject/IndexedSearch.pm @@ -105,7 +105,7 @@ sub getEditForm { $sth->finish; unless(%indexName) { return "

" . WebGUI::International::get(2,"Asset_IndexedSearch") . - "

" . WebGUI::International::get(3,"Asset_IndexedSearch") . "

"; + "

" . WebGUI::International::get(3,"Asset_IndexedSearch") . "

"; } # Index to use @@ -381,10 +381,13 @@ sub view { #------------------------------------------------------------------- sub www_edit { - my $self = shift; - return WebGUI::Privilege::insufficient() unless $self->canEdit; - $self->getAdminConsole->setHelp("search add/edit"); - return $self->getAdminConsole->render($self->getEditForm->print,WebGUI::International::get("26","Asset_IndexedSearch")); + my $self = shift; + return WebGUI::Privilege::insufficient() unless $self->canEdit; + $self->getAdminConsole->setHelp("search add/edit"); + my $form = $self->getEditForm; + my $output = $form; + $output = $form->print unless $form =~ /^

getAdminConsole->render($output,WebGUI::International::get("26","Asset_IndexedSearch")); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/Wobject/Survey.pm b/lib/WebGUI/Asset/Wobject/Survey.pm index f92bab3f5..a15a2d69e 100644 --- a/lib/WebGUI/Asset/Wobject/Survey.pm +++ b/lib/WebGUI/Asset/Wobject/Survey.pm @@ -687,12 +687,12 @@ sub www_edit { #------------------------------------------------------------------- sub www_editSave { return WebGUI::Privilege::insufficient() unless ($_[0]->canEdit); - $_[0]->SUPER::www_editSave(); + my $output = $_[0]->SUPER::www_editSave(); if ($session{form}{proceed} eq "addQuestion") { $session{form}{qid} = "new"; return $_[0]->www_editQuestion; } - return ""; + return $output; } #------------------------------------------------------------------- @@ -728,7 +728,7 @@ sub www_editAnswer { $question = WebGUI::SQL->buildHashRef("select Survey_questionId,question from Survey_question where Survey_id=".quote($self->get("Survey_id"))." order by sequenceNumber"); $question = { ('-1' => WebGUI::International::get(82,'Asset_Survey'),%$question) }; - $f->select( + $f->selectList( -name=>"gotoQuestion", -options=>$question, -value=>[$answer->{gotoQuestion}], @@ -855,11 +855,11 @@ sub www_editQuestion { while (%data = $sth->hash) { $output .= deleteIcon('func=deleteAnswerConfirm&qid='.$question->{Survey_questionId}.'&aid='.$data{Survey_answerId}, - $self->getUrl,WebGUI::International::get(45,'Asset_Survey')). - editIcon('func=editAnswer&qid='.$question->{Survey_questionId}.'&aid='.$data{Survey_answerId}, $self->getUrl). - moveUpIcon('func=moveAnswerUp'.'&qid='.$question->{Survey_questionId}.'&aid='.$data{Survey_answerId}, $self->getUrl). - moveDownIcon('func=moveAnswerDown&qid='.$question->{Survey_questionId}.'&aid='.$data{Survey_answerId}, $self->getUrl). - ' '.$data{answer}.'
'; + $self->get("url"),WebGUI::International::get(45,'Asset_Survey')). + editIcon('func=editAnswer&qid='.$question->{Survey_questionId}.'&aid='.$data{Survey_answerId}, $self->get("url")). + moveUpIcon('func=moveAnswerUp'.'&qid='.$question->{Survey_questionId}.'&aid='.$data{Survey_answerId}, $self->get("url")). + moveDownIcon('func=moveAnswerDown&qid='.$question->{Survey_questionId}.'&aid='.$data{Survey_answerId}, $self->get("url")). + ' '.$data{answer}.'
'; } $sth->finish; } diff --git a/lib/WebGUI/Form.pm b/lib/WebGUI/Form.pm index 7abe6b3b6..d3247de27 100644 --- a/lib/WebGUI/Form.pm +++ b/lib/WebGUI/Form.pm @@ -1676,7 +1676,7 @@ sub template { #Remove entries from template list that the user does not have permission to view. for my $assetId ( keys %{$templateList} ) { - my $asset = WebGUI::Asset->new($assetId); + my $asset = WebGUI::Asset::Template->new($assetId); if (!$asset->canView($userId)) { delete $templateList->{$assetId}; diff --git a/lib/WebGUI/Storage.pm b/lib/WebGUI/Storage.pm index cca395cd0..ea7c322c4 100644 --- a/lib/WebGUI/Storage.pm +++ b/lib/WebGUI/Storage.pm @@ -190,9 +190,12 @@ Provide the form variable name to which the file being uploaded is assigned. Not sub addFileFromFormPost { my $self = shift; my $formVariableName = shift; - return "" if (WebGUI::HTTP::getStatus() =~ /^413/); + my $attachmentLimit = shift; + return "" if (WebGUI::HTTP::getStatus() =~ /^413/); my $filename; + my $attachmentCount = 1; foreach my $tempPath ($session{cgi}->upload($formVariableName)) { + last if $attachmentCount > $attachmentLimit; if ($tempPath =~ /([^\/\\]+)$/) { $filename = $1; } else { @@ -206,6 +209,7 @@ sub addFileFromFormPost { $filename = WebGUI::URL::makeCompliant($filename); my $bytesread; my $file = FileHandle->new(">".$self->getPath($filename)); + $attachmentCount++; if (defined $file) { my $buffer; binmode $file;