diff --git a/docs/upgrades/upgrade_6.2.11-6.3.0.sql b/docs/upgrades/upgrade_6.2.11-6.3.0.sql index cd4ea0448..f4770d7bf 100644 --- a/docs/upgrades/upgrade_6.2.11-6.3.0.sql +++ b/docs/upgrades/upgrade_6.2.11-6.3.0.sql @@ -239,3 +239,4 @@ alter table IndexedSearch_docInfo change wobjectId assetId varchar(22); alter table IndexedSearch_docInfo drop page_groupIdView; alter table IndexedSearch_docInfo change wobject_special_groupIdView special_groupIdView varchar(22); alter table IndexedSearch_docInfo change wobject_groupIdView groupIdView varchar(22); +update USS set sortBy='lineage' where sortBy='sequenceNumber'; diff --git a/lib/WebGUI/Asset/USS_submission.pm b/lib/WebGUI/Asset/USS_submission.pm index fc15c97b3..6100a6d24 100644 --- a/lib/WebGUI/Asset/USS_submission.pm +++ b/lib/WebGUI/Asset/USS_submission.pm @@ -135,7 +135,23 @@ sub getName { sub processPropertiesFromFormPost { my $self = shift; $self->SUPER::processPropertiesFromFormPost; - $self->deleteAllCachedSubmissions; + my %data = ( + ownerUserId => $session{user}{userId}, + groupIdView => $self->getParent->get("groupIdView"), + groupIdEdit => $self->getParent->get("groupIdEdit") + ); + $data{startDate} = $self->getParent->get("startDate") unless ($session{form}{startDate}); + $data{endDate} = $self->getParent->get("endDate") unless ($session{form}{endDate}); + unless ($session{form}{synopsis}) { + my $body = $session{form}{description}; + $body =~ s/\n/\^\-\;/ unless ($body =~ m/\^\-\;/); + my @content = split(/\^\-\;/,$body); + $content[0] = WebGUI::HTML::filter($content[0],"none"); + $data{synopsis} = $content[0]; + $body =~ s/\^\-\;/\n/; + $data{description} = $body; + } + $self->update(\%data); } #------------------------------------------------------------------- @@ -485,6 +501,12 @@ sub www_editSave { } +#------------------------------------------------------------------- +sub www_view { + my $self = shift; + return WebGUI::Privilege::noAccess() unless $self->canView; + return $self->getParent->processStyle($self->view); +} 1; diff --git a/lib/WebGUI/Asset/Wobject.pm b/lib/WebGUI/Asset/Wobject.pm index be3171241..b0a89e98a 100644 --- a/lib/WebGUI/Asset/Wobject.pm +++ b/lib/WebGUI/Asset/Wobject.pm @@ -604,8 +604,8 @@ sub www_view { my $useCache = ( $session{form}{op} eq "" && ( - ( $self->get("cacheTimeout") > 10 && $session{user}{userId} !=1) || - ( $self->get("cacheTimeoutVisitor") > 10 && $session{user}{userId} == 1) + ( $self->get("cacheTimeout") > 10 && $session{user}{userId} ne '1') || + ( $self->get("cacheTimeoutVisitor") > 10 && $session{user}{userId} eq '1') ) && not $session{var}{adminOn} ); @@ -614,16 +614,16 @@ sub www_view { # $output = $cache->get; # } unless ($output) { - $output = $self->view; + $output = $self->processStyle($self->view); my $ttl; - if ($session{user}{userId} == 1) { + if ($session{user}{userId} eq '1') { $ttl = $self->get("cacheTimeoutVisitor"); } else { $ttl = $self->get("cacheTimeout"); } # $cache->set($output, $ttl) if ($useCache && !WebGUI::HTTP::isRedirect()); } - return $self->processStyle($output); + return $output; } 1; diff --git a/lib/WebGUI/Asset/Wobject/USS.pm b/lib/WebGUI/Asset/Wobject/USS.pm index 5ea1fa736..2efc69d45 100644 --- a/lib/WebGUI/Asset/Wobject/USS.pm +++ b/lib/WebGUI/Asset/Wobject/USS.pm @@ -20,7 +20,9 @@ use WebGUI::Icon; use WebGUI::International; use WebGUI::Paginator; use WebGUI::Privilege; +use WebGUI::Search; use WebGUI::Session; +use WebGUI::SQL; use WebGUI::Style; use WebGUI::URL; use WebGUI::Utility; @@ -175,7 +177,7 @@ sub getEditForm { -name=>"sortBy", -value=>[$self->getValue("sortBy")], -options=>{ - sequenceNumber=>WebGUI::International::get(88,"USS"), + lineage=>WebGUI::International::get(88,"USS"), dateUpdated=>WebGUI::International::get(78,"USS"), dateSubmitted=>WebGUI::International::get(13,"USS"), title=>WebGUI::International::get(35,"USS") @@ -294,7 +296,7 @@ sub view { $var{"readmore.label"} = WebGUI::International::get(46,"USS"); $var{"responses.label"} = WebGUI::International::get(57,"USS"); $var{canPost} = WebGUI::Grouping::isInGroup($self->get("groupToContribute")); - $var{"post.url"} = $self->getUrl('func=add&class=WebGUI::Asset::Wobject::USS_submission'); + $var{"post.url"} = $self->getUrl('func=add&class=WebGUI::Asset::USS_submission'); $var{"post.label"} = WebGUI::International::get(20,"USS"); $var{"addquestion.label"} = WebGUI::International::get(83,"USS"); $var{"addlink.label"} = WebGUI::International::get(89,"USS"); @@ -326,20 +328,17 @@ sub view { } my $p = WebGUI::Paginator->new(WebGUI::URL::page('func=view'),$numResults); $p->setDataByQuery("select * from USS_submission left join asset on USS_submission.assetId=asset.assetId - left join wobject on USS_submission.assetId=wobject.assetId where asset.parentId=".quote($self->getId)." and asset.className='WebGUI:Asset::Wobject::USS_submission' and $constraints - order by USS_submission.".$self->getValue("sortBy")." ".$self->getValue("sortOrder")); + order by ".$self->getValue("sortBy")." ".$self->getValue("sortOrder")); my $page = $p->getPageData; my $i = 0; my $imageURL = ""; foreach my $row (@$page) { my $submission = WebGUI::Asset::Wobject::USS_submission->newByPropertyHashRef($row); my $body = WebGUI::HTML::filter($submission->get("description"),$self->get("filterContent")); - $body =~ s/\n/\^\-\;/ unless ($body =~ m/\^\-\;/); $body = WebGUI::HTML::format($body,$submission->get("contentType")); - my @content = split(/\^\-\;/,$body); my $controls = deleteIcon('func=delete',$submission->getUrl,WebGUI::International::get(17,"USS")).editIcon('func=edit',$submission->getUrl); - if ($self->get("sortBy") eq "sequenceNumber") { + if ($self->get("sortBy") eq "lineage") { if ($self->get("sortOrder") eq "desc") { $controls .= moveUpIcon('func=demote',$submission->getUrl).moveDownIcon('func=promote',$submission->getUrl); } else { @@ -355,8 +354,8 @@ sub view { push(@{$var{submissions_loop}}, { "submission.id"=>$submission->getId, "submission.url"=>$submission->getUrl, - "submission.content"=>$content[0], - "submission.content.full"=>join("\n",@content), + "submission.content"=>$submission->{synopsis}, + "submission.content.full"=>$submission->{description}, "submission.responses"=>$submission->getResponseCount, "submission.title"=>$submission->get("title"), "submission.userDefined1"=>$submission->get("userDefined1"), diff --git a/lib/WebGUI/Asset/Wobject/USS_submission.pm b/lib/WebGUI/Asset/Wobject/USS_submission.pm deleted file mode 100644 index 7417c31d5..000000000 --- a/lib/WebGUI/Asset/Wobject/USS_submission.pm +++ /dev/null @@ -1,680 +0,0 @@ -package WebGUI::Asset::Wobject::USS_submission; - -#------------------------------------------------------------------- -# WebGUI is Copyright 2001-2004 Plain Black Corporation. -#------------------------------------------------------------------- -# Please read the legal notices (docs/legal.txt) and the license -# (docs/license.txt) that came with this distribution before using -# this software. -#------------------------------------------------------------------- -# http://www.plainblack.com info@plainblack.com -#------------------------------------------------------------------- - -use strict; -use Tie::CPHash; -use WebGUI::Cache; -use WebGUI::DateTime; -use WebGUI::Forum; -use WebGUI::Forum::UI; -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::SQL; -use WebGUI::Style; -use WebGUI::Template; -use WebGUI::URL; -use WebGUI::User; -use WebGUI::Utility; -use WebGUI::Asset::Wobject; - -our @ISA = qw(WebGUI::Asset::Wobject); - - -sub definition { - my $class = shift; - my $definition = shift; - push(@{$definition}, { - tableName=>'USS_submission', - className=>'WebGUI::Asset::Wobject::USS_submission', - properties=>{ - templateId =>{ - fieldType=>"template", - defaultValue=>'PBtmpl0000000000000067' - }, - submissionsPerPage=>{ - fieldType=>"integer", - defaultValue=>50 - }, - groupToContribute=>{ - fieldType=>"group", - defaultValue=>2 - }, - groupToApprove=>{ - fieldType=>"group", - defaultValue=>4 - }, - defaultStatus=>{ - fieldType=>"selectList", - defaultValue=>"Approved" - }, - submissionTemplateId=>{ - fieldType=>"template", - defaultValue=>undef - }, - submissionFormTemplateId=>{ - fieldType=>"template", - defaultValue=>undef - }, - karmaPerSubmission=>{ - fieldType=>"integer", - defaultValue=>0 - }, - filterContent=>{ - fieldType=>"filter", - defaultValue=>"javascript" - }, - sortBy=>{ - fieldType=>"selectList", - defaultValue=>"dateUpdated" - }, - sortOrder=>{ - fieldType=>"selectList", - defaultValue=>"desc" - }, - USS_id=>{ - fieldType=>"hidden", - autoId=>1 - }, - submissionFormTemplateId=>{ - fieldType=>"template", - defaultValue=>undef - } - } - }); - return $class->SUPER::definition($definition); -} - -#------------------------------------------------------------------- -sub deleteCachedSubmission { - my $self = shift; - my $submissionId = shift; - my $cache = WebGUI::Cache->new("USS_submission_".$submissionId); - $cache->delete; -} - - -#------------------------------------------------------------------- -sub getEditForm { - my $self = shift; - my $tabform = $self->getEditForm; - $tabform->getTab("display")->template( - -name=>"submissionTemplateId", - -value=>$self->getValue("submissionTemplateId"), - -namespace=>$self->get("namespace")."/Submission", - -label=>WebGUI::International::get(73,$self->get("namespace")), - -afterEdit=>'func=edit&wid='.$self->get("wobjectId") - ); - $tabform->getTab("display")->template( - -name=>"submissionFormTemplateId", - -value=>$self->getValue("submissionFormTemplateId"), - -namespace=>$self->get("namespace")."/SubmissionForm", - -label=>WebGUI::International::get(87,$self->get("namespace")), - -afterEdit=>'func=edit&wid='.$self->get("wobjectId") - ); - $tabform->getTab("security")->group( - -name=>"groupToApprove", - -label=>WebGUI::International::get(1,$self->get("namespace")), - -value=>[$self->getValue("groupToApprove")] - ); - $tabform->getTab("security")->group( - -name=>"groupToContribute", - -label=>WebGUI::International::get(2,$self->get("namespace")), - -value=>[$self->getValue("groupToContribute")] - ); - $tabform->getTab("display")->integer( - -name=>"submissionsPerPage", - -label=>WebGUI::International::get(6,$self->get("namespace")), - -value=>$self->getValue("submissionsPerPage") - ); - $tabform->getTab("security")->selectList( - -name=>"defaultStatus", - -options=>{ - Approved=>status('Approved'), - Denied=>status('Denied'), - Pending=>status('Pending') - }, - -label=>WebGUI::International::get(563), - -value=>[$self->getValue("defaultStatus")] - ); - if ($session{setting}{useKarma}) { - $tabform->getTab("properties")->integer( - -name=>"karmaPerSubmission", - -label=>WebGUI::International::get(30,$self->get("namespace")), - -value=>$self->getValue("karmaPerSubmission") - ); - } else { - $tabform->getTab("properties")->hidden("karmaPerSubmission",$self->getValue("karmaPerSubmission")); - } - $tabform->getTab("display")->filterContent( - -value=>$self->getValue("filterContent") - ); - $tabform->getTab("display")->selectList( - -name=>"sortBy", - -value=>[$self->getValue("sortBy")], - -options=>{ - sequenceNumber=>WebGUI::International::get(88,$self->get("namespace")), - dateUpdated=>WebGUI::International::get(78,$self->get("namespace")), - dateSubmitted=>WebGUI::International::get(13,$self->get("namespace")), - title=>WebGUI::International::get(35,$self->get("namespace")) - }, - -label=>WebGUI::International::get(79,$self->get("namespace")) - ); - $tabform->getTab("display")->selectList( - -name=>"sortOrder", - -value=>[$self->getValue("sortOrder")], - -options=>{ - asc=>WebGUI::International::get(81,$self->get("namespace")), - desc=>WebGUI::International::get(82,$self->get("namespace")) - }, - -label=>WebGUI::International::get(80,$self->get("namespace")) - ); - return $tabform; -} - -#------------------------------------------------------------------- -sub getIcon { - my $self = shift; - my $small = shift; - return $session{config}{extrasURL}.'/assets/small/userSubmissionSystem.gif' if ($small); - return $session{config}{extrasURL}.'/assets/userSubmissionSystem.gif'; -} - -#------------------------------------------------------------------- -sub getName { - return "USS Submission"; -} - -#------------------------------------------------------------------- -sub processPropertiesFromFormPost { - my $self = shift; - $self->SUPER::processPropertiesFromFormPost; - $self->deleteAllCachedSubmissions; -} - -#------------------------------------------------------------------- -sub status { - if ($_[0] eq "Approved") { - return WebGUI::International::get(560); - } elsif ($_[0] eq "Denied") { - return WebGUI::International::get(561); - } elsif ($_[0] eq "Pending") { - return WebGUI::International::get(562); - } -} - - -#------------------------------------------------------------------- -sub view { - my $self = shift; - my $submissionId = shift || $session{form}{sid}; - $self->logView() if ($session{setting}{passiveProfilingEnabled}); - return "" unless ($submissionId); - my ($file, @data, %var, $replies); - my $submission = $self->getCollateral("USS_submission","USS_submissionId",$submissionId); - return "" unless ($submission->{USS_submissionId}); - return "" unless ($submission->{status} eq 'Approved' || - ($submission->{userId} eq $session{user}{userId} && $session{user}{userId} != 1) || - WebGUI::Grouping::isInGroup($self->getValue("groupToApprove"))); - my $parentsPage = WebGUI::Page->new($self->get("pageId")); - my $callback = WebGUI::URL::gateway($parentsPage->get("urlizedTitle"),"func=viewSubmission&wid=".$self->wid."&sid=".$submission->{USS_submissionId}); - if ($session{form}{forumOp} ne "" && $session{form}{forumOp} ne "viewForum") { - return WebGUI::Forum::UI::forumOp({ - callback=>$callback, - title=>$submission->{title}, - forumId=>$submission->{forumId} - }); - } - WebGUI::SQL->write("update USS_submission set views=views+1 where USS_submissionId=".quote($submissionId)); - $var{title} = $submission->{title}; - $var{content} = WebGUI::HTML::filter($submission->{content},$self->get("filterContent")); - $var{content} =~ s/\^\-\;//g; - $var{content} = WebGUI::HTML::format($var{content},$submission->{contentType}); - $var{"user.label"} = WebGUI::International::get(21,$self->get("namespace")); - $var{"user.Profile"} = WebGUI::URL::page('op=viewProfile&uid='.$submission->{userId}); - $var{"user.Id"} = $submission->{userId}; - $var{"user.username"} = $submission->{username}; - $var{"date.label"} = WebGUI::International::get(13,$self->get("namespace")); - $var{"date.epoch"} = $submission->{dateSubmitted}; - $var{"date.human"} = epochToHuman($submission->{dateSubmitted}); - $var{"date.updated.label"} = WebGUI::International::get(78,$self->get("namespace")); - $var{"date.updated.human"} = epochToHuman($submission->{dateUpdated}); - $var{"date.updated.epoch"} = $submission->{dateUpdated}; - $var{"status.label"} = WebGUI::International::get(14,$self->get("namespace")); - $var{"status.status"} = status($submission->{status}); - $var{"views.label"} = WebGUI::International::get(514); - $var{"views.count"} = $submission->{views}; - $var{canPost} = WebGUI::Grouping::isInGroup($self->get("groupToContribute")); - $var{"post.url"} = WebGUI::URL::gateway($parentsPage->get("urlizedTitle"),'func=editSubmission&sid=new&wid='.$self->wid); - $var{"post.label"} = WebGUI::International::get(20,$self->get("namespace")); - @data = WebGUI::SQL->quickArray("select USS_submissionId from USS_submission - where USS_id=".quote($self->get("USS_id"))." and dateSubmitted<".quote($submission->{dateSubmitted})." - and (userId=".quote($submission->{userId})." or status='Approved') order by dateSubmitted desc",WebGUI::SQL->getSlave); - $var{"previous.more"} = ($data[0] ne ""); - if ($var{"previous.more"}) { - my $previousSubmission = $self->getCollateral("USS_submission","USS_submissionId",$data[0]); - my $previousPage = WebGUI::Page->new($previousSubmission->{pageId}); - $var{"previous.url"} = WebGUI::URL::gateway($previousPage->get("urlizedTitle")); - } - $var{"previous.label"} = WebGUI::International::get(58,$self->get("namespace")); - @data = WebGUI::SQL->quickArray("select USS_submissionId from USS_submission - where USS_id=".quote($submission->{USS_id})." and dateSubmitted>".quote($submission->{dateSubmitted})." - and (userId=".quote($submission->{userId})." or status='Approved') order by dateSubmitted asc",WebGUI::SQL->getSlave); - $var{"next.more"} = ($data[0] ne ""); - if ($var{"next.more"}) { - my $nextSubmission = $self->getCollateral("USS_submission","USS_submissionId",$data[0]); - my $nextPage = WebGUI::Page->new($nextSubmission->{pageId}); - $var{"next.url"} = WebGUI::URL::gateway($nextPage->get("urlizedTitle")); - } - $var{"next.label"} = WebGUI::International::get(59,$self->get("namespace")); - $var{canEdit} = (($submission->{userId} eq $session{user}{userId} || WebGUI::Grouping::isInGroup($self->get("groupToApprove"))) && $session{user}{userId} != 1); - $var{"delete.url"} = WebGUI::URL::gateway($parentsPage->get("urlizedTitle"),'func=deleteSubmissionConfirm&wid='.$self->wid.'&sid='.$submissionId); - $var{"delete.label"} = WebGUI::International::get(37,$self->get("namespace")); - $var{"edit.url"} = WebGUI::URL::gateway($parentsPage->get("urlizedTitle"),'func=editSubmission&wid='.$self->wid.'&sid='.$submissionId); - $var{"edit.label"} = WebGUI::International::get(27,$self->get("namespace")); - $var{canChangeStatus} = WebGUI::Grouping::isInGroup($self->get("groupToApprove"),$session{user}{userId}); - $var{"approve.url"} = WebGUI::URL::gateway($parentsPage->get("urlizedTitle"),'func=approveSubmission&wid='.$self->wid.'&sid='.$submissionId.'&mlog='.$session{form}{mlog}); - $var{"approve.label"} = WebGUI::International::get(572); - $var{"leave.url"} = WebGUI::URL::page('op=viewMessageLog'); - $var{"leave.label"} = WebGUI::International::get(573); - $var{"deny.url"} = WebGUI::URL::gateway($parentsPage->get("urlizedTitle"),'func=denySubmission&wid='.$self->wid.'&sid='.$submissionId.'&mlog='.$session{form}{mlog}); - $var{"deny.label"} = WebGUI::International::get(574); - $var{"canReply"} = ($self->get("allowDiscussion")); - $var{"reply.url"} = WebGUI::Forum::UI::formatNewThreadURL($callback,$submission->{forumId}); - $var{"reply.label"} = WebGUI::International::get(47,$self->get("namespace")); - $var{"search.url"} = WebGUI::Search::toggleURL("",$parentsPage->get("urlizedTitle")); - $var{"search.label"} = WebGUI::International::get(364); - $var{"back.url"} = WebGUI::URL::gateway($parentsPage->get("urlizedTitle")); - $var{"back.label"} = WebGUI::International::get(28,$self->get("namespace")); - $var{'userDefined1.value'} = $submission->{userDefined1}; - $var{'userDefined2.value'} = $submission->{userDefined2}; - $var{'userDefined3.value'} = $submission->{userDefined3}; - $var{'userDefined4.value'} = $submission->{userDefined4}; - $var{'userDefined5.value'} = $submission->{userDefined5}; - if ($submission->{image} ne "") { - $file = WebGUI::Attachment->new($submission->{image},$self->wid,$submissionId); - $var{"image.url"} = $file->getURL; - $var{"image.thumbnail"} = $file->getThumbnail; - } - if ($submission->{attachment} ne "") { - $file = WebGUI::Attachment->new($submission->{attachment},$self->wid,$submissionId); - $var{"attachment.box"} = $file->box; - $var{"attachment.url"} = $file->getURL; - $var{"attachment.icon"} = $file->getIcon; - $var{"attachment.name"} = $file->getFilename; - } - if ($self->get("allowDiscussion")) { - $var{"replies"} = WebGUI::Forum::UI::www_viewForum( - {callback=>$callback,title=>$submission->{title},forumId=>$submission->{forumId}}, - $submission->{forumId}); - } - return $self->processTemplate(\%var,"USS/Submission",$self->get("submissionTemplateId")); -} - -#------------------------------------------------------------------- -sub www_approve { - my $self = shift; - my (%submission); - tie %submission, 'Tie::CPHash'; - if (WebGUI::Grouping::isInGroup(4,$session{user}{userId}) || WebGUI::Grouping::isInGroup(3,$session{user}{userId})) { - %submission = WebGUI::SQL->quickHash("select * from USS_submission where USS_submissionId=".quote($session{form}{sid})); - WebGUI::SQL->write("update USS_submission set status='Approved' where USS_submissionId=".quote($session{form}{sid})); - WebGUI::MessageLog::addInternationalizedEntry($submission{userId},'',WebGUI::URL::page('func=viewSubmission&wid='. - $session{form}{wid}.'&sid='.$session{form}{sid},1),4,$self->get("namespace")); - WebGUI::MessageLog::completeEntry($session{form}{mlog}); - $self->deleteCachedSubmission($session{form}{sid}); - return WebGUI::Operation::www_viewMessageLog(); - } else { - return WebGUI::Privilege::insufficient(); - } -} - - -#------------------------------------------------------------------- -sub www_deleteFile { - my $self = shift; - my ($owner) = WebGUI::SQL->quickArray("select userId from USS_submission where USS_submissionId=".quote($session{form}{sid})); - if ($owner eq $session{user}{userId} || WebGUI::Grouping::isInGroup($self->get("groupToApprove"))) { - $self->setCollateral("USS_submission","USS_submissionId",{ - $session{form}{file}=>'', - USS_submissionId=>$session{form}{sid} - },0,0); - $self->deleteCachedSubmission($session{form}{sid}); - return $self->www_editSubmission(); - } else { - return WebGUI::Privilege::insufficient(); - } -} - -#------------------------------------------------------------------- -sub www_delete { - my $self = shift; - my ($owner, $forumId, $pageId) = WebGUI::SQL->quickArray("select userId,forumId,pageId from USS_submission where USS_submissionId=".quote($session{form}{sid})); - if ($owner eq $session{user}{userId} || WebGUI::Grouping::isInGroup($self->get("groupToApprove"))) { - my ($inUseElsewhere) = WebGUI::SQL->quickArray("select count(*) from USS_submission where forumId=".quote($forumId)); - unless ($inUseElsewhere > 1) { - my $forum = WebGUI::Forum->new($forumId); - $forum->purge; - } - my $page = WebGUI::Page->new($pageId); - $page->purge; - $self->deleteCachedSubmission($session{form}{sid}); - $self->deleteCollateral("USS_submission","USS_submissionId",$session{form}{sid}); - my $file = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{sid}); - $file->deleteNode; - return ""; - } else { - return WebGUI::Privilege::insufficient(); - } -} - -#------------------------------------------------------------------- -sub www_deny { - my $self = shift; - my (%submission); - tie %submission, 'Tie::CPHash'; - if (WebGUI::Grouping::isInGroup(4,$session{user}{userId}) || WebGUI::Grouping::isInGroup(3,$session{user}{userId})) { - %submission = WebGUI::SQL->quickHash("select * from USS_submission where USS_submissionId=".quote($session{form}{sid})); - WebGUI::SQL->write("update USS_submission set status='Denied' where USS_submissionId=".quote($session{form}{sid})); - WebGUI::MessageLog::addInternationalizedEntry($submission{userId},'',WebGUI::URL::page('func=viewSubmission&wid='. - $session{form}{wid}.'&sid='.$session{form}{sid},1),5,$self->get("namespace")); - WebGUI::MessageLog::completeEntry($session{form}{mlog}); - $self->deleteCachedSubmission($session{form}{sid}); - return WebGUI::Operation::www_viewMessageLog(); - } else { - return WebGUI::Privilege::insufficient(); - } -} - - -#------------------------------------------------------------------- -sub www_edit { - my ($output, $submission, $f, @submission, $sth); - $submission = $_[0]->getCollateral("USS_submission","USS_submissionId",$session{form}{sid}); - my %var; - if ($submission->{USS_submissionId} eq "new") { - $submission->{userId} = $session{user}{userId}; - $submission->{contentType} = "mixed"; - $var{'submission.isNew'} = 1; - } - return WebGUI::Privilege::insufficient() unless (WebGUI::Grouping::isInGroup($_[0]->get("groupToContribute")) - || $submission->{userId} eq $session{user}{userId} - || WebGUI::Grouping::isInGroup($_[0]->get("groupToApprove"))); - $var{'link.header.label'} = WebGUI::International::get(90,$_[0]->get("namespace")); - $var{'question.header.label'} = WebGUI::International::get(84,$_[0]->get("namespace")); - $var{'submission.header.label'} = WebGUI::International::get(19,$_[0]->get("namespace")); - $var{'user.isVisitor'} = ($session{user}{userId} eq '1'); - $var{'visitorName.label'} = WebGUI::International::get(438); - $var{'visitorName.form'} = WebGUI::Form::text({ - name=>"visitorName" - }); - $var{'form.header'} = WebGUI::Form::formHeader() - .WebGUI::Form::hidden({ - name=>"wid", - value=>$session{form}{wid} - }) - .WebGUI::Form::hidden({ - name=>"sid", - value=>$submission->{USS_submissionId} - }) - .WebGUI::Form::hidden({ - name=>"func", - value=>"editSubmissionSave" - }); - $var{'url.label'} = WebGUI::International::get(91,$_[0]->get("namespace")); - $var{'newWindow.label'} = WebGUI::International::get(92,$_[0]->get("namespace")); - $var{'userDefined1.form'} = WebGUI::Form::text({ - name=>"userDefined1", - value=>$submission->{userDefined1} - }); - $var{'userDefined1.form.yesNo'} = WebGUI::Form::yesNo({ - name=>"userDefined1", - value=>$submission->{userDefined1} - }); - $var{'userDefined1.form.textarea'} = WebGUI::Form::textarea({ - name=>"userDefined1", - value=>$submission->{userDefined1} - }); - $var{'userDefined2.form'} = WebGUI::Form::text({ - name=>"userDefined2", - value=>$submission->{userDefined2} - }); - $var{'userDefined2.form.yesNo'} = WebGUI::Form::yesNo({ - name=>"userDefined2", - value=>$submission->{userDefined2} - }); - $var{'userDefined2.form.textarea'} = WebGUI::Form::textarea({ - name=>"userDefined2", - value=>$submission->{userDefined2} - }); - $var{'userDefined3.form'} = WebGUI::Form::text({ - name=>"userDefined3", - value=>$submission->{userDefined3} - }); - $var{'userDefined3.form.yesNo'} = WebGUI::Form::yesNo({ - name=>"userDefined3", - value=>$submission->{userDefined3} - }); - $var{'userDefined3.form.textarea'} = WebGUI::Form::textarea({ - name=>"userDefined3", - value=>$submission->{userDefined3} - }); - $var{'userDefined4.form'} = WebGUI::Form::text({ - name=>"userDefined4", - value=>$submission->{userDefined4} - }); - $var{'userDefined4.form.yesNo'} = WebGUI::Form::yesNo({ - name=>"userDefined4", - value=>$submission->{userDefined4} - }); - $var{'userDefined4.form.textarea'} = WebGUI::Form::textarea({ - name=>"userDefined4", - value=>$submission->{userDefined4} - }); - $var{'userDefined5.form'} = WebGUI::Form::text({ - name=>"userDefined5", - value=>$submission->{userDefined5} - }); - $var{'userDefined5.form.yesNo'} = WebGUI::Form::yesNo({ - name=>"userDefined5", - value=>$submission->{userDefined5} - }); - $var{'userDefined5.form.textarea'} = WebGUI::Form::textarea({ - name=>"userDefined5", - value=>$submission->{userDefined5} - }); - $var{'userDefined1.form.htmlarea'} = WebGUI::Form::HTMLArea({ - name=>"userDefined1", - value=>$submission->{userDefined1} - }); - $var{'userDefined2.form.htmlarea'} = WebGUI::Form::HTMLArea({ - name=>"userDefined2", - value=>$submission->{userDefined2} - }); - $var{'userDefined3.form.htmlarea'} = WebGUI::Form::HTMLArea({ - name=>"userDefined3", - value=>$submission->{userDefined3} - }); - $var{'userDefined4.form.htmlarea'} = WebGUI::Form::HTMLArea({ - name=>"userDefined4", - value=>$submission->{userDefined4} - }); - $var{'userDefined5.form.htmlarea'} = WebGUI::Form::HTMLArea({ - name=>"userDefined5", - value=>$submission->{userDefined5} - }); - $var{'userDefined1.value'} = $submission->{userDefined1}; - $var{'userDefined2.value'} = $submission->{userDefined2}; - $var{'userDefined3.value'} = $submission->{userDefined3}; - $var{'userDefined4.value'} = $submission->{userDefined4}; - $var{'userDefined5.value'} = $submission->{userDefined5}; - $var{'question.label'} = WebGUI::International::get(85,$_[0]->get("namespace")); - $var{'title.label'} = WebGUI::International::get(35,$_[0]->get("namespace")); - $var{'title.form'} = WebGUI::Form::text({ - name=>"title", - value=>$submission->{title} - }); - $var{'title.form.textarea'} = WebGUI::Form::textarea({ - name=>"title", - value=>$submission->{title} - }); - $var{'title.value'} = $submission->{title}; - $var{'body.label'} = WebGUI::International::get(31,$_[0]->get("namespace")); - $var{'answer.label'} = WebGUI::International::get(86,$_[0]->get("namespace")); - $var{'description.label'} = WebGUI::International::get(85); - $var{'body.value'} = $submission->{content}; - $var{'body.form'} = WebGUI::Form::HTMLArea({ - name=>"body", - value=>$submission->{content} - }); - $var{'body.form.textarea'} = WebGUI::Form::textarea({ - name=>"body", - value=>$submission->{content} - }); - $var{'image.label'} = WebGUI::International::get(32,$_[0]->get("namespace")); - if ($submission->{image} ne "") { - $var{'image.form'} = ''.WebGUI::International::get(391).''; - } else { - $var{'image.form'} = WebGUI::Form::file({ - name=>"image" - }); - } - $var{'attachment.label'} = WebGUI::International::get(33,$_[0]->get("namespace")); - if ($submission->{attachment} ne "") { - $var{'attachment.form'} = ''.WebGUI::International::get(391).''; - } else { - $var{'attachment.form'} = WebGUI::Form::file({ - name=>"attachment" - }); - } - $var{'contentType.label'} = WebGUI::International::get(1007); - $var{'contentType.form'} = WebGUI::Form::contentType({ - name=>'contentType', - value=>[$submission->{contentType}] - }); - $var{'startDate.label'} = WebGUI::International::get(497); - $var{'endDate.label'} = WebGUI::International::get(498); - $var{'startDate.form'} = WebGUI::Form::dateTime({ - name => 'startDate', - value => ($submission->{startDate} || $_[0]->get("startDate")) - }); - $var{'endDate.form'} = WebGUI::Form::dateTime({ - name => 'endDate', - value => ($submission->{endDate} || $_[0]->get("endDate")) - }); - $var{'form.submit'} = WebGUI::Form::submit(); - $var{'form.footer'} = WebGUI::Form::formFooter(); - return $_[0]->processTemplate($_[0]->get("submissionFormTemplateId"),\%var,"USS/SubmissionForm"); -} - -#------------------------------------------------------------------- -sub www_editSubmissionSave { - my ($submission, %hash, $file, $u); - $submission = $_[0]->getCollateral("USS_submission","USS_submissionId",$session{form}{sid}); - if ($submission->{userId} eq $session{user}{userId} - || ($submission->{USS_submissionId} eq "new" - && WebGUI::Grouping::isInGroup($_[0]->get("groupToContribute"))) - || WebGUI::Grouping::isInGroup($_[0]->get("groupToApprove"))) { - if ($session{form}{sid} eq "new") { - my $parentPage = WebGUI::Page->new($_[0]->get("pageId")); - my $newPage = $parentPage->add; - $hash{pageId} = $submission->{pageId} = $newPage->get("pageId"); - my $forum = WebGUI::Forum->create({ - masterForumId=>$_[0]->get("forumId"), - forumId=>"new" - }); - $hash{forumId} = $forum->get("forumId"); - $hash{USS_id} = $_[0]->get("USS_id"); - $hash{username} = $session{form}{visitorName} || $session{user}{alias}; - $hash{userId} = $session{user}{userId}; - $hash{dateSubmitted} = WebGUI::DateTime::time(); - $hash{USS_submissionId} = "new"; - if ($session{setting}{useKarma}) { - $u = WebGUI::User->new($session{user}{userId}); - $u->karma($_[0]->get("karmaPerSubmission"),$_[0]->get("namespace")." (".$_[0]->get("wobjectId") - ."/".$session{form}{sid}.")","User submission."); - } - $session{form}{sid} = $_[0]->setCollateral("USS_submission","USS_submissionId",\%hash,1,0,"USS_id",$_[0]->get("USS_id")); - my %pageVars = %{$parentPage->get}; - delete $pageVars{pageId}; - delete $pageVars{nestedSetLeft}; - delete $pageVars{nestedSetRight}; - delete $pageVars{depth}; - delete $pageVars{parentId}; - delete $pageVars{sequenceNumber}; - $pageVars{hideFromNavigation} = 1; - $pageVars{isSystem} = 1; - $pageVars{subroutine} = "viewSubmissionAsPage"; - $pageVars{subroutinePackage} = "WebGUI::Wobject::USS"; - $pageVars{subroutineParams} = "{wobjectId=>'".$_[0]->wid."',submissionId=>'".$session{form}{sid}."'}"; - $pageVars{urlizedTitle} .= "/".$_[0]->get("title")."/".$session{form}{title}; - $pageVars{urlizedTitle} .= ".".$session{setting}{urlExtension} unless ($pageVars{urlizedTitle} =~ /\./ && $session{setting}{urlExtension} ne ""); - $pageVars{urlizedTitle} = WebGUI::Page::makeUnique(WebGUI::URL::urlize($pageVars{urlizedTitle},-999)); - $newPage->set(\%pageVars); - %hash = (); - } - $hash{title} = WebGUI::HTML::filter($session{form}{title},'all') || WebGUI::International::get(16,$_[0]->get("namespace")); - $hash{USS_submissionId} = $session{form}{sid}; - $hash{dateUpdated} = WebGUI::DateTime::time(); - $hash{content} = $session{form}{body}; - $hash{userDefined1} = $session{form}{userDefined1}; - $hash{userDefined2} = $session{form}{userDefined2}; - $hash{userDefined3} = $session{form}{userDefined3}; - $hash{userDefined4} = $session{form}{userDefined4}; - $hash{userDefined5} = $session{form}{userDefined5}; - $hash{startDate} = WebGUI::DateTime::humanToEpoch($session{form}{startDate}); - $hash{endDate} = WebGUI::DateTime::humanToEpoch($session{form}{endDate}); - $hash{contentType} = $session{form}{contentType}; - $file = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{sid}); - $file->save("image"); - $hash{image} = $file->getFilename if ($file->getFilename ne ""); - $file = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{sid}); - $file->save("attachment"); - $hash{attachment} = $file->getFilename if ($file->getFilename ne ""); - unless ($_[0]->get("defaultStatus") eq "Approved") { - unless (WebGUI::Grouping::isInGroup($_[0]->get("groupToApprove")) ) { - $hash{status} = $_[0]->get("defaultStatus"); - WebGUI::MessageLog::addInternationalizedEntry('',$_[0]->get("groupToApprove"), - WebGUI::URL::page('func=viewSubmission&wid='.$_[0]->get("wobjectId").'&sid='. - $session{form}{sid},1),3,$_[0]->get("namespace"),'pending'); - } else { - $hash{status} = "Approved"; - } - } - my %pageVars; - $pageVars{title} = $pageVars{menuTitle} = $hash{title}; - my $page = WebGUI::Page->new($submission->{pageId}); - $page->set(\%pageVars); - $_[0]->setCollateral("USS_submission", "USS_submissionId", \%hash, 1, 0, "USS_id", $_[0]->get("USS_id")); - $_[0]->deleteCachedSubmission($hash{USS_submissionId}); - return $_[0]->www_viewSubmission(); - } else { - return WebGUI::Privilege::insufficient(); - } -} - - - - -1; -