Subversion Repositories general

Compare Revisions

No changes between revisions

Ignore whitespace Rev 1002 → Rev 1003

/kickup/tags/release-1.0/src/ak/kickup/core/RegistrationMail.txt
0,0 → 1,19
Ваш e-mail был использован при регистрации на "%eventName%".
Если вы ничего об этом не знаете - просто проигнорируйте это письмо.
 
Если же все верно, и это вы зарегистрировались, то ваш регистрационный
номер: %ident%. Он понадобится, если вы захотите удалить регистрацию
или изменить свои данные.
 
Участие в "%eventName%" стоит %eventPrice% евро на одного взрослого.
Переведите, пожалуйста, деньги на счет:
 
%eventMoneyAccount%
 
В качестве Verwendungszweck укажите ваш номер, %ident%.
 
Если у вас есть вопросы, обращайтесь к организаторам
(%eventAdmins%) по адресу %eventEmail% или телефонам %eventPhones%
 
Если вы хотите еще раз посмотреть информацию о "%eventName%" или
изменить свои данные, то заходите на http://www.26th.net/kickup
/kickup/tags/release-1.0/src/ak/kickup/core/RemindMail.txt
0,0 → 1,16
Высылаем вам запрошенную информацию.
 
Регистрационный номер: %ident%.
 
Участие в "%eventName%" стоит %eventPrice% евро на одного взрослого.
Переведите, пожалуйста, деньги на счет:
 
%eventMoneyAccount%
 
В качестве Verwendungszweck укажите ваш номер, %ident%.
 
Если у вас есть вопросы, обращайтесь к организаторам
(%eventAdmins%) по адресу %eventEmail% или телефонам %eventPhones%
 
Если вы хотите еще раз посмотреть информацию о "%eventName%" или
изменить свои данные, то заходите на http://www.26th.net/kickup
/kickup/tags/release-1.0/src/ak/kickup/core/taglib/ExtendedLinkTag.java
0,0 → 1,244
// 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 ExtendedLinkTag
extends ForwardLinkTag
{
protected boolean backpath = false;
 
public boolean getBackpath()
{
return this.backpath;
}
 
public void setBackpath(boolean backpath)
{
this.backpath = backpath;
}
 
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();
backpath = false;
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 || !backpath) return url;
 
// add backpath
String forwardParams = findBackPath().getForwardParams();
if(forwardParams == null) return url;
 
forwardParams = forwardParams.replaceAll("&", "&");
if(url.indexOf("?") > 0)
return url + "&" + backPathParam + "=" + forwardParams;
else
return url + "?" + backPathParam + "=" + forwardParams;
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/taglib/CurrentLinkTag.java
0,0 → 1,231
// 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;
 
currentParams = currentParams.replaceAll("&", "&");
if(url.indexOf("?") > 0)
return url + "&" + backPathParam + "=" + currentParams;
else
return url + "?" + backPathParam + "=" + currentParams;
}
}
/kickup/tags/release-1.0/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/tags/release-1.0/src/ak/kickup/core/CoreResources.properties
0,0 → 1,49
ak.kickup.core.act.name.nonunique=Мероприятие с таким названием уже существует
ak.kickup.core.apartment.name.nonunique=Гостиница с таким названием уже существует
ak.kickup.core.event.name.nonunique=Пьянка с таким названием уже существует
ak.kickup.core.participant.email.nonunique=Этот e-mail уже зарегистрирован на эту пьянку. Если вы забыли свой номер - обратитесь к организаторам.
ak.kickup.core.participant.email.nonunique.admin=Этот e-mail уже зарегистрирован на эту пьянку
ak.kickup.core.access.denied=Сюда нельзя!
ak.kickup.core.event.edit.id.wrong=Неизвестная пьянка, выбирайти из списка
ak.kickup.core.event.edit.name.required=Название обязательно
ak.kickup.core.event.edit.admins.required=Имена организаторов обязательны
ak.kickup.core.event.edit.email.required=e-mail обязателен
ak.kickup.core.event.edit.email.wrong=Некорректный e-mail
ak.kickup.core.event.edit.start.wrong=Дата начала должна быть в виде ДД.ММ.ГГГГ
ak.kickup.core.event.edit.stop.wrong=Дата окончания должна быть в виде ДД.ММ.ГГГГ
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.act.delete.usedbyevent=Это мероприятие используется в пьянках, не могу удалить
ak.kickup.core.act.delete.usedbyparticipant=Это мероприятие используется участниками, не могу удалить
ak.kickup.core.apartment.edit.id.wrong=Неизвестная гостиница, выбирайти из списка
ak.kickup.core.apartment.edit.name.required=Название обязательно
ak.kickup.core.apartment.edit.price.wrong=Цена должна быть числом, например 12,35
ak.kickup.core.apartment.delete.usedbyevent=Эта гостиница используется в пьянках, не могу удалить
ak.kickup.core.participant.edit.id.wrong=Неизвестный участник, выбирайти из списка
ak.kickup.core.participant.edit.event.wrong=Неизвестная пьянка, выбирайти из списка
ak.kickup.core.participant.edit.nick.required=Ник обязателен
ak.kickup.core.participant.edit.email.required=e-mail обязателен
ak.kickup.core.participant.edit.email.wrong=Некорректный e-mail
ak.kickup.core.participant.edit.persons.required=Количество не указано
ak.kickup.core.participant.edit.persons.wrong=Количество должно быть положительным целым числом
ak.kickup.core.participant.edit.freetransport.wrong=Количество мест в машине должно быть целым числом
ak.kickup.core.participant.edit.departure.wrong=Время отправления дожно быть, например, 20.10.2004 13:55
ak.kickup.core.participant.edit.freesleep.wrong=Количество спальных мест должно быть целым числом
ak.kickup.core.participant.edit.ident.required=Вы не указали ваш номер
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.participant.remind.email.required=Вы не указали свой e-mail
ak.kickup.core.participant.remind.email.wrong=Некорректный e-mail
ak.kickup.core.participant.remind.email.notfound=Этот e-mail не зарегистрирован
ak.kickup.core.mail.send.error=Не могу отправить вам e-mail. Проверьте свой адрес и обратитесь к организаторам.
ak.kickup.core.mail.read.error=Не могу отправить вам e-mail. Ошибка в системе.
ak.kickup.core.mail.subject=Registration for {0}
ak.kickup.core.remindmail.subject=Registration number remind for {0}
 
org.apache.struts.taglib.bean.format.sql.timestamp=dd.MM.yyyy HH:mm:ss.SSS
/kickup/tags/release-1.0/src/ak/kickup/core/mail/Messages.java
0,0 → 1,116
package ak.kickup.core.mail;
 
import java.util.*;
import java.io.*;
import java.text.MessageFormat;
 
import javax.mail.Session;
import javax.mail.Message;
import javax.mail.Transport;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.InternetAddress;
 
import ak.kickup.util.UserException;
import ak.kickup.util.StringConverter;
import ak.kickup.core.model.Participant;
 
public abstract class Messages
{
public static final String HOST = "localhost";
public static final String CHARSET = "windows-1251";
 
public static void send(String from, String to, String subject, String body)
throws UserException
{
try {
Properties props = new Properties();
props.put("mail.smtp.host", HOST);
 
Session session = Session.getInstance(props, null);
MimeMessage msg = new MimeMessage(session);
InternetAddress[] address = { new InternetAddress(to) };
 
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(subject, CHARSET);
msg.setSentDate(new Date());
msg.setText(body, CHARSET);
 
Transport.send(msg);
}
catch(Exception ex) {
throw new UserException("ak.kickup.core.mail.send.error");
}
}
 
public static void sendRegistrationMessage(Participant participant, String ip)
throws UserException
{
prepareMail(participant, ip, "ak.kickup.core.mail.subject", "ak/kickup/core/RegistrationMail.txt");
}
 
public static void sendRemindMessage(Participant participant, String ip)
throws UserException
{
prepareMail(participant, ip, "ak.kickup.core.remindmail.subject", "ak/kickup/core/RemindMail.txt");
}
 
private static void prepareMail(Participant participant, String ip, String subjectKey, String messageFile)
throws UserException
{
String subject;
StringBuffer message = new StringBuffer();
 
// get subject
ResourceBundle res = ResourceBundle.getBundle("ak/kickup/core/CoreResources");
String subjectString = res.getString(subjectKey);
subject = MessageFormat.format(subjectString,
new String[] { participant.getEvent().getName() } );
 
// read message template
try {
ClassLoader cl = Messages.class.getClassLoader();
if(cl == null) cl = ClassLoader.getSystemClassLoader();
 
BufferedReader file = new BufferedReader(new InputStreamReader(cl.getResourceAsStream(
messageFile), "UTF-8"));
char[] buf = new char[2048];
int bufLen;
while((bufLen = file.read(buf)) >= 0) {
message.append(buf);
}
}
catch(Exception ex) {
throw new UserException("ak.kickup.core.mail.read.error");
}
 
// replace tokens
replace(message, "ident", participant.getIdent());
replace(message, "eventName", participant.getEvent().getName());
replace(message, "eventPrice",
StringConverter.toCurrency(participant.getEvent().getPrice()));
replace(message, "eventMoneyAccount", participant.getEvent().getMoneyAccount());
replace(message, "eventAdmins", participant.getEvent().getAdmins());
replace(message, "eventEmail", participant.getEvent().getEmail());
replace(message, "eventPhones", participant.getEvent().getPhones());
replace(message, "", "%");
 
// send message
send(participant.getEvent().getEmail(), participant.getEmail(),
subject, message.toString());
}
 
private static void replace(StringBuffer message, String token, String value)
{
if(value == null) value = "";
 
String s = "%" + token + "%";
int slen = s.length();
int vlen = value.length();
int pos = 0;
while((pos = message.indexOf(s, pos)) >= 0) {
message.replace(pos, pos + slen, value);
pos += vlen;
}
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/action/ParticipantAction.java
0,0 → 1,343
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.kickup.util.StringConverter;
import ak.kickup.util.UserException;
import ak.kickup.util.ModelSecurityException;
import ak.kickup.core.model.Participant;
import ak.kickup.core.model.ParticipantManager;
import ak.kickup.core.model.Event;
import ak.kickup.core.model.EventManager;
import ak.kickup.core.model.ParticipantAct;
import ak.kickup.core.model.EventAct;
import ak.kickup.core.form.ParticipantActBean;
import ak.kickup.core.mail.Messages;
 
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()) || "update".equals(mapping.getParameter())
|| "unregister".equals(mapping.getParameter()) || "login".equals(mapping.getParameter())
|| "remind".equals(mapping.getParameter()))
{
DynaActionForm theForm = (DynaActionForm)form;
Long eventId = StringConverter.parseLong(theForm.get("event"));
Event event = (eventId == null)
? null : EventManager.getInstance().get(eventId, true);
request.setAttribute("event", event);
 
if("submit".equals(mapping.getParameter()) || "update".equals(mapping.getParameter()))
initLists(request, event);
}
 
if("update".equals(mapping.getParameter())) {
DynaActionForm theForm = (DynaActionForm)form;
String ident = ((String)theForm.get("ident")).trim();
request.setAttribute("participant",
(ident == null) ? null : ParticipantManager.getInstance().findForIdent(ident));
}
}
 
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("ident".equals(mapping.getParameter())) {
DynaActionForm theForm = (DynaActionForm)form;
Long eventId = StringConverter.parseLong(theForm.get("event"));
Event event = EventManager.getInstance().get(eventId, true);
request.setAttribute("event", event);
return mapping.findForward("default");
}
else if("register".equals(mapping.getParameter())) {
DynaActionForm theForm = (DynaActionForm)form;
Long eventId = StringConverter.parseLong(theForm.get("event"));
Event event = EventManager.getInstance().get(eventId, true);
DynaActionForm showForm = (DynaActionForm)RequestUtilsX.populateActionForm(
this, request, "ParticipantRegisterForm");
 
showForm.set("emailPublic", Boolean.TRUE);
 
// acts
List acts = new ArrayList(event.getActCollection());
ParticipantActBean[] a = new ParticipantActBean[acts.size()];
Collections.sort(acts, EventManager.ACT_NAME_COMPARATOR);
for(int i = 0; i < acts.size(); i++) {
EventAct act = (EventAct)acts.get(i);
a[i] = new ParticipantActBean(act.getAct(), null);
}
showForm.set("acts", a);
 
request.setAttribute("event", event);
initLists(request, event);
return mapping.findForward("default");
}
else if("login".equals(mapping.getParameter())) {
DynaActionForm theForm = (DynaActionForm)form;
Long eventId = StringConverter.parseLong(theForm.get("event"));
Event event = EventManager.getInstance().get(eventId, true);
String ident = ((String)theForm.get("ident")).trim();
DynaActionForm showForm = (DynaActionForm)RequestUtilsX.populateActionForm(
this, request, "ParticipantRegisterEditForm");
 
request.setAttribute("event", event);
 
Participant participant = ParticipantManager.getInstance().findForIdent(ident);
if(participant == null) {
Thread.sleep(1000);
throw new UserException("ak.kickup.core.participant.edit.ident.wrong");
}
 
// acts
List acts = new ArrayList(event.getActCollection());
ParticipantActBean[] a = new ParticipantActBean[acts.size()];
Collections.sort(acts, EventManager.ACT_NAME_COMPARATOR);
for(int i = 0; i < acts.size(); i++) {
EventAct act = (EventAct)acts.get(i);
a[i] = new ParticipantActBean(act.getAct(),
participant.getAct(act.getAct().getId()));
}
showForm.set("acts", a);
 
// others
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("comment", participant.getComment());
 
request.setAttribute("participant", participant);
initLists(request, event);
return mapping.findForward("default");
}
else if("unregister".equals(mapping.getParameter())) {
DynaActionForm theForm = (DynaActionForm)form;
Long eventId = StringConverter.parseLong(theForm.get("event"));
Event event = EventManager.getInstance().get(eventId, true);
String ident = ((String)theForm.get("ident")).trim();
Participant participant = ParticipantManager.getInstance().findForIdent(ident);
 
request.setAttribute("event", event);
 
if(participant == null) {
Thread.sleep(1000);
throw new UserException("ak.kickup.core.participant.edit.ident.wrong");
}
 
if(!event.isUnregistrationAvailable()) {
throw new UserException(
"ak.kickup.core.participant.edit.unregistration.unavailable");
}
 
ParticipantManager.getInstance().delete(participant);
return mapping.findForward("default");
}
else if("submit".equals(mapping.getParameter())) {
DynaActionForm theForm = (DynaActionForm)form;
Long eventId = StringConverter.parseLong(theForm.get("event"));
Event event = EventManager.getInstance().get(eventId, true);
Participant participant = ParticipantManager.getInstance().create();
 
if(!event.isRegistrationAvailable()) {
request.setAttribute("event", event);
throw new UserException(
"ak.kickup.core.participant.edit.registration.unavailable");
}
 
// acts
ParticipantActBean[] acts = (ParticipantActBean[])theForm.get("acts");
for(int i = 0; i < acts.length; i++) {
// get bean
Long actId = StringConverter.parseLong(acts[i].getActId());
EventAct act = event.getAct(actId);
ParticipantAct participantAct = participant.getAct(actId);
 
if(acts[i].getSelected() == null || !acts[i].getSelected().booleanValue()) {
if(participantAct != null) participant.removeAct(participantAct);
}
else {
if(participantAct == null) {
participantAct = ParticipantManager.getInstance().createAct();
participantAct.setParticipant(participant);
participantAct.setAct(act.getAct());
participant.addAct(participantAct);
}
participantAct.setComment(acts[i].getComment());
}
}
 
// bind
participant.setIdent(ParticipantManager.getInstance().generateIdent());
participant.setEvent(event);
 
// email
String email = (String)theForm.get("email");
if(ParticipantManager.getInstance().emailExists(participant, email)) {
request.setAttribute("event", event);
initLists(request, event);
throw new UserException("ak.kickup.core.participant.email.nonunique");
}
participant.setEmail(email);
 
// others
participant.setNick((String)theForm.get("nick"));
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.setComment((String)theForm.get("comment"));
 
ParticipantManager.getInstance().save(participant);
 
try {
Messages.sendRegistrationMessage(participant, request.getRemoteAddr());
}
catch(Exception ex) {
request.setAttribute("event", event);
initLists(request, event);
throw ex;
}
 
request.setAttribute("event", event);
request.setAttribute("participant", participant);
return mapping.findForward("default");
}
else if("update".equals(mapping.getParameter())) {
DynaActionForm theForm = (DynaActionForm)form;
Long eventId = StringConverter.parseLong(theForm.get("event"));
Event event = EventManager.getInstance().get(eventId, true);
String ident = ((String)theForm.get("ident")).trim();
Participant participant = ParticipantManager.getInstance().findForIdent(ident);
 
if(participant == null) {
Thread.sleep(1000);
request.setAttribute("event", event);
throw new ModelSecurityException();
}
 
// acts
ParticipantActBean[] acts = (ParticipantActBean[])theForm.get("acts");
for(int i = 0; i < acts.length; i++) {
// get bean
Long actId = StringConverter.parseLong(acts[i].getActId());
EventAct act = event.getAct(actId);
ParticipantAct participantAct = participant.getAct(actId);
 
if(acts[i].getSelected() == null || !acts[i].getSelected().booleanValue()) {
if(participantAct != null) participant.removeAct(participantAct);
}
else {
if(participantAct == null) {
participantAct = ParticipantManager.getInstance().createAct();
participantAct.setParticipant(participant);
participantAct.setAct(act.getAct());
participant.addAct(participantAct);
}
participantAct.setComment(acts[i].getComment());
}
}
 
// others
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.setComment((String)theForm.get("comment"));
 
ParticipantManager.getInstance().save(participant);
 
request.setAttribute("event", event);
request.setAttribute("participant", participant);
return mapping.findForward("default");
}
else if("remind".equals(mapping.getParameter())) {
DynaActionForm theForm = (DynaActionForm)form;
Long eventId = StringConverter.parseLong(theForm.get("event"));
Event event = EventManager.getInstance().get(eventId, true);
String email = ((String)theForm.get("email")).trim();
 
request.setAttribute("event", event);
 
Participant participant = ParticipantManager.getInstance().findForEmail(email);
 
if(participant == null) {
Thread.sleep(1000);
throw new UserException("ak.kickup.core.participant.remind.email.notfound");
}
 
try {
Messages.sendRemindMessage(participant, request.getRemoteAddr());
}
catch(Exception ex) {
throw ex;
}
 
return mapping.findForward("default");
}
else {
throw new Exception("unknown mapping parameter");
}
}
 
private void initLists(HttpServletRequest request, Event event)
throws Exception
{
List acts = new ArrayList(event.getActCollection());
Collections.sort(acts, EventManager.ACT_NAME_COMPARATOR);
request.setAttribute("actList", new ObjectList(acts));
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/action/EventAction.java
0,0 → 1,59
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.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/tags/release-1.0/src/ak/kickup/core/action/ActAction.java
0,0 → 1,62
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.kickup.util.StringConverter;
import ak.kickup.util.UserException;
import ak.kickup.util.ModelSecurityException;
import ak.kickup.core.model.Participant;
import ak.kickup.core.model.ParticipantManager;
import ak.kickup.core.model.Event;
import ak.kickup.core.model.EventManager;
import ak.kickup.core.model.ParticipantAct;
import ak.kickup.core.model.EventAct;
import ak.kickup.core.mail.Messages;
 
public final class ActAction
extends Action
{
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);
Long actId = StringConverter.parseLong(theForm.get("act"));
EventAct act = event.getAct(actId);
List list;
 
if(act == null) throw new UserException("ak.kickup.core.act.edit.id.wrong");
 
list = new ArrayList(ParticipantManager.getInstance().listForAct(act));
Collections.sort(list, ParticipantManager.ACT_NICK_COMPARATOR);
request.setAttribute("list", list);
request.setAttribute("event", event);
request.setAttribute("act", act);
 
return mapping.findForward("default");
}
else {
throw new Exception("unknown mapping parameter");
}
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/action/AdminEventAction.java
0,0 → 1,232
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;
import ak.kickup.core.model.EventAct;
import ak.kickup.core.model.EventApartment;
import ak.kickup.core.model.Act;
import ak.kickup.core.model.ActManager;
import ak.kickup.core.model.Apartment;
import ak.kickup.core.model.ApartmentManager;
import ak.kickup.core.form.EventActBean;
import ak.kickup.core.form.EventApartmentBean;
 
public final class AdminEventAction
extends Action
implements ErrorHandlerX
{
public void handleErrors(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception
{
if("submit".equals(mapping.getParameter())) {
initLists(request); // FIXME: if a list is changed between "edit" and "submit" then indicies are wrong
}
}
 
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(false));
Collections.sort(list, EventManager.START_COMPARATOR);
request.setAttribute("events", list);
return mapping.findForward("default");
}
else if("edit".equals(mapping.getParameter())) {
DynaActionForm theForm = (DynaActionForm)form;
Long eventId = StringConverter.parseLong(theForm.get("id"));
Event event;
List acts = new ArrayList(ActManager.getInstance().listActs());
List apartments = new ArrayList(ApartmentManager.getInstance().listApartments());
DynaActionForm showForm = (DynaActionForm)RequestUtilsX.populateActionForm(
this, request, "EventEditForm");
 
if(eventId == null) {
event = EventManager.getInstance().create();
showForm.set("enabled", Boolean.TRUE);
}
else {
event = EventManager.getInstance().get(eventId, false);
showForm.set("name", event.getName());
showForm.set("email", event.getEmail());
showForm.set("admins", event.getAdmins());
showForm.set("phones", event.getPhones());
showForm.set("place", event.getPlace());
showForm.set("address", event.getAddress());
showForm.set("transport", event.getTransportDesc());
showForm.set("start", StringConverter.toDate(event.getStart()));
showForm.set("stop", StringConverter.toDate(event.getStop()));
showForm.set("lastreg", StringConverter.toDate(event.getLastRegister()));
showForm.set("lastunreg", StringConverter.toDate(event.getLastUnregister()));
showForm.set("price", StringConverter.toCurrency(event.getPrice()));
showForm.set("account", event.getMoneyAccount());
showForm.set("enabled", event.getEnabled());
showForm.set("comment", event.getComment());
}
 
// acts
EventActBean[] a = new EventActBean[acts.size()];
Collections.sort(acts, ActManager.NAME_COMPARATOR);
for(int i = 0; i < acts.size(); i++) {
Act act = (Act)acts.get(i);
a[i] = new EventActBean(act, event.getAct(act.getId()));
}
showForm.set("acts", a);
 
// apartments
EventApartmentBean[] ap = new EventApartmentBean[apartments.size()];
Collections.sort(apartments, ApartmentManager.NAME_COMPARATOR);
for(int i = 0; i < apartments.size(); i++) {
Apartment apartment = (Apartment)apartments.get(i);
ap[i] = new EventApartmentBean(apartment, (event == null)
? null : event.getApartment(apartment.getId()));
}
showForm.set("apartments", ap);
 
initLists(request);
return mapping.findForward("default");
}
else if("delete".equals(mapping.getParameter())) {
DynaActionForm theForm = (DynaActionForm)form;
Long eventId = StringConverter.parseLong(theForm.get("id"));
Event event = EventManager.getInstance().get(eventId, false);
 
EventManager.getInstance().delete(event);
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl());
return null;
}
else if("submit".equals(mapping.getParameter())) {
DynaActionForm theForm = (DynaActionForm)form;
Long eventId = StringConverter.parseLong(theForm.get("id"));
Event event;
 
if(eventId == null) {
event = EventManager.getInstance().create();
}
else {
event = EventManager.getInstance().get(eventId, false);
}
 
// acts
EventActBean[] acts = (EventActBean[])theForm.get("acts");
for(int i = 0; i < acts.length; i++) {
// get bean
Long actId = StringConverter.parseLong(acts[i].getActId());
Act act = ActManager.getInstance().get(actId);
EventAct eventAct = event.getAct(actId);
 
if(acts[i].getSelected() == null || !acts[i].getSelected().booleanValue()) {
if(eventAct != null) event.removeAct(eventAct);
}
else {
if(eventAct == null) {
eventAct = EventManager.getInstance().createAct();
eventAct.setEvent(event);
eventAct.setAct(act);
event.addAct(eventAct);
}
eventAct.setComment(acts[i].getComment());
}
}
 
// apartments
EventApartmentBean[] apartments = (EventApartmentBean[])theForm.get("apartments");
for(int i = 0; i < apartments.length; i++) {
// get bean
Long apartmentId = StringConverter.parseLong(apartments[i].getApartmentId());
Apartment apartment = ApartmentManager.getInstance().get(apartmentId);
EventApartment eventApartment = event.getApartment(apartmentId);
 
if(apartments[i].getSelected() == null || !apartments[i].getSelected().booleanValue()) {
if(eventApartment != null) event.removeApartment(eventApartment);
}
else {
if(eventApartment == null) {
eventApartment = EventManager.getInstance().createApartment();
eventApartment.setEvent(event);
eventApartment.setApartment(apartment);
event.addApartment(eventApartment);
}
 
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());
}
}
 
// 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);
 
// others
event.setEmail((String)theForm.get("email"));
event.setAdmins((String)theForm.get("admins"));
event.setPhones((String)theForm.get("phones"));
event.setPlace((String)theForm.get("place"));
event.setAddress((String)theForm.get("address"));
event.setTransportDesc((String)theForm.get("transport"));
event.setStart(StringConverter.parseDate(theForm.get("start")));
event.setStop(StringConverter.parseDate(theForm.get("stop")));
event.setLastRegister(StringConverter.parseDate(theForm.get("lastreg")));
event.setLastUnregister(StringConverter.parseDate(theForm.get("lastunreg")));
event.setPrice(StringConverter.parseCurrency(theForm.get("price")));
event.setMoneyAccount((String)theForm.get("account"));
event.setEnabled((Boolean)theForm.get("enabled"));
event.setComment((String)theForm.get("comment"));
 
// save
EventManager.getInstance().save(event);
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl());
return null;
}
else {
throw new Exception("unknown mapping parameter");
}
}
 
