Commit 97900ed7 by Antti Tönkyrä

Frontend stuff

1 parent cf7a4105
......@@ -181,6 +181,15 @@ public class NetworkAssociationBean implements NetworkAssociationBeanLocal {
activeAssoc.setStatus(NetworkAssociationStatus.EXPIRED);
}
} else {
// Disassociate any colliding IPs
activeAssocs = networkAssociationFacade.findActiveAssociationsByIP(
eventBean.getCurrentEvent(), ip);
for(NetworkAssociation activeAssoc : activeAssocs) {
activeAssoc.setModifyTime(Calendar.getInstance());
activeAssoc.setStatus(NetworkAssociationStatus.EXPIRED);
}
// In here we disassociate old associations from this place unless the user has many
// associations per place
if(!userPerms.contains(NetworkAssociationPermission.CAN_ASSOCIATE_MANY_PER_PLACE)) {
......
......@@ -68,6 +68,10 @@ public class NetworkAssociation extends GenericEntity {
public String getIP() {
return ip;
}
public String getIp() {
return ip;
}
public void setIP(String ip) {
this.ip = ip;
......@@ -76,6 +80,10 @@ public class NetworkAssociation extends GenericEntity {
public String getMAC() {
return mac;
}
public String getMac() {
return mac;
}
public void setMAC(String mac) {
this.mac = mac;
......
......@@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html" xmlns:products="http://java.sun.com/jsf/composite/cditools/products"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui"
>
<h:body>
<ui:composition template="#{sessionHandler.template}">
......@@ -11,7 +11,52 @@
<f:event type="preRenderView" listener="#{networkAssociationView.initView}" />
</f:metadata>
<ui:define name="content">
LRN
<h:form>
<p:messages autoUpdate="true" redisplay="false"></p:messages>
<h1>#{i18n['networkassociation.current_associations']}</h1>
<p:dataTable var="activeAssoc" value="#{networkAssociationView.activeAssociations}">
<p:column headerText="#{i18n['networkassociation.create_time']}">
<h:outputText value="#{activeAssoc.createTime.time}">
<f:convertDateTime pattern="#{sessionHandler.datetimeFormat}" timeZone="#{sessionHandler.timezone}" />
</h:outputText>
</p:column>
<p:column headerText="#{i18n['networkassociation.modify_time']}">
<h:outputText value="#{activeAssoc.modifyTime.time}">
<f:convertDateTime pattern="#{sessionHandler.datetimeFormat}" timeZone="#{sessionHandler.timezone}" />
</h:outputText>
</p:column>
<p:column headerText="#{i18n['networkassociation.create_time']}">
<h:outputText value="#{activeAssoc.eventUser.user.nick}" />
</p:column>
<p:column headerText="#{i18n['networkassociation.ip_address']}">
<h:outputText value="#{activeAssoc.ip}" />
</p:column>
<p:column headerText="#{i18n['networkassociation.mac_address']}">
<h:outputText value="#{activeAssoc.mac}" />
</p:column>
<p:column headerText="#{i18n['networkassociation.place']}">
<h:outputText value="#{activeAssoc.place.name}" />
</p:column>
<p:column headerText="#{i18n['networkassociation.action']}">
PRESSME
</p:column>
</p:dataTable>
<h:panelGrid columns="3">
<h:outputText value="#{i18n['networkassociation.ip_address']}" />
<h:outputText value="#{i18n['networkassociation.mac_address']}" />
<h:outputText value="" />
<p:inputText style="width: 100%;" validator="#{networkAssociationView.validateIP}"/>
<p:inputText style="width: 100%;" validator="#{networkAssociationView.validateMAC}"/>
<p:commandButton value="#{i18n['networkassociation.create_association']}" action="#{networkAssociationView.createAssociation}"/>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</h:body>
......
package fi.codecrew.moya.web.cdiview.networkassociation;
import java.net.InetAddress;
import java.util.List;
import java.util.regex.Pattern;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
import javax.inject.Named;
import javax.mail.internet.InternetAddress;
import fi.codecrew.moya.beans.NetworkAssociationBeanLocal;
import fi.codecrew.moya.model.NetworkAssociation;
import fi.codecrew.moya.utilities.jsf.MessageHelper;
@Named
public class NetworkAssociationView {
private String ipAddress;
private String macAddress;
@EJB
private NetworkAssociationBeanLocal networkAssociationBean;
public void initView() {
}
public String createAssociation() {
return "";
}
public void validateIP(FacesContext context, UIComponent ui, Object object) throws Exception {
String addr = object.toString().trim();
try {
InetAddress.getByName(addr);
} catch(Exception e) {
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "networkassociation.invalid_ip_address", ""));
}
}
public void validateMAC(FacesContext context, UIComponent ui, Object object) {
String addr = object.toString().trim();
Pattern p = Pattern.compile("(?:[0-9a-fA-F]{1,2}:){5}[0-9a-fA-F]{1,2}");
if(!p.matcher(addr).find()) {
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "networkassociation.invalid_mac_address", ""));
}
}
public List<NetworkAssociation> getActiveAssociations() {
return networkAssociationBean.getActiveAssociations(false);
}
public String getIpAddress() {
return ipAddress;
}
public void setIpAddress(String ipAddress) {
this.ipAddress = ipAddress;
}
public String getMacAddress() {
return macAddress;
}
public void setMacAddress(String macAddress) {
this.macAddress = macAddress;
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!