Hi all, I've got a pretty simple test project in Tap 5.4.1. Everything works as expected, but when I add the built-in Confirm mixin to a component form, the onSuccessFrom... event does not work. The confirm dialog works as expected, but when I click ok, nothing happens (Other than the confirm dialog going away). I also tried a confirm mixin from 5.3.8, but that didn't work at all (no dialog box).
Anyone else experienced this? Thoughts? EventEditor.tml: <div xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter" class="EventEditor"> <form t:id="eventForm" > <t:errors /> <div class="t-beaneditor"> <t:beaneditor t:id="eventEditor" t:object="event" t:model="eventModel"> <p:name> <t:label for="name" /> <t:textfield t:id="name" value="event.name" t:size="16" t:mixins="TextboxHint" t:hintText="Event Name" t:hintColor="#d3d3d3" /> </p:name> <p:defaultPhoneNumber> <t:label for="defaultPhoneNumber" /> <t:textfield t:id="defaultPhoneNumber" value="event.defaultPhoneNumber" t:size="16" t:mixins="TextboxHint" t:hintText="Default Phone Number" t:hintColor="#d3d3d3" /> </p:defaultPhoneNumber> <p:start> <t:label for="startDate" /> <t:datefield t:id="startDate" value="event.startDate" /> </p:start> <p:end> <t:label for="endDate" /> <t:datefield t:id="endDate" value="event.endDate" /> </p:end> </t:beaneditor> </div> <div id="buttons"> <span id="saveBtn" onClick="showMsg();"> <input fwtype="btn-primary" t:type="submit" value="Save" t:id="save" /> </span> <span id="deleteBtn" onClick="showMsg();"> <input fwtype="btn-primary" t:type="submit" value="Delete" t:id="delete" t:mixins="Confirm" Confirm.message="Are you sure? This will delete this event and any other data associated with it!"/> </span> </div> </form> </div> EventEditor.java package com.hightechknowledge.components; import org.apache.tapestry5.annotations.Component; import org.apache.tapestry5.annotations.Parameter; import org.apache.tapestry5.annotations.Persist; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.beaneditor.BeanModel; import org.apache.tapestry5.corelib.components.Form; import org.apache.tapestry5.ioc.Messages; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.services.BeanModelSource; import com.georgeludwigtech.CEUPDQ.data.Event; import com.hightechknowledge.helpers.EventDisplayWrapper; import com.hightechknowledge.services.EventDAO; public class EventEditor { @Inject private EventDAO eventDAO; @Component(id = "eventForm") private Form eventForm; @Property @Parameter private String eventId; @Parameter private Object returnPage; @Inject private BeanModelSource beanModelSource; @Inject private Messages messages; @Property private BeanModel<EventDisplayWrapper>eventModel; @Persist private EventDisplayWrapper event; // the current event being viewed/edited void setupRender() throws Exception { eventModel = beanModelSource.createDisplayModel(EventDisplayWrapper.class, messages); eventModel.include("name", "defaultPhoneNumber", "startDate", "endDate"); if(eventId==null&&event==null) { createNewEvent(); eventId=event.getEventId(); } else if(event==null) { Event e=eventDAO.findById(eventId); event=new EventDisplayWrapper(e); } } public EventDisplayWrapper getEvent() { if(event==null) setEvent(new EventDisplayWrapper()); return event; } public void setEvent(EventDisplayWrapper event) { this.event=event; } @Persist private boolean save; void onSelectedFromSave() { save = true; delete = false; } @Persist private boolean delete; void onSelectedFromDelete() { delete = true; save = false; } void onConfirm() { return; } Object onSuccessFromEventForm() throws Exception { if (save) saveEvent(); else if (delete) { deleteEvent(); return returnPage; } return null; } private void saveEvent() throws Exception { // Event e=new Event(event); eventDAO.update(e); } private void deleteEvent() throws Exception { // eventDAO.delete(event); event=null; eventId=null; } private void createNewEvent() throws Exception { // Event e=eventDAO.createNew(); e.setName("A New Event"); e.setStart(System.currentTimeMillis()); e.setEnd(e.getStart()+86400000); e.setDefaultPhoneNumber("123 555 1212"); eventDAO.update(e); EventDisplayWrapper edw=new EventDisplayWrapper(e); setEvent(edw); } }