/impl/src/java/pt/estgp/estgweb/utils/Email.java |
---|
27,6 → 27,7 |
private String subject; |
private List<String> recipients; |
private Message.RecipientType type = Message.RecipientType.TO; |
private String from; |
private String emailTemplateName; |
private List<String> arguments; |
41,7 → 42,17 |
this.arguments = arguments; |
} |
public Email(String subject, List<String> recipients, String from, String mailTemplateName, List<String> arguments, Message.RecipientType type) |
{ |
this.type = type; |
this.subject = subject; |
this.recipients = recipients; |
this.from = from; |
this.emailTemplateName = mailTemplateName; |
this.arguments = arguments; |
} |
public String getSubject() |
{ |
return subject; |
90,4 → 101,15 |
System.out.println(validEmail("e@e.pt")); |
System.out.println(validEmail("jmachado@estgp.pt")); |
} |
public Message.RecipientType getType() |
{ |
return type; |
} |
public void setType(Message.RecipientType type) |
{ |
this.type = type; |
} |
} |
/impl/src/java/pt/estgp/estgweb/Globals.java |
---|
166,6 → 166,7 |
public static final String INTRANET_SETUP_FILE_NAME = ConfigProperties.getProperty("intranet.setup.filename"); |
public static final int COURSEUNIT_ASSIGNEMENT_NUMBER_DAYS_REMINDER_AFTER_EXPIRED = ConfigProperties.getIntProperty("work.reminder.unntil.days.after.expired"); |
public static final String COURSEUNIT_ASSIGNEMENT_TYPE_NO_FILE = "nofile"; |
public static final String PROFILE_SCHOLAR_DEGREE_SUPERIOR = "superior"; |
218,6 → 219,11 |
public static final String EMAIL_COURSEUNIT_ANNOUNCEMENT_TEMPLATE_PT = "courseUnitAnnouncement_pt.txt"; |
public static final String EMAIL_COURSEUNIT_ANNOUNCEMENT_TEMPLATE_EN = "courseUnitAnnouncement_en.txt"; |
public static final String EMAIL_COURSEUNIT_WORK_SUBJECT_PT = ConfigProperties.getProperty("email.courseunit.work.subject.pt"); |
public static final String EMAIL_COURSEUNIT_WORK_SUBJECT_EN = ConfigProperties.getProperty("email.courseunit.work.subject.en"); |
public static final String EMAIL_COURSEUNIT_WORK_TEMPLATE_PT = "courseUnitWork_pt.txt"; |
public static final String EMAIL_COURSEUNIT_WORK_TEMPLATE_EN = "courseUnitWork_en.txt"; |
public static final String EMAIL_COURSEUNIT_BLOGPOST_SUBJECT_PT = ConfigProperties.getProperty("email.courseunit.blogpost.subject.pt"); |
public static final String EMAIL_COURSEUNIT_BLOGPOST_SUBJECT_EN = ConfigProperties.getProperty("email.courseunit.blogpost.subject.en"); |
public static final String EMAIL_COURSEUNIT_BLOGPOST_TEMPLATE_PT = "courseUnitBlogPost_pt.txt"; |
/impl/src/java/pt/estgp/estgweb/services/courseunits/CourseUnitWorkService.java |
---|
6,12 → 6,18 |
import pt.estgp.estgweb.domain.views.CourseUnitDeliverableView; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.enums.LangEnum; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.services.data.RepositoryService; |
import pt.estgp.estgweb.services.blogs.CreateBlogService; |
import pt.estgp.estgweb.services.email.SendEmailService; |
import pt.estgp.estgweb.services.email.EMAILJob; |
import pt.estgp.estgweb.services.jobs.JobScheduleService; |
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum; |
import pt.estgp.estgweb.filters.exceptions.AccessDeniedException; |
import pt.estgp.estgweb.utils.Email; |
import pt.estgp.estgweb.Globals; |
import org.apache.log4j.Logger; |
import java.util.List; |
73,10 → 79,31 |
repositoryService.updateRepositoryFile(assignement.getRepositoryStream(), file, contentType, extension, size, name, "courseunit.assignement.file " + courseUnit.getName() + " of " + userSession.getUser().getUsername(), ResourceAccessControlEnum.courseunitDomain); |
} |
if(assignement.isStatus()) |
trySendWorkEmail(assignement,userSession); |
return loadCourseUnitWorks(id,userSession); |
} |
private void trySendWorkEmail(CourseUnitAssignement assignement, UserSession userSession) |
{ |
CourseUnit c = assignement.getCourseUnit(); |
List<User> users = new ArrayList<User>(); |
if(c.getStudents() != null) |
users.addAll(c.getStudents()); |
if(c.getTeachers() != null) |
users.addAll(c.getTeachers()); |
sendWorkEmail(assignement,c.getNormalizedName(), userSession, users); |
} |
SendEmailService sendEmailService = new SendEmailService(); |
private void sendWorkEmail(CourseUnitAssignement a, String desc, UserSession userSession, List<User> users) |
{ |
Email e = sendEmailService.getCourseUnitWorkEmail(a, LangEnum.PORTUGUESE,userSession,users); |
EMAILJob emailJob = new EMAILJob(e); |
JobScheduleService.getInstance().scheduleNow(emailJob,"CourseUnit Assignement Email:" + desc,userSession); |
} |
public CourseUnitView loadCourseUnitWorks(long id, UserSession userSession) throws ServiceException |
{ |
CourseUnitView cV = loadCourseUnitService.run(id,false,false,false,userSession); |
/impl/src/java/pt/estgp/estgweb/services/email/SendEmailService.java |
---|
53,7 → 53,7 |
if(Email.validEmail(recipient)) |
{ |
valid=true; |
message.addRecipient(Message.RecipientType.TO,new InternetAddress(recipient)); |
message.addRecipient(email.getType(),new InternetAddress(recipient)); |
} |
} |
if(valid) |
152,10 → 152,15 |
{ |
if(Email.validEmail(u.getEmail())) |
recipients.add(u.getEmail()); |
if(Email.validEmail(u.getOutEmail())) |
recipients.add(u.getOutEmail()); |
} |
String subject = java.text.MessageFormat.format(subjectTxt,new String[]{announcement.getCourseUnit().getNormalizedName(),announcement.getTitle()}); |
return new Email(subject ,recipients, Globals.SYSTEM_EMAIL_BOX,template,arguments); |
String fromEmail = Globals.SYSTEM_EMAIL_BOX; |
if(announcement.getOwner() != null && Email.validEmail(announcement.getOwner().getEmail())) |
fromEmail = announcement.getOwner().getEmail(); |
return new Email(subject ,recipients,fromEmail,template,arguments,Message.RecipientType.BCC); |
} |
public Email getCourseUnitBlogPostEmail(BlogPost post, LangEnum langEnum, String from, List<User> users) |
185,13 → 190,61 |
{ |
if(Email.validEmail(u.getEmail())) |
recipients.add(u.getEmail()); |
if(Email.validEmail(u.getOutEmail())) |
recipients.add(u.getOutEmail()); |
} |
String subject = java.text.MessageFormat.format(subjectTxt,new String[]{((CourseUnitBlog)post.getBlog()).getCourseUnit().getNormalizedName(),post.getTitle()}); |
return new Email(subject ,recipients, Globals.SYSTEM_EMAIL_BOX,template,arguments); |
String fromEmail = Globals.SYSTEM_EMAIL_BOX; |
if(post.getOwner() != null && Email.validEmail(post.getOwner().getEmail())) |
fromEmail = post.getOwner().getEmail(); |
return new Email(subject ,recipients, fromEmail, template,arguments,Message.RecipientType.BCC); |
} |
public Email getCourseUnitWorkEmail(CourseUnitAssignement assignement, LangEnum langEnum, UserSession userSession, List<User> users) |
{ |
List<String> arguments = new ArrayList<String>(); |
arguments.add(assignement.getCourseUnit().getName()); |
arguments.add(assignement.getTitle()); |
arguments.add(assignement.getDescription()); |
if(userSession != null && userSession.getName() != null) |
arguments.add(userSession.getName()); |
else |
arguments.add("unknown"); |
String subjectTxt; |
String template; |
if(langEnum == LangEnum.PORTUGUESE) |
{ |
template = Globals.EMAIL_COURSEUNIT_WORK_TEMPLATE_PT; |
subjectTxt = Globals.EMAIL_COURSEUNIT_WORK_SUBJECT_PT; |
} |
else |
{ |
template = Globals.EMAIL_COURSEUNIT_WORK_TEMPLATE_EN; |
subjectTxt = Globals.EMAIL_COURSEUNIT_WORK_SUBJECT_EN; |
} |
List<String> recipients = new ArrayList<String>(); |
for(User u: users) |
{ |
if(Email.validEmail(u.getEmail())) |
recipients.add(u.getEmail()); |
if(Email.validEmail(u.getOutEmail())) |
recipients.add(u.getOutEmail()); |
} |
String subject = java.text.MessageFormat.format(subjectTxt,new String[]{assignement.getCourseUnit().getNormalizedName(),assignement.getTitle()}); |
String fromEmail = Globals.SYSTEM_EMAIL_BOX; |
if(userSession!= null && userSession.getUser() != null && Email.validEmail(userSession.getUser().getEmail())) |
fromEmail = userSession.getUser().getEmail(); |
return new Email(subject ,recipients,fromEmail,template,arguments,Message.RecipientType.BCC); |
} |
public Email getNewGradesEmail(List<String[]> grades, LangEnum langEnum, String studentEmail, String studentName) |
{ |
List<String> arguments = new ArrayList<String>(); |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitAssignementDaoImpl.java |
---|
4,9 → 4,13 |
import org.hibernate.Query; |
import pt.estgp.estgweb.domain.CourseUnitAssignement; |
import pt.estgp.estgweb.domain.CourseUnitAssignementImpl; |
import pt.estgp.estgweb.Globals; |
import java.util.List; |
import java.util.Date; |
import jomm.dao.impl.AbstractDao; |
/** |
* @author Jorge Machado |
* @date 28/Fev/2008 |
30,13 → 34,26 |
public List<CourseUnitAssignementImpl> loadActiveAssignements(long userID) |
{ |
Date now = new Date(); |
Date dDaysBefore = new Date(now.getTime() - (Globals.COURSEUNIT_ASSIGNEMENT_NUMBER_DAYS_REMINDER_AFTER_EXPIRED * 24 * 60 * 60 * 1000 )); |
return createCriteria() |
.add(ge("deliverDate",dDaysBefore)) |
.createAlias("courseUnit","cu") |
.createAlias("cu.students","cus") |
.add(eq("status",true)) |
.add(eq("cus.id",userID)).list(); |
} |
public static void main(String [] args) |
{ |
AbstractDao.getCurrentSession().beginTransaction(); |
List<CourseUnitAssignementImpl> l = new CourseUnitAssignementDaoImpl().loadActiveAssignements(524); |
for(CourseUnitAssignement a:l) |
System.out.println(a.getTitle() + ":"+ a.getCourseUnit().getName()); |
AbstractDao.getCurrentSession().getTransaction().commit(); |
} |
public List<CourseUnitAssignementImpl> loadDeliveredAssignements(long userID) |
{ |
return createCriteria() |
/impl/src/web/user/ftpclient/ftpclient.jsp |
---|
151,55 → 151,55 |
|
<% |
if (i.getName().endsWith("doc") || i.getName().endsWith("rtf")) |
if (i.getName().toLowerCase().endsWith("doc") || i.getName().endsWith("rtf")) |
{ |
%> |
<img alt="<%=i.getCompleteUrl()%>" src="<%=request.getContextPath()%>/imgs/mime/doc.gif"> |
<% |
} |
else if (i.getName().endsWith("pdf")) |
else if (i.getName().toLowerCase().endsWith("pdf")) |
{ |
%> |
<img alt="<%=i.getCompleteUrl()%>" src="<%=request.getContextPath()%>/imgs/mime/pdf.gif"> |
<% |
} |
else if (i.getName().endsWith("ppt")) |
else if (i.getName().toLowerCase().endsWith("ppt")) |
{ |
%> |
<img alt="<%=i.getCompleteUrl()%>" src="<%=request.getContextPath()%>/imgs/mime/ppt.gif"> |
<% |
} |
else if (i.getName().endsWith("zip") || i.getName().endsWith(".gz") || i.getName().endsWith("tgz")) |
else if (i.getName().toLowerCase().endsWith("zip") || i.getName().endsWith(".gz") || i.getName().endsWith("tgz")) |
{ |
%> |
<img alt="<%=i.getCompleteUrl()%>" src="<%=request.getContextPath()%>/imgs/mime/zip.gif"> |
<% |
} |
else if (i.getName().endsWith("rar")) |
else if (i.getName().toLowerCase().endsWith("rar")) |
{ |
%> |
<img alt="<%=i.getCompleteUrl()%>" src="<%=request.getContextPath()%>/imgs/mime/rar.gif"> |
<% |
} |
else if (i.getName().endsWith("html") || i.getName().endsWith("htm")) |
else if (i.getName().toLowerCase().endsWith("html") || i.getName().endsWith("htm")) |
{ |
%> |
<img alt="<%=i.getCompleteUrl()%>" src="<%=request.getContextPath()%>/imgs/mime/html.gif"> |
<% |
} |
else if (i.getName().endsWith("xls") || i.getName().endsWith("xlsx")) |
else if (i.getName().toLowerCase().endsWith("xls") || i.getName().endsWith("xlsx")) |
{ |
%> |
<img alt="<%=i.getCompleteUrl()%>" src="<%=request.getContextPath()%>/imgs/mime/xls.gif"> |
<% |
} |
else if (i.getName().endsWith("txt")) |
else if (i.getName().toLowerCase().endsWith("txt")) |
{ |
%> |
<img alt="<%=i.getCompleteUrl()%>" src="<%=request.getContextPath()%>/imgs/mime/txt.gif"> |
<% |
} |
else if (i.getName().endsWith("xml")) |
else if (i.getName().toLowerCase().endsWith("xml")) |
{ |
%> |
<img alt="<%=i.getCompleteUrl()%>" src="<%=request.getContextPath()%>/imgs/mime/xml.gif"> |