/*
* Juick
* Copyright (C) 2008-2011, Ugnich Anton
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
package com.juick.www;
import com.juick.server.PMQueries;
import com.juick.server.TagQueries;
import com.juick.server.UserQueries;
import com.juick.xmpp.JID;
import com.juick.xmpp.Message;
import com.juick.xmpp.Stream;
import com.juick.xmpp.extensions.JuickMessage;
import com.mitchellbosecke.pebble.error.PebbleException;
import com.mitchellbosecke.pebble.template.PebbleTemplate;
import org.springframework.jdbc.core.JdbcTemplate;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import static com.juick.www.PageTemplates.sape;
/**
*
* @author Ugnich Anton
*/
public class PM {
private static final Logger logger = Logger.getLogger(PM.class.getName());
protected void doGetInbox(JdbcTemplate sql, HttpServletRequest request, HttpServletResponse response, com.juick.User visitor) throws ServletException, IOException, PebbleException {
String title = "PM: Inbox";
List msgs = PMQueries.getLastPMInbox(sql, visitor.getUID());
msgs.forEach(m -> m.setText(Utils.formatMessage(m.getText())));
String links = sape.getPageLinks(request.getRequestURI(), request.getCookies()).render();
response.setContentType("text/html; charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
PebbleTemplate template = Utils.getEngine().getTemplate("views/pm_inbox.html");
Map context = new HashMap<>();
context.put("title", title);
context.put("visitor", visitor);
context.put("msgs", msgs);
context.put("tags", TagQueries.getPopularTags(sql));
if (visitor.getUID() == 0) {
context.put("showAdv", true);
context.put("links", links);
}
template.evaluate(out, context);
}
}
protected void doGetSent(JdbcTemplate sql, HttpServletRequest request, HttpServletResponse response, com.juick.User visitor) throws ServletException, IOException {
/*
int paramBefore = 0;
String paramBeforeStr = request.getParameter("before");
if (paramBeforeStr != null) {
try {
paramBefore = Integer.parseInt(paramBeforeStr);
} catch (NumberFormatException e) {
}
}
*/
String title = "PM: Sent";
List msgs = PMQueries.getLastPMSent(sql, visitor.getUID());
String uname = request.getParameter("uname");
if (!UserQueries.checkUserNameValid(uname)) {
uname = "";
}
response.setContentType("text/html; charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
PageTemplates.pageHead(out, visitor, title, null);
PageTemplates.pageNavigation(out, visitor, null);
PageTemplates.pageHomeColumn(out, sql, visitor);
out.println("");
out.println("");
if (!msgs.isEmpty()) {
out.println("