private void initLists(HttpServletRequest request)
throws Exception
{
List acts = new ArrayList(ActManager.getInstance().listActs());
List apartments = new ArrayList(ApartmentManager.getInstance().listApartments());
 
Collections.sort(acts, ActManager.NAME_COMPARATOR);
request.setAttribute("actList", new ObjectList(acts));
Collections.sort(apartments, ApartmentManager.NAME_COMPARATOR);
request.setAttribute("apartmentList", new ObjectList(apartments));
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/action/AdminParticipantAction.java
0,0 → 1,235
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;
import ak.kickup.core.model.ParticipantAct;
import ak.kickup.core.model.EventAct;
import ak.kickup.core.form.ParticipantActBean;
import ak.kickup.core.mail.Messages;
 
public final class AdminParticipantAction
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"));
if(eventId != null) {
Event event = EventManager.getInstance().get(eventId, false);
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);
 
initLists(request, event);
// FIXME: if a list is changed between "edit" and "submit" then indicies are wrong
}
}
}
 
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, false);
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, false);
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", StringConverter.toCurrency(participant.getPayed()));
showForm.set("comment", participant.getComment());
showForm.set("privateComment", participant.getPrivateComment());
}
 
// acts
List acts = new ArrayList(event.getActCollection());
ParticipantActBean[] a = new ParticipantActBean[acts.size()];
Collections.sort(acts, EventManager.ACT_NAME_COMPARATOR);
for(int i = 0; i < acts.size(); i++) {
EventAct act = (EventAct)acts.get(i);
a[i] = new ParticipantActBean(act.getAct(),
participant.getAct(act.getAct().getId()));
}
showForm.set("acts", a);
 
initLists(request, event);
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;
Event event;
boolean newParticipant;
 
// get instance
if(participantId == null) {
Long eventId = StringConverter.parseLong(theForm.get("event"));
event = EventManager.getInstance().get(eventId, false);
 
participant = ParticipantManager.getInstance().create();
participant.setIdent(ParticipantManager.getInstance().generateIdent());
participant.setEvent(event);
newParticipant = true;
}
else {
participant = ParticipantManager.getInstance().get(participantId);
event = participant.getEvent();
newParticipant = false;
}
 
// acts
ParticipantActBean[] acts = (ParticipantActBean[])theForm.get("acts");
for(int i = 0; i < acts.length; i++) {
// get bean
Long actId = StringConverter.parseLong(acts[i].getActId());
EventAct act = event.getAct(actId);
ParticipantAct participantAct = participant.getAct(actId);
 
if(acts[i].getSelected() == null || !acts[i].getSelected().booleanValue()) {
if(participantAct != null) participant.removeAct(participantAct);
}
else {
if(participantAct == null) {
participantAct = ParticipantManager.getInstance().createAct();
participantAct.setParticipant(participant);
participantAct.setAct(act.getAct());
participant.addAct(participantAct);
}
participantAct.setComment(acts[i].getComment());
}
}
 
// email
String email = (String)theForm.get("email");
if(ParticipantManager.getInstance().emailExists(participant, email)) {
request.setAttribute("event", event);
request.setAttribute("participant", participant);
initLists(request, event);
throw new UserException("ak.kickup.core.participant.email.nonunique.admin");
}
participant.setEmail(email);
 
// others
participant.setNick((String)theForm.get("nick"));
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(StringConverter.parseCurrency(theForm.get("payed")));
participant.setComment((String)theForm.get("comment"));
participant.setPrivateComment((String)theForm.get("privateComment"));
 
ParticipantManager.getInstance().save(participant);
if(newParticipant) {
try {
Messages.sendRegistrationMessage(participant, null);
}
catch(Exception ex) {
request.setAttribute("event", event);
request.setAttribute("participant", participant);
initLists(request, event);
throw ex;
}
}
 
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl());
return null;
}
else {
throw new Exception("unknown mapping parameter");
}
}
 
private void initLists(HttpServletRequest request, Event event)
throws Exception
{
List acts = new ArrayList(event.getActCollection());
Collections.sort(acts, EventManager.ACT_NAME_COMPARATOR);
request.setAttribute("actList", new ObjectList(acts));
}
}
/kickup/tags/release-1.0/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.FROM_ZIP_COMPARATOR);
request.setAttribute("participants", list);
request.setAttribute("event", event);
return mapping.findForward("default");
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/action/AdminApartmentAction.java
0,0 → 1,106
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.Apartment;
import ak.kickup.core.model.ApartmentManager;
import ak.kickup.core.model.EventManager;
 
public final class AdminApartmentAction
extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception
{
if("list".equals(mapping.getParameter())) {
List list = new ArrayList(ApartmentManager.getInstance().listApartments());
Collections.sort(list, ApartmentManager.NAME_COMPARATOR);
request.setAttribute("apartments", list);
return mapping.findForward("default");
}
else if("edit".equals(mapping.getParameter())) {
DynaActionForm theForm = (DynaActionForm)form;
Long apartmentId = StringConverter.parseLong(theForm.get("id"));
Apartment apartment;
DynaActionForm showForm = (DynaActionForm)RequestUtilsX.populateActionForm(
this, request, "ApartmentEditForm");
 
if(apartmentId == null) {
apartment = ApartmentManager.getInstance().create();
}
else {
apartment = ApartmentManager.getInstance().get(apartmentId);
showForm.set("name", apartment.getName());
showForm.set("address", apartment.getAddress());
showForm.set("price", StringConverter.toCurrency(apartment.getPrice()));
showForm.set("url", apartment.getUrl());
showForm.set("comment", apartment.getComment());
}
 
return mapping.findForward("default");
}
else if("delete".equals(mapping.getParameter())) {
DynaActionForm theForm = (DynaActionForm)form;
Long apartmentId = StringConverter.parseLong(theForm.get("id"));
Apartment apartment = ApartmentManager.getInstance().get(apartmentId);
 
if(!EventManager.getInstance().allowDeleteApartment(apartment))
throw new UserException("ak.kickup.core.apartment.delete.usedbyevent");
 
ApartmentManager.getInstance().delete(apartment);
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl());
return null;
}
else if("submit".equals(mapping.getParameter())) {
DynaActionForm theForm = (DynaActionForm)form;
Long apartmentId = StringConverter.parseLong(theForm.get("id"));
Apartment apartment;
 
if(apartmentId == null) {
apartment = ApartmentManager.getInstance().create();
}
else {
apartment = ApartmentManager.getInstance().get(apartmentId);
}
 
String name = (String)theForm.get("name");
if(ApartmentManager.getInstance().nameExists(apartment, name)) {
throw new UserException("ak.kickup.core.apartment.name.nonunique");
}
apartment.setName(name);
 
apartment.setAddress((String)theForm.get("address"));
apartment.setPrice(StringConverter.parseCurrency(theForm.get("price")));
apartment.setUrl((String)theForm.get("url"));
apartment.setComment((String)theForm.get("comment"));
 
ApartmentManager.getInstance().save(apartment);
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl());
return null;
}
else {
throw new Exception("unknown mapping parameter");
}
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/action/AdminActAction.java
0,0 → 1,104
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.Act;
import ak.kickup.core.model.ActManager;
import ak.kickup.core.model.EventManager;
import ak.kickup.core.model.ParticipantManager;
 
public final class AdminActAction
extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception
{
if("list".equals(mapping.getParameter())) {
List list = new ArrayList(ActManager.getInstance().listActs());
Collections.sort(list, ActManager.NAME_COMPARATOR);
request.setAttribute("acts", list);
return mapping.findForward("default");
}
else if("edit".equals(mapping.getParameter())) {
DynaActionForm theForm = (DynaActionForm)form;
Long actId = StringConverter.parseLong(theForm.get("id"));
Act act;
DynaActionForm showForm = (DynaActionForm)RequestUtilsX.populateActionForm(
this, request, "ActEditForm");
 
if(actId == null) {
act = ActManager.getInstance().create();
}
else {
act = ActManager.getInstance().get(actId);
showForm.set("name", act.getName());
showForm.set("comment", act.getComment());
}
 
return mapping.findForward("default");
}
else if("delete".equals(mapping.getParameter())) {
DynaActionForm theForm = (DynaActionForm)form;
Long actId = StringConverter.parseLong(theForm.get("id"));
Act act = ActManager.getInstance().get(actId);
 
if(!EventManager.getInstance().allowDeleteAct(act))
throw new UserException("ak.kickup.core.act.delete.usedbyevent");
 
if(!ParticipantManager.getInstance().allowDeleteAct(act))
throw new UserException("ak.kickup.core.act.delete.usedbyparticipant");
 
ActManager.getInstance().delete(act);
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl());
return null;
}
else if("submit".equals(mapping.getParameter())) {
DynaActionForm theForm = (DynaActionForm)form;
Long actId = StringConverter.parseLong(theForm.get("id"));
Act act;
 
if(actId == null) {
act = ActManager.getInstance().create();
}
else {
act = ActManager.getInstance().get(actId);
}
 
String name = (String)theForm.get("name");
if(ActManager.getInstance().nameExists(act, name)) {
throw new UserException("ak.kickup.core.act.name.nonunique");
}
act.setName(name);
 
act.setComment((String)theForm.get("comment"));
 
ActManager.getInstance().save(act);
response.sendRedirect(BackPath.findBackPath(request).getBackwardUrl());
return null;
}
else {
throw new Exception("unknown mapping parameter");
}
}
}
/kickup/tags/release-1.0/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/tags/release-1.0/src/ak/kickup/core/action/ObjectList.java
0,0 → 1,23
package ak.kickup.core.action;
 
import java.util.List;
 
