Merge pull request #26 from dgray16/master

Bug fixes.
This commit is contained in:
Jeroen Baten 2015-12-07 16:09:52 +01:00
commit 57ee04e570
7 changed files with 90 additions and 62 deletions

View file

@ -57,6 +57,7 @@ public enum PredefinedConnectors {
ConnectorProperty.create(PredefinedConnectorProperties.PROTOCOL, ""),
ConnectorProperty.create(PredefinedConnectorProperties.HOST, ""),
ConnectorProperty.create(PredefinedConnectorProperties.PORT, ""),
ConnectorProperty.create(PredefinedConnectorProperties.EMAIL_SENDER, ""),
ConnectorProperty.create(PredefinedConnectorProperties.EMAIL_USERNAME, ""),
ConnectorProperty.create(PredefinedConnectorProperties.EMAIL_PASSWORD, "")

View file

@ -40,39 +40,11 @@ public class EmailTemplateDAO extends GenericDAOHibernate<EmailTemplate, Long> i
return list(EmailTemplate.class);
}
@Override
public String initializeContent() {
try{
List<EmailTemplate> emailTemplates = list(EmailTemplate.class);
for ( int i = 0; i < emailTemplates.size(); i++)
// language.ordinal.equals(3) - English
if ( emailTemplates.get(i).getType().ordinal() == 0 && emailTemplates.get(i).getLanguage().ordinal() == 3)
return emailTemplates.get(i).getContent();
}catch (Exception e){}
return " ";
}
@Override
public String initializeSubject() {
try{
List<EmailTemplate> emailTemplates = list(EmailTemplate.class);
for ( int i = 0; i < emailTemplates.size(); i++)
// language.ordinal.equals(3) - English
if ( emailTemplates.get(i).getType().ordinal() == 0 && emailTemplates.get(i).getLanguage().ordinal() == 3)
return emailTemplates.get(i).getSubject();
}catch (Exception e){}
return " ";
}
@Override
public String getContentBySelectedLanguage(int languageOrdinal, int emailTemplateTypeOrdinal) {
for (int i = 0; i < list(EmailTemplate.class).size(); i++)
if (list(EmailTemplate.class).get(i).getLanguage().ordinal() == languageOrdinal &&
// emailTemplateTypeOrdinal + 1, because first value is 0
list(EmailTemplate.class).get(i).getType().ordinal() == emailTemplateTypeOrdinal + 1)
if ( list(EmailTemplate.class).get(i).getLanguage().ordinal() == languageOrdinal &&
list(EmailTemplate.class).get(i).getType().ordinal() == emailTemplateTypeOrdinal )
return list(EmailTemplate.class).get(i).getContent();
return "";
}
@ -80,11 +52,27 @@ public class EmailTemplateDAO extends GenericDAOHibernate<EmailTemplate, Long> i
@Override
public String getContentBySelectedTemplate(int emailTemplateTypeOrdinal, int languageOrdinal) {
for (int i = 0; i < list(EmailTemplate.class).size(); i++)
// emailTemplateTypeOrdinal + 1, because first value is 0
if ( list(EmailTemplate.class).get(i).getType().ordinal() == emailTemplateTypeOrdinal + 1 &&
if ( list(EmailTemplate.class).get(i).getType().ordinal() == emailTemplateTypeOrdinal &&
list(EmailTemplate.class).get(i).getLanguage().ordinal() == languageOrdinal )
return list(EmailTemplate.class).get(i).getContent();
return "";
}
@Override
public String getSubjectBySelectedLanguage(int languageOrdinal, int emailTemplateTypeOrdinal) {
for (int i = 0; i < list(EmailTemplate.class).size(); i++)
if ( list(EmailTemplate.class).get(i).getLanguage().ordinal() == languageOrdinal &&
list(EmailTemplate.class).get(i).getType().ordinal() == emailTemplateTypeOrdinal )
return list(EmailTemplate.class).get(i).getSubject();
return "";
}
@Override
public String getSubjectBySelectedTemplate(int emailTemplateTypeOrdinal, int languageOrdinal) {
for (int i = 0; i < list(EmailTemplate.class).size(); i++)
if ( list(EmailTemplate.class).get(i).getType().ordinal() == emailTemplateTypeOrdinal &&
list(EmailTemplate.class).get(i).getLanguage().ordinal() == languageOrdinal )
return list(EmailTemplate.class).get(i).getSubject();
return "";
}
}

View file

