19 package org.turro.contacts.zul.register;
21 import java.util.List;
22 import org.turro.auth.Authentication;
23 import org.turro.command.Command;
24 import org.turro.command.Context;
25 import org.turro.contacts.SignUp;
26 import org.turro.contacts.db.ContactsPU;
27 import org.turro.elephant.context.ElephantContext;
28 import org.turro.elephant.context.HeadlessApplication;
29 import org.turro.elephant.context.IConstructor;
30 import org.turro.elephant.impl.context.ContextFactory;
31 import org.turro.elephant.impl.util.StringParser;
32 import org.turro.elephant.util.ZkossUtils;
33 import org.turro.i18n.I_;
34 import org.turro.jpa.Dao;
35 import org.turro.mail.impl.MailPool;
36 import org.turro.marker.ElephantMarker;
37 import org.turro.plugin.contacts.IContact;
38 import org.zkoss.zk.ui.Component;
39 import org.zkoss.zk.ui.event.Event;
40 import org.zkoss.zk.ui.select.SelectorComposer;
41 import org.zkoss.zk.ui.select.annotation.Listen;
42 import org.zkoss.zk.ui.select.annotation.Wire;
43 import org.zkoss.zk.ui.util.Clients;
44 import org.zkoss.zul.Textbox;
56 private Textbox email;
59 private Textbox comment;
63 @Listen(
"onClick = #register")
73 I_.
get(
"Resend confirmation e-mail"),
new Command() {
75 public Object execute(Context context) {
77 Clients.showNotification(
I_.
format(
"Confirmation e-mail has been sent to %s", sue.
getEmail()));
81 }
else if(existEmail(su.
getEmail())) {
86 Clients.showNotification(
I_.
format(
"Confirmation e-mail has been sent to %s", su.
getEmail()));
89 Clients.showNotification(
"No valid values");
93 private static boolean existEmail(String email) {
95 List l = dao.getResultList(
96 "select c from Connector c where c.value = ?",
97 new Object[] { email }
100 l = dao.getResultList(
101 "select c from SignUp c where c.email = ? and confirmed = TRUE",
102 new Object[] { email }
108 private boolean existPending(String email) {
109 Dao dao =
new ContactsPU();
110 List l = dao.getResultList(
111 "select c from SignUp c where c.email = ? and confirmed = FALSE",
112 new Object[] { email }
115 sue = (SignUp) l.iterator().next();
120 private boolean sendEmail(SignUp signUp) {
121 IConstructor constructor = HeadlessApplication.getInstance().getConstructor();
122 IContact contact = Authentication.getIContact();
123 if(contact ==
null || !contact.isValid()) {
126 MailPool mp = (MailPool) ContextFactory.getImplementation(constructor,
"IMailPool");
127 mp.setEncoding(ElephantContext.getEncoding());
128 mp.addCssFile(ElephantContext.getRealPath(
"/_internal/css/mail.css"));
129 mp.addToPool(
null, signUp.getEmail(),
null,
130 I_.format(
"%s would like you to signup in %s", contact.getName(), ElephantContext.getSiteName()),
131 getMessage(signUp, constructor, contact),
"text/html");
133 sendMailToAdmin(signUp, contact);
137 private String getMessage(SignUp signUp, IConstructor constructor, IContact contact) {
138 ElephantMarker em =
new ElephantMarker(constructor);
139 em.put(
"signUp", signUp);
140 em.put(
"contact", contact);
141 em.put(
"motive", I_.format(
"%s would like you to signup in %s", contact.getName(), ElephantContext.getSiteName()));
142 em.put(
"comment", StringParser.toHTML(signUp.getComment()));
143 return em.parse(
"signup",
"tellsomeone");
146 private static void sendMailToAdmin(SignUp signUp, IContact contact) {
147 MailPool.sendMailToAdmin(
"User wants friend to register",
148 contact.getName() +
" -> " + signUp.getName() +
152 signUp.getComment());
static void confirmProcess(String message, Command command)
static String format(String msg, Object... arguments)
static String get(String msg)