/kickup/trunk/src/ak/kickup/core/action/AdminParticipantAction.java |
---|
102,7 → 102,7 |
showForm.set("transportComment", participant.getTransportComment()); |
showForm.set("freeSleep", StringConverter.toString(participant.getFreeSleep())); |
showForm.set("sleepComment", participant.getSleepComment()); |
showForm.set("payed", participant.getPayed()); |
showForm.set("payed", StringConverter.toCurrency(participant.getPayed())); |
showForm.set("comment", participant.getComment()); |
showForm.set("privateComment", participant.getPrivateComment()); |
} |
200,7 → 200,7 |
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.setPayed(StringConverter.parseCurrency(theForm.get("payed"))); |
participant.setComment((String)theForm.get("comment")); |
participant.setPrivateComment((String)theForm.get("privateComment")); |
/kickup/trunk/src/ak/kickup/core/CoreResources.properties |
---|
37,6 → 37,7 |
ak.kickup.core.participant.edit.ident.wrong=Неизвестный номер |
ak.kickup.core.participant.edit.registration.unavailable=Время регистрации прошло |
ak.kickup.core.participant.edit.unregistration.unavailable=Время отмены регистрации прошло |
ak.kickup.core.participant.edit.payed.wrong=Оплаченная сумма должна быть числом, например 12,35 |
ak.kickup.core.mail.send.error=Не могу отправить вам e-mail. Проверьте свой адрес и обратитесь к организаторам. |
ak.kickup.core.mail.read.error=Не могу отправить вам e-mail. Ошибка в системе. |
ak.kickup.core.mail.subject=Регистрация на {0} |
/kickup/trunk/src/ak/kickup/core/model/Participant.java |
---|
1,5 → 1,6 |
package ak.kickup.core.model; |
import java.math.BigDecimal; |
import java.util.Date; |
import java.util.Map; |
import java.util.HashMap; |
17,6 → 18,12 |
public class Participant |
extends GeneralModelObject |
{ |
public static final int PAYED_NULL = 0; // event price is nto defined |
public static final int PAYED_NONE = 1; // noit yet payed |
public static final int PAYED_LESS = 2; // payed but less then needed |
public static final int PAYED_EXACTLY = 3; // payed exactly as needed |
public static final int PAYED_MORE = 4; // payed more then needed |
private String ident; |
private String nick; |
private String email; |
32,7 → 39,7 |
private String transportComment; |
private Integer freeSleep; |
private String sleepComment; |
private Boolean payed; |
private BigDecimal payed; |
private String comment; |
private String privateComment; |
private Collection acts; // Collection(ParticipantAct) |
261,16 → 268,36 |
* |
* @hibernate.property |
*/ |
public Boolean getPayed() |
public BigDecimal getPayed() |
{ |
return payed; |
} |
public void setPayed(Boolean payed) |
public void setPayed(BigDecimal payed) |
{ |
this.payed = payed; |
} |
public BigDecimal getMustPay() |
{ |
if(event.getPrice() == null || persons == null) return null; |
return new BigDecimal(event.getPrice().doubleValue() * persons.intValue()); |
} |
public int getPayedStatus() |
{ |
if(event.getPrice() == null || persons == null) return PAYED_NULL; |
if(payed == null) return PAYED_NONE; |
double needed = event.getPrice().doubleValue() * persons.intValue(); |
double p = payed.doubleValue(); |
if(Math.abs(needed - p) < 0.001) return PAYED_EXACTLY; |
else if(needed < p) return PAYED_MORE; |
else return PAYED_LESS; |
} |
/** |
* |
* @hibernate.property |
/kickup/trunk/src/ak/kickup/core/taglib/CurrentLinkTag.java |
---|
0,0 → 1,230 |
// based on Jakarta Struts |
package ak.kickup.core.taglib; |
import java.net.MalformedURLException; |
import java.util.Map; |
import java.util.HashMap; |
import javax.servlet.jsp.JspException; |
import org.apache.struts.util.RequestUtils; |
import org.apache.struts.taglib.logic.IterateTag; |
import ak.backpath.taglib.ForwardLinkTag; |
public class CurrentLinkTag |
extends ForwardLinkTag |
{ |
protected String paramId2 = null; |
public String getParamId2() |
{ |
return this.paramId2; |
} |
public void setParamId2(String paramId2) |
{ |
this.paramId2 = paramId2; |
} |
protected String paramName2 = null; |
public String getParamName2() |
{ |
return this.paramName2; |
} |
public void setParamName2(String paramName2) |
{ |
this.paramName2 = paramName2; |
} |
protected String paramProperty2 = null; |
public String getParamProperty2() |
{ |
return this.paramProperty2; |
} |
public void setParamProperty2(String paramProperty2) |
{ |
this.paramProperty2 = paramProperty2; |
} |
protected String paramScope2 = null; |
public String getParamScope2() |
{ |
return this.paramScope2; |
} |
public void setParamScope2(String paramScope2) |
{ |
this.paramScope2 = paramScope2; |
} |
protected String paramId3 = null; |
public String getParamId3() |
{ |
return this.paramId3; |
} |
public void setParamId3(String paramId3) |
{ |
this.paramId3 = paramId3; |
} |
protected String paramName3 = null; |
public String getParamName3() |
{ |
return this.paramName3; |
} |
public void setParamName3(String paramName3) |
{ |
this.paramName3 = paramName3; |
} |
protected String paramProperty3 = null; |
public String getParamProperty3() |
{ |
return this.paramProperty3; |
} |
public void setParamProperty3(String paramProperty3) |
{ |
this.paramProperty3 = paramProperty3; |
} |
protected String paramScope3 = null; |
public String getParamScope3() |
{ |
return this.paramScope3; |
} |
public void setParamScope3(String paramScope3) |
{ |
this.paramScope3 = paramScope3; |
} |
protected String paramId4 = null; |
public String getParamId4() |
{ |
return this.paramId4; |
} |
public void setParamId4(String paramId4) |
{ |
this.paramId4 = paramId4; |
} |
protected String paramName4 = null; |
public String getParamName4() |
{ |
return this.paramName4; |
} |
public void setParamName4(String paramName4) |
{ |
this.paramName4 = paramName4; |
} |
protected String paramProperty4 = null; |
public String getParamProperty4() |
{ |
return this.paramProperty4; |
} |
public void setParamProperty4(String paramProperty4) |
{ |
this.paramProperty4 = paramProperty4; |
} |
protected String paramScope4 = null; |
public String getParamScope4() |
{ |
return this.paramScope4; |
} |
public void setParamScope4(String paramScope4) |
{ |
this.paramScope4 = paramScope4; |
} |
public void release() |
{ |
super.release(); |
paramId2 = null; |
paramName2 = null; |
paramProperty2 = null; |
paramScope2 = null; |
paramId3 = null; |
paramName3 = null; |
paramProperty3 = null; |
paramScope3 = null; |
paramId4 = null; |
paramName4 = null; |
paramProperty4 = null; |
paramScope4 = null; |
} |
protected String calculateURL() |
throws JspException |
{ |
Map params = RequestUtils.computeParameters(pageContext, paramId, paramName, paramProperty, paramScope, |
name, property, scope, transaction); |
Map params2 = RequestUtils.computeParameters(pageContext, paramId2, paramName2, paramProperty2, paramScope2, |
null, null, null, false); |
if(params2 != null) params.putAll(params2); |
Map params3 = RequestUtils.computeParameters(pageContext, paramId3, paramName3, paramProperty3, paramScope3, |
null, null, null, false); |
if(params3 != null) params.putAll(params3); |
Map params4 = RequestUtils.computeParameters(pageContext, paramId4, paramName4, paramProperty4, paramScope4, |
null, null, null, false); |
if(params4 != null) params.putAll(params4); |
if(indexed) { |
IterateTag iterateTag = (IterateTag) findAncestorWithClass(this, IterateTag.class); |
if(iterateTag == null) { |
JspException e = new JspException(messages.getMessage("indexed.noEnclosingIterate")); |
RequestUtils.saveException(pageContext, e); |
throw e; |
} |
if(params == null) params = new HashMap(); |
if(indexId != null) |
params.put(indexId, Integer.toString(iterateTag.getIndex())); |
else |
params.put("index", Integer.toString(iterateTag.getIndex())); |
} |
String url = null; |
try { |
url = RequestUtils.computeURL(pageContext, forward, href, page, action, params, anchor, false); |
} |
catch(MalformedURLException ex) { |
RequestUtils.saveException(pageContext, ex); |
throw new JspException(messages.getMessage("rewrite.url", ex.toString())); |
} |
if(url == null) return null; |
// add backpath |
String currentParams = findBackPath().getCurrentParams(); |
if(currentParams == null) return url; |
if(url.indexOf("?") > 0) |
return url + "&" + backPathParam + "=" + currentParams; |
else |
return url + "?" + backPathParam + "=" + currentParams; |
} |
} |
/kickup/trunk/webapp/participant/edit.jsp |
---|
93,11 → 93,8 |
<td colspan=2><html:text property="phone" /></td> |
</tr> |
<tr> |
<th>Деньги переведены и получены</th> |
<td colspan=2> |
<logic:equal name="participant" property="payed" value="true">да</logic:equal> |
<logic:notEqual name="participant" property="payed" value="true">нет</logic:notEqual> |
</td> |
<th>Переведено и получено, евро</th> |
<td colspan=2><bean:write name="participant" property="payed" format="0.00" /></td> |
</tr> |
<tr> |
<th>Дополнительная информация</th> |
/kickup/trunk/webapp/style/general.css |
---|
1,3 → 1,20 |
body { font-family: verdana, sans-serif; } |
h1 { font-weight: bold; font-size: x-large; color: #5A2A9C; } |
h2 { font-weight: bold; font-size: large; color: #5A2A9C; } |
.error { color:red; } |
.payed { background-color:white; } |
.notpayed { background-color:#FFC0C0; } |
.payedNull { background-color: white; } |
.payedNone { background-color: #FFC0C0; } |
.payedLess { background-color: #F90B5F; } |
.payedExactly { background-color: #67EF5D; } |
.payedMore { background-color: #E476F8; } |
.eventName { font-weight: bold; font-size: x-large; } |
.personCount { font-weight: bold; } |
.eventDate { font-weight: bold; margin:4px; } |
.eventPlace { font-weight: bold; margin:4px; } |
.eventAddress { margin:4px; } |
.eventAdmins { font-weight: bold; } |
.actParticipants { font-size: small; text-decoration: none; } |
/kickup/trunk/webapp/event/show.jsp |
---|
15,7 → 15,52 |
<body> |
<h1><bean:write name="event" property="name" /></h1> |
<!-- header begin --> |
<table border=0> |
<tr> |
<td align=left valign=top> |
<div class="eventName"><bean:write name="event" property="name" /></div> |
</td> |
<td align=right valign=top colspan=2> |
<div class="eventDate"> |
<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> |
</div> |
<div class="eventPlace"><bean:write name="event" property="place" /></div> |
</td> |
</tr> |
<tr> |
<td align=left valign=bottom colspan=2> |
Уже зарегистрированно <span class="personCount"><bean:write name="event" property="personCount" /></span> участников |
</td> |
<td align=right valign=bottom> |
<logic:equal name="event" property="registrationAvailable" value="true"> |
<backpath:link action="/participant/register" paramId="event" paramName="event" paramProperty="id"><img src="<strutsx:root />/images/register.gif" alt="Зарегистрироваться" border=0></backpath:link> |
</logic:equal> |
</td> |
</tr> |
<tr> |
<td colspan=3> </td> |
</tr> |
<tr> |
<td align=left valign=top colspan=2> |
<kickup:currentLink action="/event/show" paramId="id" paramName="event" paramProperty="id"><img src="<strutsx:root />/images/show.gif" alt="Программа" border=0></kickup:currentLink> |
<kickup:currentLink action="/apartment/list" paramId="event" paramName="event" paramProperty="id"><img src="<strutsx:root />/images/apartments.gif" alt="Программа" border=0></kickup:currentLink> |
<kickup:currentLink action="/transport/list" paramId="event" paramName="event" paramProperty="id"><img src="<strutsx:root />/images/transport.gif" alt="Программа" border=0></kickup:currentLink> |
<kickup:currentLink action="/participant/list" paramId="event" paramName="event" paramProperty="id"><img src="<strutsx:root />/images/participants.gif" alt="Программа" border=0></kickup:currentLink> |
</td> |
<td align=right valign=top> |
<kickup:currentLink action="/participant/ident" paramId="event" paramName="event" paramProperty="id"><img src="<strutsx:root />/images/ident.gif" alt="Программа" border=0></kickup:currentLink> |
</td> |
</tr> |
<tr> |
<td colspan=3><img src="<strutsx:root />/images/line.gif" alt=""></td> |
</tr> |
</table> |
<!-- header end --> |
<strutsx:errorsIterator id="errors" /> |
<strutsx:notEmpty name="errors"> |
30,21 → 75,10 |
<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> |
<p>Организаторы: <bean:write name="event" property="admins" /></p> |
<p>Контактный e-mail: <a href="mailto:<bean:write name="event" property="email" />"><bean:write name="event" property="email" /></a></p> |
<h2>Место проведения</h2> |
<p><bean:write name="event" property="place" /></p> |
<p><kickup:write name="event" property="address" filterBr="true" /></p> |
<div class="eventPlace"><bean:write name="event" property="place" /></div> |
<div class="eventAddress"><kickup:write name="event" property="address" filterBr="true" /></div> |
<h2>Планируемые мероприятия</h2> |
51,7 → 85,7 |
<ul> |
<logic:iterate name="acts" id="a"> |
<li><bean:write name="a" property="act.name" /> |
<kickup:link action="/act/list" paramId="event" paramName="event" paramProperty="id" paramId2="act" paramName2="a" paramProperty2="act.id">(участники)</kickup:link></li> |
<kickup:link action="/act/list" paramId="event" paramName="event" paramProperty="id" paramId2="act" paramName2="a" paramProperty2="act.id"><span class="actParticipants">[участники]</span></kickup:link></li> |
</logic:iterate> |
</ul> |
64,24 → 98,26 |
</logic:notEmpty> |
</p> |
<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> |
</p> |
<!-- footer begin --> |
<table border=0> |
<tr> |
<td colspan=2><img src="<strutsx:root />/images/line.gif" alt=""></td> |
</tr> |
<tr> |
<td>По всем вопросам обращайтесь к организаторам: <span class="eventAdmins"><bean:write name="event" property="admins" /></span></td> |
<td align=right valign=top> |
<html:link page="/admin"><img src="<strutsx:root />/images/admin.gif" alt="Администрирование" border=0></html:link> |
</td> |
</tr> |
<tr> |
<td>Контактный e-mail: <a href="mailto:<bean:write name="event" property="email" />"><bean:write name="event" property="email" /></a></td> |
<td align=right valign=top> |
<html:link page="/"><img src="<strutsx:root />/images/list.gif" alt="Администрирование" border=0></html:link> |
</td> |
<tr> |
</table> |
<!-- footer end --> |
<p> |
<logic:equal name="event" property="registrationAvailable" value="true"> |
<backpath:link action="/participant/register" paramId="event" paramName="event" paramProperty="id">Зарегистрироваться</backpath:link> |
</logic:equal> |
<backpath:link action="/participant/ident" paramId="event" paramName="event" paramProperty="id">Изменить свои данные</backpath:link> |
</p> |
<p><backpath:notEmpty><backpath:backlink>Назад</backpath:backlink></backpath:notEmpty></p> |
<p><html:link page="/admin">Администрирование</html:link></<> |
</body> |
</html> |
/kickup/trunk/webapp/images/list.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/kickup/trunk/webapp/images/transport.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/kickup/trunk/webapp/images/apartments.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/kickup/trunk/webapp/images/show.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/kickup/trunk/webapp/images/Sav4252.tmp |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/webapp/images/participants.gif |
---|
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/kickup/trunk/webapp/images/ident.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/kickup/trunk/webapp/images/register.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/kickup/trunk/webapp/images/line.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/kickup/trunk/webapp/images/admin.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+application/octet-stream |
\ No newline at end of property |
/kickup/trunk/webapp/WEB-INF/ak-kickup.tld |
---|
272,6 → 272,271 |
</tag> |
<tag> |
<name>currentLink</name> |
<tagclass>ak.kickup.core.taglib.CurrentLinkTag</tagclass> |
<attribute> |
<name>accesskey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>action</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>anchor</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>forward</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>href</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexed</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>indexId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>linkName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>name</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onblur</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>ondblclick</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onfocus</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeydown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeypress</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onkeyup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousedown</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmousemove</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseout</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseover</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>onmouseup</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>page</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId2</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName2</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty2</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope2</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId3</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName3</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty3</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope3</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramId4</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramName4</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramProperty4</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>paramScope4</name> |
<required>false</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> |
<attribute> |
<name>style</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleClass</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>styleId</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>tabindex</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>target</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>title</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>titleKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>transaction</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathKey</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathParam</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>backPathIgnore</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
<attribute> |
<name>zip</name> |
<required>false</required> |
<rtexprvalue>true</rtexprvalue> |
</attribute> |
</tag> |
<tag> |
<name>write</name> |
<tagclass>ak.kickup.core.taglib.ExtendedWriteTag</tagclass> |
<bodycontent>empty</bodycontent> |
/kickup/trunk/webapp/WEB-INF/struts-config.xml |
---|
105,7 → 105,7 |
<form-property name="transportComment" type="java.lang.String" /> |
<form-property name="freeSleep" type="java.lang.String" /> |
<form-property name="sleepComment" type="java.lang.String" /> |
<form-property name="payed" type="java.lang.Boolean" /> |
<form-property name="payed" type="java.lang.String" /> |
<form-property name="comment" type="java.lang.String" /> |
<form-property name="privateComment" type="java.lang.String" /> |
<form-property name="acts" type="ak.kickup.core.form.ParticipantActBean[]" |
/kickup/trunk/webapp/WEB-INF/validation.xml |
---|
133,6 → 133,9 |
<field property="freeSleep" depends="integer"> |
<msg name="integer" key="ak.kickup.core.participant.edit.freesleep.wrong" /> |
</field> |
<field property="price" depends="currency"> |
<msg name="currency" key="ak.kickup.core.participant.edit.payed.wrong" /> |
</field> |
</form> |
<form name="ParticipantRegisterForm"> |
/kickup/trunk/webapp/admin/participant/edit.jsp |
---|
35,82 → 35,86 |
<table border=1> |
<tr> |
<th>Кодовый номер</th> |
<td colspan=3><bean:write name="participant" property="ident" /> </td> |
<td colspan=2><bean:write name="participant" property="ident" /> </td> |
</tr> |
<tr> |
<th>Ник</th> |
<td colspan=3><html:text property="nick" /></td> |
<td colspan=2><html:text property="nick" /></td> |
</tr> |
<tr> |
<th>e-mail</th> |
<td colspan=3><html:text property="email" /></td> |
<td colspan=2><html:text property="email" /></td> |
</tr> |
<tr> |
<th>Показ e-mail разрешен</th> |
<td colspan=3><html:checkbox property="emailPublic" /></td> |
<td colspan=2><html:checkbox property="emailPublic" /></td> |
</tr> |
<tr> |
<th>Имя</th> |
<td colspan=3><html:text property="name" /></td> |
<td colspan=2><html:text property="name" /></td> |
</tr> |
<tr> |
<th>Телефон</th> |
<td colspan=3><html:text property="phone" /></td> |
<td colspan=2><html:text property="phone" /></td> |
</tr> |
<tr> |
<th>Количество человек</th> |
<td colspan=3><html:text property="persons" /></td> |
<td colspan=2><html:text property="persons" /></td> |
</tr> |
<tr> |
<th>Выезд из PLZ</th> |
<td colspan=3><html:text property="fromZip" /></td> |
<td colspan=2><html:text property="fromZip" /></td> |
</tr> |
<tr> |
<th>Выезд из города</th> |
<td colspan=3><html:text property="fromCity" /></td> |
<td colspan=2><html:text property="fromCity" /></td> |
</tr> |
<tr> |
<th>Время отправления</th> |
<td colspan=3><html:text property="departure" /></td> |
<td colspan=2><html:text property="departure" /></td> |
</tr> |
<tr> |
<th>Свободных мест в машине</th> |
<td colspan=3><html:text property="freeTransport" /></td> |
<td colspan=2><html:text property="freeTransport" /></td> |
</tr> |
<tr> |
<th>Условия транспортировки</th> |
<td colspan=3><html:textarea property="transportComment" /></td> |
<td colspan=2><html:textarea property="transportComment" /></td> |
</tr> |
<tr> |
<th>Свободных спальных мест</th> |
<td colspan=3><html:text property="freeSleep" /></td> |
<td colspan=2><html:text property="freeSleep" /></td> |
</tr> |
<tr> |
<th>Условия ночевки</th> |
<td colspan=3><html:textarea property="sleepComment" /></td> |
<td colspan=2><html:textarea property="sleepComment" /></td> |
</tr> |
<tr> |
<th>Дополнительная информация</th> |
<td colspan=3><html:textarea property="comment" /></td> |
<td colspan=2><html:textarea property="comment" /></td> |
</tr> |
<tr> |
<th>Оплачено</th> |
<td colspan=3><html:checkbox property="payed" /></td> |
<th>Оплачено, евро</th> |
<td><html:text property="payed" /></td> |
<td> |
<logic:notEmpty name="participant" property="mustPay"> |
(должен заплатить: <bean:write name="participant" property="mustPay" format="0.00" />) |
</logic:notEmpty> |
</td> |
</tr> |
<tr> |
<th>Комментарии организаторов</th> |
<td colspan=3><html:textarea property="privateComment" /></td> |
<td colspan=2><html:textarea property="privateComment" /></td> |
</tr> |
<logic:notEmpty name="actList" property="objects"> |
<tr> |
<th colspan=4>Участвует в</th> |
<th colspan=3>Участвует в</th> |
</tr> |
<tr> |
<td>Название</td> |
<td>Включить</td> |
<td>Дополнительно</td> |
<td> </td> |
</tr> |
<logic:iterate name="ParticipantEditForm" property="acts" id="acts" indexId="iid"> |
<tr> |
120,13 → 124,12 |
</th> |
<td><html:checkbox name="acts" property="selected" indexed="true" /></td> |
<td><html:text name="acts" property="comment" indexed="true" /></td> |
<td> </td> |
</tr> |
</logic:iterate> |
</logic:notEmpty> |
<tr> |
<td colspan=4> |
<td colspan=3> |
<html:submit>Сохранить</html:submit> |
<backpath:notEmpty><backpath:backlink>Отменить</backpath:backlink></backpath:notEmpty> |
</td> |
/kickup/trunk/webapp/admin/participant/list.jsp |
---|
28,6 → 28,23 |
</div> |
</strutsx:notEmpty> |
<!-- legend begin --> |
<div style="float:right; width:200px; background-color:#E0E0E0"> |
<logic:empty name="event" property="price"> |
<div style="margin: 1em; ">Размер оплаты участия в этой пьянке еще не определен, поэтому статус оплаты не показан.</div> |
</logic:empty> |
<logic:notEmpty name="event" property="price"> |
<table border=1 width=100%> |
<tr><th colspan=2>Легенда</th><tr> |
<tr><td class="payedNone" style="width:50px;"> </td><td>Не заплатил</td></tr> |
<tr><td class="payedLess"> </td><td>Недоплатил</td></tr> |
<tr><td class="payedExactly"> </td><td>Все точно</td></tr> |
<tr><td class="payedMore"> </td><td>Переплатил</td></tr> |
</table> |
</logic:notEmpty> |
</div> |
<!-- legend end --> |
<table border=1> |
<tr> |
<th>Кодовый номер</th> |
35,23 → 52,25 |
<th>e-mail</th> |
<th>Имя</th> |
<th>Количество</th> |
<th>Оплачено</th> |
<th>Оплачено, евро</th> |
<th> </th> |
<th> </th> |
</tr> |
<logic:iterate name="participants" id="p"> |
<tr class="<logic:equal name="p" property="payed" value="true">payed</logic:equal><logic:notEqual name="p" property="payed" value="true">notpayed</logic:notEqual>"> |
<tr class="<logic:equal name="p" property="payedStatus" value="0" |
>payedNull</logic:equal><logic:equal name="p" property="payedStatus" value="1" |
>payedNone</logic:equal><logic:equal name="p" property="payedStatus" value="2" |
>payedLess</logic:equal><logic:equal name="p" property="payedStatus" value="3" |
>payedExactly</logic:equal><logic:equal name="p" property="payedStatus" value="4" |
>payedMore</logic:equal>"> |
<td><bean:write name="p" property="ident" /></td> |
<td><bean:write name="p" property="nick" /> </td> |
<td><a href="mailto:<bean:write name="p" property="email" />"><bean:write name="p" property="email" /></a></td> |
<td><bean:write name="p" property="name" /> </td> |
<td><bean:write name="p" property="persons" /> </td> |
<td><bean:write name="p" property="payed" format="0.00" /> </td> |
<td> |
<logic:equal name="p" property="payed" value="true">да</logic:equal> |
<logic:notEqual name="p" property="payed" value="true">нет</logic:notEqual> |
</td> |
<td> |
<kickup:link action="/admin/participant/edit" paramId="id" paramName="p" paramProperty="id" paramId2="event" paramName2="event" paramProperty2="id">редактировать</kickup:link> |
</td> |
<td> |
/kickup/trunk/sql/00.tables.sql |
---|
149,7 → 149,7 |
transport_comment text, |
free_sleep integer, |
sleep_comment text, |
payed char(1) default ' ', |
payed decimal, |
comment text, |
private_comment text, |
mod_stamp timestamp, |