Skip to content

Commit

Permalink
Merge branch 'master' of github.com:mjoppich/bioGUI
Browse files Browse the repository at this point in the history
  • Loading branch information
mjoppich committed Apr 17, 2018
2 parents 9c7b156 + dbb9386 commit 7bb37cc
Show file tree
Hide file tree
Showing 9 changed files with 381 additions and 12 deletions.
6 changes: 6 additions & 0 deletions java_server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,12 @@
<artifactId>commons-io</artifactId>
<version>${commons-io}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>LATEST</version>
</dependency>

<dependency>
<groupId>mysql</groupId>
Expand Down
30 changes: 30 additions & 0 deletions java_server/src/main/java/bioGUI/Template.java
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,36 @@ public String toString()

}

public String toMailText() throws RuntimeException {

String sDispName = this.getDisplayname();
if (sDispName == null)
{
throw new RuntimeException("no display name");
}

String sOmicLink = this.getOmictoolslink();
if (sOmicLink == null)
{
sOmicLink = "";
}

StringBuilder oSB = new StringBuilder();

oSB.append( "New bioGUI Template Request" + "\n\n" );
oSB.append( "" + "\n" );
oSB.append( "Submitter Name: " + this.user.getName() + "\n" );
oSB.append( "Submitter eMail: " + this.user.getEmail() + "\n" );
oSB.append( "" + "\n" );
oSB.append( "Requested Template Name: " + sDispName + "\n" );
oSB.append( "Omictools Link: " + sOmicLink + "\n" );
oSB.append( "Template Type: " + this.getTemplateTypeDescr() + "\n" );
oSB.append( "" + "\n" );
oSB.append( "This is an automatically generated eMail from the bioGUI repository." + "\n" );

return oSB.toString();
}

