fixed uss bugs
This commit is contained in:
parent
ed108c7bca
commit
063069934d
1 changed files with 47 additions and 33 deletions
|
|
@ -61,6 +61,8 @@ sub _xml_encode {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
sub duplicate {
|
||||
WebGUI::ErrorHandler::warn("USS wobjects cannot be duplicated until after 6.3.");
|
||||
return "";
|
||||
my %row;
|
||||
tie %row, 'Tie::CPHash';
|
||||
my $w = $_[0]->SUPER::duplicate($_[1],1);
|
||||
|
|
@ -102,7 +104,7 @@ sub getIndexerParams {
|
|||
from forumPost, forumThread, USS_submission, wobject, page, USS
|
||||
where forumPost.forumThreadId = forumThread.forumThreadId
|
||||
and forumThread.forumId = USS_submission.forumId
|
||||
and USS_submission.USS_id = USS.USS_id
|
||||
and USS_submission.USS_id = USS.USS_id
|
||||
and USS.wobjectId = wobject.wobjectId
|
||||
and wobject.pageId = page.pageId
|
||||
and wobject.startDate < $now
|
||||
|
|
@ -207,13 +209,15 @@ sub new {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
sub purge {
|
||||
my $sth = WebGUI::SQL->read("select forumId from USS_submission where USS_id=".quote($_[0]->get("USS_id")));
|
||||
while (my ($forumId) = $sth->array) {
|
||||
my $sth = WebGUI::SQL->read("select forumId,pageId from USS_submission where USS_id=".quote($_[0]->get("USS_id")));
|
||||
while (my ($forumId, $pageId) = $sth->array) {
|
||||
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;
|
||||
}
|
||||
$sth->finish;
|
||||
WebGUI::SQL->write("delete from USS_submission where USS_id=".quote($_[0]->get("USS_id")));
|
||||
|
|
@ -601,6 +605,9 @@ sub www_editSubmissionSave {
|
|||
&& 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"
|
||||
|
|
@ -617,6 +624,20 @@ sub www_editSubmissionSave {
|
|||
."/".$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{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} = 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"));
|
||||
|
|
@ -647,23 +668,10 @@ sub www_editSubmissionSave {
|
|||
$hash{status} = "Approved";
|
||||
}
|
||||
}
|
||||
my $parentPage = WebGUI::Page->new($_[0]->get("pageId"));
|
||||
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;
|
||||
my %pageVars;
|
||||
$pageVars{title} = $pageVars{menuTitle} = $hash{title};
|
||||
$pageVars{subroutine} = "viewSubmissionAsPage";
|
||||
$pageVars{subroutinePackage} = "WebGUI::Wobject::USS";
|
||||
$pageVars{subroutineParams} = "{wobjectId=>'".$_[0]->wid."',submissionId=>'".$hash{USS_submissionId}."'}";
|
||||
$pageVars{urlizedTitle} .= "/".$hash{title};
|
||||
my $newPage = $parentPage->add;
|
||||
$pageVars{urlizedTitle} = WebGUI::Page::makeUnique(WebGUI::URL::urlize($pageVars{urlizedTitle},$newPage->get("pageId")));
|
||||
$newPage->set(\%pageVars);
|
||||
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"));
|
||||
return $_[0]->www_viewSubmission();
|
||||
} else {
|
||||
|
|
@ -705,12 +713,12 @@ sub www_view {
|
|||
WebGUI::Style::setLink($var{"rss.url"},{ rel=>'alternate', type=>'application/rss+xml', title=>'RSS' });
|
||||
if ($session{scratch}{search}) {
|
||||
$numResults = $session{scratch}{numResults};
|
||||
$constraints = WebGUI::Search::buildConstraints([qw(username title content)]);
|
||||
$constraints = WebGUI::Search::buildConstraints([qw(USS_submission.username USS_submission.title USS_submission.content)]);
|
||||
}
|
||||
if ($constraints ne "") {
|
||||
$constraints = "status='Approved' and ".$constraints;
|
||||
$constraints = "USS_submission.status='Approved' and ".$constraints;
|
||||
} else {
|
||||
$constraints = "(status='Approved' or (userId=".quote($session{user}{userId})." and userId<>1))";
|
||||
$constraints = "(USS_submission.status='Approved' or (USS_submission.userId=".quote($session{user}{userId})." and USS_submission.userId<>1))";
|
||||
}
|
||||
$var{canModerate} = WebGUI::Grouping::isInGroup($_[0]->get("groupToApprove"),$session{user}{userId});
|
||||
$var{"title.label"} = WebGUI::International::get(99);
|
||||
|
|
@ -720,9 +728,15 @@ sub www_view {
|
|||
$var{"by.label"} = WebGUI::International::get(21,$_[0]->get("namespace"));
|
||||
$var{"submission.edit.label"} = WebGUI::International::get(27,$_[0]->get("namespace"));
|
||||
$p = WebGUI::Paginator->new(WebGUI::URL::page('func=view&wid='.$_[0]->get("wobjectId")),$numResults);
|
||||
$p->setDataByQuery("select USS_submissionId, content, title, userId, status, image, dateSubmitted, dateUpdated,
|
||||
username, contentType, forumId, userDefined1, userDefined2, userDefined3, userDefined4, userDefined5, startDate, endDate from USS_submission
|
||||
where USS_id=".quote($_[0]->get("USS_Id"))." and $constraints order by ".$_[0]->getValue("sortBy")." ".$_[0]->getValue("sortOrder"));
|
||||
$p->setDataByQuery("select USS_submission.USS_submissionId, USS_submission.content, USS_submission.title,
|
||||
USS_submission.userId, USS_submission.status, USS_submission.image, USS_submission.dateSubmitted,
|
||||
USS_submission.dateUpdated, USS_submission.username, USS_submission.contentType, USS_submission.forumId,
|
||||
USS_submission.userDefined1, USS_submission.userDefined2, USS_submission.userDefined3,
|
||||
USS_submission.userDefined4, USS_submission.userDefined5, USS_submission.startDate,
|
||||
USS_submission.endDate, page.urlizedTitle
|
||||
from USS_submission left join page on USS_submission.pageId=page.pageId
|
||||
where USS_submission.USS_id=".quote($_[0]->get("USS_Id"))."
|
||||
and $constraints order by USS_submission.".$_[0]->getValue("sortBy")." ".$_[0]->getValue("sortOrder"));
|
||||
$page = $p->getPageData;
|
||||
$i = 0;
|
||||
my $imageURL = "";
|
||||
|
|
@ -762,7 +776,7 @@ sub www_view {
|
|||
else { $inDateRange = 0; }
|
||||
push (@submission,{
|
||||
"submission.id"=>$page->[$i]->{USS_submissionId},
|
||||
"submission.url"=>WebGUI::URL::page($quickurl.'viewSubmission'),
|
||||
"submission.url"=>WebGUI::URL::gateway($page->[$i]->{urlizedTitle}),
|
||||
"submission.content"=>$content[0],
|
||||
"submission.content.full"=>join("\n",@content),
|
||||
"submission.responses"=>$responses,
|
||||
|
|
@ -896,36 +910,36 @@ sub www_viewSubmission {
|
|||
$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->{USS_submissionId})."
|
||||
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::page('func=viewSubmission&sid='.$previousPage->get("urlizedTitle").'&wid='.$self->wid);
|
||||
$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 USS_submissionId>".quote($submission->{USS_submissionId})."
|
||||
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::page('func=viewSubmission&sid='.$nextPage->get("urlizedTitle").'&wid='.$self->wid);
|
||||
$var{"next.url"} = WebGUI::URL::gateway($nextPage->get("urlizedTitle"));
|
||||
}
|
||||
$var{"next.label"} = WebGUI::International::get(59,$self->get("namespace"));
|
||||
$var{canEdit} = (($submission->{userId} == $session{user}{userId} || WebGUI::Grouping::isInGroup($self->get("groupToApprove"))) && $session{user}{userId} != 1);
|
||||
$var{"delete.url"} = WebGUI::URL::gateway($parentsPage->get("urlizedTitle"),'func=deleteSubmission&wid='.$self->wid.'&sid='.$submissionId);
|
||||
$var{"delete.label"} = WebGUI::International::get(37,$self->get("namespace"));
|
||||
$var{"edit.url"} = WebGUI::URL::page('func=editSubmission&wid='.$self->wid.'&sid='.$submissionId);
|
||||
$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::page('func=approveSubmission&wid='.$self->wid.'&sid='.$submissionId.'&mlog='.$session{form}{mlog});
|
||||
$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::page('func=denySubmission&wid='.$self->wid.'&sid='.$submissionId.'&mlog='.$session{form}{mlog});
|
||||
$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});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue