view src/nabble/view/web/user/UserPendingNodes.jtp @ 19:18cf4872fd7f

remove anonymous posting
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 29 May 2020 22:58:25 -0600
parents 7ecd1a4ef557
children
line wrap: on
line source

<%
package nabble.view.web.user;

import nabble.model.Node;
import nabble.model.User;
import nabble.view.lib.Jtp;
import nabble.view.lib.Shared;
import nabble.view.lib.HtmlViewUtils;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;


public final class UserPendingNodes extends HttpServlet {

	private static final int MAX_ROWS = 20;

	protected void service(HttpServletRequest request, HttpServletResponse response)
		throws ServletException, IOException
	{
		PrintWriter out = response.getWriter();
		User user = Jtp.getUser(request);

		if ( user == null ) {
			Jtp.login("You must register/login to edit your profile.", request, response);
			return;
		}

		String iRecS = request.getParameter("i");
		int iRec = iRecS == null? 0 : Integer.valueOf(iRecS);

		List<Node> nodeArray = user.getPendingPosts().get(0, 1000);
		SearchResults searchResults = cutResults(nodeArray, iRec);

		String title = "Pending Posts of ";
		title += user.getName();

		String url = "/user/UserPendingNodes.jtp";
		HtmlViewUtils.GenericPagingPath pagingPath = new HtmlViewUtils.GenericPagingPath(url);
		%>
		<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
		<html>
			<head>
				<% Shared.title(request, response, title); %>
			</head>
			<body>
				<% Shared.minHeaderGlobal(request, response); %>
				<table>
					<tr valign="top">
						<td><img src="<%=Shared.getAvatarImageURL(user, false)%>" class="avatar light-border-color" width=100 height=100/></td>
						<td style="width:100%">
							<div class="second-font" style="font-size:170%">
								<%=user.getNameHtml()%>
							</div>
							<div style="margin-top:.5em">
								<a href="/template/NamlServlet.jtp?macro=user_profile">Account Settings</a>
							</div>
						</td>
					</tr>
				</table>

				<table style="border-collapse:collapse;width:100%;margin-top:.5em">
					<tr>
						<td class="title-row light-border-color" colspan=3>
							<div style="float:left;padding-top:.2em">
								<b>Pending Messages</b>
							</div>
							<% HtmlViewUtils.genericPaging(request, response, searchResults.getCount(), iRec, MAX_ROWS, pagingPath, ".4em 0 0 0"); %>
						</td>
					</tr>
				</table>

				<style type="text/css">
					table.nodes {
						width:100%;
						border-width: 1px;
						border-style: solid;
						border-collapse:collapse;
						margin-top:.5em;
					}

					table.nodes td {
						padding:.1em;
					}

					table.nodes td.header {
						padding: .2em .3em;
						border-bottom-width: 1px;
						border-bottom-style: solid;
					}
				</style>

				<%
				String[] columns = new String[] { "Message", "Pending Since", "Forum" };
				%>

				<table class="nodes medium-border-color">
					<tr class="shaded-bg-color" style="font-weight: bold">
						<td class="header" style="width:16px"></td>
						<td class="header"><%=columns[0]%></td>
						<td class="header"><%=columns[1]%></td>
						<td class="header"><%=columns[2]%></td>
					</tr>
					<%
					Node[] nodes = searchResults.getNodes();
					int i = 0;
					if (nodes.length > 0) {
						for (Node node : nodes) {
							%>
							<tr <%=i++%2==1?"class=\"light-bg-color\"":""%>>
								<td align="center">
									<%Shared.showPending(out, node);%>
								</td>
								<td style="padding:.3em .4em;">
									<a href="<%=Jtp.url(node)%>"><%=node.getSubjectHtml()%></a>
								</td>
								<td style="padding:.2em">
									<%=node.getMailToList() == null? "" : Jtp.formatDateLong(node.getMailToList().getWhenSent())%>
								</td>
								<td style="padding:.2em">
									<%=Jtp.link(node.getApp())%>
								</td>
							</tr>
							<%
						}
					} else {
						%>
						<tr><td colspan=4 style="padding:.3em">None</td></tr>
						<%
					}
					%>
				</table>
				<% HtmlViewUtils.genericPaging(request, response, searchResults.getCount(), iRec, MAX_ROWS, pagingPath, ".5em 0 0 0"); %>

				<% Shared.footer(request,response); %>
				<% Shared.analytics(request,response); %>
			</body>
		</html>
		<%
	}

	private class SearchResults {
		private int count;
		private Node[] nodes;

		public SearchResults() {}

		public SearchResults(int count, Node[] nodes) {
			this.count = count;
			this.nodes = nodes;
		}

		public int getCount() { return count; }
		public void setCount(int count) { this.count = count; }
		public Node[] getNodes() { return nodes; }
		public void setNodes(Node[] nodes) { this.nodes = nodes; }
	}

	private SearchResults cutResults(List<Node> array, int iRec) {
		int i = iRec;
		int count = 0;
		List<Node> nodes = new ArrayList<Node>();
		while (count < MAX_ROWS) {
			if (array.size()-1 < i)
				break;
			nodes.add(array.get(i++));
			count++;
		}
		Node[] nodesArray = nodes.toArray(new Node[0]);
		return new SearchResults(array.size(), nodesArray);
	}
}
%>