@ -36,9 +36,9 @@ public interface IEmailTemplateDAO extends IGenericDAO<EmailTemplate, Long>{
List<EmailTemplate> getAll();
String initializeContent();
String initializeSubject();
String getContentBySelectedLanguage(int languageOrdinal, int emailTemplateTypeOrdinal);
String getContentBySelectedTemplate(int emailTemplateTypeOrdinal, int languageOrdinal);
String getSubjectBySelectedLanguage(int languageOrdinal, int emailTemplateTypeOrdinal);
String getSubjectBySelectedTemplate(int emailTemplateTypeOrdinal, int languageOrdinal);
}

View file

@ -242,7 +242,8 @@ public class ConfigurationController extends GenericForwardComposer {
public void save() throws InterruptedException {
if ( getSelectedConnector().getName().equals("E-mail") && isEmailFieldsValid() == false) {
if ( getSelectedConnector() != null && getSelectedConnector().getName().equals("E-mail") &&
isEmailFieldsValid() == false ) {
messages.showMessage(Level.ERROR, _("Check username/password/sender fields"));
} else {
ConstraintChecker.isValid(configurationWindow);
@ -1325,7 +1326,6 @@ public class ConfigurationController extends GenericForwardComposer {
}
private boolean isEmailFieldsValid(){
if ( protocolsCombobox.getSelectedItem().getLabel().equals("STARTTLS") &&
emailUsernameTextbox.getValue() != null &&
emailPasswordTextbox.getValue() != null &&
@ -1336,5 +1336,4 @@ public class ConfigurationController extends GenericForwardComposer {
else return false;
}
}

View file

@ -24,9 +24,14 @@ import org.libreplan.business.common.exceptions.ValidationException;
import org.libreplan.business.settings.entities.Language;
import org.libreplan.business.email.entities.EmailTemplateEnum;
import org.libreplan.business.users.daos.IUserDAO;
import org.libreplan.business.users.entities.User;
import org.libreplan.web.common.IMessagesForUser;
import org.libreplan.web.common.Level;
import org.libreplan.web.common.MessagesForUser;
import org.libreplan.web.security.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.zkoss.zk.ui.Component;
@ -52,8 +57,12 @@ import static org.libreplan.web.I18nHelper._;
*/
public class EmailTemplateController extends GenericForwardComposer{
private IEmailTemplateModel emailTemplateModel;
@Autowired
private IUserDAO userDAO;
private User user;
private IEmailTemplateModel emailTemplateModel;
private IMessagesForUser messages;
@ -79,8 +88,14 @@ public class EmailTemplateController extends GenericForwardComposer{
super.doAfterCompose(comp);
comp.setVariable("emailTemplateController", this, true);
messages = new MessagesForUser(messagesContainer);
contentsTextbox.setValue(getInitialContentData());
subjectTextbox.setValue(getInitialSubjectData());
// Set default template and language for user
// And content and subject for it
setUser();
setSelectedLanguage(user.getApplicationLanguage());
getContentDataBySelectedLanguage();
getSubjectDataBySelectedLanguage();
}
public boolean save(){
@ -108,6 +123,7 @@ public class EmailTemplateController extends GenericForwardComposer{
public void setSelectedLanguage(Language language){
emailTemplateModel.setLanguage(language);
getSubjectDataBySelectedLanguage();
getContentDataBySelectedLanguage();
}
@ -139,6 +155,7 @@ public class EmailTemplateController extends GenericForwardComposer{
public void setSelectedEmailTemplateEnum(EmailTemplateEnum emailTemplateEnum){
emailTemplateModel.setEmailTemplateEnum(emailTemplateEnum);
getSubjectDataBySelectedTemplate();
getContentDataBySelectedTemplate();
}
@ -160,21 +177,31 @@ public class EmailTemplateController extends GenericForwardComposer{
public void setSelectedContent(){
emailTemplateModel.setContent(contentsTextbox.getValue());
}
public String getInitialContentData(){
return emailTemplateModel.initializeContent();
}
public void setSelectedSubject(){
emailTemplateModel.setSubject(subjectTextbox.getValue());
}
public String getInitialSubjectData(){
return emailTemplateModel.initializeSubject();
}
private void getContentDataBySelectedLanguage(){
contentsTextbox.setValue(emailTemplateModel.getContentBySelectedLanguage(getSelectedLanguage().ordinal(), getSelectedEmailTemplateEnum().ordinal()));
}
private void getContentDataBySelectedTemplate(){
contentsTextbox.setValue( emailTemplateModel.getContentBySelectedTemplate( getSelectedEmailTemplateEnum().ordinal(), getSelectedLanguage().ordinal() ) );
contentsTextbox.setValue( emailTemplateModel.getContentBySelectedTemplate(getSelectedEmailTemplateEnum().ordinal(), getSelectedLanguage().ordinal()) );
}
private void getSubjectDataBySelectedLanguage(){
subjectTextbox.setValue(emailTemplateModel.getSubjectBySelectedLanguage(getSelectedLanguage().ordinal(), getSelectedEmailTemplateEnum().ordinal()));
}
private void getSubjectDataBySelectedTemplate(){
subjectTextbox.setValue( emailTemplateModel.getContentBySelectedTemplate(getSelectedEmailTemplateEnum().ordinal(), getSelectedLanguage().ordinal()) );
}
@Transactional
private void setUser(){
try {
user = userDAO.findByLoginName(SecurityUtils.getSessionUserLoginName());
} catch (InstanceNotFoundException e) {
throw new RuntimeException(e);
}
}
}

View file

@ -24,7 +24,10 @@ import org.libreplan.business.settings.entities.Language;
import org.libreplan.business.email.daos.IEmailTemplateDAO;
import org.libreplan.business.email.entities.EmailTemplate;
import org.libreplan.business.email.entities.EmailTemplateEnum;
import org.libreplan.business.users.daos.IUserDAO;
import org.libreplan.business.users.entities.User;
import org.libreplan.web.common.concurrentdetection.OnConcurrentModification;
import org.libreplan.web.security.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.annotation.Scope;
@ -48,6 +51,9 @@ public class EmailTemplateModel implements IEmailTemplateModel {
@Autowired
private IEmailTemplateDAO emailTemplateDAO;
@Autowired
private IUserDAO userDAO;
private Language language = Language.ENGLISH_LANGUAGE;
private EmailTemplateEnum emailTemplateEnum = EmailTemplateEnum.TEMPLATE_TASK_ASSIGNED_TO_RESOURCE;
@ -56,6 +62,8 @@ public class EmailTemplateModel implements IEmailTemplateModel {
private String subject;
private User user;
private EmailTemplate emailTemplate = new EmailTemplate();
@Override
@ -103,11 +111,14 @@ public class EmailTemplateModel implements IEmailTemplateModel {
}
@Override
@Transactional
public Language getLanguage() {
return this.emailTemplate.getLanguage();
}
@Override
public void setLanguage(Language language){ this.emailTemplate.setLanguage(language);}
public void setLanguage(Language language){
this.emailTemplate.setLanguage(language);
}
@Override
public EmailTemplateEnum getEmailTemplateEnum() {
@ -136,16 +147,6 @@ public class EmailTemplateModel implements IEmailTemplateModel {
this.emailTemplate.setSubject(subject);
}
@Override
@Transactional
public String initializeContent() {
return emailTemplateDAO.initializeContent();
}
@Override
@Transactional
public String initializeSubject() { return emailTemplateDAO.initializeSubject(); }
@Override
@Transactional
public String getContentBySelectedLanguage(int languageOrdinal, int emailTemplateTypeOrdinal) {
@ -157,6 +158,18 @@ public class EmailTemplateModel implements IEmailTemplateModel {
public String getContentBySelectedTemplate(int emailTemplateTypeOrdinal, int languageOrdinal) {
return emailTemplateDAO.getContentBySelectedTemplate(emailTemplateTypeOrdinal, languageOrdinal);
}
@Override
@Transactional
public String getSubjectBySelectedLanguage(int languageOrdinal, int emailTemplateTypeOrdinal) {
return emailTemplateDAO.getSubjectBySelectedLanguage(languageOrdinal, emailTemplateTypeOrdinal);
}
@Override
@Transactional
public String getSubjectBySelectedTemplate(int emailTemplateTypeOrdinal, int languageOrdinal) {
return emailTemplateDAO.getSubjectBySelectedTemplate(emailTemplateTypeOrdinal, languageOrdinal);
}
}

View file

@ -40,12 +40,12 @@ public interface IEmailTemplateModel {
List<EmailTemplate> getAll();
String initializeContent();
String initializeSubject();
String getContentBySelectedLanguage(int languageOrdinal, int emailTemplateTypeOrdinal);
String getContentBySelectedTemplate(int emailTemplateTypeOrdinal, int languageOrdinal);
String getSubjectBySelectedLanguage(int languageOrdinal, int emailTemplateTypeOrdinal);
String getSubjectBySelectedTemplate(int emailTemplateTypeOrdinal, int languageOrdinal);
String getContent();
void setContent(String content);