public class ObjectList
{
private List objects;
 
public ObjectList(List objects)
{
this.objects = objects;
}
 
public List getObjects()
{
return objects;
}
 
public void setObjects(List objects)
{
this.objects = objects;
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/action/UserExceptionHandler.java
0,0 → 1,62
package ak.kickup.core.action;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.apache.struts.Globals;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.ExceptionHandler;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.config.ExceptionConfig;
 
import org.apache.log4j.Logger;
 
import ak.strutsx.ErrorHandlerX;
 
import ak.kickup.util.UserException;
import ak.kickup.util.FormException;
 
public final class UserExceptionHandler
extends ExceptionHandler
{
private static final Logger logger = Logger.getLogger(UserExceptionHandler.class);
 
public ActionForward execute(Exception ex, ExceptionConfig config,
ActionMapping mapping, ActionForm formInstance,
HttpServletRequest request, HttpServletResponse response)
throws ServletException
{
if(!(ex instanceof UserException))
throw new ServletException("Unknown type of exception: " + ex.getClass());
 
UserException userEx = (UserException)ex;
logger.info("begin exception handle:" + userEx.getMessage());
 
// try to get property for this exception if any
String property = ActionMessages.GLOBAL_MESSAGE;
if(userEx instanceof FormException) {
FormException formEx = (FormException)userEx;
if(formEx.getProperty() != null)
property = formEx.getProperty();
}
 
// create new error message
ActionErrors errors = (ActionErrors)request.getAttribute(Globals.ERROR_KEY);
if(errors == null) {
errors = new ActionErrors();
request.setAttribute(Globals.ERROR_KEY, errors);
}
errors.add(property, new ActionError(userEx.getMessage(), userEx.getValues()));
 
// find forward
if(mapping.getInput() == null)
return mapping.findForward("error");
else
return mapping.getInputForward();
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/model/ParticipantManager.java
0,0 → 1,344
package ak.kickup.core.model;
 
import java.util.*;
import java.io.UnsupportedEncodingException;
import net.sf.hibernate.*;
import net.sf.hibernate.type.Type;
import ak.kickup.util.HibernateUtil;
import ak.kickup.util.ModelException;
import ak.kickup.util.ModelSecurityException;
 
public class ParticipantManager
{
private static ParticipantManager participantManager = null;
private static boolean registered = false;
 
public static ParticipantManager getInstance()
{
return participantManager;
}
 
protected static void register()
{
synchronized(ParticipantManager.class) {
if(registered) return;
 
registered = true;
try {
HibernateUtil.getConfiguration().addResource(
"ak/kickup/core/model/Participant.hbm.xml");
HibernateUtil.getConfiguration().addResource(
"ak/kickup/core/model/ParticipantAct.hbm.xml");
 
participantManager = new ParticipantManager();
}
catch(Exception ex) {
ex.printStackTrace();
throw new RuntimeException(ex.getMessage());
}
}
}
 
static {
register();
}
 
private ParticipantManager()
{
}
 
public Participant create()
throws ModelException
{
Participant p = new Participant();
p.init();
return p;
}
 
public Participant get(Long id)
throws ModelException
{
try {
return (Participant)HibernateUtil.currentSession().load(Participant.class, id);
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public Participant findForIdent(String ident)
throws ModelException
{
try {
List list = HibernateUtil.currentSession().find(
"from Participant where ident = ?",
ident, Hibernate.STRING );
 
if(list.size() == 0)
return null;
else
return (Participant)list.get(0);
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public Participant findForEmail(String email)
throws ModelException
{
try {
List list = HibernateUtil.currentSession().find(
"from Participant where email = ?",
email, Hibernate.STRING );
 
if(list.size() == 0)
return null;
else
return (Participant)list.get(0);
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public boolean emailExists(Participant participant, String email)
throws ModelException
{
try {
if(participant.getId() == null)
return ((Integer)HibernateUtil.currentSession().iterate(
"select count(*) from Participant where email=? and event=?",
new Object[] { email, participant.getEvent() },
new Type[] { Hibernate.STRING, Hibernate.entity(Event.class) } )
.next()).intValue() > 0;
else
return ((Integer)HibernateUtil.currentSession().iterate(
"select count(*) from Participant p where email=? and event=? and p!=?",
new Object[] { email, participant.getEvent(), participant },
new Type[] { Hibernate.STRING, Hibernate.entity(Event.class),
Hibernate.entity(Participant.class) } )
.next()).intValue() > 0;
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public String generateIdent()
throws ModelException
{
String ident;
 
do {
byte[] buf = new byte[6];
 
for(int i = 0; i < buf.length; i++) {
buf[i] = (byte)(Math.random() * 10 + 48);
}
 
try {
ident = new String(buf, "ascii");
}
catch(UnsupportedEncodingException ex) {
throw new ModelException(ex);
}
} while(identExists(ident));
 
return ident;
}
 
public boolean identExists(String ident)
throws ModelException
{
try {
return ((Integer)HibernateUtil.currentSession().iterate(
"select count(*) from Participant where ident = ?",
ident, Hibernate.STRING)
.next()).intValue() > 0;
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public void save(Participant participant)
throws ModelException
{
try {
HibernateUtil.currentSession().saveOrUpdate(participant);
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public void delete(Participant participant)
throws ModelException
{
try {
participant.getEvent().removeParticipant(participant);
HibernateUtil.currentSession().delete(participant);
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public Collection listFreeTransport(Event event)
throws ModelException
{
try {
return HibernateUtil.currentSession().find(
"from Participant where event = ? and free_transport > 0",
event, Hibernate.entity(Event.class));
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
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 Collection listForAct(EventAct act)
throws ModelException
{
try {
return HibernateUtil.currentSession().find(
"select pa from Participant as p, ParticipantAct as pa"
+ " where p.event = ? and pa.participant = p and pa.act = ?",
new Object[] { act.getEvent(), act.getAct() },
new Type[] { Hibernate.entity(Event.class), Hibernate.entity(Act.class) } );
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public ParticipantAct createAct()
throws ModelException
{
return new ParticipantAct();
}
 
public boolean allowDeleteAct(Act act)
throws ModelException
{
try {
return ((Integer)HibernateUtil.currentSession().iterate(
"select count(*) from ParticipantAct where act=?",
act, Hibernate.entity(Act.class))
.next()).intValue() == 0;
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public static final Comparator NICK_COMPARATOR = new NickComparator();
public static final Comparator ACT_NICK_COMPARATOR = new ActNickComparator();
public static final Comparator FROM_ZIP_COMPARATOR = new FromZipComparator();
 
private static class NickComparator
implements Comparator
{
public int compare(Object o1, Object o2)
{
if(!(o1 instanceof Participant) || !(o2 instanceof Participant))
throw new ClassCastException("not a Participant");
 
Participant a1 = (Participant)o1;
Participant a2 = (Participant)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.getNick().compareToIgnoreCase(a2.getNick());
}
 
public boolean equals(Object obj)
{
return (obj instanceof NickComparator);
}
}
 
private static class ActNickComparator
implements Comparator
{
public int compare(Object o1, Object o2)
{
if(!(o1 instanceof ParticipantAct) || !(o2 instanceof ParticipantAct))
throw new ClassCastException("not a ParticipantAct");
 
ParticipantAct a1 = (ParticipantAct)o1;
ParticipantAct a2 = (ParticipantAct)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.getParticipant().getNick().compareToIgnoreCase(a2.getParticipant().getNick());
}
 
public boolean equals(Object obj)
{
return (obj instanceof ActNickComparator);
}
}
 
private static class FromZipComparator
implements Comparator
{
public int compare(Object o1, Object o2)
{
if(!(o1 instanceof Participant) || !(o2 instanceof Participant))
throw new ClassCastException("not a Participant");
 
Participant a1 = (Participant)o1;
Participant a2 = (Participant)o2;
 
if((a1 == null || a1.getFromZip() == null) && (a2 == null || a2.getFromZip() == null))
return 0;
else if((a1 == null || a1.getFromZip() == null) && (a2 != null && a2.getFromZip() != null))
return -1;
else if((a1 != null && a1.getFromZip() == null) && (a2 == null || a2.getFromZip() == null))
return 1;
else
return a1.getFromZip().compareToIgnoreCase(a2.getFromZip());
}
 
public boolean equals(Object obj)
{
return (obj instanceof FromZipComparator);
}
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/model/Event.java
0,0 → 1,453
package ak.kickup.core.model;
 
import java.math.BigDecimal;
import java.util.Collection;
import java.util.Collections;
import java.util.ArrayList;
import java.util.Iterator;
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;
 
/**
*
* @hibernate.class table="events"
*/
public class Event
extends GeneralModelObject
{
private String name;
private String email;
private String admins;
private String phones;
private String place;
private String address;
private String transportDesc;
private Date start;
private Date stop;
private Date lastRegister;
private Date lastUnregister;
private BigDecimal price;
private String moneyAccount;
private Boolean enabled;
private String comment;
private Collection acts; // Collection(EventAct)
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()
{
}
 
protected void init()
{
acts = new ArrayList();
apartments = new ArrayList();
participants = new ArrayList();
}
 
/**
*
* @hibernate.property
*/
public String getName()
{
return name;
}
 
public void setName(String name)
{
this.name = name;
}
 
/**
*
* @hibernate.property
*/
public String getEmail()
{
return email;
}
 
public void setEmail(String email)
{
this.email = email;
}
 
/**
*
* @hibernate.property
*/
public String getAdmins()
{
return admins;
}
 
public void setAdmins(String admins)
{
this.admins = admins;
}
 
/**
*
* @hibernate.property
*/
public String getPhones()
{
return phones;
}
 
public void setPhones(String phones)
{
this.phones = phones;
}
 
/**
*
* @hibernate.property
*/
public String getPlace()
{
return place;
}
 
public void setPlace(String place)
{
this.place = place;
}
 
/**
*
* @hibernate.property
*/
public String getAddress()
{
return address;
}
 
public void setAddress(String address)
{
this.address = address;
}
 
/**
*
* @hibernate.property column="transport_desc"
*/
public String getTransportDesc()
{
return transportDesc;
}
 
public void setTransportDesc(String transportDesc)
{
this.transportDesc = transportDesc;
}
 
/**
*
* @hibernate.property
*/
public Date getStart()
{
return start;
}
 
public void setStart(Date start)
{
this.start = start;
}
 
/**
*
* @hibernate.property
*/
public Date getStop()
{
return stop;
}
 
public void setStop(Date stop)
{
this.stop = stop;
}
 
/**
*
* @hibernate.property column="last_register"
*/
public Date getLastRegister()
{
return lastRegister;
}
 
public void setLastRegister(Date lastRegister)
{
this.lastRegister = lastRegister;
}
 
/**
*
* @hibernate.property column="last_unregister"
*/
public Date getLastUnregister()
{
return lastUnregister;
}
 
public void setLastUnregister(Date lastUnregister)
{
this.lastUnregister = lastUnregister;
}
 
/**
*
* @hibernate.property
*/
public BigDecimal getPrice()
{
return price;
}
 
public void setPrice(BigDecimal price)
{
this.price = price;
}
 
/**
*
* @hibernate.property column="money_account"
*/
public String getMoneyAccount()
{
return moneyAccount;
}
 
public void setMoneyAccount(String moneyAccount)
{
this.moneyAccount = moneyAccount;
}
 
/**
*
* @hibernate.property
*/
public Boolean getEnabled()
{
return enabled;
}
 
public void setEnabled(Boolean enabled)
{
this.enabled = enabled;
}
 
/**
*
* @hibernate.property
*/
public String getComment()
{
return comment;
}
 
public void setComment(String comment)
{
this.comment = comment;
}
 
/**
* @return Collection(EventAct)
*
* @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.EventAct"
*/
protected Collection getActs()
{
return acts;
}
 
public Collection getActCollection()
{
return Collections.unmodifiableCollection(acts);
}
 
/**
* @param destinations Collection(EventAct)
*/
protected void setActs(Collection acts)
{
this.acts = acts;
 
actsMap.clear();
if(acts != null) {
for(Iterator i = acts.iterator(); i.hasNext(); ) {
EventAct a = (EventAct)i.next();
if(a.getAct() != null)
actsMap.put(a.getAct().getId(), a);
}
}
}
 
public EventAct getAct(Long actId)
{
return (EventAct)actsMap.get(actId);
}
 
public void addAct(EventAct act)
{
acts.add(act);
actsMap.put(act.getAct().getId(), act);
}
 
public void removeAct(EventAct act)
{
acts.remove(act);
actsMap.remove(act.getAct().getId());
}
 
/**
* @return Collection(EventApartment)
*
* @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.EventApartment"
*/
protected Collection getApartments()
{
return apartments;
}
 
public Collection getApartmentCollection()
{
return Collections.unmodifiableCollection(apartments);
}
 
/**
* @param destinations Collection(EventApartment)
*/
protected void setApartments(Collection apartments)
{
this.apartments = apartments;
 
apartmentsMap.clear();
if(apartments != null) {
for(Iterator i = apartments.iterator(); i.hasNext(); ) {
EventApartment a = (EventApartment)i.next();
if(a.getApartment() != null)
apartmentsMap.put(a.getApartment().getId(), a);
}
}
}
 
public EventApartment getApartment(Long apartmentId)
{
return (EventApartment)apartmentsMap.get(apartmentId);
}
 
public void addApartment(EventApartment apartment)
{
apartments.add(apartment);
apartmentsMap.put(apartment.getApartment().getId(), apartment);
}
 
public void removeApartment(EventApartment apartment)
{
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;
}
 
protected void removeParticipant(Participant participant)
{
participants.remove(participant);
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/model/Participant.java
0,0 → 1,387
package ak.kickup.core.model;
 
import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;
import java.util.HashMap;
import java.util.Collections;
import java.util.Collection;
import java.util.Iterator;
import java.util.ArrayList;
import ak.kickup.util.ModelException;
import ak.kickup.util.ModelSecurityException;
 
/**
*
* @hibernate.class table="participants"
*/
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;
private Boolean emailPublic;
private String name;
private String phone;
private Event event;
private Integer persons;
private String fromZip;
private String fromCity;
private Date departure;
private Integer freeTransport;
private String transportComment;
private Integer freeSleep;
private String sleepComment;
private BigDecimal payed;
private String comment;
private String privateComment;
private Collection acts; // Collection(ParticipantAct)
private Map actsMap = new HashMap(); // Map(Long id -> ParticipantAct)
 
protected Participant()
{
}
 
protected void init()
{
acts = new ArrayList();
}
 
/**
*
* @hibernate.property
*/
public String getIdent()
{
return ident;
}
 
public void setIdent(String ident)
{
this.ident = ident;
}
 
/**
*
* @hibernate.property
*/
public String getNick()
{
return nick;
}
 
public void setNick(String nick)
{
this.nick = nick;
}
 
/**
*
* @hibernate.property
*/
public String getEmail()
{
return email;
}
 
public void setEmail(String email)
{
this.email = email;
}
 
/**
*
* @hibernate.property column="email_public"
*/
public Boolean getEmailPublic()
{
return emailPublic;
}
 
public void setEmailPublic(Boolean emailPublic)
{
this.emailPublic = emailPublic;
}
 
/**
*
* @hibernate.property
*/
public String getName()
{
return name;
}
 
public void setName(String name)
{
this.name = name;
}
 
/**
*
* @hibernate.property
*/
public String getPhone()
{
return phone;
}
 
public void setPhone(String phone)
{
this.phone = phone;
}
 
/**
*
* @hibernate.many-to-one
*/
public Event getEvent()
{
return event;
}
 
public void setEvent(Event event)
{
this.event = event;
}
 
/**
*
* @hibernate.property
*/
public Integer getPersons()
{
return persons;
}
 
public void setPersons(Integer persons)
{
this.persons = persons;
}
 
/**
*
* @hibernate.property column="from_zip"
*/
public String getFromZip()
{
return fromZip;
}
 
public void setFromZip(String fromZip)
{
this.fromZip = fromZip;
}
 
/**
*
* @hibernate.property column="from_city"
*/
public String getFromCity()
{
return fromCity;
}
 
public void setFromCity(String fromCity)
{
this.fromCity = fromCity;
}
 
/**
*
* @hibernate.property
*/
public Date getDeparture()
{
return departure;
}
 
public void setDeparture(Date departure)
{
this.departure = departure;
}
 
/**
*
* @hibernate.property column="free_transport"
*/
public Integer getFreeTransport()
{
return freeTransport;
}
 
public void setFreeTransport(Integer freeTransport)
{
this.freeTransport = freeTransport;
}
 
/**
*
* @hibernate.property column="transport_comment"
*/
public String getTransportComment()
{
return transportComment;
}
 
public void setTransportComment(String transportComment)
{
this.transportComment = transportComment;
}
 
/**
*
* @hibernate.property column="free_sleep"
*/
public Integer getFreeSleep()
{
return freeSleep;
}
 
public void setFreeSleep(Integer freeSleep)
{
this.freeSleep = freeSleep;
}
 
/**
*
* @hibernate.property column="sleep_comment"
*/
public String getSleepComment()
{
return sleepComment;
}
 
public void setSleepComment(String sleepComment)
{
this.sleepComment = sleepComment;
}
 
/**
*
* @hibernate.property
*/
public BigDecimal getPayed()
{
return payed;
}
 
public void setPayed(BigDecimal payed)
{
this.payed = payed;
}
 
public BigDecimal getMustPay()
{
if(event == null || event.getPrice() == null || persons == null) return null;
 
return new BigDecimal(event.getPrice().doubleValue() * persons.intValue());
}
 
public int getPayedStatus()
{
if(event == null || 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
*/
public String getComment()
{
return comment;
}
 
public void setComment(String comment)
{
this.comment = comment;
}
 
/**
*
* @hibernate.property column="private_comment"
*/
public String getPrivateComment()
{
return privateComment;
}
 
public void setPrivateComment(String privateComment)
{
this.privateComment = privateComment;
}
 
/**
* @return Collection(ParticipantAct)
*
* @hibernate.bag inverse="true" cascade="all-delete-orphan" lazy="true"
* @hibernate.collection-key column="participant"
* @hibernate.collection-one-to-many class="ak.kickup.core.model.ParticipantAct"
*/
protected Collection getActs()
{
return acts;
}
 
public Collection getActCollection()
{
return Collections.unmodifiableCollection(acts);
}
 
/**
* @param destinations Collection(ParticipantAct)
*/
protected void setActs(Collection acts)
{
this.acts = acts;
 
actsMap.clear();
if(acts != null) {
for(Iterator i = acts.iterator(); i.hasNext(); ) {
ParticipantAct a = (ParticipantAct)i.next();
if(a.getAct() != null)
actsMap.put(a.getAct().getId(), a);
}
}
}
 
public ParticipantAct getAct(Long actId)
{
return (ParticipantAct)actsMap.get(actId);
}
 
public void addAct(ParticipantAct act)
{
acts.add(act);
actsMap.put(act.getAct().getId(), act);
}
 
public void removeAct(ParticipantAct act)
{
acts.remove(act);
actsMap.remove(act.getAct().getId());
}
 
public boolean equals(Object o)
{
if(o == null || !(o instanceof Participant)) return false;
 
Participant p = (Participant)o;
return (getId() != null) && (p.getId() != null) && (getId().equals(p.getId()));
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/model/EventManager.java
0,0 → 1,313
package ak.kickup.core.model;
 
import java.util.*;
import net.sf.hibernate.*;
import net.sf.hibernate.type.Type;
import ak.kickup.util.HibernateUtil;
import ak.kickup.util.ModelException;
import ak.kickup.util.ModelSecurityException;
 
public class EventManager
{
private static EventManager eventManager = null;
private static boolean registered = false;
 
public static EventManager getInstance()
{
return eventManager;
}
 
protected static void register()
{
synchronized(EventManager.class) {
if(registered) return;
 
registered = true;
try {
HibernateUtil.getConfiguration().addResource(
"ak/kickup/core/model/Event.hbm.xml");
HibernateUtil.getConfiguration().addResource(
"ak/kickup/core/model/EventAct.hbm.xml");
HibernateUtil.getConfiguration().addResource(
"ak/kickup/core/model/EventApartment.hbm.xml");
 
eventManager = new EventManager();
}
catch(Exception ex) {
ex.printStackTrace();
throw new RuntimeException(ex.getMessage());
}
}
}
 
static {
register();
}
 
private EventManager()
{
}
 
public Event create()
throws ModelException
{
Event e = new Event();
e.init();
return e;
}
 
public Event get(Long id, boolean enabledOnly)
throws ModelException
{
Event event;
 
try {
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)
throws ModelException
{
try {
if(event.getId() == null)
return ((Integer)HibernateUtil.currentSession().iterate(
"select count(*) from Event where name = ?",
name, Hibernate.STRING)
.next()).intValue() > 0;
else
return ((Integer)HibernateUtil.currentSession().iterate(
"select count(*) from Event e where name = ? and e != ?",
new Object[] { name, event },
new Type[] { Hibernate.STRING, Hibernate.entity(Event.class) } )
.next()).intValue() > 0;
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public void save(Event event)
throws ModelException
{
try {
HibernateUtil.currentSession().saveOrUpdate(event);
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public void delete(Event event)
throws ModelException
{
try {
HibernateUtil.currentSession().delete(event);
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public Collection listEvents(boolean enabledOnly)
throws ModelException
{
try {
if(enabledOnly) {
return HibernateUtil.currentSession().find(
"from Event where enabled=?",
Boolean.TRUE, Hibernate.BOOLEAN);
}
else {
return HibernateUtil.currentSession().find("from Event");
}
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public EventAct createAct()
throws ModelException
{
return new EventAct();
}
 
public boolean allowDeleteAct(Act act)
throws ModelException
{
try {
return ((Integer)HibernateUtil.currentSession().iterate(
"select count(*) from EventAct where act=?",
act, Hibernate.entity(Act.class))
.next()).intValue() == 0;
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public EventApartment createApartment()
throws ModelException
{
return new EventApartment();
}
 
public boolean allowDeleteApartment(Apartment apartment)
throws ModelException
{
try {
return ((Integer)HibernateUtil.currentSession().iterate(
"select count(*) from EventApartment where apartment=?",
apartment, Hibernate.entity(Apartment.class))
.next()).intValue() == 0;
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
protected void deleteApartments(Apartment apartment)
throws ModelException
{
try {
HibernateUtil.currentSession().delete(
"from EventApartment where apartment=?",
apartment, Hibernate.entity(Apartment.class));
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public static final Comparator NAME_COMPARATOR = new NameComparator();
public static final Comparator START_COMPARATOR = new StartComparator();
 
private static class NameComparator
implements Comparator
{
public int compare(Object o1, Object o2)
{
if(!(o1 instanceof Event) || !(o2 instanceof Event))
throw new ClassCastException("not a Event");
 
Event a1 = (Event)o1;
Event a2 = (Event)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.getName().compareToIgnoreCase(a2.getName());
}
 
public boolean equals(Object obj)
{
return (obj instanceof NameComparator);
}
}
 
private static class StartComparator
implements Comparator
{
public int compare(Object o1, Object o2)
{
if(!(o1 instanceof Event) || !(o2 instanceof Event))
throw new ClassCastException("not a Event");
 
Event a1 = (Event)o1;
Event a2 = (Event)o2;
 
if((a1 == null || a1.getStart() == null) && (a2 == null || a2.getStart() == null))
return 0;
else if((a1 == null || a1.getStart() == null) && (a2 != null && a2.getStart() != null))
return -1;
else if((a1 != null && a1.getStart() != null) && (a2 == null || a2.getStart() == null))
return 1;
else
return a1.getStart().compareTo(a2.getStart());
}
 
public boolean equals(Object obj)
{
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/tags/release-1.0/src/ak/kickup/core/model/ParticipantAct.java
0,0 → 1,64
package ak.kickup.core.model;
 
import java.util.Date;
import ak.kickup.util.ModelException;
import ak.kickup.util.ModelSecurityException;
 
/**
*
* @hibernate.class table="participant_acts"
*/
public class ParticipantAct
extends GeneralModelObject
{
private Participant participant;
private Act act;
private String comment;
private Date modStamp;
 
protected ParticipantAct()
{
}
 
/**
*
* @hibernate.many-to-one
*/
public Participant getParticipant()
{
return participant;
}
 
public void setParticipant(Participant participant)
{
this.participant = participant;
}
 
/**
*
* @hibernate.many-to-one
*/
public Act getAct()
{
return act;
}
 
public void setAct(Act act)
{
this.act = act;
}
 
/**
*
* @hibernate.property
*/
public String getComment()
{
return comment;
}
 
public void setComment(String comment)
{
this.comment = comment;
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/model/ActManager.java
0,0 → 1,151
package ak.kickup.core.model;
 
import java.util.*;
import net.sf.hibernate.*;
import net.sf.hibernate.type.Type;
import ak.kickup.util.HibernateUtil;
import ak.kickup.util.ModelException;
import ak.kickup.util.ModelSecurityException;
 
public class ActManager
{
private static ActManager actManager = null;
private static boolean registered = false;
 
public static ActManager getInstance()
{
return actManager;
}
 
protected static void register()
{
synchronized(ActManager.class) {
if(registered) return;
 
registered = true;
try {
HibernateUtil.getConfiguration().addResource(
"ak/kickup/core/model/Act.hbm.xml");
 
actManager = new ActManager();
}
catch(Exception ex) {
ex.printStackTrace();
throw new RuntimeException(ex.getMessage());
}
}
}
 
static {
register();
}
 
private ActManager()
{
}
 
public Act create()
throws ModelException
{
return new Act();
}
 
public Act get(Long id)
throws ModelException
{
try {
return (Act)HibernateUtil.currentSession().load(Act.class, id);
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public boolean nameExists(Act act, String name)
throws ModelException
{
try {
if(act.getId() == null)
return ((Integer)HibernateUtil.currentSession().iterate(
"select count(*) from Act where name = ?",
name, Hibernate.STRING)
.next()).intValue() > 0;
else
return ((Integer)HibernateUtil.currentSession().iterate(
"select count(*) from Act a where name = ? and a != ?",
new Object[] { name, act },
new Type[] { Hibernate.STRING, Hibernate.entity(Act.class) } )
.next()).intValue() > 0;
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public void save(Act act)
throws ModelException
{
try {
HibernateUtil.currentSession().saveOrUpdate(act);
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public void delete(Act act)
throws ModelException
{
try {
HibernateUtil.currentSession().delete(act);
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public Collection listActs()
throws ModelException
{
try {
return HibernateUtil.currentSession().find("from Act");
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public static final Comparator NAME_COMPARATOR = new NameComparator();
 
private static class NameComparator
implements Comparator
{
public int compare(Object o1, Object o2)
{
if(!(o1 instanceof Act) || !(o2 instanceof Act))
throw new ClassCastException("not a Act");
 
Act a1 = (Act)o1;
Act a2 = (Act)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.getName().compareToIgnoreCase(a2.getName());
}
 
public boolean equals(Object obj)
{
return (obj instanceof NameComparator);
}
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/model/GeneralModelObject.java
0,0 → 1,37
package ak.kickup.core.model;
 
import java.util.Date;
 
public abstract class GeneralModelObject
{
private Long id;
private Date modStamp;
 
/**
*
* @hibernate.id generator-class="native"
*/
public Long getId()
{
return id;
}
 
protected void setId(Long id)
{
this.id = id;
}
 
/**
*
* @hibernate.timestamp column="mod_stamp"
*/
public Date getModStamp()
{
return modStamp;
}
 
public void setModStamp(Date modStamp)
{
this.modStamp = modStamp;
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/model/ApartmentManager.java
0,0 → 1,151
package ak.kickup.core.model;
 
import java.util.*;
import net.sf.hibernate.*;
import net.sf.hibernate.type.Type;
import ak.kickup.util.HibernateUtil;
import ak.kickup.util.ModelException;
import ak.kickup.util.ModelSecurityException;
 
public class ApartmentManager
{
private static ApartmentManager apartmentManager = null;
private static boolean registered = false;
 
public static ApartmentManager getInstance()
{
return apartmentManager;
}
 
protected static void register()
{
synchronized(ApartmentManager.class) {
if(registered) return;
 
registered = true;
try {
HibernateUtil.getConfiguration().addResource(
"ak/kickup/core/model/Apartment.hbm.xml");
 
apartmentManager = new ApartmentManager();
}
catch(Exception ex) {
ex.printStackTrace();
throw new RuntimeException(ex.getMessage());
}
}
}
 
static {
register();
}
 
private ApartmentManager()
{
}
 
public Apartment create()
throws ModelException
{
return new Apartment();
}
 
public Apartment get(Long id)
throws ModelException
{
try {
return (Apartment)HibernateUtil.currentSession().load(Apartment.class, id);
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public boolean nameExists(Apartment apartment, String name)
throws ModelException
{
try {
if(apartment.getId() == null)
return ((Integer)HibernateUtil.currentSession().iterate(
"select count(*) from Apartment where name = ?",
name, Hibernate.STRING)
.next()).intValue() > 0;
else
return ((Integer)HibernateUtil.currentSession().iterate(
"select count(*) from Apartment a where name = ? and a != ?",
new Object[] { name, apartment },
new Type[] { Hibernate.STRING, Hibernate.entity(Apartment.class) } )
.next()).intValue() > 0;
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public void save(Apartment apartment)
throws ModelException
{
try {
HibernateUtil.currentSession().saveOrUpdate(apartment);
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public void delete(Apartment apartment)
throws ModelException
{
try {
HibernateUtil.currentSession().delete(apartment);
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public Collection listApartments()
throws ModelException
{
try {
return HibernateUtil.currentSession().find("from Apartment");
}
catch(HibernateException ex)
{
throw new ModelException(ex);
}
}
 
public static final Comparator NAME_COMPARATOR = new NameComparator();
 
private static class NameComparator
implements Comparator
{
public int compare(Object o1, Object o2)
{
if(!(o1 instanceof Apartment) || !(o2 instanceof Apartment))
throw new ClassCastException("not a Apartment");
 
Apartment a1 = (Apartment)o1;
Apartment a2 = (Apartment)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.getName().compareToIgnoreCase(a2.getName());
}
 
public boolean equals(Object obj)
{
return (obj instanceof NameComparator);
}
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/model/Act.java
0,0 → 1,56
package ak.kickup.core.model;
 
import java.util.Date;
import ak.kickup.util.ModelException;
import ak.kickup.util.ModelSecurityException;
 
/**
*
* @hibernate.class table="acts"
*/
public class Act
extends GeneralModelObject
{
private String name;
private String comment;
 
protected Act()
{
}
 
/**
*
* @hibernate.property
*/
public String getName()
{
return name;
}
 
public void setName(String name)
{
this.name = name;
}
 
/**
*
* @hibernate.property
*/
public String getComment()
{
return comment;
}
 
public void setComment(String comment)
{
this.comment = comment;
}
 
public boolean equals(Object o)
{
if(o == null || !(o instanceof Act)) return false;
 
Act a = (Act)o;
return (getId() != null) && (a.getId() != null) && (getId().equals(a.getId()));
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/model/EventAct.java
0,0 → 1,64
package ak.kickup.core.model;
 
import java.util.Date;
import ak.kickup.util.ModelException;
import ak.kickup.util.ModelSecurityException;
 
/**
*
* @hibernate.class table="event_acts"
*/
public class EventAct
extends GeneralModelObject
{
private Event event;
private Act act;
private String comment;
private Date modStamp;
 
protected EventAct()
{
}
 
/**
*
* @hibernate.many-to-one
*/
public Event getEvent()
{
return event;
}
 
public void setEvent(Event event)
{
this.event = event;
}
 
/**
*
* @hibernate.many-to-one
*/
public Act getAct()
{
return act;
}
 
public void setAct(Act act)
{
this.act = act;
}
 
/**
*
* @hibernate.property
*/
public String getComment()
{
return comment;
}
 
public void setComment(String comment)
{
this.comment = comment;
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/model/Apartment.java
0,0 → 1,101
package ak.kickup.core.model;
 
import java.math.BigDecimal;
import ak.kickup.util.ModelException;
import ak.kickup.util.ModelSecurityException;
 
/**
*
* @hibernate.class table="apartments"
*/
public class Apartment
extends GeneralModelObject
{
private String name;
private String address;
private BigDecimal price;
private String url;
private String comment;
 
protected Apartment()
{
}
 
/**
*
* @hibernate.property
*/
public String getName()
{
return name;
}
 
public void setName(String name)
{
this.name = name;
}
 
/**
*
* @hibernate.property
*/
public String getAddress()
{
return address;
}
 
public void setAddress(String address)
{
this.address = address;
}
 
/**
*
* @hibernate.property
*/
public BigDecimal getPrice()
{
return price;
}
 
public void setPrice(BigDecimal price)
{
this.price = price;
}
 
/**
*
* @hibernate.property
*/
public String getUrl()
{
return url;
}
 
public void setUrl(String url)
{
this.url = url;
}
 
/**
*
* @hibernate.property
*/
public String getComment()
{
return comment;
}
 
public void setComment(String comment)
{
this.comment = comment;
}
 
public boolean equals(Object o)
{
if(o == null || !(o instanceof Apartment)) return false;
 
Apartment a = (Apartment)o;
return (getId() != null) && (a.getId() != null) && (getId().equals(a.getId()));
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/model/EventApartment.java
0,0 → 1,80
package ak.kickup.core.model;
 
import java.math.BigDecimal;
import java.util.Date;
import ak.kickup.util.ModelException;
import ak.kickup.util.ModelSecurityException;
 
/**
*
* @hibernate.class table="event_apartments"
*/
public class EventApartment
extends GeneralModelObject
{
private Event event;
private Apartment apartment;
private BigDecimal distance;
private String comment;
private Date modStamp;
 
protected EventApartment()
{
}
 
/**
*
* @hibernate.many-to-one
*/
public Event getEvent()
{
return event;
}
 
public void setEvent(Event event)
{
this.event = event;
}
 
/**
*
* @hibernate.many-to-one
*/
public Apartment getApartment()
{
return apartment;
}
 
public void setApartment(Apartment apartment)
{
this.apartment = apartment;
}
 
/**
*
* @hibernate.property
*/
public BigDecimal getDistance()
{
return distance;
}
 
public void setDistance(BigDecimal distance)
{
this.distance = distance;
}
 
/**
*
* @hibernate.property
*/
public String getComment()
{
return comment;
}
 
public void setComment(String comment)
{
this.comment = comment;
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/form/ParticipantActBean.java
0,0 → 1,53
package ak.kickup.core.form;
 
import ak.kickup.util.StringConverter;
import ak.kickup.core.model.ParticipantAct;
import ak.kickup.core.model.Act;
 
public final class ParticipantActBean
{
private String actId;
private String comment;
private Boolean selected;
 
public ParticipantActBean()
{
}
 
public ParticipantActBean(Act act, ParticipantAct info)
{
this.actId = StringConverter.toString(act.getId());
this.comment = (info == null) ? null : info.getComment();
this.selected = Boolean.valueOf(info != null);
}
 
public String getActId()
{
return actId;
}
 
public void setActId(String actId)
{
this.actId = actId;
}
 
public String getComment()
{
return comment;
}
 
public void setComment(String comment)
{
this.comment = comment;
}
 
public Boolean getSelected()
{
return selected;
}
 
public void setSelected(Boolean selected)
{
this.selected = selected;
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/form/EventActBean.java
0,0 → 1,53
package ak.kickup.core.form;
 
import ak.kickup.util.StringConverter;
import ak.kickup.core.model.EventAct;
import ak.kickup.core.model.Act;
 
public final class EventActBean
{
private String actId;
private String comment;
private Boolean selected;
 
public EventActBean()
{
}
 
public EventActBean(Act act, EventAct info)
{
this.actId = StringConverter.toString(act.getId());
this.comment = (info == null) ? null : info.getComment();
this.selected = Boolean.valueOf(info != null);
}
 
public String getActId()
{
return actId;
}
 
public void setActId(String actId)
{
this.actId = actId;
}
 
public String getComment()
{
return comment;
}
 
public void setComment(String comment)
{
this.comment = comment;
}
 
public Boolean getSelected()
{
return selected;
}
 
public void setSelected(Boolean selected)
{
this.selected = selected;
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/form/EventApartmentBean.java
0,0 → 1,65
package ak.kickup.core.form;
 
import ak.kickup.util.StringConverter;
import ak.kickup.core.model.EventApartment;
import ak.kickup.core.model.Apartment;
 
public final class EventApartmentBean
{
private String apartmentId;
private String distance;
private String comment;
private Boolean selected;
 
public EventApartmentBean()
{
}
 
public EventApartmentBean(Apartment apartment, EventApartment info)
{
this.apartmentId = StringConverter.toString(apartment.getId());
this.distance = (info == null) ? null : StringConverter.toNumber(info.getDistance());
this.comment = (info == null) ? null : info.getComment();
this.selected = Boolean.valueOf(info != null);
}
 
public String getApartmentId()
{
return apartmentId;
}
 
public void setApartmentId(String apartmentId)
{
this.apartmentId = apartmentId;
}
 
public String getDistance()
{
return distance;
}
 
public void setDistance(String distance)
{
this.distance = distance;
}
 
public String getComment()
{
return comment;
}
 
public void setComment(String comment)
{
this.comment = comment;
}
 
public Boolean getSelected()
{
return selected;
}
 
public void setSelected(Boolean selected)
{
this.selected = selected;
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/servlet/LocaleServlet.java
0,0 → 1,29
package ak.kickup.core.servlet;
 
import java.util.Locale;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpSessionListener;
import javax.servlet.http.HttpSessionEvent;
import org.apache.struts.Globals;
 
public class LocaleServlet
extends HttpServlet
implements HttpSessionListener
{
public void init()
throws ServletException
{
super.init();
Locale.setDefault(new Locale("ru", "DE"));
}
 
public void sessionCreated(HttpSessionEvent se)
{
se.getSession().setAttribute(Globals.LOCALE_KEY, Locale.getDefault());
}
 
public void sessionDestroyed(HttpSessionEvent se)
{
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/servlet/HibernateFilter.java
0,0 → 1,106
package ak.kickup.core.servlet;
 
import java.util.List;
import java.util.ArrayList;
import java.util.StringTokenizer;
import java.io.IOException;
import java.net.URLEncoder;
import java.security.Principal;
import java.security.AccessControlException;
 
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.apache.log4j.Logger;
 
import net.sf.hibernate.HibernateException;
 
import ak.kickup.util.HibernateUtil;
import ak.kickup.util.ModelException;
 
public class HibernateFilter
implements Filter
{
private static final Logger logger = Logger.getLogger(HibernateFilter.class);
 
private FilterConfig filterConfig;
 
public void init(FilterConfig filterConfig)
throws ServletException
{
// get config
this.filterConfig = filterConfig;
 
if(filterConfig != null) {
// register hibernate classes
String toRegister = filterConfig.getInitParameter("register");
if(toRegister != null) {
String[] registers = toRegister.split("\\s*;\\s*");
 
for(int i = 0; i < registers.length; i++) {
try {
String name = registers[i].trim();
if(name.equals("")) continue;
 
Class cl = Class.forName(name);
}
catch(Exception ex) {
logger.error("cannot register class", ex);
}
}
}
}
}
 
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException
{
try {
logger.info("begin transaction");
HibernateUtil.beginTransaction();
 
chain.doFilter(request, response);
 
if(HibernateUtil.isTransactionOpen()) {
logger.info("commit transaction");
HibernateUtil.commitTransaction();
}
}
catch(Exception ex) {
logger.error("exception by program execution", ex);
try {
if(HibernateUtil.isTransactionOpen()) {
logger.info("rollback transaction");
HibernateUtil.rollbackTransaction();
}
}
catch(Exception ex2) {
logger.error("cannot rollback transaction", ex2);
}
 
if(ex instanceof ServletException)
throw (ServletException)ex;
else
throw new ServletException("Internal server error");
}
 
try {
HibernateUtil.closeSession();
}
catch(Exception ex) {
logger.error("cannot close session", ex);
}
}
 
public void destroy()
{
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/servlet/ProfilerFilter.java
0,0 → 1,47
package ak.kickup.core.servlet;
 
import java.io.IOException;
import java.net.URLEncoder;
 
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.apache.log4j.Logger;
 
/**
* Prints out time of request execution.
*/
public class ProfilerFilter
implements Filter
{
private static final Logger logger = Logger.getLogger(ProfilerFilter.class);
 
public void init(FilterConfig filterConfig)
throws ServletException
{
}
 
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException
{
logger.debug("begin");
 
long t1 = System.currentTimeMillis();
chain.doFilter(request, response);
long t2 = System.currentTimeMillis();
 
logger.info((t2 - t1) + " ms");
}
 
public void destroy()
{
}
}
/kickup/tags/release-1.0/src/ak/kickup/core/servlet/EncodingFilter.java
0,0 → 1,37
package ak.kickup.core.servlet;
 
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
 
public class EncodingFilter
implements Filter
{
public static final String ENCODING = "UTF-8";
 
private FilterConfig filterConfig;
 
public void init(FilterConfig filterConfig)
throws ServletException
{
this.filterConfig = filterConfig;
}
 
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException
{
if(request.getCharacterEncoding() == null)
request.setCharacterEncoding(ENCODING);
 
chain.doFilter(request, response);
}
 
public void destroy()
{
}
}
/kickup/tags/release-1.0/src/ak/kickup/util/Validator.java
0,0 → 1,79
package ak.kickup.util;
 
import java.math.BigDecimal;
import java.util.Date;
import java.text.NumberFormat;
import java.text.ParseException;
 
import javax.servlet.http.HttpServletRequest;
 
import org.apache.commons.validator.Field;
import org.apache.commons.validator.ValidatorAction;
import org.apache.commons.validator.ValidatorUtil;
 
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.validator.Resources;
 
public class Validator
{
public static BigDecimal validateNumber(Object bean, ValidatorAction va, Field field,
ActionErrors errors, HttpServletRequest request)
{
String value = null;
if((bean == null) || (bean instanceof String))
value = (String)bean;
else
value = ValidatorUtil.getValueAsString(bean, field.getProperty());
 
if(value == null || "".equals(value)) return null;
 
try {
return new BigDecimal(NumberFormat.getInstance().parse(value).doubleValue());
}
catch(ParseException ex) {
errors.add(field.getKey(), Resources.getActionError(request, va, field));
return null;
}
}
 
public static BigDecimal validateCurrency(Object bean, ValidatorAction va, Field field,
ActionErrors errors, HttpServletRequest request)
{
String value = null;
if((bean == null) || (bean instanceof String))
value = (String)bean;
else
value = ValidatorUtil.getValueAsString(bean, field.getProperty());
 
if(value == null || "".equals(value)) return null;
 
try {
return new BigDecimal(NumberFormat.getInstance().parse(value).doubleValue());
}
catch(ParseException ex) {
errors.add(field.getKey(), Resources.getActionError(request, va, field));
return null;
}
}
 
public static Date validateDateTime(Object bean, ValidatorAction va, Field field,
ActionErrors errors, HttpServletRequest request)
{
String value = null;
if((bean == null) || (bean instanceof String))
value = (String)bean;
else
value = ValidatorUtil.getValueAsString(bean, field.getProperty());
 
if(value == null || "".equals(value)) return null;
 
try {
return StringConverter.DATE_TIME_FORMAT.parse(value);
}
catch(ParseException ex) {
errors.add(field.getKey(), Resources.getActionError(request, va, field));
return null;
}
}
}
/kickup/tags/release-1.0/src/ak/kickup/util/StringConverter.java
0,0 → 1,122
package ak.kickup.util;
 
import java.math.BigDecimal;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.NumberFormat;
import java.text.DecimalFormat;
import java.text.ParseException;
 
public abstract class StringConverter
{
public static final DateFormat DATE_TIME_FORMAT = new SimpleDateFormat("dd.MM.yyyy HH:mm");
 
public static boolean isEmpty(Object o)
{
if(o == null)
return true;
else if((o instanceof String) && ((String)o).equals(""))
return true;
else
return false;
}
 
public static String preparse(Object o)
{
if(o instanceof String) {
String s = (String)o;
if(s == null || s.equals(""))
return null;
else
return s;
}
else {
throw new ClassCastException("String is expected, but it is " + o.getClass());
}
}
 
public static Long parseLong(Object o)
throws NumberFormatException
{
String s = preparse(o);
return (s == null) ? null : new Long(s);
}
 
public static Integer parseInteger(Object o)
throws NumberFormatException
{
String s = preparse(o);
return (s == null) ? null : new Integer(s);
}
 
public static BigDecimal parseNumber(Object o)
throws NumberFormatException, ParseException
{
String s = preparse(o);
return (s == null)
? null : new BigDecimal(NumberFormat.getInstance().parse(s).doubleValue());
}
 
public static String toNumber(Number n)
{
if(n == null)
return null;
else
return (new DecimalFormat()).format(n);
}
 
public static BigDecimal parseCurrency(Object o)
throws NumberFormatException, ParseException
{
String s = preparse(o);
return (s == null)
? null : new BigDecimal(NumberFormat.getInstance().parse(s).doubleValue());
}
 
public static String toCurrency(Number n)
{
if(n == null)
return null;
else
return (new DecimalFormat("0.00")).format(n);
}
 
public static Date parseDate(Object o)
throws NumberFormatException, ParseException
{
String s = preparse(o);
return (s == null) ? null : DateFormat.getDateInstance().parse(s);
}
 
public static String toDate(Date d)
{
if(d == null)
return null;
else
return DateFormat.getDateInstance().format(d);
}
 
public static Date parseDateTime(Object o)
throws NumberFormatException, ParseException
{
String s = preparse(o);
return (s == null) ? null : DATE_TIME_FORMAT.parse(s);
}
 
public static String toDateTime(Date d)
{
if(d == null)
return null;
else
return DATE_TIME_FORMAT.format(d);
}
 
public static String toString(Object o)
{
if(o == null)
return null;
else
return o.toString();
}
}
/kickup/tags/release-1.0/src/ak/kickup/util/ModelSecurityException.java
0,0 → 1,10
package ak.kickup.util;
 
public class ModelSecurityException
extends ModelException
{
public ModelSecurityException()
{
super("ak.kickup.core.access.denied");
}
}
/kickup/tags/release-1.0/src/ak/kickup/util/UserException.java
0,0 → 1,28
package ak.kickup.util;
 
public class UserException
extends Exception
{
private Object[] values;
 
public UserException()
{
this(null, null);
}
 
public UserException(String message)
{
this(message, null);
}
 
public UserException(String message, Object[] values)
{
super(message);
this.values = values;
}
 
public Object[] getValues()
{
return values;
}
}
/kickup/tags/release-1.0/src/ak/kickup/util/HibernateUtil.java
0,0 → 1,109
package ak.kickup.util;
 
import net.sf.hibernate.*;
import net.sf.hibernate.cfg.*;
 
public class HibernateUtil
{
private static Configuration configuration;
private static SessionFactory sessionFactory;
private static final ThreadLocal hibernateBean = new ThreadLocal();
 
public static Configuration getConfiguration()
throws HibernateException
{
if(configuration == null)
configuration = new Configuration();
 
return configuration;
}
 
public static SessionFactory getSessionFactory()
throws HibernateException
{
if(sessionFactory == null)
sessionFactory = getConfiguration().configure().buildSessionFactory();
 
return sessionFactory;
}
 
private static HibernateBean currentBean()
throws HibernateException
{
HibernateBean hb = (HibernateBean)hibernateBean.get();
 
if(hb == null) {
hb = new HibernateBean();
hb.session = getSessionFactory().openSession();
hibernateBean.set(hb);
}
return hb;
}
 
public static Session currentSession()
throws HibernateException
{
return currentBean().session;
}
 
public static void closeSession()
throws HibernateException, ModelException
{
HibernateBean hb = (HibernateBean)hibernateBean.get();
 
if(hb == null)
throw new ModelException("No session found for this thread");
 
hibernateBean.set(null);
hb.session.close();
}
 
public static void beginTransaction()
throws HibernateException, ModelException
{
HibernateBean hb = (HibernateBean)hibernateBean.get();
 
if(hb != null && hb.transaction != null)
throw new ModelException("Transaction is already open");
 
currentBean().transaction = currentSession().beginTransaction();
}
 
public static boolean isTransactionOpen()
throws HibernateException, ModelException
{
HibernateBean hb = (HibernateBean)hibernateBean.get();
 
return (hb != null) && (hb.transaction != null);
}
 
public static void commitTransaction()
throws HibernateException, ModelException
{
HibernateBean hb = (HibernateBean)hibernateBean.get();
 
if(hb == null || hb.transaction == null)
throw new ModelException("No open transaction");
 
hb.transaction.commit();
hb.transaction = null;
}
 
public static void rollbackTransaction()
throws HibernateException, ModelException
{
HibernateBean hb = (HibernateBean)hibernateBean.get();
 
if(hb == null || hb.transaction == null)
throw new ModelException("No open transaction");
 
hb.transaction.rollback();
hb.transaction = null;
}
 
static class HibernateBean
{
public Session session;
public Transaction transaction;
}
}
/kickup/tags/release-1.0/src/ak/kickup/util/ModelException.java
0,0 → 1,44
package ak.kickup.util;
 
public class ModelException
extends Exception
{
private Exception chainedException;
 
public ModelException()
{
this(null, null);
}
 
public ModelException(String message)
{
this(message, null);
}
 
public ModelException(Exception chainedException)
{
this(null, chainedException);
}
 
public ModelException(String message, Exception chainedException)
{
super(message);
this.chainedException = chainedException;
}
 
public Exception getChainedException()
{
return chainedException;
}
 
public void setChainedException(Exception chainedException)
{
this.chainedException = chainedException;
}
 
public String toString()
{
return super.toString()
+ (chainedException == null ? "" : "\n" + chainedException.toString());
}
}
/kickup/tags/release-1.0/src/ak/kickup/util/FormException.java
0,0 → 1,39
package ak.kickup.util;
 
public class FormException
extends UserException
{
private String property;
 
public FormException()
{
this(null, null, null);
}
 
public FormException(String message)
{
this(message, null, null);
}
 
public FormException(String message, String property)
{
this(message, property, null);
}
 
public FormException(String message, String property, Object[] values)
{
super(message, values);
this.property = property;
}
 
public String getProperty()
{
return property;
}
 
public String toString()
{
return super.toString()
+ (property == null ? "" : " for " + property);
}
}
/kickup/tags/release-1.0/bin/check_unicode.sh
0,0 → 1,5
#!/usr/local/bin/bash
 
# search for the tree unicode chars from M$
find . -not -path '*/.svn/*' -exec grep -H $'\xEF\xBB\xBF' {} \;
 
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/kickup/tags/release-1.0/bin/find_fixme.sh
0,0 → 1,4
#!/bin/sh
 
find . -not -path '*/.svn/*' -type f -exec grep -HE '[F]IXME' {} \;
 
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/kickup/tags/release-1.0/bin/dos2unix.sh
0,0 → 1,4
#!/bin/sh
 
find . -not -path '*/.svn/*' \( -name '*.java' -or -name '*.jsp' -or -name '*.tld' -or -name '*.xml' -or -name '*.sample' \) -exec sh -c 'tr -d "\r" < {} > tmp; mv tmp {}' \;
 
Property changes:
Added: svn:executable
+*
\ No newline at end of property
/kickup/tags/release-1.0/webapp/WEB-INF/lib/backpath.jar
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/tags/release-1.0/webapp/WEB-INF/lib/activation.jar
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/tags/release-1.0/webapp/WEB-INF/lib/mailapi.jar
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/tags/release-1.0/webapp/WEB-INF/lib/smtp.jar
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/tags/release-1.0/webapp/WEB-INF/lib/jakarta-oro.jar
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/tags/release-1.0/webapp/WEB-INF/lib/cglib-full-2.0.1.jar
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/tags/release-1.0/webapp/WEB-INF/lib/dom4j-1.4.jar
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/tags/release-1.0/webapp/WEB-INF/lib/jta.jar
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/tags/release-1.0/webapp/WEB-INF/lib/log4j.jar
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/tags/release-1.0/webapp/WEB-INF/lib/commons-digester.jar
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/tags/release-1.0/webapp/WEB-INF/lib/commons-dbcp.jar
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/tags/release-1.0/webapp/WEB-INF/lib/commons-pool.jar
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/tags/release-1.0/webapp/WEB-INF/lib/ehcache-0.7.jar
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/tags/release-1.0/webapp/WEB-INF/lib/hibernate2.jar
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/tags/release-1.0/webapp/WEB-INF/lib/commons-resources.jar
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/tags/release-1.0/webapp/WEB-INF/lib/odmg-3.0.jar
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/tags/release-1.0/webapp/WEB-INF/lib/commons-collections.jar
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/tags/release-1.0/webapp/WEB-INF/lib/xerces-2.4.0.jar
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/tags/release-1.0/webapp/WEB-INF/lib/commons-lang.jar
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/tags/release-1.0/webapp/WEB-INF/lib/xml-apis.jar
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/tags/release-1.0/webapp/WEB-INF/lib/commons-validator-1.1.3.jar
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/tags/release-1.0/webapp/WEB-INF/lib/strutsx.jar
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/tags/release-1.0/webapp/WEB-INF/lib/commons-fileupload.jar
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/tags/release-1.0/webapp/WEB-INF/lib/commons-beanutils.jar
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/tags/release-1.0/webapp/WEB-INF/lib/commons-logging.jar
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/tags/release-1.0/webapp/WEB-INF/lib/struts-1.1.jar
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/tags/release-1.0/webapp/WEB-INF/lib/xalan-2.4.0.jar
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/tags/release-1.0/webapp/WEB-INF/lib/pg74.213.jdbc3.jar
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/tags/release-1.0/webapp/WEB-INF/ak-kickup.tld
0,0 → 1,599
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>kickup</shortname>
<uri>http://26th.net/kickup</uri>
 
<tag>
<name>link</name>
<tagclass>ak.kickup.core.taglib.ExtendedLinkTag</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>
<attribute>
<name>backpath</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</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>
<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/tags/release-1.0/webapp/WEB-INF/ak-strutsx.tld
0,0 → 1,132
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>backpath</shortname>
<uri>http://26th.net/strutsx</uri>
 
<tag>
<name>root</name>
<tagclass>ak.strutsx.taglib.RootTag</tagclass>
<bodycontent>empty</bodycontent>
</tag>
 
<tag>
<name>errorsIterator</name>
<tagclass>ak.strutsx.taglib.ErrorsIteratorTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>bundle</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>locale</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
 
<tag>
<name>empty</name>
<tagclass>ak.strutsx.taglib.EmptyTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</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>
</tag>
<tag>
<name>notEmpty</name>
<tagclass>ak.strutsx.taglib.NotEmptyTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</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>
</tag>
 
<tag>
<name>message</name>
<tagclass>ak.strutsx.taglib.MessageTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>bundle</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>key</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>locale</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>valuesName</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>valuesProperty</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>scope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
/kickup/tags/release-1.0/webapp/WEB-INF/struts-config.xml
0,0 → 1,539
<?xml version="1.0" encoding="ISO-8859-1" ?>
 
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
 
<struts-config>
<form-beans>
<form-bean
name="EventForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="id" type="java.lang.String" />
</form-bean>
 
<form-bean
name="EventEditForm"
type="ak.strutsx.ResizeableDynaValidatorForm">
<form-property name="id" type="java.lang.String" />
<form-property name="name" type="java.lang.String" />
<form-property name="place" type="java.lang.String" />
<form-property name="email" type="java.lang.String" />
<form-property name="admins" type="java.lang.String" />
<form-property name="phones" type="java.lang.String" />
<form-property name="address" type="java.lang.String" />
<form-property name="transport" type="java.lang.String" />
<form-property name="start" type="java.lang.String" />
<form-property name="stop" type="java.lang.String" />
<form-property name="lastreg" type="java.lang.String" />
<form-property name="lastunreg" type="java.lang.String" />
<form-property name="price" type="java.lang.String" />
<form-property name="account" type="java.lang.String" />
<form-property name="enabled" type="java.lang.Boolean" />
<form-property name="comment" type="java.lang.String" />
<form-property name="acts" type="ak.kickup.core.form.EventActBean[]"
size="1" />
<form-property name="apartments" type="ak.kickup.core.form.EventApartmentBean[]"
size="1" />
</form-bean>
 
<form-bean
name="ActForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="id" type="java.lang.String" />
</form-bean>
 
<form-bean
name="ActEditForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="id" type="java.lang.String" />
<form-property name="name" type="java.lang.String" />
<form-property name="comment" type="java.lang.String" />
</form-bean>
 
<form-bean
name="ApartmentForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="id" type="java.lang.String" />
</form-bean>
 
<form-bean
name="ApartmentEditForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="id" type="java.lang.String" />
<form-property name="name" type="java.lang.String" />
<form-property name="address" type="java.lang.String" />
<form-property name="price" type="java.lang.String" />
<form-property name="url" type="java.lang.String" />
<form-property name="comment" type="java.lang.String" />
</form-bean>
 
<form-bean
name="ParticipantListForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="event" type="java.lang.String" />
</form-bean>
 
<form-bean
name="ParticipantForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="id" type="java.lang.String" />
<form-property name="event" type="java.lang.String" />
</form-bean>
 
<form-bean
name="ParticipantLoginForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="event" type="java.lang.String" />
<form-property name="ident" type="java.lang.String" />
</form-bean>
 
<form-bean
name="ParticipantEditForm"
type="ak.strutsx.ResizeableDynaValidatorForm">
<form-property name="id" type="java.lang.String" />
<form-property name="event" type="java.lang.String" />
<form-property name="nick" type="java.lang.String" />
<form-property name="email" type="java.lang.String" />
<form-property name="emailPublic" type="java.lang.Boolean" />
<form-property name="name" type="java.lang.String" />
<form-property name="phone" type="java.lang.String" />
<form-property name="persons" type="java.lang.String" />
<form-property name="fromZip" type="java.lang.String" />
<form-property name="fromCity" type="java.lang.String" />
<form-property name="departure" type="java.lang.String" />
<form-property name="freeTransport" type="java.lang.String" />
<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.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[]"
size="1" />
</form-bean>
 
<form-bean
name="ParticipantRegisterForm"
type="ak.strutsx.ResizeableDynaValidatorForm">
<form-property name="event" type="java.lang.String" />
<form-property name="nick" type="java.lang.String" />
<form-property name="email" type="java.lang.String" />
<form-property name="emailPublic" type="java.lang.Boolean" />
<form-property name="name" type="java.lang.String" />
<form-property name="phone" type="java.lang.String" />
<form-property name="persons" type="java.lang.String" />
<form-property name="fromZip" type="java.lang.String" />
<form-property name="fromCity" type="java.lang.String" />
<form-property name="departure" type="java.lang.String" />
<form-property name="freeTransport" type="java.lang.String" />
<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="comment" type="java.lang.String" />
<form-property name="acts" type="ak.kickup.core.form.ParticipantActBean[]"
size="1" />
</form-bean>
 
<form-bean
name="ParticipantRegisterEditForm"
type="ak.strutsx.ResizeableDynaValidatorForm">
<form-property name="ident" type="java.lang.String" />
<form-property name="event" type="java.lang.String" />
<form-property name="emailPublic" type="java.lang.Boolean" />
<form-property name="name" type="java.lang.String" />
<form-property name="phone" type="java.lang.String" />
<form-property name="persons" type="java.lang.String" />
<form-property name="fromZip" type="java.lang.String" />
<form-property name="fromCity" type="java.lang.String" />
<form-property name="departure" type="java.lang.String" />
<form-property name="freeTransport" type="java.lang.String" />
<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="comment" type="java.lang.String" />
<form-property name="acts" type="ak.kickup.core.form.ParticipantActBean[]"
size="1" />
</form-bean>
 
<form-bean
name="ParticipantRemindForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="event" type="java.lang.String" />
<form-property name="email" type="java.lang.String" />
</form-bean>
 
<form-bean
name="ParticipantActListForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="act" type="java.lang.String" />
<form-property name="event" type="java.lang.String" />
</form-bean>
</form-beans>
 
<global-exceptions>
<exception
key="UserException"
type="ak.kickup.util.UserException"
handler="ak.kickup.core.action.UserExceptionHandler"
/>
</global-exceptions>
 
<global-forwards>
<forward
name="error"
path="/error.jsp"
/>
</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>
 
<action
path="/participant/register"
type="ak.kickup.core.action.ParticipantAction"
parameter="register"
name="ParticipantListForm"
validate="true"
scope="request"
>
<forward name="default" path="/participant/register.jsp" />
</action>
 
<action
path="/participant/submit"
type="ak.kickup.core.action.ParticipantAction"
parameter="submit"
name="ParticipantRegisterForm"
validate="true"
scope="request"
input="/participant/register.jsp"
>
<forward name="default" path="/participant/registered.jsp" />
</action>
 
<action
path="/participant/ident"
type="ak.kickup.core.action.ParticipantAction"
parameter="ident"
name="ParticipantListForm"
validate="true"
scope="request"
>
<forward name="default" path="/participant/ident.jsp" />
</action>
 
<action
path="/participant/login"
type="ak.kickup.core.action.ParticipantAction"
parameter="login"
name="ParticipantLoginForm"
validate="true"
scope="request"
input="/participant/ident.jsp"
>
<forward name="default" path="/participant/edit.jsp" />
</action>
 
<action
path="/participant/update"
type="ak.kickup.core.action.ParticipantAction"
parameter="update"
name="ParticipantRegisterEditForm"
validate="true"
scope="request"
input="/participant/edit.jsp"
>
<forward name="default" path="/participant/updated.jsp" />
</action>
 
<action
path="/participant/unregister"
type="ak.kickup.core.action.ParticipantAction"
parameter="unregister"
name="ParticipantLoginForm"
validate="true"
scope="request"
input="/participant/ident.jsp"
>
<forward name="default" path="/participant/unregistered.jsp" />
</action>
 
<action
path="/participant/remind"
type="ak.kickup.core.action.ParticipantAction"
parameter="remind"
name="ParticipantRemindForm"
validate="true"
scope="request"
input="/participant/ident.jsp"
>
<forward name="default" path="/participant/reminded.jsp" />
</action>
 
<!-- == act ================================================================================= -->
 
<action
path="/act/list"
type="ak.kickup.core.action.ActAction"
parameter="list"
name="ParticipantActListForm"
validate="true"
scope="request"
>
<forward name="default" path="/act/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"
/>
 
<!-- == event ============================================================================= -->
 
<action
path="/admin/event/list"
type="ak.kickup.core.action.AdminEventAction"
parameter="list"
>
<forward name="default" path="/admin/event/list.jsp" />
</action>
 
<action
path="/admin/event/delete"
type="ak.kickup.core.action.AdminEventAction"
parameter="delete"
name="EventForm"
validate="true"
scope="request"
>
</action>
 
<action
path="/admin/event/edit"
type="ak.kickup.core.action.AdminEventAction"
parameter="edit"
name="EventForm"
validate="true"
scope="request"
>
<forward name="default" path="/admin/event/edit.jsp" />
</action>
 
<action
path="/admin/event/submit"
type="ak.kickup.core.action.AdminEventAction"
parameter="submit"
name="EventEditForm"
validate="true"
scope="request"
input="/admin/event/edit.jsp"
>
</action>
 
<!-- == act =============================================================================== -->
 
<action
path="/admin/act/list"
type="ak.kickup.core.action.AdminActAction"
parameter="list"
>
<forward name="default" path="/admin/act/list.jsp" />
</action>
 
<action
path="/admin/act/delete"
type="ak.kickup.core.action.AdminActAction"
parameter="delete"
name="ActForm"
validate="true"
scope="request"
>
</action>
 
<action
path="/admin/act/edit"
type="ak.kickup.core.action.AdminActAction"
parameter="edit"
name="ActForm"
validate="true"
scope="request"
>
<forward name="default" path="/admin/act/edit.jsp" />
</action>
 
<action
path="/admin/act/submit"
type="ak.kickup.core.action.AdminActAction"
parameter="submit"
name="ActEditForm"
validate="true"
scope="request"
input="/admin/act/edit.jsp"
>
</action>
 
<!-- == apartment ========================================================================= -->
 
<action
path="/admin/apartment/list"
type="ak.kickup.core.action.AdminApartmentAction"
parameter="list"
>
<forward name="default" path="/admin/apartment/list.jsp" />
</action>
 
<action
path="/admin/apartment/delete"
type="ak.kickup.core.action.AdminApartmentAction"
parameter="delete"
name="ApartmentForm"
validate="true"
scope="request"
>
</action>
 
<action
path="/admin/apartment/edit"
type="ak.kickup.core.action.AdminApartmentAction"
parameter="edit"
name="ApartmentForm"
validate="true"
scope="request"
>
<forward name="default" path="/admin/apartment/edit.jsp" />
</action>
 
<action
path="/admin/apartment/submit"
type="ak.kickup.core.action.AdminApartmentAction"
parameter="submit"
name="ApartmentEditForm"
validate="true"
scope="request"
input="/admin/apartment/edit.jsp"
>
</action>
 
<!-- == participant ========================================================================= -->
 
<action
path="/admin/participant/list"
type="ak.kickup.core.action.AdminParticipantAction"
parameter="list"
name="ParticipantListForm"
validate="true"
scope="request"
>
<forward name="default" path="/admin/participant/list.jsp" />
</action>
 
<action
path="/admin/participant/delete"
type="ak.kickup.core.action.AdminParticipantAction"
parameter="delete"
name="ParticipantForm"
validate="true"
scope="request"
>
</action>
 
<action
path="/admin/participant/edit"
type="ak.kickup.core.action.AdminParticipantAction"
parameter="edit"
name="ParticipantForm"
validate="true"
scope="request"
>
<forward name="default" path="/admin/participant/edit.jsp" />
</action>
 
<action
path="/admin/participant/submit"
type="ak.kickup.core.action.AdminParticipantAction"
parameter="submit"
name="ParticipantEditForm"
validate="true"
scope="request"
input="/admin/participant/edit.jsp"
>
</action>
 
</action-mappings>
 
<controller processorClass="ak.strutsx.RequestProcessorX" />
 
<message-resources parameter="ak.kickup.core.CoreResources" />
 
<!-- ========== Plug-Ins Configuration ================================== -->
 
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
 
</struts-config>
/kickup/tags/release-1.0/webapp/WEB-INF/validation.xml
0,0 → 1,223
<?xml version="1.0" encoding="ISO-8859-1" ?>
 
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
 
<form-validation>
<global>
</global>
 
<formset>
<form name="EventForm">
<field property="id" depends="long">
<msg name="long" key="ak.kickup.core.event.edit.id.wrong" />
</field>
</form>
 
<form name="EventEditForm">
<field property="id" depends="long">
<msg name="long" key="ak.kickup.core.event.edit.id.wrong" />
</field>
<field property="name" depends="required">
<msg name="required" key="ak.kickup.core.event.edit.name.required" />
</field>
<field property="admins" depends="required">
<msg name="required" key="ak.kickup.core.event.edit.admins.required" />
</field>
<field property="email" depends="required,email">
<msg name="required" key="ak.kickup.core.event.edit.email.required" />
<msg name="email" key="ak.kickup.core.event.edit.email.wrong" />
</field>
<field property="start" depends="date">
<msg name="date" key="ak.kickup.core.event.edit.start.wrong" />
</field>
<field property="stop" depends="date">
<msg name="date" key="ak.kickup.core.event.edit.stop.wrong" />
</field>
<field property="lastreg" depends="date">
<msg name="date" key="ak.kickup.core.event.edit.lastreg.wrong" />
</field>
<field property="lastunreg" depends="date">
<msg name="date" key="ak.kickup.core.event.edit.lastunreg.wrong" />
</field>
<field property="price" depends="currency">
<msg name="currency" key="ak.kickup.core.event.edit.price.wrong" />
</field>
</form>
 
<form name="ActForm">
<field property="id" depends="long">
<msg name="long" key="ak.kickup.core.act.edit.id.wrong" />
</field>
</form>
 
<form name="ActEditForm">
<field property="id" depends="long">
<msg name="long" key="ak.kickup.core.act.edit.id.wrong" />
</field>
<field property="name" depends="required">
<msg name="required" key="ak.kickup.core.act.edit.name.required" />
</field>
</form>
 
<form name="ApartmentForm">
<field property="id" depends="long">
<msg name="long" key="ak.kickup.core.apartment.edit.id.wrong" />
</field>
</form>
 
<form name="ApartmentEditForm">
<field property="id" depends="long">
<msg name="long" key="ak.kickup.core.apartment.edit.id.wrong" />
</field>
<field property="name" depends="required">
<msg name="required" key="ak.kickup.core.apartment.edit.name.required" />
</field>
<field property="price" depends="currency">
<msg name="currency" key="ak.kickup.core.apartment.edit.price.wrong" />
</field>
</form>
 
<form name="ParticipantListForm">
<field property="event" depends="long,required">
<msg name="long" key="ak.kickup.core.participant.edit.event.wrong" />
<msg name="required" key="ak.kickup.core.participant.edit.event.wrong" />
</field>
</form>
 
<form name="ParticipantForm">
<field property="event" depends="long,required">
<msg name="long" key="ak.kickup.core.participant.edit.event.wrong" />
<msg name="required" key="ak.kickup.core.participant.edit.event.wrong" />
</field>
<field property="id" depends="long">
<msg name="long" key="ak.kickup.core.participant.edit.id.wrong" />
</field>
</form>
 
<form name="ParticipantLoginForm">
<field property="event" depends="long,required">
<msg name="long" key="ak.kickup.core.participant.edit.event.wrong" />
<msg name="required" key="ak.kickup.core.participant.edit.event.wrong" />
</field>
<field property="ident" depends="required">
<msg name="required" key="ak.kickup.core.participant.edit.ident.required" />
</field>
</form>
 
<form name="ParticipantEditForm">
<field property="event" depends="long,required">
<msg name="long" key="ak.kickup.core.participant.edit.event.wrong" />
<msg name="required" key="ak.kickup.core.participant.edit.event.wrong" />
</field>
<field property="id" depends="long">
<msg name="long" key="ak.kickup.core.participant.edit.id.wrong" />
</field>
<field property="nick" depends="required">
<msg name="required" key="ak.kickup.core.participant.edit.nick.required" />
</field>
<field property="email" depends="required,email">
<msg name="required" key="ak.kickup.core.participant.edit.email.required" />
<msg name="email" key="ak.kickup.core.participant.edit.email.wrong" />
</field>
<field property="persons" depends="required,integer,intRange">
<msg name="required" key="ak.kickup.core.participant.edit.persons.required" />
<msg name="integer" key="ak.kickup.core.participant.edit.persons.wrong" />
<msg name="intRange" key="ak.kickup.core.participant.edit.persons.wrong" />
<var><var-name>min</var-name><var-value>1</var-value></var>
<var><var-name>max</var-name><var-value>1000</var-value></var>
</field>
<field property="freeTransport" depends="integer">
<msg name="integer" key="ak.kickup.core.participant.edit.freetransport.wrong" />
</field>
<field property="departure" depends="datetime">
<msg name="datetime" key="ak.kickup.core.participant.edit.departure.wrong" />
</field>
<field property="freeSleep" depends="integer">
<msg name="integer" key="ak.kickup.core.participant.edit.freesleep.wrong" />
</field>
<field property="payed" depends="currency">
<msg name="currency" key="ak.kickup.core.participant.edit.payed.wrong" />
</field>
</form>
 
<form name="ParticipantRegisterForm">
<field property="event" depends="long,required">
<msg name="long" key="ak.kickup.core.participant.edit.event.wrong" />
<msg name="required" key="ak.kickup.core.participant.edit.event.wrong" />
</field>
<field property="nick" depends="required">
<msg name="required" key="ak.kickup.core.participant.edit.nick.required" />
</field>
<field property="email" depends="required,email">
<msg name="required" key="ak.kickup.core.participant.edit.email.required" />
<msg name="email" key="ak.kickup.core.participant.edit.email.wrong" />
</field>
<field property="persons" depends="required,integer,intRange">
<msg name="required" key="ak.kickup.core.participant.edit.persons.required" />
<msg name="integer" key="ak.kickup.core.participant.edit.persons.wrong" />
<msg name="intRange" key="ak.kickup.core.participant.edit.persons.wrong" />
<var><var-name>min</var-name><var-value>1</var-value></var>
<var><var-name>max</var-name><var-value>1000</var-value></var>
</field>
<field property="freeTransport" depends="integer">
<msg name="integer" key="ak.kickup.core.participant.edit.freetransport.wrong" />
</field>
<field property="departure" depends="datetime">
<msg name="datetime" key="ak.kickup.core.participant.edit.departure.wrong" />
</field>
<field property="freeSleep" depends="integer">
<msg name="integer" key="ak.kickup.core.participant.edit.freesleep.wrong" />
</field>
</form>
 
<form name="ParticipantRegisterEditForm">
<field property="ident" depends="required">
<msg name="required" key="ak.kickup.core.participant.edit.ident.required" />
</field>
<field property="event" depends="long,required">
<msg name="long" key="ak.kickup.core.participant.edit.event.wrong" />
<msg name="required" key="ak.kickup.core.participant.edit.event.wrong" />
</field>
<field property="persons" depends="required,integer,intRange">
<msg name="required" key="ak.kickup.core.participant.edit.persons.required" />
<msg name="integer" key="ak.kickup.core.participant.edit.persons.wrong" />
<msg name="intRange" key="ak.kickup.core.participant.edit.persons.wrong" />
<var><var-name>min</var-name><var-value>1</var-value></var>
<var><var-name>max</var-name><var-value>1000</var-value></var>
</field>
<field property="freeTransport" depends="integer">
<msg name="integer" key="ak.kickup.core.participant.edit.freetransport.wrong" />
</field>
<field property="departure" depends="datetime">
<msg name="datetime" key="ak.kickup.core.participant.edit.departure.wrong" />
</field>
<field property="freeSleep" depends="integer">
<msg name="integer" key="ak.kickup.core.participant.edit.freesleep.wrong" />
</field>
</form>
 
<form name="ParticipantRemindForm">
<field property="event" depends="long,required">
<msg name="long" key="ak.kickup.core.participant.edit.event.wrong" />
<msg name="required" key="ak.kickup.core.participant.edit.event.wrong" />
</field>
<field property="email" depends="required,email">
<msg name="required" key="ak.kickup.core.participant.remind.email.required" />
<msg name="email" key="ak.kickup.core.participant.remind.email.wrong" />
</field>
</form>
 
<form name="ParticipantActListForm">
<field property="event" depends="long,required">
<msg name="long" key="ak.kickup.core.participant.edit.event.wrong" />
<msg name="required" key="ak.kickup.core.participant.edit.event.wrong" />
</field>
<field property="act" depends="long,required">
<msg name="long" key="ak.kickup.core.act.edit.id.wrong" />
<msg name="required" key="ak.kickup.core.act.edit.id.wrong" />
</field>
</form>
</formset>
</form-validation>
/kickup/tags/release-1.0/webapp/WEB-INF/validator-rules.xml
0,0 → 1,1024
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
<!--
 
This file contains the default Struts Validator pluggable validator
definitions. It should be placed somewhere under /WEB-INF and
referenced in the struts-config.xml under the plug-in element
for the ValidatorPlugIn.
 
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>
 
These are the default error messages associated with
each validator defined in this file. They should be
added to your projects ApplicationResources.properties
file or you can associate new ones by modifying the
pluggable validators msg attributes in this file.
 
# Struts Validator Error Messages
errors.required={0} is required.
errors.minlength={0} can not be less than {1} characters.
errors.maxlength={0} can not be greater than {1} characters.
errors.invalid={0} is invalid.
 
errors.byte={0} must be a byte.
errors.short={0} must be a short.
errors.integer={0} must be an integer.
errors.long={0} must be a long.
errors.float={0} must be a float.
errors.double={0} must be a double.
 
errors.date={0} is not a date.
errors.range={0} is not in the range {1} through {2}.
errors.creditcard={0} is an invalid credit card number.
errors.email={0} is an invalid e-mail address.
 
-->
 
<form-validation>
 
<global>
 
<validator name="required"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
msg="errors.required">
 
<javascript><![CDATA[
function validateRequired(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oRequired = new required();
for (x in oRequired) {
var field = form[oRequired[x][0]];
 
if (field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'file' ||
field.type == 'select-one' ||
field.type == 'radio' ||
field.type == 'password') {
 
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
}
} else {
value = field.value;
}
 
if (value == '') {
 
if (i == 0) {
focusField = field;
}
fields[i++] = oRequired[x][1];
bValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}]]>
</javascript>
 
</validator>
 
<validator name="requiredif"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequiredIf"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
msg="errors.required">
</validator>
 
<validator name="minlength"
classname="org.apache.struts.validator.FieldChecks"
method="validateMinLength"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.minlength">
 
<javascript><![CDATA[
function validateMinLength(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oMinLength = new minlength();
for (x in oMinLength) {
if (form[oMinLength[x][0]].type == 'text' ||
form[oMinLength[x][0]].type == 'textarea') {
var iMin = parseInt(oMinLength[x][2]("minlength"));
if (form[oMinLength[x][0]].value.length < iMin) {
if (i == 0) {
focusField = form[oMinLength[x][0]];
}
fields[i++] = oMinLength[x][1];
bValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}]]>
</javascript>
 
</validator>
 
 
<validator name="maxlength"
classname="org.apache.struts.validator.FieldChecks"
method="validateMaxLength"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.maxlength">
 
<javascript><![CDATA[
function validateMaxLength(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oMaxLength = new maxlength();
for (x in oMaxLength) {
if (form[oMaxLength[x][0]].type == 'text' ||
form[oMaxLength[x][0]].type == 'textarea') {
var iMax = parseInt(oMaxLength[x][2]("maxlength"));
if (form[oMaxLength[x][0]].value.length > iMax) {
if (i == 0) {
focusField = form[oMaxLength[x][0]];
}
fields[i++] = oMaxLength[x][1];
bValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}]]>
</javascript>
 
</validator>
 
 
<validator name="mask"
classname="org.apache.struts.validator.FieldChecks"
method="validateMask"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.invalid">
 
<javascript><![CDATA[
function validateMask(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oMasked = new mask();
for (x in oMasked) {
if ((form[oMasked[x][0]].type == 'text' ||
form[oMasked[x][0]].type == 'textarea' ||
form[oMasked[x][0]].type == 'password') &&
(form[oMasked[x][0]].value.length > 0)) {
if (!matchPattern(form[oMasked[x][0]].value, oMasked[x][2]("mask"))) {
if (i == 0) {
focusField = form[oMasked[x][0]];
}
fields[i++] = oMasked[x][1];
bValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}
 
function matchPattern(value, mask) {
var bMatched = mask.exec(value);
if (!bMatched) {
return false;
}
return true;
}]]>
</javascript>
 
</validator>
 
 
<validator name="byte"
classname="org.apache.struts.validator.FieldChecks"
method="validateByte"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.byte"
jsFunctionName="ByteValidations">
 
<javascript><![CDATA[
function validateByte(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oByte = new ByteValidations();
for (x in oByte) {
var field = form[oByte[x][0]];
 
if (field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'select-one' ||
field.type == 'radio') {
 
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
}
} else {
value = field.value;
}
 
if (value.length > 0) {
 
var iValue = parseInt(value);
if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) {
if (i == 0) {
focusField = field;
}
fields[i++] = oByte[x][1];
bValid = false;
}
}
 
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}]]>
</javascript>
 
</validator>
 
 
<validator name="short"
classname="org.apache.struts.validator.FieldChecks"
method="validateShort"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.short"
jsFunctionName="ShortValidations">
 
<javascript><![CDATA[
function validateShort(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oShort = new ShortValidations();
for (x in oShort) {
var field = form[oShort[x][0]];
 
if (field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'select-one' ||
field.type == 'radio') {
 
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
}
} else {
value = field.value;
}
 
if (value.length > 0) {
 
var iValue = parseInt(value);
if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) {
if (i == 0) {
focusField = field;
}
fields[i++] = oShort[x][1];
bValid = false;
}
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}]]>
</javascript>
 
</validator>
 
 
<validator name="integer"
classname="org.apache.struts.validator.FieldChecks"
method="validateInteger"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.integer"
jsFunctionName="IntegerValidations">
 
<javascript><![CDATA[
function validateInteger(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oInteger = new IntegerValidations();
for (x in oInteger) {
var field = form[oInteger[x][0]];
 
if (field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'select-one' ||
field.type == 'radio') {
 
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
}
} else {
value = field.value;
}
 
if (value.length > 0) {
 
if (!isAllDigits(value)) {
bValid = false;
} else {
var iValue = parseInt(value);
if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
if (i == 0) {
focusField = field;
}
fields[i++] = oInteger[x][1];
bValid = false;
}
}
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}
 
function isAllDigits(argvalue) {
argvalue = argvalue.toString();
var validChars = "0123456789";
var startFrom = 0;
if (argvalue.substring(0, 2) == "0x") {
validChars = "0123456789abcdefABCDEF";
startFrom = 2;
} else if (argvalue.charAt(0) == "0") {
validChars = "01234567";
startFrom = 1;
}
for (var n = 0; n < argvalue.length; n++) {
if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;
}
return true;
}]]>
</javascript>
 
</validator>
 
 
<validator name="long"
classname="org.apache.struts.validator.FieldChecks"
method="validateLong"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.long"/>
 
 
<validator name="float"
classname="org.apache.struts.validator.FieldChecks"
method="validateFloat"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.float"
jsFunctionName="FloatValidations">
 
<javascript><![CDATA[
function validateFloat(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oFloat = new FloatValidations();
for (x in oFloat) {
var field = form[oFloat[x][0]];
 
if (field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'select-one' ||
field.type == 'radio') {
 
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
}
} else {
value = field.value;
}
 
if (value.length > 0) {
 
var iValue = parseFloat(value);
if (isNaN(iValue)) {
if (i == 0) {
focusField = field;
}
fields[i++] = oFloat[x][1];
bValid = false;
}
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}]]>
</javascript>
 
</validator>
 
 
<validator name="double"
classname="org.apache.struts.validator.FieldChecks"
method="validateDouble"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.double"/>
 
 
<validator name="date"
classname="org.apache.struts.validator.FieldChecks"
method="validateDate"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.date"
jsFunctionName="DateValidations">
 
<javascript><![CDATA[
function validateDate(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oDate = new DateValidations();
for (x in oDate) {
var value = form[oDate[x][0]].value;
var datePattern = oDate[x][2]("datePatternStrict");
if ((form[oDate[x][0]].type == 'text' ||
form[oDate[x][0]].type == 'textarea') &&
(value.length > 0) &&
(datePattern.length > 0)) {
var MONTH = "MM";
var DAY = "dd";
var YEAR = "yyyy";
var orderMonth = datePattern.indexOf(MONTH);
var orderDay = datePattern.indexOf(DAY);
var orderYear = datePattern.indexOf(YEAR);
if ((orderDay < orderYear && orderDay > orderMonth)) {
var iDelim1 = orderMonth + MONTH.length;
var iDelim2 = orderDay + DAY.length;
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
if (iDelim1 == orderDay && iDelim2 == orderYear) {
dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
} else if (iDelim1 == orderDay) {
dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
} else if (iDelim2 == orderYear) {
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
} else {
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
}
var matched = dateRegexp.exec(value);
if(matched != null) {
if (!isValidDate(matched[2], matched[1], matched[3])) {
if (i == 0) {
focusField = form[oDate[x][0]];
}
fields[i++] = oDate[x][1];
bValid = false;
}
} else {
if (i == 0) {
focusField = form[oDate[x][0]];
}
fields[i++] = oDate[x][1];
bValid = false;
}
} else if ((orderMonth < orderYear && orderMonth > orderDay)) {
var iDelim1 = orderDay + DAY.length;
var iDelim2 = orderMonth + MONTH.length;
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
if (iDelim1 == orderMonth && iDelim2 == orderYear) {
dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
} else if (iDelim1 == orderMonth) {
dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
} else if (iDelim2 == orderYear) {
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
} else {
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
}
var matched = dateRegexp.exec(value);
if(matched != null) {
if (!isValidDate(matched[1], matched[2], matched[3])) {
if (i == 0) {
focusField = form[oDate[x][0]];
}
fields[i++] = oDate[x][1];
bValid = false;
}
} else {
if (i == 0) {
focusField = form[oDate[x][0]];
}
fields[i++] = oDate[x][1];
bValid = false;
}
} else if ((orderMonth > orderYear && orderMonth < orderDay)) {
var iDelim1 = orderYear + YEAR.length;
var iDelim2 = orderMonth + MONTH.length;
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
if (iDelim1 == orderMonth && iDelim2 == orderDay) {
dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$");
} else if (iDelim1 == orderMonth) {
dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$");
} else if (iDelim2 == orderDay) {
dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$");
} else {
dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$");
}
var matched = dateRegexp.exec(value);
if(matched != null) {
if (!isValidDate(matched[3], matched[2], matched[1])) {
if (i == 0) {
focusField = form[oDate[x][0]];
}
fields[i++] = oDate[x][1];
bValid = false;
}
} else {
if (i == 0) {
focusField = form[oDate[x][0]];
}
fields[i++] = oDate[x][1];
bValid = false;
}
} else {
if (i == 0) {
focusField = form[oDate[x][0]];
}
fields[i++] = oDate[x][1];
bValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}
 
function isValidDate(day, month, year) {
if (month < 1 || month > 12) {
return false;
}
if (day < 1 || day > 31) {
return false;
}
if ((month == 4 || month == 6 || month == 9 || month == 11) &&
(day == 31)) {
return false;
}
if (month == 2) {
var leap = (year % 4 == 0 &&
(year % 100 != 0 || year % 400 == 0));
if (day>29 || (day == 29 && !leap)) {
return false;
}
}
return true;
}]]>
</javascript>
 
</validator>
 
<!-- range is deprecated use intRange instead -->
<validator name="range"
classname="org.apache.struts.validator.FieldChecks"
method="validateIntRange"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends="integer"
msg="errors.range">
 
<javascript><![CDATA[
function validateRange(form) {
return validateIntRange(form);
}]]>
</javascript>
 
</validator>
 
<validator name="intRange"
classname="org.apache.struts.validator.FieldChecks"
method="validateIntRange"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends="integer"
msg="errors.range">
 
<javascript><![CDATA[
function validateIntRange(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oRange = new intRange();
for (x in oRange) {
if ((form[oRange[x][0]].type == 'text' ||
form[oRange[x][0]].type == 'textarea') &&
(form[oRange[x][0]].value.length > 0)) {
var iMin = parseInt(oRange[x][2]("min"));
var iMax = parseInt(oRange[x][2]("max"));
var iValue = parseInt(form[oRange[x][0]].value);
if (!(iValue >= iMin && iValue <= iMax)) {
if (i == 0) {
focusField = form[oRange[x][0]];
}
fields[i++] = oRange[x][1];
bValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}]]>
</javascript>
 
</validator>
 
<validator name="floatRange"
classname="org.apache.struts.validator.FieldChecks"
method="validateFloatRange"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends="float"
msg="errors.range">
 
<javascript><![CDATA[
function validateFloatRange(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oRange = new floatRange();
for (x in oRange) {
if ((form[oRange[x][0]].type == 'text' ||
form[oRange[x][0]].type == 'textarea') &&
(form[oRange[x][0]].value.length > 0)) {
var fMin = parseFloat(oRange[x][2]("min"));
var fMax = parseFloat(oRange[x][2]("max"));
var fValue = parseFloat(form[oRange[x][0]].value);
if (!(fValue >= fMin && fValue <= fMax)) {
if (i == 0) {
focusField = form[oRange[x][0]];
}
fields[i++] = oRange[x][1];
bValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}]]>
</javascript>
 
</validator>
 
<validator name="creditCard"
classname="org.apache.struts.validator.FieldChecks"
method="validateCreditCard"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.creditcard">
 
<javascript><![CDATA[
function validateCreditCard(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oCreditCard = new creditCard();
for (x in oCreditCard) {
if ((form[oCreditCard[x][0]].type == 'text' ||
form[oCreditCard[x][0]].type == 'textarea') &&
(form[oCreditCard[x][0]].value.length > 0)) {
if (!luhnCheck(form[oCreditCard[x][0]].value)) {
if (i == 0) {
focusField = form[oCreditCard[x][0]];
}
fields[i++] = oCreditCard[x][1];
bValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}
 
/**
* Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl
*/
function luhnCheck(cardNumber) {
if (isLuhnNum(cardNumber)) {
var no_digit = cardNumber.length;
var oddoeven = no_digit & 1;
var sum = 0;
for (var count = 0; count < no_digit; count++) {
var digit = parseInt(cardNumber.charAt(count));
if (!((count & 1) ^ oddoeven)) {
digit *= 2;
if (digit > 9) digit -= 9;
};
sum += digit;
};
if (sum == 0) return false;
if (sum % 10 == 0) return true;
};
return false;
}
 
function isLuhnNum(argvalue) {
argvalue = argvalue.toString();
if (argvalue.length == 0) {
return false;
}
for (var n = 0; n < argvalue.length; n++) {
if ((argvalue.substring(n, n+1) < "0") ||
(argvalue.substring(n,n+1) > "9")) {
return false;
}
}
return true;
}]]>
</javascript>
 
</validator>
 
 
<validator name="email"
classname="org.apache.struts.validator.FieldChecks"
method="validateEmail"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.email">
 
<javascript><![CDATA[
function validateEmail(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oEmail = new email();
for (x in oEmail) {
if ((form[oEmail[x][0]].type == 'text' ||
form[oEmail[x][0]].type == 'textarea') &&
(form[oEmail[x][0]].value.length > 0)) {
if (!checkEmail(form[oEmail[x][0]].value)) {
if (i == 0) {
focusField = form[oEmail[x][0]];
}
fields[i++] = oEmail[x][1];
bValid = false;
}
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}
 
/**
* Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),
* http://javascript.internet.com
*/
function checkEmail(emailStr) {
if (emailStr.length == 0) {
return true;
}
var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
var matchArray=emailStr.match(emailPat);
if (matchArray == null) {
return false;
}
var user=matchArray[1];
var domain=matchArray[2];
if (user.match(userPat) == null) {
return false;
}
var IPArray = domain.match(ipDomainPat);
if (IPArray != null) {
for (var i = 1; i <= 4; i++) {
if (IPArray[i] > 255) {
return false;
}
}
return true;
}
var domainArray=domain.match(domainPat);
if (domainArray == null) {
return false;
}
var atomPat=new RegExp(atom,"g");
var domArr=domain.match(atomPat);
var len=domArr.length;
if ((domArr[domArr.length-1].length < 2) ||
(domArr[domArr.length-1].length > 3)) {
return false;
}
if (len < 2) {
return false;
}
return true;
}]]>
</javascript>
 
</validator>
 
<validator name="number"
classname="ak.kickup.util.Validator"
method="validateNumber"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.number"
/>
 
<validator name="currency"
classname="ak.kickup.util.Validator"
method="validateCurrency"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.currency"
/>
 
<validator name="datetime"
classname="ak.kickup.util.Validator"
method="validateDateTime"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.datetime"
/>
 
</global>
 
</form-validation>
/kickup/tags/release-1.0/webapp/WEB-INF/web.xml
0,0 → 1,140
<?xml version="1.0" encoding="ISO-8859-1"?>
 
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
 
<web-app>
 
<filter>
<filter-name>Profiler Filter</filter-name>
<filter-class>ak.kickup.core.servlet.ProfilerFilter</filter-class>
</filter>
<filter>
<filter-name>Encoding Filter</filter-name>
<filter-class>ak.kickup.core.servlet.EncodingFilter</filter-class>
</filter>
<filter>
<filter-name>Hibernate Filter</filter-name>
<filter-class>ak.kickup.core.servlet.HibernateFilter</filter-class>
<init-param>
<param-name>register</param-name>
<param-value>
ak.kickup.core.model.EventManager;
ak.kickup.core.model.ActManager;
ak.kickup.core.model.ApartmentManager;
ak.kickup.core.model.ParticipantManager;
</param-value>
</init-param>
</filter>
 
<filter-mapping>
<filter-name>Profiler Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Encoding Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Hibernate Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
 
<listener>
<listener-class>ak.kickup.core.servlet.LocaleServlet</listener-class>
</listener>
 
<!-- Standard Action Servlet Configuration (with debugging) -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
 
<servlet>
<servlet-name>LocaleService</servlet-name>
<servlet-class>ak.kickup.core.servlet.LocaleServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
 
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
 
 
<!-- The Usual Welcome File List -->
<welcome-file-list>
<welcome-file>index.do</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
 
 
<!-- Struts Tag Library Descriptors -->
<taglib>
<taglib-uri>/tags/struts-bean</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
 
<taglib>
<taglib-uri>/tags/struts-html</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
 
<taglib>
<taglib-uri>/tags/struts-logic</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
 
<taglib>
<taglib-uri>/tags/struts-nested</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
 
<taglib>
<taglib-uri>/tags/struts-tiles</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
 
<taglib>
<taglib-uri>/ak/backpath</taglib-uri>
<taglib-location>/WEB-INF/ak-backpath.tld</taglib-location>
</taglib>
 
<security-constraint>
<web-resource-collection>
<web-resource-name>Admin</web-resource-name>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>kickup-admin</role-name>
</auth-constraint>
</security-constraint>
 
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>kickup Admin</realm-name>
</login-config>
 
<security-role>
<description>
Administrator of kickup
</description>
<role-name>kickup-admin</role-name>
</security-role>
 
</web-app>
/kickup/tags/release-1.0/webapp/WEB-INF/ak-backpath.tld
0,0 → 1,535
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>backpath</shortname>
<uri>http://26th.net/backpath</uri>
 
<tag>
<name>backlink</name>
<tagclass>ak.backpath.taglib.BackwardLinkTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>anchor</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>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>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>link</name>
<tagclass>ak.backpath.taglib.ForwardLinkTag</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>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>empty</name>
<tagclass>ak.backpath.taglib.EmptyTag</tagclass>
<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>notEmpty</name>
<tagclass>ak.backpath.taglib.NotEmptyTag</tagclass>
<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>current</name>
<tagclass>ak.backpath.taglib.CurrentTag</tagclass>
<bodycontent>empty</bodycontent>
<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>forward</name>
<tagclass>ak.backpath.taglib.ForwardTag</tagclass>
<bodycontent>empty</bodycontent>
<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>forwardStack</name>
<tagclass>ak.backpath.taglib.ForwardStackTag</tagclass>
<bodycontent>empty</bodycontent>
<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>currentStack</name>
<tagclass>ak.backpath.taglib.CurrentStackTag</tagclass>
<bodycontent>empty</bodycontent>
<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>backwardStack</name>
<tagclass>ak.backpath.taglib.BackwardStackTag</tagclass>
<bodycontent>empty</bodycontent>
<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>
</taglib>
/kickup/tags/release-1.0/webapp/WEB-INF/struts-html.tld
0,0 → 1,2971
<?xml version="1.0" encoding="UTF-8"?>
 
 
 
 
 
 
 
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>html</shortname>
<uri>http://jakarta.apache.org/struts/tags-html</uri>
<tag>
<name>base</name>
<tagclass>org.apache.struts.taglib.html.BaseTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>target</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>server</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>button</name>
<tagclass>org.apache.struts.taglib.html.ButtonTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onblur</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onchange</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>property</name>
<required>true</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>cancel</name>
<tagclass>org.apache.struts.taglib.html.CancelTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onblur</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onchange</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>property</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>checkbox</name>
<tagclass>org.apache.struts.taglib.html.CheckboxTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</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>onchange</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>property</name>
<required>true</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>errors</name>
<tagclass>org.apache.struts.taglib.html.ErrorsTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>bundle</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>locale</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>file</name>
<tagclass>org.apache.struts.taglib.html.FileTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>accept</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>maxlength</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>onchange</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>property</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>size</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>form</name>
<tagclass>org.apache.struts.taglib.html.FormTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>action</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>enctype</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>focus</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>focusIndex</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>method</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onreset</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onsubmit</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>target</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>type</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>frame</name>
<tagclass>org.apache.struts.taglib.html.FrameTag</tagclass>
<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>frameborder</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>frameName</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>href</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>longdesc</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>marginheight</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>marginwidth</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>noresize</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>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>scope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>scrolling</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>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>
</tag>
<tag>
<name>hidden</name>
<tagclass>org.apache.struts.taglib.html.HiddenTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</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>onchange</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>property</name>
<required>true</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>write</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>html</name>
<tagclass>org.apache.struts.taglib.html.HtmlTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>locale</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>xhtml</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>image</name>
<tagclass>org.apache.struts.taglib.html.ImageTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>align</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>border</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>bundle</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>locale</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onblur</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onchange</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>pageKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>src</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>srcKey</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>img</name>
<tagclass>org.apache.struts.taglib.html.ImgTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>align</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>border</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>bundle</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>height</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>hspace</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>imageName</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>ismap</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>locale</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>lowsrc</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</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>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>paramId</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>page</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>pageKey</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>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>scope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>src</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>srcKey</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>usemap</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>vspace</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>width</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>javascript</name>
<tagclass>org.apache.struts.taglib.html.JavascriptValidatorTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>cdata</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>dynamicJavascript</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>formName</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>method</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>page</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>src</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>staticJavascript</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>htmlComment</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>link</name>
<tagclass>org.apache.struts.taglib.html.LinkTag</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>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>
</tag>
<tag>
<name>messages</name>
<tagclass>org.apache.struts.taglib.html.MessagesTag</tagclass>
<teiclass>org.apache.struts.taglib.html.MessagesTei</teiclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>bundle</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>locale</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>footer</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>message</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>multibox</name>
<tagclass>org.apache.struts.taglib.html.MultiboxTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</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>onchange</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>property</name>
<required>true</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>option</name>
<tagclass>org.apache.struts.taglib.html.OptionTag</tagclass>
<attribute>
<name>bundle</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>key</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>locale</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>style</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>styleId</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>styleClass</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>options</name>
<tagclass>org.apache.struts.taglib.html.OptionsTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>collection</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>filter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>labelName</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>labelProperty</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</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>
</tag>
<tag>
<name>optionsCollection</name>
<tagclass>org.apache.struts.taglib.html.OptionsCollectionTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>filter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>label</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>true</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>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>password</name>
<tagclass>org.apache.struts.taglib.html.PasswordTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>maxlength</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>onchange</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>property</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>readonly</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>redisplay</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>size</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>tabindex</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>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>radio</name>
<tagclass>org.apache.struts.taglib.html.RadioTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</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>onchange</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>property</name>
<required>true</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>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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>idName</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>reset</name>
<tagclass>org.apache.struts.taglib.html.ResetTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onblur</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onchange</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>property</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>rewrite</name>
<tagclass>org.apache.struts.taglib.html.RewriteTag</tagclass>
<bodycontent>empty</bodycontent>
<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>name</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>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>scope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>transaction</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>select</name>
<tagclass>org.apache.struts.taglib.html.SelectTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>multiple</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>onchange</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>property</name>
<required>true</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>size</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>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>submit</name>
<tagclass>org.apache.struts.taglib.html.SubmitTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onblur</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onchange</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>property</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>text</name>
<tagclass>org.apache.struts.taglib.html.TextTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>maxlength</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>onchange</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>property</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>readonly</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>size</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>textarea</name>
<tagclass>org.apache.struts.taglib.html.TextareaTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>cols</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</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>onchange</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>property</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>readonly</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>rows</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>xhtml</name>
<tagclass>org.apache.struts.taglib.html.XhtmlTag</tagclass>
<bodycontent>empty</bodycontent>
</tag>
</taglib>
 
/kickup/tags/release-1.0/webapp/WEB-INF/struts-bean.tld
0,0 → 1,382
<?xml version="1.0" encoding="UTF-8"?>
 
 
 
 
 
 
 
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>bean</shortname>
<uri>http://jakarta.apache.org/struts/tags-bean</uri>
<tag>
<name>cookie</name>
<tagclass>org.apache.struts.taglib.bean.CookieTag</tagclass>
<teiclass>org.apache.struts.taglib.bean.CookieTei</teiclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>multiple</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>define</name>
<tagclass>org.apache.struts.taglib.bean.DefineTag</tagclass>
<teiclass>org.apache.struts.taglib.bean.DefineTei</teiclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>name</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>toScope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>type</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>header</name>
<tagclass>org.apache.struts.taglib.bean.HeaderTag</tagclass>
<teiclass>org.apache.struts.taglib.bean.HeaderTei</teiclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>multiple</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>include</name>
<tagclass>org.apache.struts.taglib.bean.IncludeTag</tagclass>
<teiclass>org.apache.struts.taglib.bean.IncludeTei</teiclass>
<bodycontent>empty</bodycontent>
<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>id</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>page</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>transaction</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>message</name>
<tagclass>org.apache.struts.taglib.bean.MessageTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>arg0</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>arg1</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>arg2</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>arg3</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>arg4</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>bundle</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>key</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>locale</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</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>
</tag>
<tag>
<name>page</name>
<tagclass>org.apache.struts.taglib.bean.PageTag</tagclass>
<teiclass>org.apache.struts.taglib.bean.PageTei</teiclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>parameter</name>
<tagclass>org.apache.struts.taglib.bean.ParameterTag</tagclass>
<teiclass>org.apache.struts.taglib.bean.ParameterTei</teiclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>multiple</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>resource</name>
<tagclass>org.apache.struts.taglib.bean.ResourceTag</tagclass>
<teiclass>org.apache.struts.taglib.bean.ResourceTei</teiclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>input</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>size</name>
<tagclass>org.apache.struts.taglib.bean.SizeTag</tagclass>
<teiclass>org.apache.struts.taglib.bean.SizeTei</teiclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>collection</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>name</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>
</tag>
<tag>
<name>struts</name>
<tagclass>org.apache.struts.taglib.bean.StrutsTag</tagclass>
<teiclass>org.apache.struts.taglib.bean.StrutsTei</teiclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>formBean</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>forward</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>mapping</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>write</name>
<tagclass>org.apache.struts.taglib.bean.WriteTag</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>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/tags/release-1.0/webapp/WEB-INF/tiles-defs.xml
0,0 → 1,42
<?xml version="1.0" encoding="ISO-8859-1" ?>
 
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">
 
 
<!--
This is a blank Tiles definition file with a commented example.
-->
 
<tiles-definitions>
 
<!-- sample tiles definitions
<definition name=".mainLayout" path="/common/layouts/classicLayout.jsp">
<put name="title" value="Sample Page Title" />
<put name="header" value="/common/header.jsp" />
<put name="menu" value=".mainMenu" />
<put name="footer" value="/common/footer.jsp" />
<put name="body" value=".portal.body" />
</definition>
 
<definition name=".mainMenu" path="/common/layouts/vboxLayout.jsp" >
<putList name="list" >
<add value=".menu.links" />
<add value=".menu.taglib.references" />
<add value=".menu.printer.friendly" />
<add value=".menu.old.documents" />
</putList>
</definition>
 
<definition name="aPage" extends=".mainLayout">
<put name="title" value="Another Title" />
<put name="body" value=".aPage.body" />
</definition>
 
end samples -->
 
<definition name="${YOUR_DEFINITION_HERE}">
</definition>
 
</tiles-definitions>
/kickup/tags/release-1.0/webapp/WEB-INF/struts-template.tld
0,0 → 1,73
<?xml version="1.0" encoding="UTF-8"?>
 
 
 
 
 
 
 
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>template</shortname>
<uri>http://jakarta.apache.org/struts/tags-template</uri>
<tag>
<name>insert</name>
<tagclass>org.apache.struts.taglib.template.InsertTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>template</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>put</name>
<tagclass>org.apache.struts.taglib.template.PutTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>role</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>content</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>direct</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>get</name>
<tagclass>org.apache.struts.taglib.template.GetTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>flush</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>role</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
 
 
 
/kickup/tags/release-1.0/webapp/WEB-INF/struts-logic.tld
0,0 → 1,642
<?xml version="1.0" encoding="UTF-8"?>
 
 
 
 
 
 
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>logic</shortname>
<uri>http://jakarta.apache.org/struts/tags-logic</uri>
<tag>
<name>empty</name>
<tagclass>org.apache.struts.taglib.logic.EmptyTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</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>
</tag>
<tag>
<name>equal</name>
<tagclass>org.apache.struts.taglib.logic.EqualTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</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>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>forward</name>
<tagclass>org.apache.struts.taglib.logic.ForwardTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>greaterEqual</name>
<tagclass>org.apache.struts.taglib.logic.GreaterEqualTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</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>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>greaterThan</name>
<tagclass>org.apache.struts.taglib.logic.GreaterThanTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</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>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>iterate</name>
<tagclass>org.apache.struts.taglib.logic.IterateTag</tagclass>
<teiclass>org.apache.struts.taglib.logic.IterateTei</teiclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>collection</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>indexId</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>length</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>offset</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>type</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>lessEqual</name>
<tagclass>org.apache.struts.taglib.logic.LessEqualTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</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>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>lessThan</name>
<tagclass>org.apache.struts.taglib.logic.LessThanTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</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>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>match</name>
<tagclass>org.apache.struts.taglib.logic.MatchTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>location</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</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>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>messagesNotPresent</name>
<tagclass>org.apache.struts.taglib.logic.MessagesNotPresentTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>message</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>messagesPresent</name>
<tagclass>org.apache.struts.taglib.logic.MessagesPresentTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>message</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>notEmpty</name>
<tagclass>org.apache.struts.taglib.logic.NotEmptyTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</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>
</tag>
<tag>
<name>notEqual</name>
<tagclass>org.apache.struts.taglib.logic.NotEqualTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</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>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>notMatch</name>
<tagclass>org.apache.struts.taglib.logic.NotMatchTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>location</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</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>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>notPresent</name>
<tagclass>org.apache.struts.taglib.logic.NotPresentTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>role</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>scope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>user</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>present</name>
<tagclass>org.apache.struts.taglib.logic.PresentTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>role</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>scope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>user</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>redirect</name>
<tagclass>org.apache.struts.taglib.logic.RedirectTag</tagclass>
<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>name</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>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>scope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>transaction</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
 
 
 
/kickup/tags/release-1.0/webapp/WEB-INF/struts-tiles.tld
0,0 → 1,344
<?xml version="1.0" encoding="UTF-8"?>
 
 
 
 
 
 
 
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>Tiles Tag Library</shortname>
<uri>http://jakarta.apache.org/struts/tags-tiles</uri>
<tag>
<name>insert</name>
<tagclass>org.apache.struts.taglib.tiles.InsertTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>template</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>component</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>page</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>definition</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>attribute</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>beanName</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>beanProperty</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>beanScope</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>flush</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>ignore</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>role</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>controllerUrl</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>controllerClass</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>definition</name>
<tagclass>org.apache.struts.taglib.tiles.DefinitionTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>scope</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>template</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>page</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>role</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>extends</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>put</name>
<tagclass>org.apache.struts.taglib.tiles.PutTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>content</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>direct</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>type</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>beanName</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>beanProperty</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>beanScope</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>role</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>putList</name>
<tagclass>org.apache.struts.taglib.tiles.PutListTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
<tag>
<name>add</name>
<tagclass>org.apache.struts.taglib.tiles.AddTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>content</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>direct</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>type</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>beanName</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>beanProperty</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>beanScope</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>role</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>get</name>
<tagclass>org.apache.struts.taglib.tiles.GetTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>ignore</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>flush</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>role</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>getAsString</name>
<tagclass>org.apache.struts.taglib.tiles.GetAttributeTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>ignore</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>role</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>useAttribute</name>
<tagclass>org.apache.struts.taglib.tiles.UseAttributeTag</tagclass>
<teiclass>org.apache.struts.taglib.tiles.UseAttributeTei</teiclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>id</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>classname</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>scope</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>ignore</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>importAttribute</name>
<tagclass>org.apache.struts.taglib.tiles.ImportAttributeTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>scope</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>ignore</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>initComponentDefinitions</name>
<tagclass>org.apache.struts.taglib.tiles.InitDefinitionsTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>file</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
<attribute>
<name>classname</name>
<required>false</required>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
</taglib>
 
 
 
/kickup/tags/release-1.0/webapp/WEB-INF/struts-nested.tld
0,0 → 1,2870
<?xml version="1.0" encoding="UTF-8"?>
 
 
 
 
 
 
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>nested</shortname>
<uri>http://jakarta.apache.org/struts/tags-nested</uri>
<tag>
<name>nest</name>
<tagclass>org.apache.struts.taglib.nested.NestedPropertyTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>writeNesting</name>
<tagclass>org.apache.struts.taglib.nested.NestedWriteNestingTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>filter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>root</name>
<tagclass>org.apache.struts.taglib.nested.NestedRootTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>define</name>
<tagclass>org.apache.struts.taglib.nested.bean.NestedDefineTag</tagclass>
<teiclass>org.apache.struts.taglib.bean.DefineTei</teiclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</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>toScope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>type</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>message</name>
<tagclass>org.apache.struts.taglib.nested.bean.NestedMessageTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>arg0</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>arg1</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>arg2</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>arg3</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>arg4</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>bundle</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>key</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>locale</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</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>
</tag>
<tag>
<name>size</name>
<tagclass>org.apache.struts.taglib.nested.bean.NestedSizeTag</tagclass>
<teiclass>org.apache.struts.taglib.bean.SizeTei</teiclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>collection</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</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>
</tag>
<tag>
<name>write</name>
<tagclass>org.apache.struts.taglib.nested.bean.NestedWriteTag</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>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>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>
</tag>
<tag>
<name>checkbox</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedCheckboxTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</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>onchange</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>property</name>
<required>true</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>errors</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedErrorsTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>bundle</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>locale</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>file</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedFileTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>accept</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>maxlength</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>onchange</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>property</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>size</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>form</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedFormTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>action</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>enctype</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>focus</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>method</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onreset</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onsubmit</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>target</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>type</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>hidden</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedHiddenTag</tagclass>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>true</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>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>image</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedImageTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>align</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>border</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>bundle</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>locale</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onblur</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onchange</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>pageKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>src</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>srcKey</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>tabindex</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>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>img</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedImgTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>align</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>border</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>bundle</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>height</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>hspace</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>imageName</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>ismap</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>locale</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>lowsrc</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</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>paramId</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>page</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>pageKey</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>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>scope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>src</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>srcKey</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>usemap</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>vspace</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>width</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>link</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedLinkTag</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>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>
</tag>
<tag>
<name>messages</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedMessagesTag</tagclass>
<teiclass>org.apache.struts.taglib.html.MessagesTei</teiclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>bundle</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>locale</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>footer</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>message</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>multibox</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedMultiboxTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</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>onchange</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>property</name>
<required>true</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>options</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedOptionsTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>collection</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>labelName</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>labelProperty</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</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>
</tag>
<tag>
<name>optionsCollection</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedOptionsCollectionTag</tagclass>
<bodycontent>empty</bodycontent>
<attribute>
<name>label</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>true</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>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>password</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedPasswordTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>maxlength</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>onchange</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>property</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>readonly</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>redisplay</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>size</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>tabindex</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>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>radio</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedRadioTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</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>onchange</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>property</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onmousedown</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>select</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedSelectTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>multiple</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>onchange</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>property</name>
<required>true</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>size</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>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>submit</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedSubmitTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onblur</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>onchange</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>property</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>text</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedTextTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>maxlength</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>onchange</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>property</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>readonly</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>size</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>textarea</name>
<tagclass>org.apache.struts.taglib.nested.html.NestedTextareaTag</tagclass>
<attribute>
<name>accesskey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>alt</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>altKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>cols</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>disabled</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexed</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>onchange</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>property</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>readonly</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>rows</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>title</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>titleKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>value</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>empty</name>
<tagclass>org.apache.struts.taglib.nested.logic.NestedEmptyTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</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>
</tag>
<tag>
<name>equal</name>
<tagclass>org.apache.struts.taglib.nested.logic.NestedEqualTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</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>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>greaterEqual</name>
<tagclass>org.apache.struts.taglib.nested.logic.NestedGreaterEqualTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</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>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>greaterThan</name>
<tagclass>org.apache.struts.taglib.nested.logic.NestedGreaterThanTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</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>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>iterate</name>
<tagclass>org.apache.struts.taglib.nested.logic.NestedIterateTag</tagclass>
<teiclass>org.apache.struts.taglib.nested.logic.NestedIterateTei</teiclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>collection</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>id</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>indexId</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>length</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>offset</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>type</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>lessEqual</name>
<tagclass>org.apache.struts.taglib.nested.logic.NestedLessEqualTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</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>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>lessThan</name>
<tagclass>org.apache.struts.taglib.nested.logic.NestedLessThanTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</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>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>match</name>
<tagclass>org.apache.struts.taglib.nested.logic.NestedMatchTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>location</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</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>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>messagesNotPresent</name>
<tagclass>org.apache.struts.taglib.nested.logic.NestedMessagesNotPresentTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>message</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>messagesPresent</name>
<tagclass>org.apache.struts.taglib.nested.logic.NestedMessagesPresentTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>message</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>notEmpty</name>
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotEmptyTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</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>
</tag>
<tag>
<name>notEqual</name>
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotEqualTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</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>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>notMatch</name>
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotMatchTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>location</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</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>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>notPresent</name>
<tagclass>org.apache.struts.taglib.nested.logic.NestedNotPresentTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>role</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>scope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>user</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
<tag>
<name>present</name>
<tagclass>org.apache.struts.taglib.nested.logic.NestedPresentTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>cookie</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>header</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>name</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>parameter</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>property</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>role</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>scope</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>user</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
 
 
 
/kickup/tags/release-1.0/webapp/WEB-INF
Property changes:
Added: svn:ignore
+classes
/kickup/tags/release-1.0/webapp/admin/participant/list.jsp
0,0 → 1,124
<%@ 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" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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">
<script type="text/javascript">
function confirmDelete()
{
return confirm("Вы уверены, что хотите удалить этого участника?");
}
</script>
</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>
 
<div style="float:right; width:200px; background-color:#EDD9F1; padding: 1em; ">
<!-- legend begin -->
<logic:empty name="event" property="price">
<div>Размер оплаты участия в этой пьянке еще не определен, поэтому статус оплаты не показан.</div>
</logic:empty>
<logic:notEmpty name="event" property="price">
<table border=0 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>
<tr><td colspan=2>&nbsp;</td></tr>
</table>
</logic:notEmpty>
<!-- legend end -->
 
<table border=0 width="100%">
<tr><th colspan=2>Статистика</th></tr>
<tr><td>Всего заявок</td><td><bean:write name="event" property="participantCount" /></td></tr>
<tr><td>Всего участников</td><td><bean:write name="event" property="personCount" /></td></tr>
</table>
</div>
 
<table border=0 cellspacing=0 cellpadding=4>
<tr>
<th class="subHeader">Кодовый номер</th>
<th class="subHeader">Ник</th>
<th class="subHeader">e-mail</th>
<th class="subHeader">Имя</th>
<th class="subHeader">Количество</th>
<th class="subHeader">Оплачено, евро</th>
<th class="subHeader" width=50>&nbsp;</th>
<th class="subHeader">&nbsp;</th>
<th class="subHeader">&nbsp;</th>
</tr>
 
<logic:iterate name="participants" id="p">
<tr>
<td 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>" style="border-bottom: 1px solid #C0C0C0; ">
<bean:write name="p" property="ident" />
</td>
<td class="listCell">
<bean:write name="p" property="nick" />&nbsp;
</td>
<td class="listCell">
<a href="mailto:<bean:write name="p" property="email" />"><bean:write name="p" property="email" /></a>
</td>
<td class="listCell">
<bean:write name="p" property="name" />&nbsp;
</td>
<td class="listCell">
<bean:write name="p" property="persons" />&nbsp;
</td>
<td class="listCell">
<bean:write name="p" property="payed" format="0.00" />&nbsp;
</td>
 
<td class="listCell">&nbsp;</td>
<td class="listCell">
<kickup:link action="/admin/participant/edit" paramId="id" paramName="p" paramProperty="id" paramId2="event" paramName2="event" paramProperty2="id" backpath="true"><img src="<strutsx:root />/images/edit.gif" alt="Редактировать" border=0></kickup:link>
</td>
<td class="listCell">
<backpath:link action="/admin/participant/delete" paramId="id" paramName="p" paramProperty="id" onclick="return confirmDelete();"><img src="<strutsx:root />/images/delete.gif" alt="Удалить" border=0></backpath:link>
</td>
</tr>
</logic:iterate>
<tr>
<td colspan=9>&nbsp;</td>
</tr>
</table>
 
<div>
<backpath:link action="/admin/participant/edit" paramId="event" paramName="event" paramProperty="id"><img src="<strutsx:root />/images/add.gif" alt="Добавить участника" border=0></backpath:link>
<backpath:notEmpty><backpath:backlink><img src="<strutsx:root />/images/back-small.gif" alt="Назад" border=0></backpath:backlink></backpath:notEmpty>
</div>
 
<%@ include file="/admin/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/admin/participant/edit.jsp
0,0 → 1,146
<%@ 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" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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>
 
<html:form action="/admin/participant/submit">
<backpath:current />
<html:hidden property="id" />
<html:hidden property="event" />
 
<table border=0 cellspacing=0 cellpadding=4>
<tr class="even">
<th>Кодовый номер</th>
<td colspan=2 width=300><bean:write name="participant" property="ident" />&nbsp;</td>
</tr>
<tr class="odd">
<th>Ник</th>
<td colspan=2><html:text property="nick" style="width:100%" maxlength="255" /></td>
</tr>
<tr class="even">
<th>e-mail</th>
<td colspan=2><html:text property="email" style="width:100%" maxlength="255" /></td>
</tr>
<tr class="odd">
<th>Показ e-mail разрешен</th>
<td colspan=2><html:checkbox property="emailPublic" /></td>
</tr>
<tr class="even">
<th>Имя</th>
<td colspan=2><html:text property="name" style="width:100%" maxlength="255" /></td>
</tr>
<tr class="odd">
<th>Телефон</th>
<td colspan=2><html:text property="phone" style="width:100%" maxlength="255" /></td>
</tr>
<tr class="even">
<th>Количество человек</th>
<td colspan=2><html:text property="persons" style="width:100%" maxlength="10" /></td>
</tr>
<tr class="odd">
<th>Выезд из PLZ</th>
<td colspan=2><html:text property="fromZip" style="width:100%" maxlength="10" /></td>
</tr>
<tr class="even">
<th>Выезд из города</th>
<td colspan=2><html:text property="fromCity" style="width:100%" maxlength="100" /></td>
</tr>
<tr class="odd">
<th>Время отправления</th>
<td colspan=2><html:text property="departure" style="width:100%" maxlength="100" /></td>
</tr>
<tr class="even">
<th>Свободных мест в машине</th>
<td colspan=2><html:text property="freeTransport" style="width:100%" maxlength="10" /></td>
</tr>
<tr class="odd">
<th>Условия транспортировки</th>
<td colspan=2><html:textarea property="transportComment" cols="40" rows="8" style="width:100%" /></td>
</tr>
<tr class="even">
<th>Свободных спальных мест</th>
<td colspan=2><html:text property="freeSleep" style="width:100%" maxlength="10" /></td>
</tr>
<tr class="odd">
<th>Условия ночевки</th>
<td colspan=2><html:textarea property="sleepComment" cols="40" rows="8" style="width:100%" /></td>
</tr>
<tr class="even">
<th>Дополнительная информация</th>
<td colspan=2><html:textarea property="comment" cols="40" rows="8" style="width:100%" /></td>
</tr>
<tr class="odd">
<th>Оплачено, евро</th>
<td><html:text property="payed" style="width:100%" maxlength="10" /></td>
<td>
<logic:notEmpty name="participant" property="mustPay">
(должен заплатить: <bean:write name="participant" property="mustPay" format="0.00" />)
</logic:notEmpty>
</td>
</tr>
<tr class="even">
<th>Комментарии организаторов</th>
<td colspan=2><html:textarea property="privateComment" cols="40" rows="8" style="width:100%" /></td>
</tr>
 
<logic:notEmpty name="actList" property="objects">
<tr>
<th colspan=3><div class="smallHeader">Участвует в</div></th>
</tr>
<tr>
<td class="subHeader">Название</td>
<td class="subHeader">Включить</td>
<td class="subHeader">Дополнительно</td>
</tr>
<logic:iterate name="ParticipantEditForm" property="acts" id="acts" indexId="iid">
<tr>
<td>
<bean:write name="actList" property='<%= "objects[" + iid + "].act.name" %>' />
<html:hidden name="acts" property="actId" indexed="true" />
</td>
<td><html:checkbox name="acts" property="selected" indexed="true" /></td>
<td><html:text name="acts" property="comment" indexed="true" style="width:100%" /></td>
</tr>
</logic:iterate>
</logic:notEmpty>
 
<tr>
<td colspan=3>
<html:submit>Сохранить</html:submit>
<backpath:notEmpty><backpath:backlink>Отменить</backpath:backlink></backpath:notEmpty>
</td>
</tr>
</table>
 
</html:form>
 
<%@ include file="/admin/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/admin/event/edit.jsp
0,0 → 1,153
<%@ 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" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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>
 
<html:form action="/admin/event/submit">
<backpath:current />
<html:hidden property="id" />
 
<table border=0 cellspacing=0 cellpadding=4>
<tr class="even">
<th>Название</th>
<td colspan=3><html:text property="name" style="width:100%" maxlength="255" /></td>
</tr>
<tr class="odd">
<th>Контактный e-mail</th>
<td colspan=3><html:text property="email" style="width:100%" maxlength="255" /></td>
</tr>
<tr class="even">
<th>Организаторы</th>
<td colspan=3><html:text property="admins" style="width:100%" maxlength="255" /></td>
</tr>
<tr class="odd">
<th>Контактные телефоны</th>
<td colspan=3><html:text property="phones" style="width:100%" maxlength="255" /></td>
</tr>
<tr class="even">
<th>Место/город</th>
<td colspan=3><html:text property="place" style="width:100%" maxlength="255" /></td>
</tr>
<tr class="odd">
<th>Точный адрес</th>
<td colspan=3><html:textarea property="address" cols="40" cols="40" rows="8" style="width:100%" /></td>
</tr>
<tr class="even">
<th>Описание проезда</th>
<td colspan=3><html:textarea property="transport" cols="40" rows="8" style="width:100%" /></td>
</tr>
<tr class="odd">
<th>Начало</th>
<td colspan=3><html:text property="start" style="width:100%" maxlength="100" /></td>
</tr>
<tr class="even">
<th>Окончание</th>
<td colspan=3><html:text property="stop" style="width:100%" maxlength="100" /></td>
</tr>
<tr class="odd">
<th>Дата окончания регистрации</th>
<td colspan=3><html:text property="lastreg" style="width:100%" maxlength="100" /></td>
</tr>
<tr class="even">
<th>Последний срок отказа</th>
<td colspan=3><html:text property="lastunreg" style="width:100%" maxlength="100" /></td>
</tr>
<tr class="odd">
<th>Цена с человека</th>
<td colspan=3><html:text property="price" style="width:100%" maxlength="10" /></td>
</tr>
<tr class="even">
<th>Счет для перевода денег</th>
<td colspan=3><html:textarea property="account" cols="40" rows="8" style="width:100%" /></td>
</tr>
<tr class="odd">
<th>Открыть доступ</th>
<td colspan=3><html:checkbox property="enabled" /></td>
</tr>
<tr class="even">
<th>Описание</th>
<td colspan=3><html:textarea property="comment" cols="40" rows="8" style="width:100%" /></td>
</tr>
 
<tr>
<th colspan=4><div class="smallHeader">Планируемые мероприятия</div></th>
</tr>
<tr>
<td class="subHeader">Название</td>
<td class="subHeader">Включить</td>
<td class="subHeader">Дополнительная информация</td>
<td class="subHeader">&nbsp;</td>
</tr>
<logic:iterate name="EventEditForm" property="acts" id="acts" indexId="iid">
<tr>
<td>
<bean:write name="actList" property='<%= "objects[" + iid + "].name" %>' />
<html:hidden name="acts" property="actId" indexed="true" />
</td>
<td><html:checkbox name="acts" property="selected" indexed="true" /></td>
<td><html:text name="acts" property="comment" indexed="true" style="width:100%" /></td>
<td>&nbsp;</td>
</tr>
</logic:iterate>
 
<tr>
<th colspan=4><div class="smallHeader">Ближайшие гостиницы</div></th>
</tr>
<tr>
<td class="subHeader">Название</td>
<td class="subHeader">Включить</td>
<td class="subHeader">Дополнительная информация</td>
<td class="subHeader">Расстояние до местa (км)</td>
</tr>
<logic:iterate name="EventEditForm" property="apartments" id="apartments" indexId="iid2">
<tr>
<td>
<bean:write name="apartmentList" property='<%= "objects[" + iid2 + "].name" %>' />
<html:hidden name="apartments" property="apartmentId" indexed="true" />
</td>
<td><html:checkbox name="apartments" property="selected" indexed="true" /></td>
<td><html:text name="apartments" property="comment" indexed="true" style="width:100%" /></td>
<td><html:text name="apartments" property="distance" indexed="true" style="width:100%" maxlength="10" /></td>
</tr>
</logic:iterate>
 
<tr>
<td colspan=4>
<html:submit>Сохранить</html:submit>
<backpath:notEmpty><backpath:backlink>Отменить</backpath:backlink></backpath:notEmpty>
</td>
</tr>
</table>
 
</html:form>
 
<%@ include file="/admin/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/admin/event/list.jsp
0,0 → 1,91
<%@ 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" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 
<head>
<meta http-equiv="expires" content="0">
<title>Пьянка XP - Администрирование - Пьянки</title>
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css">
<script type="text/javascript">
function confirmDelete()
{
return confirm("Вы уверены, что хотите удалить эту пьянку со всеми участниками?");
}
</script>
</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=0 cellspacing=0 cellpadding=4>
<tr>
<th class="subHeader">Название</th>
<th class="subHeader">Место/город</th>
<th class="subHeader">Начало</th>
<th class="subHeader">Окончание</th>
<th class="subHeader">В открытом доступе</th>
<th class="subHeader">Заявок</th>
<th class="subHeader">Участников</th>
<th class="subHeader" width=50>&nbsp;</th>
<th class="subHeader">&nbsp;</th>
<th class="subHeader">&nbsp;</th>
<th class="subHeader">&nbsp;</th>
</tr>
 
<logic:iterate name="events" id="e">
<tr>
<td class="listCell"><bean:write name="e" property="name" /></td>
<td class="listCell"><bean:write name="e" property="place" />&nbsp;</td>
<td class="listCell"><bean:write name="e" property="start" format="dd.MM.yyyy" />&nbsp;</td>
<td class="listCell"><bean:write name="e" property="stop" format="dd.MM.yyyy" />&nbsp;</td>
<td align=center class="listCell">
<logic:equal name="e" property="enabled" value="true">да</logic:equal>
<logic:notEqual name="e" property="enabled" value="true">нет</logic:notEqual>
</td>
<td align=right class="listCell"><bean:write name="e" property="participantCount" /></td>
<td align=right class="listCell"><bean:write name="e" property="personCount" /></td>
 
<td class="listCell">&nbsp;</td>
<td class="listCell">
<backpath:link action="/admin/event/edit" paramId="id" paramName="e" paramProperty="id"><img src="<strutsx:root />/images/edit.gif" alt="Редактировать" border=0></backpath:link>
</td>
<td class="listCell">
<backpath:link action="/admin/event/delete" paramId="id" paramName="e" paramProperty="id" onclick="return confirmDelete();"><img src="<strutsx:root />/images/delete.gif" alt="Удалить" border=0></backpath:link>
</td>
<td class="listCell">
<backpath:link action="/admin/participant/list" paramId="event" paramName="e" paramProperty="id"><img src="<strutsx:root />/images/participants-small.gif" alt="Участники" border=0></backpath:link>
</td>
</tr>
</logic:iterate>
<tr>
<td colspan=11>&nbsp;</td>
</tr>
</table>
 
<div>
<backpath:link action="/admin/event/edit"><img src="<strutsx:root />/images/add.gif" alt="Добавить пьянку" border=0></backpath:link>
<backpath:notEmpty><backpath:backlink><img src="<strutsx:root />/images/back-small.gif" alt="Назад" border=0></backpath:backlink></backpath:notEmpty>
</div>
 
<%@ include file="/admin/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/admin/apartment/list.jsp
0,0 → 1,71
<%@ 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" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 
<head>
<meta http-equiv="expires" content="0">
<title>Пьянка XP - Администрирование - Гостиницы</title>
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css">
<script type="text/javascript">
function confirmDelete()
{
return confirm("Вы уверены, что хотите удалить эту гостиницу?");
}
</script>
</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=0 cellspacing=0 cellpadding=4>
<tr>
<th class="subHeader">Название</th>
<th class="subHeader" width=50>&nbsp;</th>
<th class="subHeader">&nbsp;</th>
<th class="subHeader">&nbsp;</th>
</tr>
 
<logic:iterate name="apartments" id="a">
<tr>
<td class="listCell"><bean:write name="a" property="name" /></td>
<td class="listCell">&nbsp;</td>
<td class="listCell">
<backpath:link action="/admin/apartment/edit" paramId="id" paramName="a" paramProperty="id"><img src="<strutsx:root />/images/edit.gif" alt="Редактировать" border=0></backpath:link>
</td>
<td class="listCell">
<backpath:link action="/admin/apartment/delete" paramId="id" paramName="a" paramProperty="id" onclick="return confirmDelete();"><img src="<strutsx:root />/images/delete.gif" alt="Удалить" border=0></backpath:link>
</td>
</tr>
</logic:iterate>
<tr>
<td colspan=4>&nbsp;</td>
</tr>
</table>
 
<div>
<backpath:link action="/admin/apartment/edit"><img src="<strutsx:root />/images/add.gif" alt="Добавить гостиницу" border=0></backpath:link>
<backpath:notEmpty><backpath:backlink><img src="<strutsx:root />/images/back-small.gif" alt="Назад" border=0></backpath:backlink></backpath:notEmpty>
</div>
 
<%@ include file="/admin/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/admin/apartment/edit.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" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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>
 
<html:form action="/admin/apartment/submit">
<backpath:current />
<html:hidden property="id" />
 
<table border=0 cellspacing=0 cellpadding=4>
<tr class="even">
<th>Название</th>
<td><html:text property="name" style="width:100%" maxlength="255" /></td>
</tr>
<tr class="odd">
<th>Адрес и телефоны</th>
<td><html:textarea property="address" cols="40" rows="8" style="width:200px;" /></td>
</tr>
<tr class="even">
<th>Цена ночевки на одного человека</th>
<td><html:text property="price" style="width:100%" maxlength="10" /></td>
</tr>
<tr class="odd">
<th>URL домашней странички</th>
<td><html:text property="url" style="width:100%" maxlength="4000" /></td>
</tr>
<tr class="even">
<th>Описание</th>
<td><html:textarea property="comment" cols="40" rows="8" style="width:200px;" /></td>
</tr>
<tr>
<td colspan=2>
<html:submit>Сохранить</html:submit>
<backpath:notEmpty><backpath:backlink>Отменить</backpath:backlink></backpath:notEmpty>
</td>
</tr>
</table>
 
</html:form>
 
<%@ include file="/admin/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/admin/act/list.jsp
0,0 → 1,71
<%@ 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" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 
<head>
<meta http-equiv="expires" content="0">
<title>Пьянка XP - Администрирование - Мероприятия</title>
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css">
<script type="text/javascript">
function confirmDelete()
{
return confirm("Вы уверены, что хотите удалить это мероприятие?");
}
</script>
</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=0 cellspacing=0 cellpadding=4>
<tr>
<th class="subHeader">Название</th>
<th class="subHeader" width=50>&nbsp;</th>
<th class="subHeader">&nbsp;</th>
<th class="subHeader">&nbsp;</th>
</tr>
 
<logic:iterate name="acts" id="a">
<tr>
<td class="listCell"><bean:write name="a" property="name" /></td>
<td class="listCell">&nbsp;</td>
<td class="listCell">
<backpath:link action="/admin/act/edit" paramId="id" paramName="a" paramProperty="id"><img src="<strutsx:root />/images/edit.gif" alt="Редактировать" border=0></backpath:link>
</td>
<td class="listCell">
<backpath:link action="/admin/act/delete" paramId="id" paramName="a" paramProperty="id" onclick="return confirmDelete();"><img src="<strutsx:root />/images/delete.gif" alt="Удалить" border=0></backpath:link>
</td>
</tr>
</logic:iterate>
<tr>
<td colspan=4>&nbsp;</td>
</tr>
</table>
 
<div>
<backpath:link action="/admin/act/edit"><img src="<strutsx:root />/images/add.gif" alt="Добавить мероприятие" border=0></backpath:link>
<backpath:notEmpty><backpath:backlink><img src="<strutsx:root />/images/back-small.gif" alt="Назад" border=0></backpath:backlink></backpath:notEmpty>
</div>
 
<%@ include file="/admin/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/admin/act/edit.jsp
0,0 → 1,58
<%@ 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" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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>
 
<html:form action="/admin/act/submit">
<backpath:current />
<html:hidden property="id" />
 
<table border=0 cellspacing=0 cellpadding=4>
<tr class="even">
<th>Название</th>
<td><html:text property="name" style="width:100%" maxlength="255" /></td>
</tr>
<tr class="odd">
<th>Описание</th>
<td><html:textarea property="comment" cols="40" rows="8" style="width:200px;" /></td>
</tr>
<tr>
<td colspan=2>
<html:submit>Сохранить</html:submit>
<backpath:notEmpty><backpath:backlink>Отменить</backpath:backlink></backpath:notEmpty>
</td>
</tr>
</table>
 
</html:form>
 
<%@ include file="/admin/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/admin/footer.jsp
0,0 → 1,6
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!-- footer begin -->
<table border=0 cellspacing=0 cellpadding=4 width=840>
<%@ include file="/copyright.jsp" %>
</table>
<!-- footer end -->
/kickup/tags/release-1.0/webapp/admin/index.jsp
0,0 → 1,31
<%@ 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" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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>
 
<ul>
<li><backpath:link action="/admin/act/list">Мероприятия</backpath:link></li>
<li><backpath:link action="/admin/apartment/list">Гостиницы</backpath:link></li>
<li><backpath:link action="/admin/event/list">Пьянки</backpath:link></li>
<li><html:link page="/">На сайт</html:link></li>
</ul>
 
<%@ include file="/admin/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/admin/index.do
--- tags/release-1.0/webapp/participant/registered.jsp (nonexistent)
+++ tags/release-1.0/webapp/participant/registered.jsp (revision 1003)
@@ -0,0 +1,39 @@
+<%@ 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-strutsx.tld" prefix="strutsx" %>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<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>
+
+<%@ include file="/header.jsp" %>
+
+<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>Ваш регистрационный номер <span class="important"><bean:write name="participant" property="ident" /></span></p>
+<p>Номер счета выслан на адрес <span class="important"><bean:write name="participant" property="email" /></span></p>
+
+<%@ include file="/footer.jsp" %>
+
+</body>
+
+</html>
/kickup/tags/release-1.0/webapp/participant/updated.jsp
0,0 → 1,36
<%@ 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-strutsx.tld" prefix="strutsx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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>
 
<%@ include file="/header.jsp" %>
 
<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>
 
<%@ include file="/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/participant/ident.jsp
0,0 → 1,105
<%@ 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-strutsx.tld" prefix="strutsx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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">
<script type="text/javascript">
function confirmUnregister()
{
return confirm("Вы уверены, что хотите удалить вашу информацию?");
}
</script>
</head>
 
<body>
 
<%@ include file="/header.jsp" %>
 
<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>
 
<html:form action="/participant/login" method="GET">
<input type=hidden name="event" value="<bean:write name="event" property="id" />">
<table border=0 cellspacing=0 cellpadding=4 width=500>
<tr>
<th width=120>Ваш номер</th>
<td><html:text property="ident" style="width:240px" maxlength="10" /></td>
</tr>
<tr>
<td colspan=2><html:image page="/images/login.gif" alt="Перейти к изменению" /></td>
</tr>
<tr>
<td colspan=2>&nbsp;</td>
</tr>
</table>
</html:form>
 
<h2>Отказ от регистрации</h2>
 
<logic:equal name="event" property="unregistrationAvailable" value="true">
<html:form action="/participant/unregister" onsubmit="return confirmUnregister();">
<input type=hidden name="event" value="<bean:write name="event" property="id" />">
<table border=0 cellspacing=0 cellpadding=4 width=500>
<tr>
<th width=120>Ваш номер</th>
<td><html:text property="ident" style="width:240px" maxlength="10" /></td>
</tr>
<tr>
<td colspan=2><html:image page="/images/unregister.gif" alt="Я не еду" /></td>
</tr>
<tr>
<td colspan=2>&nbsp;</td>
</tr>
</table>
</html:form>
</logic:equal>
<logic:equal name="event" property="unregistrationAvailable" value="false">
<p>Срок отказа от регистрации прошел.</p>
</logic:equal>
 
<h2>Напомнить ваш номер</h2>
 
<html:form action="/participant/remind" method="GET">
<input type=hidden name="event" value="<bean:write name="event" property="id" />">
<table border=0 cellspacing=0 cellpadding=4 width=500>
<tr>
<td colspan=2>
Если вы забыли ваш номер, то укажите свой e-mail, который вы использовали при регистрации
и на него будет выслан номер
</td>
</tr>
<tr>
<th width=120>Ваш e-mail</th>
<td><html:text property="email" style="width:240px" maxlength="255" /></td>
</tr>
<tr>
<td colspan=2><html:image page="/images/remind.gif" alt="Выслать номер" /></td>
</tr>
<tr>
<td colspan=2>&nbsp;</td>
</tr>
</table>
</html:form>
 
<%@ include file="/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/participant/register.jsp
0,0 → 1,157
<%@ 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-strutsx.tld" prefix="strutsx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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>
 
<%@ include file="/header.jsp" %>
 
<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>
 
<html:form action="/participant/submit">
<html:hidden property="event" />
 
<table border=0 cellspacing=0 cellpadding=4 width=860>
<tr>
<td colspan=3><div class="smallHeader">Идентификация</div></td>
</tr>
<tr>
<th>Ник на форуме</th>
<td colspan=2>
<html:text property="nick" style="width:240px" maxlength="255" />
<span class="obligatedText">обязательное поле</span><br>
Если вы не зарегистрированы на форуме - введите любой ник
</td>
</tr>
<tr>
<th>Ваш e-mail</th>
<td colspan=2>
<html:text property="email" style="width:240px" maxlength="255" />
<span class="obligatedText">обязательное поле</span><br>
После регистрации на этот адрес будет выслан ваш регистрационный номер и счет для перевода денег.
Поэтому указывайте, пожалуйста, ваш реальный e-mail.
</td>
</tr>
<tr>
<th>Разрешить показ e-mail'а</th>
<td colspan=2><html:checkbox property="emailPublic" /></td>
</tr>
<tr>
<th>Сколько вас</th>
<td colspan=2>
<html:text property="persons" style="width:240px" maxlength="10" />
<span class="obligatedText">обязательное поле</span>
</td>
</tr>
 
<tr>
<td colspan=3><div class="smallHeader">Если берете попутчиков</div></td>
</tr>
<tr>
<th>Выезд из PLZ</th>
<td colspan=2><html:text property="fromZip" style="width:240px" maxlength="10" /></td>
</tr>
<tr>
<th>Выезд из города</th>
<td colspan=2><html:text property="fromCity" style="width:240px" maxlength="100" /></td>
</tr>
<tr>
<th>Время отправления</th>
<td colspan=2><html:text property="departure" style="width:240px" maxlength="100" /></td>
</tr>
<tr>
<th>Свободных мест в машине</th>
<td colspan=2><html:text property="freeTransport" style="width:240px" maxlength="10" /></td>
</tr>
<tr>
<th>Условия транспортировки</th>
<td colspan=2><html:textarea property="transportComment" cols="40" rows="5" style="width:240px;" /></td>
</tr>
 
<tr>
<td colspan=3>
<div class="smallHeader">Для живущих в месте проведения</div>
Если вы можете приютить приезжих
</td>
</tr>
<tr>
<th>Свободных спальных мест</th>
<td colspan=2><html:text property="freeSleep" style="width:240px" maxlength="10" /></td>
</tr>
<tr>
<th>Условия ночевки</th>
<td colspan=2><html:textarea property="sleepComment" cols="40" rows="5" style="width:240px;" /></td>
</tr>
 
<tr>
<td colspan=3>
<div class="smallHeader">Контактная информация</div>
Если вы согласны взять попутчиков или пустить переночевать, то
укажите, как с вами связаться
</td>
</tr>
<tr>
<th>Ваше имя</th>
<td colspan=2><html:text property="name" style="width:240px" maxlength="255" /></td>
</tr>
<tr>
<th>Телефон</th>
<td colspan=2><html:text property="phone" style="width:240px" maxlength="255" /></td>
</tr>
<tr>
<th>Дополнительная информация</th>
<td colspan=2><html:textarea property="comment" cols="40" rows="5" style="width:240px;" /></td>
</tr>
 
<logic:notEmpty name="actList" property="objects">
<tr>
<th colspan=3><div class="smallHeader">В чем желаете поучаствовать</div></th>
</tr>
<tr>
<th>Название</th>
<th>Включить</th>
<th>Дополнительно</th>
</tr>
<logic:iterate name="ParticipantRegisterForm" property="acts" id="acts" indexId="iid">
<tr>
<td>
<bean:write name="actList" property='<%= "objects[" + iid + "].act.name" %>' />
<html:hidden name="acts" property="actId" indexed="true" />
</td>
<td><html:checkbox name="acts" property="selected" indexed="true" /></td>
<td><html:text name="acts" property="comment" indexed="true" style="width:240px" /></td>
</tr>
</logic:iterate>
</logic:notEmpty>
 
<tr>
<td colspan=3><html:image page="/images/register-small.gif" alt="Зарегистрироватьсяу" /></td>
</tr>
</table>
 
</html:form>
 
<%@ include file="/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/participant/edit.jsp
0,0 → 1,154
<%@ 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-strutsx.tld" prefix="strutsx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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>
 
<%@ include file="/header.jsp" %>
 
<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>
 
<html:form action="/participant/update">
<html:hidden property="event" />
<html:hidden property="ident" />
 
<table border=0 cellspacing=0 cellpadding=4 width=860>
<tr>
<td colspan=3><div class="smallHeader">Идентификация</div></td>
</tr>
<tr>
<th>Ваш номер</th>
<td colspan=2><bean:write name="participant" property="ident" /></td>
</tr>
<tr>
<th>Ник на форуме</th>
<td colspan=2><bean:write name="participant" property="nick" /></td>
</tr>
<tr>
<th>Ваш e-mail</th>
<td colspan=2><bean:write name="participant" property="email" /></td>
</tr>
<tr>
<th>Разрешить показ e-mail'а</th>
<td colspan=2><html:checkbox property="emailPublic" /></td>
</tr>
<tr>
<th>Сколько вас</th>
<td colspan=2><html:text property="persons" style="width:240px" maxlength="10" /></td>
</tr>
 
<tr>
<td colspan=3><div class="smallHeader">Если берете попутчиков</div></td>
</tr>
<tr>
<th>Выезд из PLZ</th>
<td colspan=2><html:text property="fromZip" style="width:240px" maxlength="10" /></td>
</tr>
<tr>
<th>Выезд из города</th>
<td colspan=2><html:text property="fromCity" style="width:240px" maxlength="100" /></td>
</tr>
<tr>
<th>Время отправления</th>
<td colspan=2><html:text property="departure" style="width:240px" maxlength="100" /></td>
</tr>
<tr>
<th>Свободных мест в машине</th>
<td colspan=2><html:text property="freeTransport" style="width:240px" maxlength="10" /></td>
</tr>
<tr>
<th>Условия транспортировки</th>
<td colspan=2><html:textarea property="transportComment" cols="40" rows="5" style="width:240px;" /></td>
</tr>
 
<tr>
<td colspan=3>
<div class="smallHeader">Для живущих в месте проведения</div>
Если вы можете приютить приезжих
</td>
</tr>
<tr>
<th>Свободных спальных мест</th>
<td colspan=2><html:text property="freeSleep" style="width:240px" maxlength="10" /></td>
</tr>
<tr>
<th>Условия ночевки</th>
<td colspan=2><html:textarea property="sleepComment" cols="40" rows="5" style="width:240px;" /></td>
</tr>
 
<tr>
<td colspan=3>
<div class="smallHeader">Контактная информация</div>
Если вы согласны взять попутчиков или пустить переночевать, то
укажите, как с вами связаться
</td>
</tr>
<tr>
<th>Ваше имя</th>
<td colspan=2><html:text property="name" style="width:240px" maxlength="255" /></td>
</tr>
<tr>
<th>Телефон</th>
<td colspan=2><html:text property="phone" style="width:240px" maxlength="255" /></td>
</tr>
<tr>
<th>Переведено и получено, евро</th>
<td colspan=2><bean:write name="participant" property="payed" format="0.00" /></td>
</tr>
<tr>
<th>Дополнительная информация</th>
<td colspan=2><html:textarea property="comment" cols="40" rows="5" style="width:240px;" /></td>
</tr>
 
<logic:notEmpty name="actList" property="objects">
<tr>
<th colspan=3><div class="smallHeader">В чем желаете поучаствовать</div></th>
</tr>
<tr>
<th>Название</th>
<th>Включить</th>
<th>Дополнительно</th>
</tr>
<logic:iterate name="ParticipantRegisterEditForm" property="acts" id="acts" indexId="iid">
<tr>
<td>
<bean:write name="actList" property='<%= "objects[" + iid + "].act.name" %>' />
<html:hidden name="acts" property="actId" indexed="true" />
</td>
<td><html:checkbox name="acts" property="selected" indexed="true" /></td>
<td><html:text name="acts" property="comment" indexed="true" style="width:240px" /></td>
</tr>
</logic:iterate>
</logic:notEmpty>
 
<tr>
<td colspan=3><html:image page="/images/save.gif" alt="Сохранить" /></td>
</tr>
</table>
 
</html:form>
 
<%@ include file="/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/participant/reminded.jsp
0,0 → 1,36
<%@ 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-strutsx.tld" prefix="strutsx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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>
 
<%@ include file="/header.jsp" %>
 
<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>На указаный e-mail выслан ваш регистрационный номер</h2>
 
<%@ include file="/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/participant/list.jsp
0,0 → 1,68
<%@ 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-strutsx.tld" prefix="strutsx" %>
<%@ taglib uri="/WEB-INF/ak-kickup.tld" prefix="kickup" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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>
 
<%@ include file="/header.jsp" %>
 
<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=0 cellspacing=0 cellpadding=4 width=860>
<tr>
<th class="headerCell">Ник</th>
<th class="headerCell">Имя</th>
<th class="headerCell">e-mail</th>
<th class="headerCell">Телефон</th>
<th class="headerCell">Количество</th>
</tr>
 
<logic:iterate name="participants" id="p">
<tr>
<td class="listCell"><bean:write name="p" property="nick" />&nbsp;</td>
<td class="listCell"><bean:write name="p" property="name" />&nbsp;</td>
<td class="listCell">
<logic:equal name="p" property="emailPublic" value="true">
<bean:write name="p" property="email" />
</logic:equal>
&nbsp;
</td>
<td class="listCell"><bean:write name="p" property="phone" />&nbsp;</td>
<td class="listCell"><bean:write name="p" property="persons" />&nbsp;</td>
</tr>
</logic:iterate>
<tr>
<td colspan=5>&nbsp;</td>
</tr>
</table>
 
<p>
Всего заявок: <span class="personCount"><bean:write name="event" property="participantCount" /></span>
Всего участников: <span class="personCount"><bean:write name="event" property="personCount" /></span>
</p>
 
<%@ include file="/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/participant/unregistered.jsp
0,0 → 1,36
<%@ 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-strutsx.tld" prefix="strutsx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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>
 
<%@ include file="/header.jsp" %>
 
<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>
 
<%@ include file="/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/footer.jsp
0,0 → 1,31
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!-- footer begin -->
<table border=0 cellspacing=0 cellpadding=4>
<tr>
<td colspan=2>&nbsp;</td>
</tr>
<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 style="text-align: right; ">
<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 style="text-align: right; ">
<html:link page="/"><img src="<strutsx:root />/images/list.gif" alt="Полный список" border=0></html:link>
</td>
</tr>
<logic:notEmpty name="event" property="phones" >
<tr>
<td>Телефоны: <bean:write name="event" property="phones" /></td>
<td align=right valign=top>&nbsp;</td>
</tr>
</logic:notEmpty>
 
<%@ include file="/copyright.jsp" %>
</table>
<!-- footer end -->
/kickup/tags/release-1.0/webapp/event/show.jsp
0,0 → 1,60
<%@ 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-strutsx.tld" prefix="strutsx" %>
<%@ taglib uri="/WEB-INF/ak-kickup.tld" prefix="kickup" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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>
 
<%@ include file="/header.jsp" %>
 
<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>
 
<h2>Место проведения</h2>
 
<div class="eventPlace"><bean:write name="event" property="place" /></div>
<div class="eventAddress"><kickup:write name="event" property="address" filterBr="true" /></div>
 
<h2>Планируемые мероприятия</h2>
 
<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"><span class="actParticipants">[участники]</span></kickup:link></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>
 
<%@ include file="/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/event/list.jsp
0,0 → 1,78
<%@ 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-strutsx.tld" prefix="strutsx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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=0 cellspacing=0 cellpadding=4 width=860>
<tr>
<th class="headerCell">Название</th>
<th class="headerCell">Место/город</th>
<th class="headerCell">Начало</th>
<th class="headerCell">Окончание</th>
<th class="headerCell">Регистрация разрешена</th>
</tr>
 
<logic:iterate name="events" id="e">
<tr>
<td class="listCell">
<html:link action="/event/show" paramId="id" paramName="e" paramProperty="id">
<bean:write name="e" property="name" />
</html:link>
</td>
<td class="listCell"><bean:write name="e" property="place" />&nbsp;</td>
<td class="listCell"><bean:write name="e" property="start" format="dd.MM.yyyy" />&nbsp;</td>
<td class="listCell"><bean:write name="e" property="stop" format="dd.MM.yyyy" />&nbsp;</td>
<td class="listCell">
<logic:equal name="e" property="registrationAvailable" value="true">да</logic:equal>
<logic:notEqual name="e" property="registrationAvailable" value="true">нет</logic:notEqual>
</td>
</tr>
</logic:iterate>
<tr>
<td colspan=5>&nbsp;</td>
</tr>
</table>
 
<!-- footer begin -->
<table border=0 cellspacing=0 cellpadding=4>
<tr>
<td colspan=2><img src="<strutsx:root />/images/line.gif" alt=""></td>
</tr>
<tr>
<td>&nbsp;</td>
<td align=right valign=top style="text-align: right; ">
<html:link page="/admin"><img src="<strutsx:root />/images/admin.gif" alt="Администрирование" border=0></html:link>
</td>
</tr>
 
<%@ include file="/copyright.jsp" %>
</table>
<!-- footer end -->
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/generalError.jsp
0,0 → 1,25
<%@ 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" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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>
 
<p>Ошибка сервера. То, что вы ищете - не найдено, или то, что вы хотите сделать - не делается.
<backpath:notEmpty><backpath:backlink>Попробуйте еще раз</backpath:backlink> и сообщите нам, если все равно не работает.</backpath:notEmpty></p>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/copyright.jsp
0,0 → 1,12
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<tr>
<td colspan=2>&nbsp;</td>
</tr>
<tr>
<td style="font-size: 8pt; background-color:#E0E0E0">
Copyleft 2004 RusBook, toader, dev
</td>
<td style="font-size: 8pt; background-color:#E0E0E0; text-align: right">
Hosting: <a href="http://www.26th.net/public/hosting">26th.net</a>
</td>
</tr>
/kickup/tags/release-1.0/webapp/header.jsp
0,0 → 1,49
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!-- header begin -->
<table border=0>
<tr>
<td valign=top>
<div class="eventName"><bean:write name="event" property="name" /></div>
</td>
<td valign=top>
<div class="eventDate" style="text-align: right; ">
<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" style="text-align: right; ">
<bean:write name="event" property="place" />
</div>
</td>
</tr>
<tr>
<td valign=bottom>
Уже зарегистрированно <span class="personCount"><bean:write name="event" property="personCount" /></span> участников
</td>
<td valign=bottom style="text-align: right; ">
<logic:equal name="event" property="registrationAvailable" value="true">
<html:link action="/participant/register" paramId="event" paramName="event" paramProperty="id"><img src="<strutsx:root />/images/register.gif" alt="Зарегистрироваться" border=0></html:link>
</logic:equal>
</td>
</tr>
<tr>
<td colspan=2>&nbsp;</td>
</tr>
<tr>
<td valign=top>
<html:link action="/event/show" paramId="id" paramName="event" paramProperty="id"><img src="<strutsx:root />/images/show.gif" alt="Программа" border=0></html:link>
<html:link action="/apartment/list" paramId="event" paramName="event" paramProperty="id"><img src="<strutsx:root />/images/apartments.gif" alt="Программа" border=0></html:link>
<html:link action="/transport/list" paramId="event" paramName="event" paramProperty="id"><img src="<strutsx:root />/images/transport.gif" alt="Программа" border=0></html:link>
<html:link action="/participant/list" paramId="event" paramName="event" paramProperty="id"><img src="<strutsx:root />/images/participants.gif" alt="Программа" border=0></html:link>
</td>
<td valign=top style="text-align: right; ">
<html:link action="/participant/ident" paramId="event" paramName="event" paramProperty="id"><img src="<strutsx:root />/images/ident.gif" alt="Программа" border=0></html:link>
</td>
</tr>
<tr>
<td colspan=2><img src="<strutsx:root />/images/line.gif" alt=""></td>
</tr>
</table>
<!-- header end -->
/kickup/tags/release-1.0/webapp/error.jsp
0,0 → 1,37
<%@ 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" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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>
 
<br>
<backpath:notEmpty><backpath:backlink>Назад</backpath:backlink></backpath:notEmpty>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/act/list.jsp
0,0 → 1,65
<%@ 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-strutsx.tld" prefix="strutsx" %>
<%@ taglib uri="/WEB-INF/ak-kickup.tld" prefix="kickup" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 
<head>
<meta http-equiv="expires" content="0">
<title>Пьянка XP - Участники мероприятия "<bean:write name="act" property="act.name" />" на пьянке "<bean:write name="event" property="name" />"</title>
<link rel="stylesheet" type="text/css" href="<strutsx:root />/style/general.css">
</head>
 
<body>
 
<%@ include file="/header.jsp" %>
 
<h2>Участники мероприятия "<bean:write name="act" property="act.name" />"</h2>
 
<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=0 cellspacing=0 cellpadding=4 width=860>
<tr>
<th class="headerCell">Ник</th>
<th class="headerCell">Имя</th>
<th class="headerCell">e-mail</th>
<th class="headerCell">Телефон</th>
<th class="headerCell">Дополнительно</th>
</tr>
 
<logic:iterate name="list" id="p">
<tr>
<td class="listCell"><bean:write name="p" property="participant.nick" />&nbsp;</td>
<td class="listCell"><bean:write name="p" property="participant.name" />&nbsp;</td>
<td class="listCell">
<logic:equal name="p" property="participant.emailPublic" value="true">
<bean:write name="p" property="participant.email" />
</logic:equal>
&nbsp;
</td>
<td class="listCell"><bean:write name="p" property="participant.phone" />&nbsp;</td>
<td class="listCell"><bean:write name="p" property="comment" />&nbsp;</td>
</tr>
</logic:iterate>
<tr>
<td colspan=5>&nbsp;</td>
</tr>
</table>
 
<%@ include file="/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/apartment/list.jsp
0,0 → 1,112
<%@ 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-strutsx.tld" prefix="strutsx" %>
<%@ taglib uri="/WEB-INF/ak-kickup.tld" prefix="kickup" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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>
 
<%@ include file="/header.jsp" %>
 
<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=0 cellspacing=0 cellpadding=4 width=860>
 
<logic:iterate name="apartments" id="a">
<tr>
<td style="font-size: 12pt; font-weight: bold;" width=400>
<logic:empty name="a" property="apartment.url">
<bean:write name="a" property="apartment.name" />
</logic:empty>
<logic:notEmpty name="a" property="apartment.url">
<a href="<bean:write name="a" property="apartment.url" />"><bean:write name="a" property="apartment.name" /></a>
</logic:notEmpty>
</td>
<td rowspan=3 class="listCell">
<kickup:write name="a" property="apartment.address" filterBr="true" />&nbsp;
</td>
</tr>
<tr>
<td>
<logic:empty name="a" property="apartment.price">
[цена не известна]
</logic:empty>
<logic:notEmpty name="a" property="apartment.price">
<bean:write name="a" property="apartment.price" format="0.00" />
евро за ночь на одного
</logic:notEmpty>
</td>
</tr>
<tr>
<td class="listCell">
<logic:empty name="a" property="distance">
[расстояние не известно]
</logic:empty>
<logic:notEmpty name="a" property="distance">
<bean:write name="a" property="distance" />&nbsp;
</logic:notEmpty>
</td>
</tr>
</logic:iterate>
<tr>
<td colspan=2>&nbsp;</td>
</tr>
</table>
 
<h2>Свободные спальные места у участников</h2>
 
<table border=0 cellspacing=0 cellpadding=4 width=860>
<tr>
<th class="headerCell">Ник</th>
<th class="headerCell">Имя</th>
<th class="headerCell">e-mail</th>
<th class="headerCell">Телефон</th>
<th class="headerCell">Свободных мест</th>
<th class="headerCell">Условия</th>
</tr>
 
<logic:iterate name="participants" id="p">
<tr>
<td class="listCell"><bean:write name="p" property="nick" />&nbsp;</td>
<td class="listCell"><bean:write name="p" property="name" />&nbsp;</td>
<td class="listCell">
<logic:equal name="p" property="emailPublic" value="true">
<bean:write name="p" property="email" />
</logic:equal>
&nbsp;
</td>
<td class="listCell"><bean:write name="p" property="phone" />&nbsp;</td>
<td class="listCell"><bean:write name="p" property="freeSleep" />&nbsp;</td>
<td class="listCell"><bean:write name="p" property="sleepComment" />&nbsp;</td>
</tr>
</logic:iterate>
<tr>
<td colspan=6>&nbsp;</td>
</tr>
</table>
 
<%@ include file="/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/transport/list.jsp
0,0 → 1,79
<%@ 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-strutsx.tld" prefix="strutsx" %>
<%@ taglib uri="/WEB-INF/ak-kickup.tld" prefix="kickup" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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>
 
<%@ include file="/header.jsp" %>
 
<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=0 cellspacing=0 cellpadding=4 width=860>
<tr>
<th class="headerCell">PLZ</th>
<th class="headerCell">Город</th>
<th class="headerCell">Отправление</th>
<th class="headerCell">Ник</th>
<th class="headerCell">Имя</th>
<th class="headerCell">e-mail</th>
<th class="headerCell">Телефон</th>
<th class="headerCell">Свободных мест</th>
<th class="headerCell">Условия</th>
</tr>
 
<logic:iterate name="participants" id="p">
<tr>
<td class="listCell"><bean:write name="p" property="fromZip" />&nbsp;</td>
<td class="listCell"><bean:write name="p" property="fromCity" />&nbsp;</td>
<td class="listCell"><bean:write name="p" property="departure" format="dd MMM yyyy HH:mm" />&nbsp;</td>
<td class="listCell"><bean:write name="p" property="nick" />&nbsp;</td>
<td class="listCell"><bean:write name="p" property="name" />&nbsp;</td>
<td class="listCell">
<logic:equal name="p" property="emailPublic" value="true">
<bean:write name="p" property="email" />
</logic:equal>
&nbsp;
</td>
<td class="listCell"><bean:write name="p" property="phone" />&nbsp;</td>
<td class="listCell"><bean:write name="p" property="freeTransport" />&nbsp;</td>
<td class="listCell"><bean:write name="p" property="transportComment" />&nbsp;</td>
</tr>
</logic:iterate>
<tr>
<td colspan=9>&nbsp;</td>
</tr>
</table>
 
<%@ include file="/footer.jsp" %>
 
</body>
 
</html>
/kickup/tags/release-1.0/webapp/images/login.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/tags/release-1.0/webapp/images/remind.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/tags/release-1.0/webapp/images/unregister.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/tags/release-1.0/webapp/images/register-small.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/tags/release-1.0/webapp/images/save.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/tags/release-1.0/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/tags/release-1.0/webapp/images/participants-small.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/tags/release-1.0/webapp/images/add.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/tags/release-1.0/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/tags/release-1.0/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/tags/release-1.0/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/tags/release-1.0/webapp/images/participants.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/tags/release-1.0/webapp/images/delete.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/tags/release-1.0/webapp/images/edit.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/tags/release-1.0/webapp/images/back-small.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/tags/release-1.0/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/tags/release-1.0/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/tags/release-1.0/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/tags/release-1.0/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/tags/release-1.0/webapp/style/general.css
0,0 → 1,30
body { font-family: verdana, sans-serif; }
h1 { font-weight: bold; font-size: 16pt; color: #5A2A9C; }
h2 { font-weight: bold; font-size: 12pt; color: #5A2A9C; }
.smallHeader { font-weight: bold; font-size: 12pt; color: #5A2A9C; margin-top: 1em; }
.subHeader { font-weight: bold; font-size: 10pt; color: #5A2A9C; background-color: #EDD9F1; }
th { text-align: left; font-size: 10pt; vertical-align: top; }
td { text-align: left; font-size: 10pt; vertical-align: top; }
.even { background-color: #E0D3F1; }
.odd { background-color: #EDD9F1; }
.listCell { border-bottom: 1px solid #C0C0C0; }
.headerCell { border-bottom: 1px solid black; }
.error { color: red; }
.obligated { color: red; }
.obligatedText { color: red; font-size: 8pt; }
 
.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: 16pt; }
.important { font-weight: bold; }
.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: 8pt; text-decoration: none; }
 
/kickup/tags/release-1.0/webapp/index.do
--- tags/release-1.0/doc/todo.txt (nonexistent)
+++ tags/release-1.0/doc/todo.txt (revision 1003)
@@ -0,0 +1,14 @@
+ Images upload/download
+
+ Solve the problem with unsync of checkboxes and lists
+
+ The bug 1 - edit an event if no apartments/acts defined
+
++ Max length
+
++ Remind number to email
+
++ Image buttons: save, change, unregister, register
+
+ Image buttons for admins: submit, cancel
+
/kickup/tags/release-1.0/doc/spec/FormRegistration.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/tags/release-1.0/doc/spec/FormHeaderMenuFooter.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/tags/release-1.0/doc/spec/FormAccomodation.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/tags/release-1.0/doc/spec/FormRegistrationEdit.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/tags/release-1.0/doc/spec/FormParticipants.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/tags/release-1.0/doc/spec/SiteStructure.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/tags/release-1.0/doc/spec/FormProgramm.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/tags/release-1.0/doc/spec/UseCasesHost.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/tags/release-1.0/doc/spec/FormIndentification.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/tags/release-1.0/doc/spec/FormTransportation.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/tags/release-1.0/doc/spec/UseCasesVisitor.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/tags/release-1.0/doc/spec/PageStructure.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/tags/release-1.0/sql/00.tables.sql
0,0 → 1,173
--
-- kickup sql tables
--
 
create sequence hibernate_sequence;
 
/* removed in this version
create table participants
(
id integer not null,
nick varchar(255) not null,
email varchar(255) not null,
name varchar(255),
phone varchar(255),
comment text,
mod_stamp timestamp,
 
constraint participants_prim primary key (id),
constraint participants_email unique(email)
);
*/
 
create table acts
(
id integer not null,
name varchar(255) not null,
comment text,
mod_stamp timestamp,
 
constraint acts_prim primary key (id),
constraint acts_name unique(name)
);
 
create table apartments
(
id integer not null,
name varchar(255) not null,
address text,
price decimal,
url varchar(4000),
comment text,
mod_stamp timestamp,
 
constraint apartments_prim primary key (id),
constraint apartments_name unique(name)
);
 
create table events
(
id integer not null,
name varchar(255) not null,
email varchar(255) not null,
admins varchar(255) not null,
phones varchar(255),
place varchar(255),
address text,
transport_desc text,
start date,
stop date,
last_register date,
last_unregister date,
price decimal,
money_account text,
enabled char(1) default '1',
comment text,
mod_stamp timestamp,
 
constraint events_prim primary key (id),
constraint events_name unique(name)
);
 
/*
create table event_files
(
id integer not null,
event integer not null,
name varchar(255) not null,
data file,
type char(1),
comment text,
mod_stamp timestamp,
 
constraint event_files_prim primary key (id)
);
*/
 
create table event_apartments
(
id integer not null,
event integer not null,
apartment integer not null,
distance decimal,
comment text,
mod_stamp timestamp,
 
constraint event_apartments_prim primary key (id),
constraint event_apartments_event foreign key (event) references events(id),
constraint event_apartments_apartment foreign key (apartment) references apartments(id)
);
 
create table event_acts
(
id integer not null,
event integer not null,
act integer not null,
comment text,
mod_stamp timestamp,
 
constraint event_acts_prim primary key (id),
constraint event_acts_event foreign key (event) references events(id),
constraint event_acts_act foreign key (act) references acts(id)
);
 
/* removed in this version
create table participant_events
(
participant integer not null,
event integer not null,
persons integer,
from_zip varchar(10),
from_city varchar(10),
departure datetime,
free_transport integer,
transport_comment integer,
free_sleep integer,
sleep_comment text,
payed char(1) default ' ',
comment text,
mod_stamp timestamp,
 
constraint participant_events_prim primary key (participant, event)
);
*/
 
create table participants
(
id integer not null,
ident varchar(255) not null,
nick varchar(255) not null,
email varchar(255) not null,
email_public char(1) default ' ',
name varchar(255),
phone varchar(255),
event integer not null,
persons integer not null,
from_zip varchar(10),
from_city varchar(100),
departure timestamp,
free_transport integer,
transport_comment text,
free_sleep integer,
sleep_comment text,
payed decimal,
comment text,
private_comment text,
mod_stamp timestamp,
 
constraint participants_prim primary key (id),
constraint participants_email unique(email, event)
);
 
create table participant_acts
(
id integer not null,
participant integer not null,
act integer not null,
comment text,
mod_stamp timestamp,
 
constraint participant_acts_prim primary key (id),
constraint participant_acts_participant foreign key (participant) references participants(id),
constraint participant_acts_act foreign key (act) references acts(id)
);
/kickup/tags/release-1.0/conf/hibernate.cfg.xml.sample
0,0 → 1,31
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
 
<hibernate-configuration>
<session-factory
name="java:comp/env/hibernate/SessionFactory">
 
<!-- properties -->
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="connection.username">user</property>
<property name="connection.password">password</property>
<property name="connection.url">jdbc:postgresql://localhost/kickup</property>
 
<property name="dialect">net.sf.hibernate.dialect.PostgreSQLDialect</property>
<property name="show_sql">false</property>
 
<property name="dbcp.maxActive">15</property>
<property name="dbcp.maxIdle">5</property>
<property name="dbcp.maxWait">120000</property>
<property name="dbcp.whenExhaustedAction">1</property>
<property name="dbcp.testOnBorrow">true</property>
<property name="dbcp.testOnReturn">false</property>
<property name="dbcp.validationQuery">select 1</property>
<property name="dbcp.ps.maxActive">15</property>
<property name="dbcp.ps.maxIdle">5</property>
<property name="dbcp.ps.maxWait">120000</property>
<property name="dbcp.ps.whenExhaustedAction">1</property>
</session-factory>
</hibernate-configuration>
/kickup/tags/release-1.0/conf/log4j.properties
0,0 → 1,10
log4j.rootLogger=warn, stdout
 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
 
log4j.logger.ak=debug
log4j.logger.ak.kickup=debug
 
log4j.logger.net.sf.hibernate=error
/kickup/tags/release-1.0/conf
Property changes:
Added: svn:ignore
+hibernate.cfg.xml
/kickup/tags/release-1.0/build.xml
0,0 → 1,115
<project name="kickup" default="deploy" basedir=".">
 
<!--property name="build.compiler" value="jikes" /-->
 
<property name="src" location="src" />
<property name="classes" location="classes" />
<property name="app.web-inf" location="webapp/WEB-INF" />
<property name="classes.deploy" location="${app.web-inf}/classes" />
<property name="conf" location="conf" />
<property name="lib" location="lib" />
<property name="lib.ant" location="lib/ant" />
<property name="lib.deploy" location="${app.web-inf}/lib" />
<property name="classpath" value="" />
 
<path id="classpath.general">
<pathelement path="${classpath}" />
<fileset dir="${lib.deploy}">
<include name="*.jar" />
</fileset>
</path>
 
<path id="classpath.test">
<path refid="classpath.general" />
<pathelement location="${classes.deploy}" />
</path>
 
<path id="classpath.compile">
<path refid="classpath.general" />
<pathelement location="${classes}" />
<fileset dir="${lib}">
<include name="**/*.jar" />
<exclude name="ant/" />
</fileset>
</path>
 
<path id="classpath.ant">
<fileset dir="${lib.ant}">
<include name="**/*.jar" />
</fileset>
</path>
 
<taskdef name="hibernatedoclet" classname="xdoclet.modules.hibernate.HibernateDocletTask">
<classpath refid="classpath.ant"/>
</taskdef>
 
<target name="compile">
<mkdir dir="${classes}" />
 
<javac
srcdir="${src}"
destdir="${classes}"
classpathref="classpath.compile"
debug="on"
nowarn="on"
/>
</target>
 
<target name="hibernate">
<hibernatedoclet
destdir="${classes}"
excludedtags="@version,@author,@todo"
mergedir="${classes}"
verbose="false"
>
<fileset dir="src">
<include name="**/*.java" />
</fileset>
<hibernate version="2.0" />
</hibernatedoclet>
</target>
 
<target name="deploy" depends="compile,hibernate">
<copy todir="${classes.deploy}">
<fileset dir="${classes}" />
</copy>
 
<copy todir="${classes.deploy}">
<fileset
dir="${classes}"
includes="**/*.xml"
/>
<fileset
dir="${src}"
includes="**/*.txt"
/>
</copy>
 
<copy todir="${app.web-inf}" flatten="yes">
<fileset
dir="${src}"
includes="**/*.tld"
/>
</copy>
 
<native2ascii
encoding="UTF8"
src="${src}"
dest="${classes.deploy}"
includes="**/*.properties"
/>
 
<copy todir="${classes.deploy}" file="${conf}/log4j.properties" />
<copy todir="${classes.deploy}" file="${conf}/hibernate.cfg.xml" />
 
<touch file="${app.web-inf}/web.xml" />
</target>
 
<target name="clean">
<delete dir="${classes}"/>
<delete dir="${classes.deploy}"/>
</target>
 
<target name="all" depends="clean,deploy" />
 
</project>
/kickup/tags/release-1.0/kickup.xml
0,0 → 1,6
<Context
path="/kickup"
docBase="/home/common/prog/kickup/webapp"
debug="0"
privileged="false"
/>
/kickup/tags/release-1.0/lib/servlet.jar
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/tags/release-1.0/lib/ant/xdoclet-hibernate-module-1.2.jar
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/tags/release-1.0/lib/ant/xdoclet-xdoclet-module-1.2.jar
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/tags/release-1.0/lib/ant/commons-collections-2.0.jar
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/tags/release-1.0/lib/ant/xjavadoc-1.0.2.jar
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/tags/release-1.0/lib/ant/commons-logging.jar
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/tags/release-1.0/lib/ant/log4j.jar
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/tags/release-1.0/lib/ant/xdoclet-1.2.jar
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/tags/release-1.0
Property changes:
Added: svn:ignore
+classes