Subversion Repositories general

Compare Revisions

No changes between revisions

Ignore whitespace Rev 968 → Rev 969

/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
.error { color:red; }
.payed { background-color:white; }
.notpayed { background-color:#FFC0C0; }
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; }
 
.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>&nbsp;</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
/trunk/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
271,6 → 271,271
</attribute>
</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>
/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" />&nbsp;</td>
<td colspan=2><bean:write name="participant" property="ident" />&nbsp;</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>&nbsp;</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>&nbsp;</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;">&nbsp;</td><td>Не заплатил</td></tr>
<tr><td class="payedLess">&nbsp;</td><td>Недоплатил</td></tr>
<tr><td class="payedExactly">&nbsp;</td><td>Все точно</td></tr>
<tr><td class="payedMore">&nbsp;</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>&nbsp;</th>
<th>&nbsp;</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" />&nbsp;</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" />&nbsp;</td>
<td><bean:write name="p" property="persons" />&nbsp;</td>
<td><bean:write name="p" property="payed" format="0.00" />&nbsp;</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,