Mercurial Hosting > nabble
diff src/global/web/UserSites.jtp @ 0:7ecd1a4ef557
add content
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 21 Mar 2019 19:15:52 -0600 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/global/web/UserSites.jtp Thu Mar 21 19:15:52 2019 -0600 @@ -0,0 +1,122 @@ +<% +package global.web; + +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.lucene.index.Term; +import org.apache.lucene.search.IndexSearcher; +import org.apache.lucene.search.TopDocs; +import org.apache.lucene.search.Query; +import org.apache.lucene.search.ScoreDoc; +import org.apache.lucene.search.TermQuery; +import fschmidt.util.mail.Mail; +import fschmidt.util.mail.MailAddress; +import fschmidt.util.mail.MailHome; +import fschmidt.util.mail.PlainTextContent; +import global.Site; +import global.HtmlGlobalUtils; + + +public final class UserSites extends HttpServlet { + + protected void service(HttpServletRequest request,HttpServletResponse response) + throws IOException + { + PrintWriter out = response.getWriter(); + boolean isValid = true; + boolean isSent = false; + String email = request.getParameter("email"); + if( email == null ) { + email = ""; + } else { + email = email.trim(); + MailAddress to = new MailAddress(email); + isValid = to.isValid(); + if( isValid ) { + Mail mail = MailHome.newMail(); + mail.setTo(to); + mail.setFrom( new MailAddress("no-reply@nabble.com","Nabble") ); + mail.setSubject("Your Nabble Apps"); + mail.setContent(new PlainTextContent(text(email))); + MailHome.getDefaultSmtpServer().send(mail); + isSent = true; + } + } +%> +<!DOCTYPE html> +<html lang="en"> + <head> + <% HtmlGlobalUtils.head(request, response, "Your Apps"); %> + </head> + <body lato> + <% HtmlGlobalUtils.header(request,response); %> + <div content center paddingTop> + <h1 oswald>Your Nabble Apps</h1> + <p> + Nabble can send you a list with all apps that you currently own. + </p> + <% + if (!isSent) { + %> + <form action="UserSites.jtp"> + <p> + <input name="email" type="text" value="<%=email%>" size="30" placeholder="Email address"/> + <input type="submit" value="Submit"/> + </p> + </form> + <% + if( !isValid ) { + %><p>invalid email address</p><% + } + } else { + %><div class="info-message" style="padding:.5em">An email has been sent to you.</div><% + } + %> + </div> + <% HtmlGlobalUtils.footer(request,response); %> + </body> +</html> + <% + } + + private static String text(String email) { + try { + IndexSearcher searcher = new IndexSearcher(Site.dir()); + Query q = new TermQuery(new Term(Site.OWNER_EMAIL_FLD,email)); + TopDocs hits = searcher.search( q, 500 ); + try { + StringWriter buf = new StringWriter(); + PrintWriter out = new PrintWriter(buf); +%> +Dear Nabble user, +<% if( hits.totalHits == 0 ){ %> +You don't have any sites on Nabble. +<% } else { %> +Here are your Nabble apps: +<% for( ScoreDoc sd : hits.scoreDocs ) { +Site site = new Site( searcher.doc(sd.doc) ); +%> +<%=site.url()%> +<% +} +} +%> +Regards, +The Nabble team +<% + out.flush(); + return buf.toString(); + } finally { + searcher.close(); + } + } catch(IOException e) { + throw new RuntimeException(e); + } + } + +} +%>