Commit 25f43654 by Tuukka Kivilahti

Merge branch 'cachemap' into 'master'

Change map rest to cacheable version

Create allplaces rest function to fetch places without any user reference, so the data can be cached.

See merge request !329
2 parents 356d26bf a9674789
......@@ -27,6 +27,12 @@
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.primefaces.extensions</groupId>
<artifactId>primefaces-extensions</artifactId>
<version>${primefaces.extensions}</version>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>2.1</version>
......@@ -72,7 +78,12 @@
<dependency>
<groupId>fi.iudex</groupId>
<artifactId>utils-standalone</artifactId>
<version>1.0.13</version>
<version>1.0.22</version>
</dependency>
<dependency>
<groupId>org.primefaces.extensions</groupId>
<artifactId>resources-ckeditor</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>net.sf.barcode4j</groupId>
......
......@@ -110,7 +110,7 @@
if (queueReserving) {
$.getJSON("#{request.contextPath}/rest/placemap/v1/queue/#{ajaxMapView.map.id}/#{ajaxMapView.eventuser.id}")
.done(function (data) {
updateQueue(data);
updateQueue(data);
}).fail(function () {
location.reload();
});
......@@ -125,7 +125,7 @@
}
if (data.value == 0) {
updateWholePage();
updateWholePage();
} else {
$("#queuepos").text(data.value);
var d = new Date();
......@@ -150,8 +150,9 @@
element: document.getElementById("seatmap"),
moyaurl: "#{request.contextPath}",
map_id: #{ajaxMapView.map.id},
placeurl : "/rest/placemap/v1/#{ajaxMapView.map.id}/allplaces",
});
px.toggleaction = function(d){
px.toggle_place(d);
updateSlottable();
......
......@@ -59,6 +59,8 @@
element : document.getElementById("seatmap"),
moyaurl : "#{request.contextPath}",
map_id : #{ajaxMapView.map.id},
placeurl : "/rest/placemap/v1/#{ajaxMapView.map.id}/allplaces",
});
px.toggleaction = #{ajaxMapView.queueEnabled?'undefined':'px.toggle_place'};
......
......@@ -56,6 +56,7 @@ function placemap(opts)
clicked_place: undefined,
locale: opts.locale || 'fi',
toggleaction: opts.toggleaction,
placeurl: opts.placeurl,
};
if (px.locale == "und") px.locale == "fi";
......@@ -381,7 +382,11 @@ function placemap(opts)
}
px.update = function() {
var url = px.moyaurl + "/rest/placemap/v1/" + px.map_id + "/places";
var url = px.moyaurl + "/rest/placemap/v1/" + px.map_id + "/places";
if(px.placeurl){
url = px.moyaurl + px.placeurl;
}
if(opts.hilightUser) {
url = px.moyaurl + "/rest/placemap/v1/" + px.map_id + "/hilightedPlaces/"+opts.hilightUser;
......
......@@ -33,13 +33,9 @@
<dependency>
<groupId>org.primefaces.extensions</groupId>
<artifactId>primefaces-extensions</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>org.primefaces.extensions</groupId>
<artifactId>resources-ckeditor</artifactId>
<version>4.0.0</version>
<version>${primefaces.extensions}</version>
</dependency>
<dependency>
<groupId>org.primefaces.themes</groupId>
......
......@@ -123,6 +123,21 @@ public class PlacemapRestViewV1 {
return Response.ok(PojoUtils.parseSimplePlaces(map.getPlaces(), user, permbean.hasPermission(UserPermission.VIEW_ALL), true)).build();
}
/**
* This is a cacheable version of {id}/places. This should be reworked, but for now this should do the trick.
* @param mapId
* @return
*/
@GET
@Path("{id}/allplaces")
public SimplePlacelistRoot getAllPlaces(@PathParam("id") Integer mapId)
{
EventMap map = placebean.findMap(mapId);
return PojoUtils.parseSimplePlaces(map.getPlaces(), null, permbean.hasPermission(UserPermission.VIEW_ALL));
}
@GET
@Path("{id}/places")
public SimplePlacelistRoot getPlaces(@PathParam("id") Integer mapId)
......
......@@ -38,8 +38,8 @@ public class AjaxMapView extends GenericCDIView {
*
*/
private static final long serialVersionUID = 8203589456357519480L;
// @Inject
// private PlaceView placeview;
// @Inject
// private PlaceView placeview;
private static final Logger logger = LoggerFactory.getLogger(AjaxMapView.class);;
private String testVal = "Testval1";
......@@ -103,20 +103,25 @@ public class AjaxMapView extends GenericCDIView {
EventMap map = initMap();
List<PlaceSlot> usersPlaceslots = placebean.getPlaceslots(u);
MapQueueI mapqueue = quebean.getMapQueue(map);
if (usersPlaceslots == null || usersPlaceslots.isEmpty()) {
logger.info("There are no placeslots available for user");
map = null;
super.navihandler.forward("/shop/createBill?faces-redirect=true");
} else if (usersPlaceslots.size() < mapqueue.getMinimumSlotsInQueue()) {
map = null;
super.navihandler.forward("/neomap/notenoughslots?faces-redirect=true");
} else {
quebean.enterQueue(map, u);
slotcount = countPlaceslots(placebean.getPlaceslots(u));
// slotcount = countPlaceslots(placebean.getFreePlaceslots(u, map));
if (!quebean.isReserving(map, u)) {
if (usersPlaceslots == null || usersPlaceslots.isEmpty()) {
logger.info("There are no placeslots available for user");
map = null;
super.navihandler.forward("/shop/createBill?faces-redirect=true");
return;
} else if (usersPlaceslots.size() < mapqueue.getMinimumSlotsInQueue()) {
map = null;
super.navihandler.forward("/neomap/notenoughslots?faces-redirect=true");
return;
} else {
quebean.enterQueue(map, u);
// slotcount =
// countPlaceslots(placebean.getFreePlaceslots(u, map));
}
}
slotcount = countPlaceslots(placebean.getPlaceslots(u));
}
}
public void initPlacecount() {
......@@ -126,7 +131,6 @@ public class AjaxMapView extends GenericCDIView {
}
}
private static Collection<Slotcounter> countPlaceslots(List<PlaceSlot> slots) {
Map<Product, Slotcounter> prodmap = new HashMap<>();
for (PlaceSlot p : slots) {
......@@ -167,16 +171,16 @@ public class AjaxMapView extends GenericCDIView {
return queEnabled;
}
// public String enterQueue()
// {
// logger.info("Entering queue");
// if (isQueueEnabled())
// queueEntry = quebean.enterQueue(initMap(), userview.getSelectedUser());
// else {
// logger.warn("QueueNot enabled. Not entering queue");
// }
// return null;
// }
// public String enterQueue()
// {
// logger.info("Entering queue");
// if (isQueueEnabled())
// queueEntry = quebean.enterQueue(initMap(), userview.getSelectedUser());
// else {
// logger.warn("QueueNot enabled. Not entering queue");
// }
// return null;
// }
private EventMap initMap() {
if (map == null && mapId != null) {
......@@ -212,7 +216,7 @@ public class AjaxMapView extends GenericCDIView {
public Long getAvailablePlaces() {
Long ret = placebean.availablePlaceCount(initMap());
// logger.debug("Got {} availbale places for map {}", ret, initMap());
// logger.debug("Got {} availbale places for map {}", ret, initMap());
return ret;
}
......@@ -229,9 +233,8 @@ public class AjaxMapView extends GenericCDIView {
}
public boolean canUserBuy() {
return permbean.hasPermission(MapPermission.BUY_PLACES) &&
(permbean.hasPermission(MapPermission.MANAGE_OTHERS) ||
quebean.isReserving(initMap(), userview.getSelectedUser()));
return permbean.hasPermission(MapPermission.BUY_PLACES) && (permbean.hasPermission(MapPermission.MANAGE_OTHERS)
|| quebean.isReserving(initMap(), userview.getSelectedUser()));
}
public EventUser getEventuser() {
......@@ -255,16 +258,16 @@ public class AjaxMapView extends GenericCDIView {
return permbean.hasPermission(MapPermission.MANAGE_OTHERS);
}
// public void placeClicked() {
// public void placeClicked() {
//
// place = placebean.find(placeId);
// logger.info("Found place {} with placeid {}", place, placeId);
// if (place.isReservedFor(permbean.getCurrentUser())) {
// placebean.releasePlace(place);
// } else if (place.isBuyable() && !place.isTaken()) {
// placebean.reservePlace(place, permbean.getCurrentUser());
// }
// }
// place = placebean.find(placeId);
// logger.info("Found place {} with placeid {}", place, placeId);
// if (place.isReservedFor(permbean.getCurrentUser())) {
// placebean.releasePlace(place);
// } else if (place.isBuyable() && !place.isTaken()) {
// placebean.reservePlace(place, permbean.getCurrentUser());
// }
// }
public String getTestVal() {
return testVal;
......
......@@ -32,9 +32,9 @@
<logback.version>1.1.3</logback.version>
<testng.version>6.8.21</testng.version>
<javamelody.version>1.58.0</javamelody.version>
<primefaces.version>5.2</primefaces.version>
<primefaces.version>5.3</primefaces.version>
<primefaces.themeversion>1.0.10</primefaces.themeversion>
<primefaces.extensions>4.0.0</primefaces.extensions>
</properties>
<url>http://codecrew.fi</url>
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!