I'm getting it in Firebug when I try to use AJAX. It was working fine a
month or two ago.
Here's the code that calls the AJAX. It adds or deletes a venue from an
event.
def getVenuesBlock: NodeSeq = {
val items = Model.createNamedQuery[Venue]("findAllVenues").findAll
val ev = Model.createNamedQuery[Event]("findEventById",
"id" ->
event.id).findOne.openOr(new Event())
val allItems = items.toList.map((x: Venue) => {
(x.id.toString,
x.name)
})
val currentItems = JPA.setToWrapper(ev.venues).toList.map(
(x: Venue) => {(x.id.toString,
x.name)}
)
val unusedItems = (allItems -- currentItems)
<div class="venuesBlock">
<div>{
if (currentItems.isEmpty)
<em>None</em>
else
JPA.setToWrapper(ev.venues).toList.map(
(x: Venue) => {
<div id={"venues" + x.id.toString}>{
SHtml.ajaxButton("-",
() => {
val item = Model.getReference[Venue](classOf[Venue],
x.id)
val ev = Model.getReference[Event](classOf[Event],
event.id)
ev.venues.remove(item)
Model.merge(ev)
Model.flush()
SetHtml("venuesBlock", getVenuesBlock)
},
("title", "Remove this venue"),
("class", "removeButton")
)
}{
x.name}</div>
}
)
}</div>
{
if (unusedItems.isEmpty)
Text("")
else
<div id="addVenue">{
SHtml.ajaxForm(
<p><input type="submit" value="+" class="addButton"
title="Add this venue"/> {
SHtml.select(unusedItems, Empty,
(id: String) => {
val item =
Model.getReference[Venue](classOf[Venue],
id.toLong)
val ev = Model.getReference[Event](classOf[Event],
event.id)
ev.venues.add(item)
Model.merge(ev)
Model.flush()
SetHtml("venuesBlock", getVenuesBlock)
},
("id", "selectVenue")
)
}
</p>
)
}</div>
}
</div>