diff --git a/lib/WebGUI/Wobject.pm b/lib/WebGUI/Wobject.pm
index 2f74f4998..67b460323 100644
--- a/lib/WebGUI/Wobject.pm
+++ b/lib/WebGUI/Wobject.pm
@@ -575,7 +575,7 @@ sub set {
#-----------------------------------------------------------------
-=head2 setCollateral ( tableName, keyName, properties [ , useSequenceNumber, wobjectId ] )
+=head2 setCollateral ( tableName, keyName, properties [ , useSequenceNumber, useWobjectId ] )
Performs and insert/update of collateral data for any wobject's
collateral data. Returns the primary key value for that row of
diff --git a/lib/WebGUI/Wobject/DownloadManager.pm b/lib/WebGUI/Wobject/DownloadManager.pm
index 7fbd58238..9b6349fa5 100644
--- a/lib/WebGUI/Wobject/DownloadManager.pm
+++ b/lib/WebGUI/Wobject/DownloadManager.pm
@@ -121,17 +121,9 @@ sub www_deleteFile {
#-------------------------------------------------------------------
sub www_deleteDownload {
- my ($output);
if (WebGUI::Privilege::canEditPage()) {
- $output = '
'.WebGUI::International::get(42).'
';
- $output .= WebGUI::International::get(12,$namespace).'';
- $output .= '
';
- return $output;
+ return $_[0]->confirm(WebGUI::International::get(12,$namespace),
+ WebGUI::URL::page('func=deleteDownloadConfirm&wid='.$session{form}{wid}.'&did='.$session{form}{did}));
} else {
return WebGUI::Privilege::insufficient();
}
@@ -143,7 +135,7 @@ sub www_deleteDownloadConfirm {
if (WebGUI::Privilege::canEditPage()) {
$file = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{did});
$file->deleteNode;
- WebGUI::SQL->write("delete from DownloadManager_file where downloadId=$session{form}{did}");
+ $_[0]->deleteCollateral("DownloadManager_file","downloadId",$session{form}{did});
_reorderDownloads($session{form}{wid});
return "";
} else {
@@ -267,37 +259,27 @@ sub www_editDownload {
#-------------------------------------------------------------------
sub www_editDownloadSave {
- my ($file, $alt1, $alt2, $sqlAdd);
+ my ($file, %files);
if (WebGUI::Privilege::canEditPage()) {
- if ($session{form}{did} eq "new") {
- $session{form}{did} = getNextId("downloadId");
- WebGUI::SQL->write("insert into DownloadManager_file (wobjectId,downloadId,sequenceNumber)
- values (".$_[0]->get("wobjectId").",$session{form}{did},-1)");
- _reorderDownloads($_[0]->get("wobjectId"));
- }
+ $files{downloadId} = $_[0]->setCollateral("DownloadManager_file", "downloadId", {
+ downloadId => $session{form}{did},
+ fileTitle => $session{form}{fileTitle},
+ briefSynopsis => $session{form}{briefSynopsis},
+ dateUploaded => time(),
+ groupToView => $session{form}{groupToView}
+ });
+ _reorderDownloads($_[0]->get("wobjectId"));
$file = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{did});
$file->save("downloadFile");
- if ($file->getFilename ne "") {
- $sqlAdd = ', downloadFile='.quote($file->getFilename);
- }
- $alt1 = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{did});
- $alt1->save("alternateVersion1");
- if ($alt1->getFilename ne "") {
- $sqlAdd .= ', alternateVersion1='.quote($alt1->getFilename);
- }
- $alt2 = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{did});
- $alt2->save("alternateVersion2");
- if ($alt2->getFilename ne "") {
- $sqlAdd = ', alternateVersion2='.quote($alt2->getFilename);
- }
- WebGUI::SQL->write("update DownloadManager_file set ".
- "fileTitle=".quote($session{form}{fileTitle}).
- $sqlAdd.
- ", groupToView='$session{form}{groupToView}'".
- ", briefSynopsis=".quote($session{form}{briefSynopsis}).
- ", dateUploaded=".time().
- " where downloadId=".$session{form}{did}
- );
+ $files{downloadFile} = $file->getFilename;
+ $files{fileTitle} = $files{downloadFile} if ($session{form}{fileTitle} eq "");
+ $file = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{did});
+ $file->save("alternateVersion1");
+ $files{alternateVersion1} = $file->getFilename;
+ $file = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{did});
+ $file->save("alternateVersion2");
+ $files{alternateVersion2} = $file->getFilename;
+ $_[0]->setCollateral("DownloadManager_file", "downloadId", \%files);
if ($session{form}{proceed}) {
$session{form}{did} = "new";
$_[0]->www_editDownload();
diff --git a/lib/WebGUI/Wobject/EventsCalendar.pm b/lib/WebGUI/Wobject/EventsCalendar.pm
index e59c26626..63b3fcae6 100644
--- a/lib/WebGUI/Wobject/EventsCalendar.pm
+++ b/lib/WebGUI/Wobject/EventsCalendar.pm
@@ -141,9 +141,9 @@ sub www_deleteEvent {
sub www_deleteEventConfirm {
if (WebGUI::Privilege::canEditPage()) {
if ($session{form}{rid} > 0) {
- WebGUI::SQL->write("delete from EventsCalendar_event where recurringEventId=$session{form}{rid}");
+ $_[0]->deleteCollateral("EventsCalendar_event","recurringEventId",$session{form}{rid});
} else {
- WebGUI::SQL->write("delete from EventsCalendar_event where eventId=$session{form}{eid}");
+ $_[0]->deleteCollateral("EventsCalendar_event","eventId",$session{form}{eid});
}
return "";
} else {
diff --git a/lib/WebGUI/Wobject/FAQ.pm b/lib/WebGUI/Wobject/FAQ.pm
index e46fb5340..65526a14f 100644
--- a/lib/WebGUI/Wobject/FAQ.pm
+++ b/lib/WebGUI/Wobject/FAQ.pm
@@ -70,15 +70,9 @@ sub set {
#-------------------------------------------------------------------
sub www_deleteQuestion {
- my ($output);
if (WebGUI::Privilege::canEditPage()) {
- $output = ''.WebGUI::International::get(42).'
';
- $output .= WebGUI::International::get(7,$namespace).'';
- $output .= '
';
- return $output;
+ return $_[0]->confirm(WebGUI::International::get(7,$namespace),
+ WebGUI::URL::page('func=deleteQuestionConfirm&wid='.$_[0]->get("wobjectId").'&qid='.$session{form}{qid}));
} else {
return WebGUI::Privilege::insufficient();
}
@@ -88,7 +82,7 @@ sub www_deleteQuestion {
sub www_deleteQuestionConfirm {
my ($output);
if (WebGUI::Privilege::canEditPage()) {
- WebGUI::SQL->write("delete from FAQ_question where questionId=$session{form}{qid}");
+ $_[0]->deleteCollateral("FAQ_question","questionId",$session{form}{qid});
_reorderQuestions($_[0]->get("wobjectId"));
return "";
} else {
@@ -165,14 +159,11 @@ sub www_editQuestion {
sub www_editQuestionSave {
my ($seq);
if (WebGUI::Privilege::canEditPage()) {
- if ($session{form}{qid} eq "new") {
- ($seq) = WebGUI::SQL->quickArray("select max(sequenceNumber) from FAQ_question where wobjectId=".$_[0]->get("wobjectId"));
- $session{form}{qid} = getNextId("questionId");
- WebGUI::SQL->write("insert into FAQ_question (wobjectId,questionId,sequenceNumber) values
- (".$_[0]->get("wobjectId").",$session{form}{qid},".($seq+1).")");
- }
- WebGUI::SQL->write("update FAQ_question set question=".quote($session{form}{question}).",
- answer=".quote($session{form}{answer})." where questionId=$session{form}{qid}");
+ $_[0]->setCollateral("FAQ_question", "questionId", {
+ questionId => $session{form}{qid},
+ question => $session{form}{question},
+ answer => $session{form}{answer}
+ });
if ($session{form}{proceed}) {
$session{form}{qid} = "new";
return $_[0]->www_editQuestion();
diff --git a/lib/WebGUI/Wobject/LinkList.pm b/lib/WebGUI/Wobject/LinkList.pm
index c629ced88..8bfca7dd4 100644
--- a/lib/WebGUI/Wobject/LinkList.pm
+++ b/lib/WebGUI/Wobject/LinkList.pm
@@ -70,16 +70,9 @@ sub set {
#-------------------------------------------------------------------
sub www_deleteLink {
- my ($output);
if (WebGUI::Privilege::canEditPage()) {
- $output = ''.WebGUI::International::get(42).'
';
- $output .= WebGUI::International::get(9,$namespace).'';
- $output .= '
';
- return $output;
+ return $_[0]->confirm(WebGUI::International::get(9,$namespace),
+ WebGUI::URL::page('func=deleteLinkConfirm&wid='.$session{form}{wid}.'&lid='.$session{form}{lid}));
} else {
return WebGUI::Privilege::insufficient();
}
@@ -89,7 +82,7 @@ sub www_deleteLink {
sub www_deleteLinkConfirm {
my ($output);
if (WebGUI::Privilege::canEditPage()) {
- WebGUI::SQL->write("delete from LinkList_link where linkId=$session{form}{lid}");
+ $_[0]->deleteCollateral("LinkList_link","linkId",$session{form}{lid});
_reorderLinks($session{form}{wid});
return "";
} else {
@@ -175,15 +168,13 @@ sub www_editLink {
#-------------------------------------------------------------------
sub www_editLinkSave {
if (WebGUI::Privilege::canEditPage()) {
- if ($session{form}{lid} eq "new") {
- $session{form}{lid} = getNextId("linkId");
- WebGUI::SQL->write("insert into LinkList_link (wobjectId,linkId,sequenceNumber) values (".$_[0]->get("wobjectId")
- .",$session{form}{lid},-1)");
- _reorderLinks($_[0]->get("wobjectId"));
- }
- WebGUI::SQL->write("update LinkList_link set name=".quote($session{form}{name}).",
- url=".quote($session{form}{url}).",description=".quote($session{form}{description}).",
- newWindow='$session{form}{newWindow}' where linkId=$session{form}{lid}");
+ $_[0]->setCollateral("LinkList_link", "linkId", {
+ linkId => $session{form}{lid},
+ description => $session{form}{description},
+ newWindow => $session{form}{newWindow},
+ url => $session{form}{url},
+ name => $session{form}{name}
+ });
if ($session{form}{proceed}) {
$session{form}{lid} = "new";
$_[0]->www_editLink();
diff --git a/lib/WebGUI/Wobject/MailForm.pm b/lib/WebGUI/Wobject/MailForm.pm
index 1544a603a..24224d524 100755
--- a/lib/WebGUI/Wobject/MailForm.pm
+++ b/lib/WebGUI/Wobject/MailForm.pm
@@ -90,31 +90,25 @@ sub set {
#-------------------------------------------------------------------
sub www_deleteField {
- my ($output);
- if (WebGUI::Privilege::canEditPage()) {
- $output = ''.WebGUI::International::get(42).'
';
- $output .= WebGUI::International::get(19,$namespace).'';
- $output .= '
';
- return $output;
- } else {
- return WebGUI::Privilege::insufficient();
- }
+ my ($output);
+ if (WebGUI::Privilege::canEditPage()) {
+ return $_[0]->confirm(WebGUI::International::get(19,$namespace),
+ WebGUI::URL::page('func=deleteFieldConfirm&wid='.$_[0]->get("wobjectId").'&fid='.$session{form}{fid}));
+ } else {
+ return WebGUI::Privilege::insufficient();
+ }
}
#-------------------------------------------------------------------
sub www_deleteFieldConfirm {
- my ($output);
- if (WebGUI::Privilege::canEditPage()) {
- WebGUI::SQL->write("delete from MailForm_field where mailFieldId=$session{form}{fid}");
- _reorderFields($_[0]->get("wobjectId"));
- return "";
- } else {
- return WebGUI::Privilege::insufficient();
- }
+ my ($output);
+ if (WebGUI::Privilege::canEditPage()) {
+ $_[0]->deleteCollateral("MailForm_field","mailFieldId",$session{form}{fid});
+ _reorderFields($_[0]->get("wobjectId"));
+ return "";
+ } else {
+ return WebGUI::Privilege::insufficient();
+ }
}
#-------------------------------------------------------------------
diff --git a/lib/WebGUI/Wobject/Poll.pm b/lib/WebGUI/Wobject/Poll.pm
index 9bf46ba8a..90db3a3f6 100644
--- a/lib/WebGUI/Wobject/Poll.pm
+++ b/lib/WebGUI/Wobject/Poll.pm
@@ -149,7 +149,7 @@ sub www_editSave {
#-------------------------------------------------------------------
sub www_resetVotes {
if (WebGUI::Privilege::canEditPage()) {
- WebGUI::SQL->write("delete from Poll_answer where wobjectId=".$_[0]->get("wobjectId"));
+ $_[0]->deleteCollateral("Poll_answer","wobjectId",$_[0]->get("wobjectId"));
}
return "";
}
diff --git a/lib/WebGUI/Wobject/UserSubmission.pm b/lib/WebGUI/Wobject/UserSubmission.pm
index 1f172410c..0d11f705a 100644
--- a/lib/WebGUI/Wobject/UserSubmission.pm
+++ b/lib/WebGUI/Wobject/UserSubmission.pm
@@ -272,15 +272,11 @@ sub www_deleteImage {
#-------------------------------------------------------------------
sub www_deleteSubmission {
- my ($output, $owner);
+ my ($owner);
($owner) = WebGUI::SQL->quickArray("select userId from UserSubmission_submission where submissionId=$session{form}{sid}");
if ($owner == $session{user}{userId} || WebGUI::Privilege::isInGroup($_[0]->get("groupToApprove"))) {
- $output = ''.WebGUI::International::get(42).'
';
- $output .= WebGUI::International::get(17,$namespace).'';
- $output .= '
';
- return $output;
+ return $_[0]->confirm(WebGUI::International::get(17,$namespace),
+ WebGUI::URL::page('func=deleteSubmissionConfirm&wid='.$session{form}{wid}.'&sid='.$session{form}{sid}));
} else {
return WebGUI::Privilege::insufficient();
}
@@ -291,7 +287,7 @@ sub www_deleteSubmissionConfirm {
my ($output, $owner, $file);
($owner) = WebGUI::SQL->quickArray("select userId from UserSubmission_submission where submissionId=$session{form}{sid}");
if ($owner == $session{user}{userId} || WebGUI::Privilege::isInGroup($_[0]->get("groupToApprove"))) {
- WebGUI::SQL->write("delete from UserSubmission_submission where submissionId=$session{form}{sid}");
+ $_[0]->deleteCollateral("UserSubmission_submission","submissionId",$session{form}{sid});
$file = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{sid});
$file->deleteNode;
return "";
@@ -412,41 +408,38 @@ sub www_editSubmission {
#-------------------------------------------------------------------
sub www_editSubmissionSave {
- my ($sqlAdd,$submission,$image,$attachment,$title,$u);
+ my ($submission, %hash, $file, $u);
$submission = $_[0]->getCollateral("UserSubmission_submission","submissionId",$session{form}{sid});
- if ($submission->{userId} == $session{user}{userId} || ($submission->{submissionId} eq "new" && WebGUI::Privilege::isInGroup($_[0]->get("groupToContribute"))) || WebGUI::Privilege::isInGroup($_[0]->get("groupToApprove"))) {
- if ($submission->{submissionId} eq "new") {
- $session{form}{sid} = getNextId("submissionId");
- WebGUI::SQL->write("insert into UserSubmission_submission (wobjectId,submissionId,userId,username)
- values (".$_[0]->get("wobjectId").",$session{form}{sid},$session{user}{userId},".quote($session{user}{username}).")");
+ if ($submission->{userId} == $session{user}{userId}
+ || ($submission->{submissionId} eq "new"
+ && WebGUI::Privilege::isInGroup($_[0]->get("groupToContribute")))
+ || WebGUI::Privilege::isInGroup($_[0]->get("groupToApprove"))) {
+ $hash{title} = $session{form}{title} || WebGUI::International::get(16,$namespace);
+ if ($session{form}{sid} eq "new") {
+ $hash{username} = $session{user}{username};
+ $hash{userId} = $session{user}{userId};
if ($session{setting}{useKarma}) {
- $u = WebGUI::User->new($session{user}{userId});
- $u->karma($_[0]->get("karmaPerSubmission"),$namespace." (".$_[0]->get("wobjectId")."/".$session{form}{sid}.")","User submission.");
+ $u = WebGUI::User->new($session{user}{userId});
+ $u->karma($_[0]->get("karmaPerSubmission"),$namespace." (".$_[0]->get("wobjectId")
+ ."/".$session{form}{sid}.")","User submission.");
}
- }
- $image = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{sid});
- $image->save("image");
- if ($image->getFilename ne "") {
- $sqlAdd = 'image='.quote($image->getFilename).', ';
- }
- $attachment = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{sid});
- $attachment->save("attachment");
- if ($attachment->getFilename ne "") {
- $sqlAdd .= 'attachment='.quote($attachment->getFilename).', ';
+
}
- if ($session{form}{title} ne "") {
- $title = $session{form}{title};
- } else {
- $title = WebGUI::International::get(16,$namespace);
- }
- WebGUI::SQL->write("update UserSubmission_submission set
- dateSubmitted=".time().",
- convertCarriageReturns=$session{form}{convertCarriageReturns},
- title=".quote($title).",
- content=".quote($session{form}{content}).",
- ".$sqlAdd."
- status='".$_[0]->get("defaultStatus")."'
- where submissionId=$session{form}{sid}");
+ $hash{submissionId} = $session{form}{sid};
+ $hash{dateSubmitted} = time();
+ $hash{content} = $session{form}{content};
+ $hash{convertCarriageReturns} => $session{form}{convertCarriageReturns};
+ $hash{status} = $_[0]->get("defaultStatus");
+ $session{form}{sid} = $_[0]->setCollateral("UserSubmission_submission", "submissionId",\%hash,0);
+ %hash = ();
+ $hash{submissionId} = $session{form}{sid};
+ $file = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{sid});
+ $file->save("image");
+ $hash{image} = $file->getFilename;
+ $file = WebGUI::Attachment->new("",$session{form}{wid},$session{form}{sid});
+ $file->save("attachment");
+ $hash{attachment} = $file->getFilename;
+ $_[0]->setCollateral("UserSubmission_submission", "submissionId", \%hash, 0);
if ($_[0]->get("defaultStatus") ne "Approved") {
WebGUI::MessageLog::addInternationalizedEntry('',$_[0]->get("groupToApprove"),
WebGUI::URL::page('func=viewSubmission&wid='.$_[0]->get("wobjectId").'&sid='.