/**********************************************************************************
* $URL: https://source.sakaiproject.org/svn/sam/trunk/samigo-app/src/java/org/sakaiproject/tool/assessment/ui/listener/author/PublishRepublishNotificationListener.java $
* $Id: PublishRepublishNotificationListener.java 108255 2012-05-17 18:30:57Z ktsao@stanford.edu $
***********************************************************************************
*
* Copyright (c) 2004, 2005, 2006 The Sakai Foundation.
*
* Licensed under the Educational Community License, Version 1.0 (the"License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.opensource.org/licenses/ecl1.php
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
**********************************************************************************/
package org.sakaiproject.tool.assessment.ui.listener.author;
import java.text.MessageFormat;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.ValueChangeEvent;
import javax.faces.event.ValueChangeListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.sakaiproject.site.api.Site;
import org.sakaiproject.site.cover.SiteService;
import org.sakaiproject.tool.assessment.services.assessment.AssessmentService;
import org.sakaiproject.tool.assessment.services.assessment.PublishedAssessmentService;
import org.sakaiproject.tool.assessment.ui.bean.author.AssessmentSettingsBean;
import org.sakaiproject.tool.assessment.ui.bean.author.AuthorBean;
import org.sakaiproject.tool.assessment.ui.bean.author.PublishRepublishNotificationBean;
import org.sakaiproject.tool.assessment.ui.bean.author.PublishedAssessmentSettingsBean;
import org.sakaiproject.tool.assessment.ui.listener.util.ContextUtil;
/**
* <p>Title: Samigo</p>
* <p>Description: Sakai Assessment Manager</p>
* <p>Copyright: Copyright (c) 2004 Sakai Project</p>
* <p>Organization: Sakai Project</p>
* @version $Id: PublishRepublishNotificationListener.java 108255 2012-05-17 18:30:57Z ktsao@stanford.edu $
*/
public class PublishRepublishNotificationListener implements ValueChangeListener {
private static Log log = LogFactory.getLog(PublishRepublishNotificationListener.class);
/**
* Standard process action method.
* @param ae ValueChangeEvent
* @throws AbortProcessingException
*/
public void processValueChange(ValueChangeEvent ae)
throws AbortProcessingException {
AuthorBean author = (AuthorBean) ContextUtil.lookupBean("author");
String currentSiteId = "";
String title = "";
String startDateString = "";
PublishRepublishNotificationBean publishRepublishNotification = (PublishRepublishNotificationBean) ContextUtil.lookupBean("publishRepublishNotification");
boolean isEditPendingAssessmentFlow = author.getIsEditPendingAssessmentFlow();
if (isEditPendingAssessmentFlow) {
AssessmentService assessmentService = new AssessmentService();
AssessmentSettingsBean assessmentSettings = (AssessmentSettingsBean) ContextUtil.lookupBean("assessmentSettings");
currentSiteId = assessmentService.getAssessmentSiteId(assessmentSettings.getAssessmentId().toString());
title = assessmentSettings.getTitle();
startDateString = assessmentSettings.getStartDateString();
}
else {
PublishedAssessmentService publishedAssessmentService = new PublishedAssessmentService();
PublishedAssessmentSettingsBean publishedAssessmentSettings = (PublishedAssessmentSettingsBean) ContextUtil.lookupBean("publishedSettings");
currentSiteId = publishedAssessmentService.getPublishedAssessmentOwner(publishedAssessmentSettings.getAssessmentId());
title = publishedAssessmentSettings.getTitle();
startDateString = publishedAssessmentSettings.getStartDateString();
}
String newPos = ae.getNewValue().toString();
log.debug("**** ae.getNewValue : " + newPos);
if ("2".equals(newPos)) {
// set Subject
String siteTitle = "";
try
{
Site site = SiteService.getSite(currentSiteId);
siteTitle = site.getTitle();
}
catch (Exception ignore)
{
}
publishRepublishNotification.setSendNotification(true);
StringBuilder subject = new StringBuilder("[");
subject.append(siteTitle);
subject.append("] \"");
subject.append(title);
subject.append("\" ");
if (isEditPendingAssessmentFlow) {
if (startDateString == null || startDateString.trim().equals("")) {
subject.append(ContextUtil.getLocalizedString("org.sakaiproject.tool.assessment.bundle.AssessmentSettingsMessages", "is_available_immediately"));
}
else {
subject.append(MessageFormat.format(ContextUtil.getLocalizedString("org.sakaiproject.tool.assessment.bundle.AssessmentSettingsMessages", "is_available_on"), startDateString));
}
}
else {
subject.append(ContextUtil.getLocalizedString("org.sakaiproject.tool.assessment.bundle.AssessmentSettingsMessages", "was_republished"));
}
publishRepublishNotification.setNotificationSubject(subject.toString());
publishRepublishNotification.setSiteTitle(siteTitle);
}
else {
publishRepublishNotification.setSendNotification(false);
}
}
}