Commit f0c1ead7 by Tuukka Kivilahti

Merge branch 'devel' of codecrew.fi:tkfftk/moya into devel

2 parents 5952697b b73eabd9
Showing with 123 additions and 79 deletions
...@@ -463,3 +463,10 @@ public class Bill extends GenericEntity { ...@@ -463,3 +463,10 @@ public class Bill extends GenericEntity {
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
<artifactId>commons-fileupload</artifactId> <artifactId>commons-fileupload</artifactId>
<version>1.3</version> <version>1.3</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.sshd</groupId> <groupId>org.apache.sshd</groupId>
<artifactId>sshd-core</artifactId> <artifactId>sshd-core</artifactId>
...@@ -85,7 +85,15 @@ ...@@ -85,7 +85,15 @@
<version>1.5.9</version> <version>1.5.9</version>
</dependency> </dependency>
</dependencies> </dependencies>
<repositories>
<repository>
<id>jvnet-nexus-releases</id>
<name>jvnet-nexus-releases</name>
<url>https://maven.java.net/content/repositories/releases/</url>
</repository>
</repositories>
</project> </project>
\ No newline at end of file
...@@ -74,11 +74,11 @@ public class JpegReader { ...@@ -74,11 +74,11 @@ public class JpegReader {
List<Segment> segments = parser.readSegments(byteSource, new int[] { 0xffee }, true); List<Segment> segments = parser.readSegments(byteSource, new int[] { 0xffee }, true);
if (segments != null && segments.size() >= 1) { if (segments != null && segments.size() >= 1) {
UnknownSegment app14Segment = (UnknownSegment) segments.get(0); UnknownSegment app14Segment = (UnknownSegment) segments.get(0);
byte[] data = app14Segment.bytes; byte[] data = app14Segment.getSegmentData();
if (data.length >= 12 && data[0] == 'A' && data[1] == 'd' && data[2] == 'o' && data[3] == 'b' && data[4] == 'e') if (data.length >= 12 && data[0] == 'A' && data[1] == 'd' && data[2] == 'o' && data[3] == 'b' && data[4] == 'e')
{ {
hasAdobeMarker = true; hasAdobeMarker = true;
int transform = app14Segment.bytes[11] & 0xff; int transform = data[11] & 0xff;
if (transform == 2) if (transform == 2)
colorType = COLOR_TYPE_YCCK; colorType = COLOR_TYPE_YCCK;
} }
......
...@@ -22,5 +22,6 @@ ...@@ -22,5 +22,6 @@
<attribute name="owner.project.facets" value="jst.web"/> <attribute name="owner.project.facets" value="jst.web"/>
</attributes> </attributes>
</classpathentry> </classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="output" path="target/classes"/> <classpathentry kind="output" path="target/classes"/>
</classpath> </classpath>
...@@ -15,7 +15,9 @@ ...@@ -15,7 +15,9 @@
<h:form> <h:form>
<p:poll interval="1" listener="#{incomingView.polledRead}" onerror="location.reload();" /> <p:poll interval="1" listener="#{incomingView.polledRead}" onerror="location.reload();" />
</h:form> </h:form>
<h1>#{i18n['incomingflow.userdetails']} (RFID-lukija: #{incomingView.readerId})</h1> <h:form>
<h1>#{i18n['incomingflow.userdetails']} (RFID-lukija: #{incomingView.readerId})</h1><h:commandButton action="#{incomingView.changeReader}" value="#{i18n['incomingflow.changereader']}" />
</h:form>
<h:panelGrid id="cropper" columns="3"> <h:panelGrid id="cropper" columns="3">
<h:panelGroup> <h:panelGroup>
<user:edit id="usereditor" commitaction="#{incomingView.saveUser()}" commitvalue="#{i18n['user.save']}" camAlwaysOn="true" /> <user:edit id="usereditor" commitaction="#{incomingView.saveUser()}" commitvalue="#{i18n['user.save']}" camAlwaysOn="true" />
...@@ -41,9 +43,9 @@ ...@@ -41,9 +43,9 @@
</h:panelGrid> </h:panelGrid>
<h:outputText rendered="#{empty incomingView.groupMemberships}" value="#{i18n['placegroupview.noMemberships']}" /> <h:outputText rendered="#{empty incomingView.groupMemberships}" value="#{i18n['placegroupview.noMemberships']}" />
<h:form rendered="#{!empty incomingViewgroupMemberships}" id="placelistform"> <h:form rendered="#{!empty incomingView.groupMemberships}" id="placelistform">
<p:dataTable value="#{incomingView.groupMemberships}" var="member"> <p:dataTable value="#{incomingView.groupMemberships}" var="member" rowStyleClass="#{member.enteredEvent != null ? 'success':''}">
<p:column> <p:column>
<f:facet name="header"> <f:facet name="header">
......
<!DOCTYPE html <!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "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" <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:c="http://java.sun.com/jsp/jstl/core"
xmlns:h="http://java.sun.com/jsf/html" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:users="http://java.sun.com/jsf/composite/cditools/user" xmlns:f="http://java.sun.com/jsf/core">
xmlns:users="http://java.sun.com/jsf/composite/cditools/user" xmlns:f="http://java.sun.com/jsf/core"
>
<h:body> <h:body>
<ui:composition template="#{sessionHandler.template}"> <ui:composition template="#{sessionHandler.template}">
<ui:param name="thispage" value="page.place.mygroups" /> <ui:param name="thispage" value="page.place.mygroups" />
...@@ -12,7 +10,7 @@ ...@@ -12,7 +10,7 @@
<f:viewParam name="userid" value="#{userView.userid}" /> <f:viewParam name="userid" value="#{userView.userid}" />
<f:event type="preRenderView" listener="#{userView.initView}" /> <f:event type="preRenderView" listener="#{userView.initView}" />
</f:metadata> </f:metadata>
<ui:define name="title"> <ui:define name="title">
<h1>#{i18n['placegroupview.header']}</h1> <h1>#{i18n['placegroupview.header']}</h1>
<!-- <users:usertabs tabId="groups" /> --> <!-- <users:usertabs tabId="groups" /> -->
...@@ -20,7 +18,7 @@ ...@@ -20,7 +18,7 @@
<ui:define name="edittab"> <ui:define name="edittab">
<users:usertabs tabId="groups" /> <users:usertabs tabId="groups" />
</ui:define> </ui:define>
<ui:define name="content"> <ui:define name="content">
<h:outputText rendered="#{empty placeGroupView.groupMemberships}" value="#{i18n['placegroupview.noMemberships']}" /> <h:outputText rendered="#{empty placeGroupView.groupMemberships}" value="#{i18n['placegroupview.noMemberships']}" />
<h:form rendered="#{!empty placeGroupView.groupMemberships}" id="placelistform"> <h:form rendered="#{!empty placeGroupView.groupMemberships}" id="placelistform">
...@@ -37,43 +35,38 @@ ...@@ -37,43 +35,38 @@
<h:outputText value="#{i18n['placegroupview.token']}" /> <h:outputText value="#{i18n['placegroupview.token']}" />
</f:facet> </f:facet>
<h:outputText rendered="#{empty member.user}" value="#{member.inviteToken}" /> <h:outputText rendered="#{empty member.user}" value="#{member.inviteToken}" />
<h:outputText rendered="#{!empty member.user}" <h:outputText rendered="#{!empty member.user}" value="#{member.user.firstnames} #{member.user.lastname} (#{member.user.nick})" />
value="#{member.user.firstnames} #{member.user.lastname} (#{member.user.nick})"
/>
</h:column> </h:column>
<h:column> <h:column>
<f:facet name="header"> <f:facet name="header">
<h:outputText value="#{i18n['placegroupview.groupCreator']}" /> <h:outputText value="#{i18n['placegroupview.groupCreator']}" />
</f:facet> </f:facet>
<h:outputText <h:outputText value="#{member.placeGroup.creator.firstnames} #{member.placeGroup.creator.lastname} (#{member.placeGroup.creator.nick})" />
value="#{member.placeGroup.creator.firstnames} #{member.placeGroup.creator.lastname} (#{member.placeGroup.creator.nick})"
/>
</h:column> </h:column>
<h:column> <h:column>
<h:commandButton rendered="#{placeGroupView.canModifyCurrent and placeGroupView.currentMemberUserNotNull}" <h:commandButton rendered="#{placeGroupView.canModifyCurrent and placeGroupView.currentMemberUserNotNull}" action="#{placeGroupView.releasePlace()}"
action="#{placeGroupView.releasePlace()}" value="#{i18n['placegroupview.releasePlace']}" value="#{i18n['placegroupview.releasePlace']}" />
/>
</h:column> </h:column>
</h:dataTable> </h:dataTable>
</h:form> </h:form>
<p> <p>
<input type="button" onclick="location.replace('#{request.contextPath}/PlaceGroupPdf');" value="#{i18n['placegroup.printPdf']}" /> <input type="button" onclick="location.replace('#{request.contextPath}/PlaceGroupPdf?eventuserId=#{placeGroupView.user.id}');" value="#{i18n['placegroup.printPdf']}" />
</p> </p>
<h2>#{i18n['placetoken.pageHeader']}</h2> <h2>#{i18n['placetoken.pageHeader']}</h2>
<p>#{i18n['placetoken.topText']}</p> <p>#{i18n['placetoken.topText']}</p>
<h:form id="placeTokenForm"> <h:form id="placeTokenForm">
<h:outputLabel value="#{i18n['placetoken.token']}:" /> <h:outputLabel value="#{i18n['placetoken.token']}:" />
<h:inputText value="#{tokenView.token}" /> <h:inputText value="#{tokenView.token}" />
<h:commandButton id="commitbtn" action="#{tokenView.saveToken()}" value="#{i18n['placetoken.commit']}" /> <h:commandButton id="commitbtn" action="#{tokenView.saveToken()}" value="#{i18n['placetoken.commit']}" />
</h:form> </h:form>
</ui:define> </ui:define>
</ui:composition> </ui:composition>
......
...@@ -285,4 +285,10 @@ label { ...@@ -285,4 +285,10 @@ label {
#header_right { #header_right {
text-align: right; text-align: right;
}
.success {
color: #006600;
} }
\ No newline at end of file
...@@ -111,4 +111,8 @@ ...@@ -111,4 +111,8 @@
.paid { .paid {
color: #006600; color: #006600;
}
.success {
color: #006600;
} }
\ No newline at end of file
...@@ -157,7 +157,7 @@ global.save = Save ...@@ -157,7 +157,7 @@ global.save = Save
httpsession.creationTime = Created httpsession.creationTime = Created
incomingflow.giveplace = Merkitse annetuksi incomingflow.giveplace = Merkitse annetuksi
lanEventPrivateProperty.defaultValue = Default value lanEventPrivateProperty.defaultValue = Default value
lanEventPrivateProperty.editProperty = Edit property lanEventPrivateProperty.editProperty = Edit property
......
...@@ -408,12 +408,13 @@ imagefile.file = Imagefile ...@@ -408,12 +408,13 @@ imagefile.file = Imagefile
importuser.file = File importuser.file = File
importuser.template = Template importuser.template = Template
incomingflow.barcode = Barcode incomingflow.barcode = Barcode
incomingflow.giveplace = Mark given incomingflow.changereader = Change Reader
incomingflow.multisearch = Multisearch incomingflow.giveplace = Mark given
incomingflow.search = Search incomingflow.multisearch = Multisearch
incomingflow.ungiveplace = Mark not given incomingflow.search = Search
incomingflow.userdetails = User details incomingflow.ungiveplace = Mark not given
incomingflow.userdetails = User details
infoview.back = Back infoview.back = Back
infoview.computerplace = Computer places infoview.computerplace = Computer places
...@@ -750,7 +751,7 @@ product.shopInstant = Create automatic cashpayment ...@@ -750,7 +751,7 @@ product.shopInstant = Create automatic cashpayment
product.sort = Sort nr product.sort = Sort nr
product.totalPrice = Total product.totalPrice = Total
product.unitName = Unit name product.unitName = Unit name
product.vat = VAT-% product.vat = VAT-% (0.0 - 0.99)
productFlag.CREATE_NEW_PLACE_WHEN_BOUGHT = Create new place bought productFlag.CREATE_NEW_PLACE_WHEN_BOUGHT = Create new place bought
productFlag.PREPAID_CREDIT = Prepaid credit productFlag.PREPAID_CREDIT = Prepaid credit
......
...@@ -417,12 +417,13 @@ imagefile.file = Kuvatiedosto ...@@ -417,12 +417,13 @@ imagefile.file = Kuvatiedosto
importuser.file = Tiedosto importuser.file = Tiedosto
importuser.template = Malli importuser.template = Malli
incomingflow.barcode = Viivakoodi incomingflow.barcode = Viivakoodi
incomingflow.giveplace = Merkitse annetuksi incomingflow.changereader = Vaihda lukijaa
incomingflow.multisearch = Monihaku incomingflow.giveplace = Merkitse annetuksi
incomingflow.search = Etsi incomingflow.multisearch = Monihaku
incomingflow.ungiveplace = Ei olekkaan annettu incomingflow.search = Etsi
incomingflow.userdetails = K\u00E4ytt\u00E4j\u00E4n tiedot incomingflow.ungiveplace = Ei olekkaan annettu
incomingflow.userdetails = K\u00E4ytt\u00E4j\u00E4n tiedot
index.title = Etusivu index.title = Etusivu
...@@ -734,7 +735,7 @@ product.shopInstant = Luo k\u00E4teismaksu tuotteille ...@@ -734,7 +735,7 @@ product.shopInstant = Luo k\u00E4teismaksu tuotteille
product.sort = J\u00E4rjestys luku product.sort = J\u00E4rjestys luku
product.totalPrice = Summa product.totalPrice = Summa
product.unitName = Tuoteyksikk\u00F6 product.unitName = Tuoteyksikk\u00F6
product.vat = ALV-% product.vat = ALV-% (0.0 - 0.99)
productFlag.CREATE_NEW_PLACE_WHEN_BOUGHT = Luo uusi paikka ostettaessa productFlag.CREATE_NEW_PLACE_WHEN_BOUGHT = Luo uusi paikka ostettaessa
productFlag.PREPAID_CREDIT = Prepaid credit productFlag.PREPAID_CREDIT = Prepaid credit
......
...@@ -15,6 +15,9 @@ import org.slf4j.LoggerFactory; ...@@ -15,6 +15,9 @@ import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.PermissionBeanLocal; import fi.codecrew.moya.beans.PermissionBeanLocal;
import fi.codecrew.moya.beans.PlaceGroupBeanLocal; import fi.codecrew.moya.beans.PlaceGroupBeanLocal;
import fi.codecrew.moya.beans.UserBeanLocal;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.model.EventUser;
/** /**
* Servlet implementation class PlaceGroupPdf * Servlet implementation class PlaceGroupPdf
...@@ -28,6 +31,8 @@ public class PlaceGroupPdf extends HttpServlet { ...@@ -28,6 +31,8 @@ public class PlaceGroupPdf extends HttpServlet {
@EJB @EJB
private transient PermissionBeanLocal permbean; private transient PermissionBeanLocal permbean;
@EJB
private transient UserBeanLocal userbean;
private static final Logger logger = LoggerFactory.getLogger(PlaceGroupPdf.class); private static final Logger logger = LoggerFactory.getLogger(PlaceGroupPdf.class);
/** /**
...@@ -45,12 +50,34 @@ public class PlaceGroupPdf extends HttpServlet { ...@@ -45,12 +50,34 @@ public class PlaceGroupPdf extends HttpServlet {
private void output(HttpServletRequest request, HttpServletResponse response) { private void output(HttpServletRequest request, HttpServletResponse response) {
try { try {
String uid = request.getParameter("eventuserId");
if (!permbean.isLoggedIn()) {
response.sendError(HttpServletResponse.SC_FORBIDDEN);
return;
}
EventUser user = permbean.getCurrentUser();
if (uid != null)
{
Integer uidInt = new Integer(uid);
if (!user.getId().equals(uidInt))
{
if (!permbean.hasPermission(UserPermission.VIEW_ALL))
{
response.sendError(HttpServletResponse.SC_FORBIDDEN);
return;
}
user = userbean.findByEventUserId(uidInt);
}
}
response.setContentType("application/pdf"); response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "filename=Reservations.pdf"); response.setHeader("Content-Disposition", "filename=Reservations.pdf");
ServletOutputStream ostream = response.getOutputStream(); ServletOutputStream ostream = response.getOutputStream();
pgbean.getGroupMembershipPdf(permbean.getCurrentUser(), ostream); pgbean.getGroupMembershipPdf(user, ostream);
// ByteArrayOutputStream billstream = new ByteArrayOutputStream(); // ByteArrayOutputStream billstream = new ByteArrayOutputStream();
// billentity.getPdfBillStream(bill, billstream); // billentity.getPdfBillStream(bill, billstream);
......
...@@ -251,18 +251,18 @@ public class PlaceMap extends HttpServlet { ...@@ -251,18 +251,18 @@ public class PlaceMap extends HttpServlet {
} }
if (p.isReservedFor(user)) { if (p.isReservedFor(user)) {
logger.debug("Setting place selected {}", p); // logger.debug("Setting place selected {}", p);
color = SELECTED_COLOR; color = SELECTED_COLOR;
} else if (user.equals(p.getCurrentUser()) } else if (user.equals(p.getCurrentUser())
|| (p.getGroup() != null && user.equals(p.getGroup().getCreator())) || (p.getGroup() != null && user.equals(p.getGroup().getCreator()))
|| (p.getPlaceReserver() != null && user.equals(p || (p.getPlaceReserver() != null && user.equals(p
.getPlaceReserver().getUser()))) { .getPlaceReserver().getUser()))) {
color = OWNED_COLOR; color = OWNED_COLOR;
logger.debug("Setting place owned {}", p); // logger.debug("Setting place owned {}", p);
} else if (p.isTaken()) { } else if (p.isTaken()) {
color = RESERVED_COLOR; color = RESERVED_COLOR;
logger.debug("Setting place Reserved {}", p); // logger.debug("Setting place Reserved {}", p);
} else if (p.getProduct().getColor() != null && !p.getProduct().getColor().isEmpty()) { } else if (p.getProduct().getColor() != null && !p.getProduct().getColor().isEmpty()) {
...@@ -281,7 +281,7 @@ public class PlaceMap extends HttpServlet { ...@@ -281,7 +281,7 @@ public class PlaceMap extends HttpServlet {
.getHeight())); .getHeight()));
if (color != null) { if (color != null) {
logger.debug("Setting fill color: {} for p", color, p); //logger.debug("Setting fill color: {} for p", color, p);
g.setColor(color); g.setColor(color);
g.fill(new Rectangle(p.getMapX() + BORDER_WIDTH, p.getMapY() g.fill(new Rectangle(p.getMapX() + BORDER_WIDTH, p.getMapY()
+ BORDER_WIDTH, p.getWidth() - BORDER_WIDTH, p.getHeight() + BORDER_WIDTH, p.getWidth() - BORDER_WIDTH, p.getHeight()
......
...@@ -233,7 +233,7 @@ public class IncomingView extends GenericCDIView { ...@@ -233,7 +233,7 @@ public class IncomingView extends GenericCDIView {
public ListDataModel<GroupMembership> getGroupMemberships() { public ListDataModel<GroupMembership> getGroupMemberships() {
memberlist = new ListDataModel<GroupMembership>( memberlist = new ListDataModel<GroupMembership>(
placegroupBean.getMembershipsAndCreations(user)); placegroupBean.getMembershipsAndCreations(userview.getUser()));
return memberlist; return memberlist;
} }
...@@ -257,6 +257,11 @@ public class IncomingView extends GenericCDIView { ...@@ -257,6 +257,11 @@ public class IncomingView extends GenericCDIView {
return null; return null;
} }
public void changeReader() {
namecontainer.setReaderId(null);
super.navihandler.redirectNavigation("index.jsf");
}
......
<resources>
<!--
Base application theme for API 11+. This theme completely replaces
AppBaseTheme from res/values/styles.xml on API 11+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!-- API 11 theme customizations can go here. -->
</style>
</resources>
<resources>
<!--
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- API 14 theme customizations can go here. -->
</style>
</resources>
...@@ -10,6 +10,6 @@ ...@@ -10,6 +10,6 @@
<string name="seenInMoya">(as seen in Moya)</string> <string name="seenInMoya">(as seen in Moya)</string>
<string name="shared_pref_readername">readername</string> <string name="shared_pref_readername">readername</string>
<string name="change">Change</string> <string name="change">Change</string>
<string name="success">Success</string> <string name="success">Success!</string>
</resources> </resources>
...@@ -5,12 +5,13 @@ import org.apache.http.HttpResponse; ...@@ -5,12 +5,13 @@ import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient; import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.client.DefaultHttpClient;
import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.os.StrictMode;
import android.view.Menu; import android.view.Menu;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
...@@ -18,10 +19,16 @@ import android.widget.EditText; ...@@ -18,10 +19,16 @@ import android.widget.EditText;
import android.widget.TextView; import android.widget.TextView;
public class MainActivity extends Activity { public class MainActivity extends Activity {
private static String URL = "http://demo.codecrew.fi/MoyaWeb/shop/rfidListener.jsf"; private static String URL = "http://lantrek.moya.fi/MoyaWeb/shop/rfidListener.jsf";
@SuppressLint("NewApi")
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); setContentView(R.layout.activity_main);
...@@ -116,11 +123,13 @@ public class MainActivity extends Activity { ...@@ -116,11 +123,13 @@ public class MainActivity extends Activity {
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
throw new RuntimeException(e);
} }
return false; return false;
} }
} }
......
File mode changed
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!