/kickup/trunk/src/ak/kickup/core/action/EventAction.java |
---|
0,0 → 1,60 |
package ak.kickup.core.action; |
import java.util.List; |
import java.util.Collections; |
import java.util.ArrayList; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.DynaActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMessages; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionError; |
import ak.strutsx.RequestUtilsX; |
import ak.strutsx.ErrorHandlerX; |
import ak.backpath.BackPath; |
import ak.kickup.util.StringConverter; |
import ak.kickup.util.UserException; |
import ak.kickup.core.model.Event; |
import ak.kickup.core.model.EventManager; |
public final class EventAction |
extends Action |
{ |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
if("list".equals(mapping.getParameter())) { |
List list = new ArrayList(EventManager.getInstance().listEvents(true)); |
Collections.sort(list, EventManager.START_COMPARATOR); |
request.setAttribute("events", list); |
return mapping.findForward("default"); |
} |
else if("show".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long eventId = StringConverter.parseLong(theForm.get("id")); |
Event event = EventManager.getInstance().get(eventId, true); |
List acts = new ArrayList(event.getActCollection()); |
List apartments = new ArrayList(event.getApartmentCollection()); |
request.setAttribute("event", event); |
Collections.sort(acts, EventManager.ACT_NAME_COMPARATOR); |
request.setAttribute("acts", acts); |
Collections.sort(apartments, EventManager.APARTMENT_NAME_COMPARATOR); |
request.setAttribute("apartments", apartments); |
return mapping.findForward("default"); |
} |
else { |
throw new Exception("unknown mapping parameter"); |
} |
} |
} |
/kickup/trunk/src/ak/kickup/core/action/AdminParticipantAction.java |
---|
38,7 → 38,7 |
if("submit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long eventId = StringConverter.parseLong(theForm.get("event")); |
Event event = EventManager.getInstance().get(eventId); |
Event event = EventManager.getInstance().get(eventId, false); |
Long participantId = StringConverter.parseLong(theForm.get("id")); |
Participant participant; |
if(participantId == null) { |
59,8 → 59,8 |
if("list".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long eventId = StringConverter.parseLong(theForm.get("event")); |
Event event = EventManager.getInstance().get(eventId); |
List list = new ArrayList(ParticipantManager.getInstance().listParticipants(event)); |
Event event = EventManager.getInstance().get(eventId, false); |
List list = new ArrayList(event.getParticipantCollection()); |
Collections.sort(list, ParticipantManager.NICK_COMPARATOR); |
request.setAttribute("participants", list); |
request.setAttribute("event", event); |
69,7 → 69,7 |
else if("edit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long eventId = StringConverter.parseLong(theForm.get("event")); |
Event event = EventManager.getInstance().get(eventId); |
Event event = EventManager.getInstance().get(eventId, false); |
Long participantId = StringConverter.parseLong(theForm.get("id")); |
Participant participant; |
DynaActionForm showForm = (DynaActionForm)RequestUtilsX.populateActionForm( |
118,7 → 118,7 |
if(participantId == null) { |
Long eventId = StringConverter.parseLong(theForm.get("event")); |
Event event = EventManager.getInstance().get(eventId); |
Event event = EventManager.getInstance().get(eventId, false); |
participant = ParticipantManager.getInstance().create(); |
participant.setIdent(ParticipantManager.getInstance().generateIdent()); |
/kickup/trunk/src/ak/kickup/core/action/AdminEventAction.java |
---|
70,7 → 70,7 |
showForm.set("enabled", Boolean.TRUE); |
} |
else { |
event = EventManager.getInstance().get(eventId); |
event = EventManager.getInstance().get(eventId, false); |
showForm.set("name", event.getName()); |
showForm.set("place", event.getPlace()); |
showForm.set("address", event.getAddress()); |
110,7 → 110,7 |
else if("delete".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long eventId = StringConverter.parseLong(theForm.get("id")); |
Event event = EventManager.getInstance().get(eventId); |
Event event = EventManager.getInstance().get(eventId, false); |
EventManager.getInstance().delete(event); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
125,14 → 125,12 |
event = EventManager.getInstance().create(); |
} |
else { |
event = EventManager.getInstance().get(eventId); |
event = EventManager.getInstance().get(eventId, false); |
} |
// acts |
EventActBean[] acts = (EventActBean[])theForm.get("acts"); |
for(int i = 0; i < acts.length; i++) { |
// FIXME: validate act id |
// get bean |
Long actId = StringConverter.parseLong(acts[i].getActId()); |
Act act = ActManager.getInstance().get(actId); |
155,8 → 153,6 |
// apartments |
EventApartmentBean[] apartments = (EventApartmentBean[])theForm.get("apartments"); |
for(int i = 0; i < apartments.length; i++) { |
// FIXME: validate apartment id, distance |
// get bean |
Long apartmentId = StringConverter.parseLong(apartments[i].getApartmentId()); |
Apartment apartment = ApartmentManager.getInstance().get(apartmentId); |
172,7 → 168,15 |
eventApartment.setApartment(apartment); |
event.addApartment(eventApartment); |
} |
eventApartment.setDistance(StringConverter.parseNumber(apartments[i].getDistance())); |
try { |
eventApartment.setDistance(StringConverter.parseNumber(apartments[i].getDistance())); |
} |
catch(Exception ex) { // the distance cannot be parsed |
initLists(request); |
throw new UserException("ak.kickup.core.event.edit.distance.wrong"); |
} |
eventApartment.setComment(apartments[i].getComment()); |
} |
} |
180,6 → 184,7 |
// name |
String name = (String)theForm.get("name"); |
if(EventManager.getInstance().nameExists(event, name)) { |
initLists(request); |
throw new UserException("ak.kickup.core.event.name.nonunique"); |
} |
event.setName(name); |
/kickup/trunk/src/ak/kickup/core/action/ApartmentAction.java |
---|
0,0 → 1,46 |
package ak.kickup.core.action; |
import java.util.List; |
import java.util.Collections; |
import java.util.ArrayList; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.DynaActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMessages; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionError; |
import ak.kickup.util.StringConverter; |
import ak.kickup.core.model.Event; |
import ak.kickup.core.model.EventManager; |
import ak.kickup.core.model.Participant; |
import ak.kickup.core.model.ParticipantManager; |
public final class ApartmentAction |
extends Action |
{ |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
DynaActionForm theForm = (DynaActionForm)form; |
Long eventId = StringConverter.parseLong(theForm.get("event")); |
Event event = EventManager.getInstance().get(eventId, true); |
List list = new ArrayList(ParticipantManager.getInstance().listFreeSleep(event)); |
List apartments = new ArrayList(event.getApartmentCollection()); |
Collections.sort(list, ParticipantManager.NICK_COMPARATOR); |
request.setAttribute("participants", list); |
request.setAttribute("event", event); |
Collections.sort(apartments, EventManager.APARTMENT_NAME_COMPARATOR); |
request.setAttribute("apartments", apartments); |
return mapping.findForward("default"); |
} |
} |
/kickup/trunk/src/ak/kickup/core/action/TransportAction.java |
---|
0,0 → 1,41 |
package ak.kickup.core.action; |
import java.util.List; |
import java.util.Collections; |
import java.util.ArrayList; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.DynaActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMessages; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionError; |
import ak.kickup.util.StringConverter; |
import ak.kickup.core.model.Event; |
import ak.kickup.core.model.EventManager; |
import ak.kickup.core.model.Participant; |
import ak.kickup.core.model.ParticipantManager; |
public final class TransportAction |
extends Action |
{ |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
DynaActionForm theForm = (DynaActionForm)form; |
Long eventId = StringConverter.parseLong(theForm.get("event")); |
Event event = EventManager.getInstance().get(eventId, true); |
List list = new ArrayList(ParticipantManager.getInstance().listFreeTransport(event)); |
Collections.sort(list, ParticipantManager.NICK_COMPARATOR); |
request.setAttribute("participants", list); |
request.setAttribute("event", event); |
return mapping.findForward("default"); |
} |
} |
/kickup/trunk/src/ak/kickup/core/action/ParticipantAction.java |
---|
0,0 → 1,160 |
package ak.kickup.core.action; |
import java.util.List; |
import java.util.Collections; |
import java.util.ArrayList; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import org.apache.struts.action.Action; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.action.DynaActionForm; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMessages; |
import org.apache.struts.action.ActionErrors; |
import org.apache.struts.action.ActionError; |
import ak.strutsx.RequestUtilsX; |
import ak.strutsx.ErrorHandlerX; |
import ak.backpath.BackPath; |
import ak.kickup.util.StringConverter; |
import ak.kickup.util.UserException; |
import ak.kickup.core.model.Participant; |
import ak.kickup.core.model.ParticipantManager; |
import ak.kickup.core.model.Event; |
import ak.kickup.core.model.EventManager; |
public final class ParticipantAction |
extends Action |
implements ErrorHandlerX |
{ |
public void handleErrors(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
if("submit".equals(mapping.getParameter())) { |
/* |
DynaActionForm theForm = (DynaActionForm)form; |
Long eventId = StringConverter.parseLong(theForm.get("event")); |
Event event = EventManager.getInstance().get(eventId, true); |
Long participantId = StringConverter.parseLong(theForm.get("id")); |
Participant participant; |
if(participantId == null) { |
participant = ParticipantManager.getInstance().create(); |
} |
else { |
participant = ParticipantManager.getInstance().get(participantId); |
} |
request.setAttribute("event", event); |
request.setAttribute("participant", participant); |
*/ |
} |
} |
public ActionForward execute(ActionMapping mapping, ActionForm form, |
HttpServletRequest request, HttpServletResponse response) |
throws Exception |
{ |
if("list".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long eventId = StringConverter.parseLong(theForm.get("event")); |
Event event = EventManager.getInstance().get(eventId, true); |
List list = new ArrayList(event.getParticipantCollection()); |
Collections.sort(list, ParticipantManager.NICK_COMPARATOR); |
request.setAttribute("participants", list); |
request.setAttribute("event", event); |
return mapping.findForward("default"); |
} |
/* |
else if("edit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long eventId = StringConverter.parseLong(theForm.get("event")); |
Event event = EventManager.getInstance().get(eventId, true); |
Long participantId = StringConverter.parseLong(theForm.get("id")); |
Participant participant; |
DynaActionForm showForm = (DynaActionForm)RequestUtilsX.populateActionForm( |
this, request, "ParticipantEditForm"); |
if(participantId == null) { |
participant = ParticipantManager.getInstance().create(); |
} |
else { |
participant = ParticipantManager.getInstance().get(participantId); |
showForm.set("nick", participant.getNick()); |
showForm.set("email", participant.getEmail()); |
showForm.set("emailPublic", participant.getEmailPublic()); |
showForm.set("name", participant.getName()); |
showForm.set("phone", participant.getPhone()); |
showForm.set("persons", StringConverter.toString(participant.getPersons())); |
showForm.set("fromZip", participant.getFromZip()); |
showForm.set("fromCity", participant.getFromCity()); |
showForm.set("departure", StringConverter.toDateTime(participant.getDeparture())); |
showForm.set("freeTransport", StringConverter.toString(participant.getFreeTransport())); |
showForm.set("transportComment", participant.getTransportComment()); |
showForm.set("freeSleep", StringConverter.toString(participant.getFreeSleep())); |
showForm.set("sleepComment", participant.getSleepComment()); |
showForm.set("payed", participant.getPayed()); |
showForm.set("comment", participant.getComment()); |
showForm.set("privateComment", participant.getPrivateComment()); |
} |
request.setAttribute("event", event); |
request.setAttribute("participant", participant); |
return mapping.findForward("default"); |
} |
else if("delete".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long participantId = StringConverter.parseLong(theForm.get("id")); |
Participant participant = ParticipantManager.getInstance().get(participantId); |
ParticipantManager.getInstance().delete(participant); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
else if("submit".equals(mapping.getParameter())) { |
DynaActionForm theForm = (DynaActionForm)form; |
Long participantId = StringConverter.parseLong(theForm.get("id")); |
Participant participant; |
if(participantId == null) { |
Long eventId = StringConverter.parseLong(theForm.get("event")); |
Event event = EventManager.getInstance().get(eventId, true); |
participant = ParticipantManager.getInstance().create(); |
participant.setIdent(ParticipantManager.getInstance().generateIdent()); |
participant.setEvent(event); |
} |
else { |
participant = ParticipantManager.getInstance().get(participantId); |
} |
participant.setNick((String)theForm.get("nick")); |
participant.setEmail((String)theForm.get("email")); |
participant.setEmailPublic((Boolean)theForm.get("emailPublic")); |
participant.setName((String)theForm.get("name")); |
participant.setPhone((String)theForm.get("phone")); |
participant.setPersons(StringConverter.parseInteger(theForm.get("persons"))); |
participant.setFromZip((String)theForm.get("fromZip")); |
participant.setFromCity((String)theForm.get("fromCity")); |
participant.setDeparture(StringConverter.parseDateTime(theForm.get("departure"))); |
participant.setFreeTransport(StringConverter.parseInteger(theForm.get("freeTransport"))); |
participant.setTransportComment((String)theForm.get("transportComment")); |
participant.setFreeSleep(StringConverter.parseInteger(theForm.get("freeSleep"))); |
participant.setSleepComment((String)theForm.get("sleepComment")); |
participant.setPayed((Boolean)theForm.get("payed")); |
participant.setComment((String)theForm.get("comment")); |
participant.setPrivateComment((String)theForm.get("privateComment")); |
ParticipantManager.getInstance().save(participant); |
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl()); |
return null; |
} |
*/ |
else { |
throw new Exception("unknown mapping parameter"); |
} |
} |
} |
/kickup/trunk/src/ak/kickup/core/CoreResources.properties |
---|
10,6 → 10,7 |
ak.kickup.core.event.edit.lastreg.wrong=Дата окончания регистрации должна быть в виде ДД.ММ.ГГГГ |
ak.kickup.core.event.edit.lastunreg.wrong=Последний срок отказа должен быть в виде ДД.ММ.ГГГГ |
ak.kickup.core.event.edit.price.wrong=Цена должна быть числом, например 12,35 |
ak.kickup.core.event.edit.distance.wrong=Расстояние должно быть числом, например 4,5 |
ak.kickup.core.act.edit.id.wrong=Неизвестное мероприятие, выбирайти из списка |
ak.kickup.core.act.edit.name.required=Название обязательно |
ak.kickup.core.apartment.edit.id.wrong=Неизвестная гостиница, выбирайти из списка |
/kickup/trunk/src/ak/kickup/core/model/EventManager.java |
---|
56,16 → 56,23 |
return e; |
} |
public Event get(Long id) |
public Event get(Long id, boolean enabledOnly) |
throws ModelException |
{ |
Event event; |
try { |
return (Event)HibernateUtil.currentSession().load(Event.class, id); |
event = (Event)HibernateUtil.currentSession().load(Event.class, id); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
if(enabledOnly && (event.getEnabled() == null || !event.getEnabled().booleanValue())) |
throw new ModelSecurityException(); |
return event; |
} |
public boolean nameExists(Event event, String name) |
201,4 → 208,62 |
return (obj instanceof StartComparator); |
} |
} |
public static final Comparator ACT_NAME_COMPARATOR = new ActNameComparator(); |
private static class ActNameComparator |
implements Comparator |
{ |
public int compare(Object o1, Object o2) |
{ |
if(!(o1 instanceof EventAct) || !(o2 instanceof EventAct)) |
throw new ClassCastException("not a EventAct"); |
EventAct a1 = (EventAct)o1; |
EventAct a2 = (EventAct)o2; |
if(a1 == null && a2 == null) |
return 0; |
else if(a1 == null && a2 != null) |
return -1; |
else if(a1 != null && a2 == null) |
return 1; |
else |
return a1.getAct().getName().compareToIgnoreCase(a2.getAct().getName()); |
} |
public boolean equals(Object obj) |
{ |
return (obj instanceof ActNameComparator); |
} |
} |
public static final Comparator APARTMENT_NAME_COMPARATOR = new ApartmentNameComparator(); |
private static class ApartmentNameComparator |
implements Comparator |
{ |
public int compare(Object o1, Object o2) |
{ |
if(!(o1 instanceof EventApartment) || !(o2 instanceof EventApartment)) |
throw new ClassCastException("not a EventApartment"); |
EventApartment a1 = (EventApartment)o1; |
EventApartment a2 = (EventApartment)o2; |
if(a1 == null && a2 == null) |
return 0; |
else if(a1 == null && a2 != null) |
return -1; |
else if(a1 != null && a2 == null) |
return 1; |
else |
return a1.getApartment().getName().compareToIgnoreCase(a2.getApartment().getName()); |
} |
public boolean equals(Object obj) |
{ |
return (obj instanceof ApartmentNameComparator); |
} |
} |
} |
/kickup/trunk/src/ak/kickup/core/model/Event.java |
---|
8,6 → 8,7 |
import java.util.Date; |
import java.util.Map; |
import java.util.HashMap; |
import java.util.Calendar; |
import ak.kickup.util.ModelException; |
import ak.kickup.util.ModelSecurityException; |
34,6 → 35,7 |
private Map actsMap = new HashMap(); // Map(Long id -> EventAct) |
private Collection apartments; // Collection(EventApartment) |
private Map apartmentsMap = new HashMap(); // Map(Long id -> EventApartment) |
private Collection participants; // Collection(EventAct) |
protected Event() |
{ |
310,5 → 312,88 |
{ |
apartments.remove(apartment); |
apartmentsMap.remove(apartment.getApartment().getId()); |
} |
public boolean isRegistrationAvailable() |
{ |
if(enabled == null || !enabled.booleanValue()) return false; |
Calendar cal = Calendar.getInstance(); |
cal.set(Calendar.HOUR_OF_DAY, 0); |
cal.set(Calendar.MINUTE, 0); |
cal.set(Calendar.SECOND, 0); |
cal.set(Calendar.MILLISECOND, 0); |
Date now = cal.getTime(); |
if(lastRegister == null) { |
return (start == null || !start.before(now)); |
} |
else { |
return !lastRegister.before(now); |
} |
} |
public boolean isUnregistrationAvailable() |
{ |
if(enabled == null || !enabled.booleanValue()) return false; |
Calendar cal = Calendar.getInstance(); |
cal.set(Calendar.HOUR_OF_DAY, 0); |
cal.set(Calendar.MINUTE, 0); |
cal.set(Calendar.SECOND, 0); |
cal.set(Calendar.MILLISECOND, 0); |
Date now = cal.getTime(); |
if(lastUnregister == null) { |
return (start == null || !start.before(now)); |
} |
else { |
return !lastUnregister.before(now); |
} |
} |
public int getParticipantCount() |
{ |
return participants.size(); |
} |
public int getPersonCount() |
{ |
int count = 0; |
for(Iterator i = participants.iterator(); i.hasNext(); ) { |
Participant p = (Participant)i.next(); |
if(p.getPersons() != null) |
count += p.getPersons().intValue(); |
} |
return count; |
} |
/** |
* @return Collection(Participant) |
* |
* @hibernate.bag inverse="true" cascade="all-delete-orphan" lazy="true" |
* @hibernate.collection-key column="event" |
* @hibernate.collection-one-to-many class="ak.kickup.core.model.Participant" |
*/ |
protected Collection getParticipants() |
{ |
return participants; |
} |
public Collection getParticipantCollection() |
{ |
return Collections.unmodifiableCollection(participants); |
} |
/** |
* @param destinations Collection(Participant) |
*/ |
protected void setParticipants(Collection participants) |
{ |
this.participants = participants; |
} |
} |
/kickup/trunk/src/ak/kickup/core/model/ParticipantManager.java |
---|
125,12 → 125,12 |
} |
} |
public Collection listParticipants(Event event) |
public Collection listFreeTransport(Event event) |
throws ModelException |
{ |
try { |
return HibernateUtil.currentSession().find( |
"from Participant where event = ?", |
"from Participant where event = ? and free_transport > 0", |
event, Hibernate.entity(Event.class)); |
} |
catch(HibernateException ex) |
139,6 → 139,20 |
} |
} |
public Collection listFreeSleep(Event event) |
throws ModelException |
{ |
try { |
return HibernateUtil.currentSession().find( |
"from Participant where event = ? and free_sleep > 0", |
event, Hibernate.entity(Event.class)); |
} |
catch(HibernateException ex) |
{ |
throw new ModelException(ex); |
} |
} |
public static final Comparator NICK_COMPARATOR = new NickComparator(); |
private static class NickComparator |
/kickup/trunk/src/ak/kickup/core/taglib/ExtendedWriteTag.java |
---|
0,0 → 1,48 |
// based on Jakarta Struts |
package ak.kickup.core.taglib; |
import javax.servlet.jsp.JspException; |
import org.apache.struts.util.RequestUtils; |
import org.apache.struts.util.ResponseUtils; |
import org.apache.struts.taglib.bean.WriteTag; |
public class ExtendedWriteTag extends WriteTag |
{ |
protected boolean filterBr = false; |
public boolean getFilterBr() |
{ |
return filterBr; |
} |
public void setFilterBr(boolean filterBr) |
{ |
this.filterBr = filterBr; |
} |
public int doStartTag() |
throws JspException |
{ |
if(ignore) { |
if(RequestUtils.lookup(pageContext, name, scope) == null) |
return SKIP_BODY; |
} |
Object value = RequestUtils.lookup(pageContext, name, property, scope); |
if(value == null) return SKIP_BODY; |
String output = formatValue(value); |
if(filter) output = ResponseUtils.filter(output); |
if(filterBr) output = output.replaceAll("\n", "<br>"); |
ResponseUtils.write(pageContext, output); |
return SKIP_BODY; |
} |
public void release() |
{ |
super.release(); |
filterBr = false; |
} |
} |
/kickup/trunk/src/ak/kickup/util/StringConverter.java |
---|
60,7 → 60,7 |
if(n == null) |
return null; |
else |
return (new DecimalFormat("0")).format(n); |
return (new DecimalFormat()).format(n); |
} |
public static BigDecimal parseCurrency(Object o) |
/kickup/trunk/webapp/admin/participant/edit.jsp |
---|
104,7 → 104,7 |
<tr> |
<td colspan=2> |
<html:submit>Сохранить</html:submit> |
<backpath:backlink>Отменить</backpath:backlink> |
<backpath:notEmpty><backpath:backlink>Отменить</backpath:backlink></backpath:notEmpty> |
</td> |
</tr> |
</table> |
/kickup/trunk/webapp/admin/participant/list.jsp |
---|
4,7 → 4,7 |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/ak-kickup.tld" prefix="kickup" %> |
<%@ taglib uri="/WEB-INF/ak-kickup.tld" prefix="kickup" %> |
<html> |
<head> |
63,7 → 63,7 |
<backpath:link action="/admin/participant/edit" paramId="event" paramName="event" paramProperty="id">Добавить участника</backpath:link> |
<br> |
<backpath:backlink>Назад</backpath:backlink> |
<backpath:notEmpty><backpath:backlink>Назад</backpath:backlink></backpath:notEmpty> |
</body> |
/kickup/trunk/webapp/admin/event/edit.jsp |
---|
126,7 → 126,7 |
<tr> |
<td colspan=4> |
<html:submit>Сохранить</html:submit> |
<backpath:backlink>Отменить</backpath:backlink> |
<backpath:notEmpty><backpath:backlink>Отменить</backpath:backlink></backpath:notEmpty> |
</td> |
</tr> |
</table> |
/kickup/trunk/webapp/admin/event/list.jsp |
---|
64,7 → 64,7 |
<backpath:link action="/admin/event/edit">Добавить пьянку</backpath:link> |
<br> |
<backpath:backlink>Назад</backpath:backlink> |
<backpath:notEmpty><backpath:backlink>Назад</backpath:backlink></backpath:notEmpty> |
</body> |
/kickup/trunk/webapp/admin/act/edit.jsp |
---|
43,7 → 43,7 |
<tr> |
<td colspan=2> |
<html:submit>Сохранить</html:submit> |
<backpath:backlink>Отменить</backpath:backlink> |
<backpath:notEmpty><backpath:backlink>Отменить</backpath:backlink></backpath:notEmpty> |
</td> |
</tr> |
</table> |
/kickup/trunk/webapp/admin/act/list.jsp |
---|
49,7 → 49,7 |
<backpath:link action="/admin/act/edit">Добавить мероприятие</backpath:link> |
<br> |
<backpath:backlink>Назад</backpath:backlink> |
<backpath:notEmpty><backpath:backlink>Назад</backpath:backlink></backpath:notEmpty> |
</body> |
/kickup/trunk/webapp/admin/apartment/edit.jsp |
---|
55,7 → 55,7 |
<tr> |
<td colspan=2> |
<html:submit>Сохранить</html:submit> |
<backpath:backlink>Отменить</backpath:backlink> |
<backpath:notEmpty><backpath:backlink>Отменить</backpath:backlink></backpath:notEmpty> |
</td> |
</tr> |
</table> |
/kickup/trunk/webapp/admin/apartment/list.jsp |
---|
49,7 → 49,7 |
<backpath:link action="/admin/apartment/edit">Добавить гостиницу</backpath:link> |
<br> |
<backpath:backlink>Назад</backpath:backlink> |
<backpath:notEmpty><backpath:backlink>Назад</backpath:backlink></backpath:notEmpty> |
</body> |
/kickup/trunk/webapp/apartment/list.jsp |
---|
0,0 → 1,100 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/ak-kickup.tld" prefix="kickup" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title>Пьянка XP - <bean:write name="event" property="name" /> - Где переночивать</title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1>Пьянка XP - <bean:write name="event" property="name" /> - Где переночивать</h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error">Ошибки: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<h2>Гостиницы в округе</h2> |
<table border=1> |
<tr> |
<th>Название</th> |
<th>Сайт</th> |
<th>Цена за ночь на одного, евро</th> |
<th>Расстояние до места</th> |
<th>Адрес</th> |
</tr> |
<logic:iterate name="apartments" id="a"> |
<tr> |
<td> |
<bean:write name="a" property="apartment.name" /> |
</td> |
<td> |
<logic:notEmpty name="a" property="apartment.url"> |
<a href="<bean:write name="a" property="apartment.url" />"><bean:write name="a" property="apartment.url" /></a> |
</logic:notEmpty> |
|
</td> |
<td> |
<bean:write name="a" property="apartment.price" /> |
</td> |
<td> |
<bean:write name="a" property="distance" /> |
</td> |
<td> |
<kickup:write name="a" property="apartment.address" filterBr="true" /> |
</td> |
</tr> |
</logic:iterate> |
</table> |
<h2>Свободные спальные места у участников</h2> |
<table border=1> |
<tr> |
<th>Ник</th> |
<th>Имя</th> |
<th>e-mail</th> |
<th>Телефон</th> |
<th>Свободных мест</th> |
<th>Условия</th> |
</tr> |
<logic:iterate name="participants" id="p"> |
<tr> |
<td><bean:write name="p" property="nick" /> </td> |
<td><bean:write name="p" property="name" /> </td> |
<td> |
<logic:equal name="p" property="emailPublic" value="true"> |
<bean:write name="p" property="email" /> |
</logic:equal> |
|
</td> |
<td><bean:write name="p" property="phone" /> </td> |
<td><bean:write name="p" property="freeSleep" /> </td> |
<td><bean:write name="p" property="sleepComment" /> </td> |
</tr> |
</logic:iterate> |
</table> |
<br> |
<backpath:notEmpty><backpath:backlink>Назад</backpath:backlink></backpath:notEmpty> |
</body> |
</html> |
/kickup/trunk/webapp/transport/list.jsp |
---|
0,0 → 1,77 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/ak-kickup.tld" prefix="kickup" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title>Пьянка XP - <bean:write name="event" property="name" /> - Как добраться</title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1>Пьянка XP - <bean:write name="event" property="name" /> - Как добраться</h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error">Ошибки: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<h2>Адрес</h2> |
<p><kickup:write name="event" property="address" filterBr="true" /></p> |
<h2>Как проехать</h2> |
<p><kickup:write name="event" property="transportDesc" filterBr="true" /></p> |
<h2>Свободные места в машинах</h2> |
<table border=1> |
<tr> |
<th>PLZ</th> |
<th>Город</th> |
<th>Отправление</th> |
<th>Ник</th> |
<th>Имя</th> |
<th>e-mail</th> |
<th>Телефон</th> |
<th>Свободных мест</th> |
<th>Условия</th> |
</tr> |
<logic:iterate name="participants" id="p"> |
<tr> |
<td><bean:write name="p" property="fromZip" /> </td> |
<td><bean:write name="p" property="fromCity" /> </td> |
<td><bean:write name="p" property="departure" format="dd MMM yyyy HH:mm" /> </td> |
<td><bean:write name="p" property="nick" /> </td> |
<td><bean:write name="p" property="name" /> </td> |
<td> |
<logic:equal name="p" property="emailPublic" value="true"> |
<bean:write name="p" property="email" /> |
</logic:equal> |
|
</td> |
<td><bean:write name="p" property="phone" /> </td> |
<td><bean:write name="p" property="freeTransport" /> </td> |
<td><bean:write name="p" property="transportComment" /> </td> |
</tr> |
</logic:iterate> |
</table> |
<br> |
<backpath:notEmpty><backpath:backlink>Назад</backpath:backlink></backpath:notEmpty> |
</body> |
</html> |
/kickup/trunk/webapp/participant/list.jsp |
---|
0,0 → 1,64 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/ak-kickup.tld" prefix="kickup" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title>Пьянка XP - Участники пьянки "<bean:write name="event" property="name" />"</title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1>Пьянка XP - Участники пьянки "<bean:write name="event" property="name" />"</h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error">Ошибки: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<table border=1> |
<tr> |
<th>Ник</th> |
<th>Имя</th> |
<th>e-mail</th> |
<th>Телефон</th> |
<th>Количество</th> |
</tr> |
<logic:iterate name="participants" id="p"> |
<tr> |
<td><bean:write name="p" property="nick" /> </td> |
<td><bean:write name="p" property="name" /> </td> |
<td> |
<logic:equal name="p" property="emailPublic" value="true"> |
<bean:write name="p" property="email" /> |
</logic:equal> |
|
</td> |
<td><bean:write name="p" property="phone" /> </td> |
<td><bean:write name="p" property="persons" /> </td> |
</tr> |
</logic:iterate> |
</table> |
<p>Всего заявок: <bean:write name="event" property="participantCount" /></p> |
<p>Всего участников: <bean:write name="event" property="personCount" /></p> |
<br> |
<backpath:notEmpty><backpath:backlink>Назад</backpath:backlink></backpath:notEmpty> |
</body> |
</html> |
/kickup/trunk/webapp/event/list.jsp |
---|
0,0 → 1,61 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title>Пьянка XP</title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1>Пьянка XP</h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error">Ошибки: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<table border=1> |
<tr> |
<th>Название</th> |
<th>Место/город</th> |
<th>Начало</th> |
<th>Окончание</th> |
<th>Регистрация разрешена</th> |
</tr> |
<logic:iterate name="events" id="e"> |
<tr> |
<td> |
<backpath:link action="/event/show" paramId="id" paramName="e" paramProperty="id"> |
<bean:write name="e" property="name" /> |
</backpath:link> |
</td> |
<td><bean:write name="e" property="place" /> </td> |
<td><bean:write name="e" property="start" format="dd.MM.yyyy" /> </td> |
<td><bean:write name="e" property="stop" format="dd.MM.yyyy" /> </td> |
<td> |
<logic:equal name="e" property="registrationAvailable" value="true">да</logic:equal> |
<logic:notEqual name="e" property="registrationAvailable" value="true">нет</logic:notEqual> |
</td> |
</tr> |
</logic:iterate> |
</table> |
<backpath:notEmpty><backpath:backlink>Назад</backpath:backlink></backpath:notEmpty> |
</body> |
</html> |
/kickup/trunk/webapp/event/show.jsp |
---|
0,0 → 1,70 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %> |
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %> |
<%@ taglib uri="/WEB-INF/ak-kickup.tld" prefix="kickup" %> |
<html> |
<head> |
<meta http-equiv="expires" content="0"> |
<title>Пьянка XP - <bean:write name="event" property="name" /></title> |
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css"> |
</head> |
<body> |
<h1><bean:write name="event" property="name" /></h1> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
<div class="error">Ошибки: |
<ul> |
<logic:iterate name="errors" id="error"> |
<li><strutsx:message name="error" property="key" valuesProperty="values" /></li> |
</logic:iterate> |
</ul> |
</div> |
</strutsx:notEmpty> |
<p><kickup:write name="event" property="comment" filterBr="true" /></p> |
<p>Время проведения: |
<logic:empty name="event" property="start">еще неизвестно</logic:empty> |
<logic:notEmpty name="event" property="start"> |
<bean:write name="event" property="start" format="d MMM yyyy" /> |
<logic:notEmpty name="event" property="stop">- <bean:write name="event" property="stop" format="d MMM yyyy" /></logic:notEmpty> |
</logic:notEmpty> |
<h2>Место проведения</h2> |
<p><bean:write name="event" property="place" /></p> |
<p><kickup:write name="event" property="address" filterBr="true" /></p> |
<h2>Планируемые мероприятия</h2> |
<ul> |
<logic:iterate name="acts" id="a"> |
<li><bean:write name="a" property="act.name" /></li> |
</logic:iterate> |
</ul> |
<h2>Стоимость</h2> |
<p> |
<logic:empty name="event" property="price">пока не определена</logic:empty> |
<logic:notEmpty name="event" property="price"> |
<bean:write name="event" property="price" format="0.00" /> евро с носа |
</logic:notEmpty> |
</p> |
<backpath:link action="/participant/list" paramId="event" paramName="event" paramProperty="id">Участники</backpath:link> |
<backpath:link action="/apartment/list" paramId="event" paramName="event" paramProperty="id">Где разместиться</backpath:link> |
<backpath:link action="/transport/list" paramId="event" paramName="event" paramProperty="id">Как добраться</backpath:link> |
<backpath:notEmpty><backpath:backlink>Назад</backpath:backlink></backpath:notEmpty> |
</body> |
</html> |
/kickup/trunk/webapp/generalError.jsp |
---|
17,7 → 17,7 |
<h1>Пьянка XP - Ошибки</h1> |
<p>Ошибка сервера. То, что вы ищете - не найдено, или то, что вы хотите сделать - не делается. |
<backpath:backlink>Попробуйте еще раз</backpath:backlink> и сообщите нам, если все равно не работает.</p> |
<backpath:notEmpty><backpath:backlink>Попробуйте еще раз</backpath:backlink> и сообщите нам, если все равно не работает.</backpath:notEmpty></p> |
</body> |
/kickup/trunk/webapp/error.jsp |
---|
29,7 → 29,7 |
</strutsx:notEmpty> |
<br> |
<backpath:backlink>Назад</backpath:backlink> |
<backpath:notEmpty><backpath:backlink>Назад</backpath:backlink></backpath:notEmpty> |
</body> |
/kickup/trunk/webapp/WEB-INF/ak-kickup.tld |
---|
270,4 → 270,60 |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>write</name> |
<tagclass>ak.kickup.core.taglib.ExtendedWriteTag</tagclass> |
<bodycontent>empty</bodycontent> |
<attribute> |
<name>bundle</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filter</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>filterBr</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>format</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>formatKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ignore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>locale</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>true</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>property</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>scope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
</taglib> |
/kickup/trunk/webapp/WEB-INF/struts-config.xml |
---|
116,7 → 116,72 |
</global-forwards> |
<action-mappings> |
<!-- ** PARTICIPANTS ********************************************************************** --> |
<!-- == event ============================================================================= --> |
<action |
path="/index" |
type="ak.kickup.core.action.EventAction" |
parameter="list" |
> |
<forward name="default" path="/event/list.jsp" /> |
</action> |
<action |
path="/event/show" |
type="ak.kickup.core.action.EventAction" |
parameter="show" |
name="EventForm" |
validate="true" |
scope="request" |
> |
<forward name="default" path="/event/show.jsp" /> |
</action> |
<!-- == participant ========================================================================= --> |
<action |
path="/participant/list" |
type="ak.kickup.core.action.ParticipantAction" |
parameter="list" |
name="ParticipantListForm" |
validate="true" |
scope="request" |
> |
<forward name="default" path="/participant/list.jsp" /> |
</action> |
<!-- == transport =========================================================================== --> |
<action |
path="/transport/list" |
type="ak.kickup.core.action.TransportAction" |
parameter="list" |
name="ParticipantListForm" |
validate="true" |
scope="request" |
> |
<forward name="default" path="/transport/list.jsp" /> |
</action> |
<!-- == apartment =========================================================================== --> |
<action |
path="/apartment/list" |
type="ak.kickup.core.action.ApartmentAction" |
parameter="list" |
name="ParticipantListForm" |
validate="true" |
scope="request" |
> |
<forward name="default" path="/apartment/list.jsp" /> |
</action> |
<!-- ** ADMINISTATION ********************************************************************* --> |
<action |
path="/admin/index" |
forward="/admin/index.jsp" |
/> |