public function actionApproveSubmission()
{
$user = craft()->userSession->getUser();
$draftId = craft()->request->getParam('draftId');
$submissionId = craft()->request->getParam('submissionId');
$notes = craft()->request->getParam('notes');
$model = craft()->workflow_submissions->getById($submissionId);
$model->status = Workflow_SubmissionModel::APPROVED;
$model->publisherId = $user->id;
$model->dateApproved = new DateTime();
$model->notes = $notes;
// Check if we're approving a draft - we publish it too.
if ($draftId) {
$draft = craft()->entryRevisions->getDraftById($draftId);
} else {
$draft = null;
}
if (craft()->workflow_submissions->approveSubmission($model, $draft)) {
craft()->userSession->setNotice(Craft::t('Entry approved and published.'));
} else {
craft()->userSession->setError(Craft::t('Could not approve and publish.'));
}
// Redirect page to the entry as its not a form submission - check for draft
if ($draft) {
// If we've published a draft the url has changed
craft()->request->redirect($draft->cpEditUrl);
} else {
craft()->request->redirect(craft()->request->urlReferrer);
}
}