Commit e29088ce by Tuomas Riihimäki

Merge branch 'reserved-not-locked' into 'master'

Add information to place editor about reserved, but not locked place

See merge request !427
2 parents e9b0113b 71631cc7
...@@ -292,6 +292,10 @@ public class Place extends GenericEntity implements Comparable<Place> { ...@@ -292,6 +292,10 @@ public class Place extends GenericEntity implements Comparable<Place> {
return (u.equals(getCurrentUser()) && getGroup() == null); return (u.equals(getCurrentUser()) && getGroup() == null);
} }
public boolean isReservedButNotLocked(){
return getGroup() == null && getCurrentUser() != null;
}
public void setBuyable(boolean buyable) { public void setBuyable(boolean buyable) {
this.buyable = buyable; this.buyable = buyable;
} }
......
<!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/tools/user" xmlns:f="http://java.sun.com/jsf/core" xmlns:users="http://java.sun.com/jsf/composite/tools/user" xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
> >
<h:body> <h:body>
<ui:composition template="#{sessionHandler.template}"> <ui:composition template="#{sessionHandler.template}">
...@@ -43,27 +45,43 @@ ...@@ -43,27 +45,43 @@
<h:outputLabel value="#{i18n['place.product']}:" /> <h:outputLabel value="#{i18n['place.product']}:" />
<h:outputText value="#{placeView.place.product.name}" /> <h:outputText value="#{placeView.place.product.name}" />
<h:outputLabel value="#{i18n['place.buyable']}" /> <h:outputLabel value="#{i18n['place.buyable']}" />
<h:selectBooleanCheckbox value="#{placeView.place.buyable}"/> <h:selectBooleanCheckbox value="#{placeView.place.buyable}"/>
<h:outputLabel value="#{i18n['place.description']}:" /> <h:outputLabel value="#{i18n['place.description']}:" />
<h:inputTextarea value="#{placeView.place.description}" /> <h:inputTextarea value="#{placeView.place.description}" />
<h:outputText value="#{i18n['place.assocUser']}" />
<p:link value="#{placeView.place.currentUser.wholeName}" outcome="/useradmin/edit" >
<f:param name="userid" value="#{placeView.place.currentUser.user.id}"/>
</p:link>
</h:panelGrid> </h:panelGrid>
<h:commandButton id="commitbtn" action="#{placeView.save()}" value="#{i18n['place.commit']}" /> <p:commandButton ajax="false" id="commitbtn" action="#{placeView.save()}" value="#{i18n['place.commit']}" />
<h:commandButton rendered="#{placeView.place.isTaken() and (empty placeView.place.group)}" <p:commandButton ajax="false" rendered="#{placeView.place.isTaken() and (empty placeView.place.group)}"
action="#{placeView.releasePlace()}" value="#{i18n['place.release']}" action="#{placeView.releasePlace()}" value="#{i18n['place.release']}"
/> />
<h:commandButton rendered="#{placeView.place.isTaken() and (!empty placeView.place.group)}" <p:commandButton ajax="false" rendered="#{placeView.place.isTaken() and (!empty placeView.place.group)}"
action="#{placeView.removePlaceFromGroup()}" value="#{i18n['place.groupremove']}" action="#{placeView.removePlaceFromGroup()}" value="#{i18n['place.groupremove']}"
onclick="return confirm('#{i18n['place.groupremove.confirm']}')" onclick="return confirm('#{i18n['place.groupremove.confirm']}')"
/> />
</h:form> </h:form>
<h2>#{i18n['editplace.placegroup.title']}</h2> <ui:fragment rendered="#{placeView.place.reservedButNotLocked}">
<h2><h:outputText value="#{i18n['place.warning.reservedNotLocked']}"</h2>
<h:form>
<p:commandButton action="#{placeView.lockPlace()}" value="#{i18n['place.lockPlace']}" ajax="false"/>
<p:commandButton action="#{placeView.releasePlace()}" value="#{i18n['place.releasePlace']}" ajax="false"/>
</h:form>
</ui:fragment>
<h2>#{i18n['editplace.placegroup.title']}</h2>
<h:panelGrid columns="2" rendered="#{empty placeView.place.group}"> <h:panelGrid columns="2" rendered="#{empty placeView.place.group}">
<h:form id="usersearchform"> <h:form id="usersearchform">
<h:outputText value="#{i18n['user.searchUser']}" /> <h:outputText value="#{i18n['user.searchUser']}" />
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
package fi.codecrew.moya.web.cdiview.map; package fi.codecrew.moya.web.cdiview.map;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -227,6 +228,17 @@ public class PlaceView extends GenericCDIView { ...@@ -227,6 +228,17 @@ public class PlaceView extends GenericCDIView {
return null; return null;
} }
public String lockPlace(){
place = placebean.find(place.getId());
if(!place.isReservedButNotLocked()){
super.addFaceMessage("place.alreadyLocked");
return null;
}
PlaceGroup pgroup = placebean.buySelectedPlaces(Arrays.asList(place), place.getCurrentUser());
place = pgroup.getPlaces().stream().filter(p -> p.equals(place)).findFirst().get();
return null;
}
public void setSearchuser(String searchuser) { public void setSearchuser(String searchuser) {
this.searchuser = searchuser; this.searchuser = searchuser;
} }
......
...@@ -1945,4 +1945,8 @@ holderize.barcode = Barcode ...@@ -1945,4 +1945,8 @@ holderize.barcode = Barcode
holderize.nextCodeHeader = Next card position holderize.nextCodeHeader = Next card position
holderize.parametersHeader = Folder parameters holderize.parametersHeader = Folder parameters
bill.id_str=Bill id bill.id_str=Bill id
bill.filter_all=All bill.filter_all=All
\ No newline at end of file foodwave.updateList = Update list
place.assocUser = Associated user
place.lockPlace = Lock place
place.releasePlace = Release place
...@@ -1936,4 +1936,8 @@ holderize.column = Sarake ...@@ -1936,4 +1936,8 @@ holderize.column = Sarake
holderize.row = Rivi holderize.row = Rivi
holderize.barcode = Viivakoodi holderize.barcode = Viivakoodi
holderize.nextCodeHeader = Seuraavan kortin paikka holderize.nextCodeHeader = Seuraavan kortin paikka
holderize.parametersHeader = Kansion asetukset holderize.parametersHeader = Kansion asetukset
\ No newline at end of file foodwave.updateList = Pivit lista
place.assocUser = Liitetty kyttj
place.lockPlace = Lukitse paikka
place.releasePlace = Vapauta paikka
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!