package br.ufrgs.inf.dsmoura.repository.controller; import java.io.Serializable; import java.util.Calendar; import org.ajax4jsf.model.KeepAlive; import br.ufrgs.inf.dsmoura.repository.controller.asset.NavigationMB; import br.ufrgs.inf.dsmoura.repository.controller.search.SearchMB; import br.ufrgs.inf.dsmoura.repository.controller.util.EmailUtil; import br.ufrgs.inf.dsmoura.repository.controller.util.JSFUtil; import br.ufrgs.inf.dsmoura.repository.model.dao.GenericDAO; import br.ufrgs.inf.dsmoura.repository.model.dao.TypesDAO; import br.ufrgs.inf.dsmoura.repository.model.entity.FeedbackMessageDTO; @KeepAlive public class MainMB implements Serializable { private static final long serialVersionUID = 1L; private String feedbackMessage; public String openMain() { /* refresh tag cloud in main */ TagsMB tagsMB = JSFUtil.findBean("tagsMB"); tagsMB.refreshMainTags(); /* refresh assets lists */ SearchMB searchMB = JSFUtil.findBean("searchMB"); searchMB.refreshBestScoredAssetsList(); //TODO otimizar o refresh da primeira entrada, porque no get ja faz isso pela primeira vez searchMB.refreshMostReusedAssetsList(); searchMB.refreshLastCertifiedAssetsList(); searchMB.refreshLastPublishedAssetsList(); searchMB.refreshPublishedAssetsNumber(); return NavigationMB.MAIN; } public String openSendFeedback() { this.feedbackMessage = ""; return NavigationMB.SEND_FEEDBACK_MESSAGE; } public void sendFeedbackMessage() { if (feedbackMessage != null && feedbackMessage.trim().length() > 0) { String FEEDBACK_EMAIL = TypesDAO.getInstance().getSystemProperty(SystemPropertyEnum.FEEDBACK_EMAIL.getKey()).getValue(); /* Save in database */ FeedbackMessageDTO feedbackMessageDTO = new FeedbackMessageDTO(); feedbackMessageDTO.setMessage(feedbackMessage); feedbackMessageDTO.setUsername(JSFUtil.getLoggedUserDTO().getUsername()); feedbackMessageDTO.setEmail(JSFUtil.getLoggedUserDTO().getEmail()); feedbackMessageDTO.setCurrentIp(JSFUtil.getCurrentIP()); feedbackMessageDTO.setDate(Calendar.getInstance()); GenericDAO.getInstance().insert(feedbackMessageDTO); /* Send email */ String emailMessage = "Feedback from user:" + "\n\nFull Name: " + JSFUtil.getLoggedUserDTO().getName() + "\nUsername: " + JSFUtil.getLoggedUserDTO().getUsername() + "\nEmail: " + JSFUtil.getLoggedUserDTO().getEmail() + "\nCurrent User IP: " + JSFUtil.getCurrentIP() + "\n\nMessage:\n" + feedbackMessage + "\n"; EmailUtil.sendMail(FEEDBACK_EMAIL, "Feedback Message", emailMessage); } feedbackMessage = ""; } public String getFeedbackMessage() { return feedbackMessage; } public void setFeedbackMessage(String feedbackMessage) { this.feedbackMessage = feedbackMessage; } }