public String getFullTemplate()
{
return template;
Expand Down
64 changes: 59 additions & 5 deletions java_server/src/main/java/bioGUI/TemplateManager.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
package bioGUI;

import jdk.nashorn.internal.objects.Global;

import org.zkoss.zul.Messagebox;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.xml.transform.Result;
import java.sql.*;
import java.util.ArrayList;
import java.util.Properties;
import java.util.Vector;

/**
Expand Down Expand Up @@ -85,8 +93,14 @@ private ArrayList<Template> processTemplates(ResultSet resultSet, UserManager oU
String sTemplate = resultSet.getString("template");
Timestamp iTimestamp = resultSet.getTimestamp("timestamp");
boolean bAnonym = resultSet.getBoolean("anonym");
boolean bVisible = resultSet.getBoolean("visible");
String sOmicTools = resultSet.getString("omictools");

if (!bVisible)
{
continue;
}

long iSecsTo0 = iTimestamp.getTime() / 1000;

Template oNewTemplate = new Template(iTemplateID, iUserID, sDisplayname, iType, sTemplate, (int) iSecsTo0 , bAnonym, sOmicTools);
Expand Down Expand Up @@ -148,6 +162,8 @@ int addTemplate(Template oTemp)

this.update();

this.notifyEmailNewTemplate(oTemp);

return iAdded;
}
else {
Expand All @@ -162,6 +178,35 @@ int addTemplate(Template oTemp)

}

private void notifyEmailNewTemplate(Template oTemp) {

try {

String to = "joppich@bio.ifi.lmu.de";
String from = to;

String host = "localhost";
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);

// Get the default Session object.
Session session = Session.getDefaultInstance(properties);

// Create a default MimeMessage object.
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

message.setSubject("New bioGUI template added!");
message.setText( oTemp.toMailText() );
Transport.send(message);

} catch (Exception ex) {
ex.printStackTrace();
}

}

public Template getTemplate(int iTemplateID)
{

Expand Down Expand Up @@ -199,13 +244,11 @@ public ArrayList<Template> getTemplates(String sFilter)
}

if (!bInsert) {
if (oTemp.getTemplate().contains(sFilter))
bInsert = true;

if (oTemp.getAuthor().contains(sFilter))
if (oTemp.getAuthor().toUpperCase().contains(sFilter.toUpperCase()))
bInsert = true;

if (oTemp.getDisplayname().contains(sFilter))
if (oTemp.getDisplayname().toUpperCase().contains(sFilter.toUpperCase()))
bInsert = true;

}
Expand All @@ -220,4 +263,15 @@ public ArrayList<Template> getTemplates(String sFilter)

}

public static void main(String args [])
{
TemplateManager oTM = new TemplateManager();
oTM.update();

for (Template oTemp : oTM.getTemplates())
{
System.out.println(oTemp);
}

}
}
132 changes: 132 additions & 0 deletions java_server/src/main/java/bioGUI/TemplateRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
package bioGUI;

import java.lang.reflect.Array;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;

/**
* Created by joppich on 10/4/16.
*/
public class TemplateRequest {

private int type, timestamp;
private boolean anonym;
private String displayname, typeStr, omictoolslink;

public void setOmictoolslink(String omictoolslink) {
this.omictoolslink = omictoolslink;
}
public String getOmictoolslink() {
return this.omictoolslink;
}

public String getDisplayname() {
return displayname;
}

public void setDisplayname(String displayname) {
this.displayname = displayname;
}

public int getTimestamp() {
return timestamp;
}
public void setTimestamp(int timestamp) {
this.timestamp = timestamp;
}

public String getTypeStr() {
return "" + this.type;
}

public void setType(int type) {
this.type = type;

this.typeStr = "" + type;
}

public void setTypeStr(String type) {

this.setType( Integer.parseInt(type) );
}

public String getTemplateTypeDescr()
{
switch( type )
{

case 0: return "Template";
case 1: return "Install Template";

default:
return null;
}
}


private String template;

private User user = null;

public User getUser()
{
return user;
}

public void setUser(User oUser)
{
this.user = oUser;
}

public TemplateRequest()
{
this.displayname = "";
this.template = "";
this.user = new User();
}

public TemplateRequest(String sDisplayname, int iType, String sTemplate, int iTimestamp, boolean bAnonym, String sOmicTools) {

this.displayname = sDisplayname;

this.setType(iType);
this.user = new User();
this.template = sTemplate;
this.timestamp = iTimestamp;
this.anonym = bAnonym;
this.omictoolslink = sOmicTools;

}

public String toMailText() throws RuntimeException {

String sDispName = this.getDisplayname();
if (sDispName == null)
{
throw new RuntimeException("no display name");
}

String sOmicLink = this.getOmictoolslink();
if (sOmicLink == null)
{
sOmicLink = "";
}

StringBuilder oSB = new StringBuilder();

oSB.append( "New bioGUI Template Request" + "\n\n" );
oSB.append( "" + "\n" );
oSB.append( "Submitter Name: " + this.user.getName() + "\n" );
oSB.append( "Submitter eMail: " + this.user.getEmail() + "\n" );
oSB.append( "" + "\n" );
oSB.append( "Requested Template Name: " + sDispName + "\n" );
oSB.append( "Omictools Link: " + sOmicLink + "\n" );
oSB.append( "Template Type: " + this.getTemplateTypeDescr() + "\n" );
oSB.append( "" + "\n" );
oSB.append( "This is an automatically generated eMail from the bioGUI repository." + "\n" );

return oSB.toString();
}
}
98 changes: 98 additions & 0 deletions java_server/src/main/java/bioGUI/TemplateRequestManager.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
package bioGUI;

import org.zkoss.bind.annotation.*;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.CheckEvent;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.select.Selectors;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zk.ui.select.annotation.WireVariable;
import org.zkoss.zul.*;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;

import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class TemplateRequestManager {


private TemplateRequest templatecreation = new TemplateRequest();

@Init
public void init() {

}

public TemplateRequest getTemplatecreation() {
return templatecreation;
}

public void setTemplatecreation(TemplateRequest templatecreation) {
this.templatecreation = templatecreation;
}

@Command
@NotifyChange({"templatecreation"})
public void processRequest()
{
int iSecsSince0 = (int) (System.currentTimeMillis() / 1000L);
templatecreation.setTimestamp(iSecsSince0);

String to = "joppich@bio.ifi.lmu.de";
String from = templatecreation.getUser().getEmail();

if ((from == null) || (from.length() == 0))
{
Messagebox.show("You must submit your email address.");
return;
}

if (templatecreation.getDisplayname() == null)
{
Messagebox.show("You must enter a Template Name.");
return;
}

String sTempName = templatecreation.getDisplayname();

String host = "localhost";
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);

// Get the default Session object.
Session session = Session.getDefaultInstance(properties);
try {
// Create a default MimeMessage object.
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.addRecipient(Message.RecipientType.CC, new InternetAddress(from));

message.setSubject("New bioGUI template request!");
message.setText( templatecreation.toMailText() );


Transport.send(message);

templatecreation = new TemplateRequest();

} catch (MessagingException mex) {
mex.printStackTrace();

Messagebox.show("Error Sending Request");
}
Messagebox.show("Template request for " + sTempName + " sent!");

}

@AfterCompose
public void afterCompose(@ContextParam(ContextType.VIEW) Component view){
Selectors.wireComponents(view, this, false);
}

}

0 comments on commit 7bb37cc

Please sign in to comment.