Skip to content
Snippets Groups Projects
Commit ff3e0b94 authored by Wang's avatar Wang
Browse files

Add filter for MessageOutbox

parent b54e8395
No related branches found
No related tags found
1 merge request!23Merge UC30 into Master
......@@ -66,10 +66,11 @@
<ul class="nav nav-sidebar">
<li><a href="/iTrust/auth/hcp/sendMessage.jsp">Compose a Message</a>
<li><a href="/iTrust/auth/hcp/messageInbox.jsp">Message Inbox</a>
<li><a href="/iTrust/auth/hcp-patient/messageOutbox.jsp">Message Outbox</a>
<li><a href="/iTrust/auth/hcp/messageOutbox.jsp">Message Outbox</a>
<li><a href="/iTrust/auth/hcp-uap/showEmailHistory.jsp">Email History</a>
</ul>
</div>
</div>
<div class="panel panel-default">
......
......@@ -3,8 +3,15 @@
<%@page import="java.util.List"%>
<%@page import="edu.ncsu.csc.itrust.action.ViewMyMessagesAction"%>
<%@page import="edu.ncsu.csc.itrust.action.EditPersonnelAction"%>
<%@page import="edu.ncsu.csc.itrust.beans.MessageBean"%>
<%@page import="edu.ncsu.csc.itrust.dao.DAOFactory"%>
<%@page import="edu.ncsu.csc.itrust.dao.mysql.PersonnelDAO"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.text.DateFormat"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@page import="java.util.Calendar"%>
<%@include file="/global.jsp" %>
......@@ -17,12 +24,83 @@ pageTitle = "iTrust - View My Sent Messages";
<div align=center>
<h2>My Sent Messages</h2>
<a href="/iTrust/auth/hcp/sendMessage.jsp">Compose a Message</a><br /><br />
<%
loggingAction.logEvent(TransactionType.OUTBOX_VIEW, loggedInMID.longValue(), 0, "");
loggingAction.logEvent(TransactionType.OUTBOX_VIEW, loggedInMID.longValue(), 0, "");
ViewMyMessagesAction action = new ViewMyMessagesAction(prodDAO, loggedInMID.longValue());
EditPersonnelAction f_action = new EditPersonnelAction(prodDAO, loggedInMID.longValue(), loggedInMID.toString());
PersonnelDAO dao = new PersonnelDAO(prodDAO);
List<MessageBean> messages = null;
if(request.getParameter("sortby") != null) {
//Edit Filter backend
boolean editing = false;
String headerMessage = "";
String[] fields = new String[6];
if(request.getParameter("edit") != null && request.getParameter("edit").equals("true")) {
editing = true;
int i;
for(i=0; i<6; i++) {
fields[i] = "";
}
if(request.getParameter("cancel") != null)
response.sendRedirect("messageOutbox.jsp");
else if(request.getParameter("test") != null || request.getParameter("save") != null) {
boolean error = false;
String nf = "";
nf += request.getParameter("sender").replace(",","")+",";
nf += request.getParameter("subject").replace(",","")+",";
nf += request.getParameter("hasWords").replace(",","")+",";
nf += request.getParameter("notWords").replace(",","")+",";
nf += request.getParameter("startDate").replace(",","")+",";
nf += request.getParameter("endDate");
//Validate Filter
if(nf.startsWith("Error")) {
error = true;
headerMessage = nf;
}
if(!error) {
if(request.getParameter("test") != null) {
response.sendRedirect("messageOutbox.jsp?edit=true&testFilter="+nf);
} else if(request.getParameter("save") != null) {
f_action.editMessageFilter(nf);
response.sendRedirect("messageOutbox.jsp?filter=true");
}
}
}
if(request.getParameter("testFilter") != null) {
String filter = request.getParameter("testFilter");
String[] f = filter.split(",", -1);
for(i=0; i<6; i++) {
try {
fields[i] = f[i];
} catch(ArrayIndexOutOfBoundsException e) {
//do nothing
}
}
} else {
String filter = dao.getPersonnel(loggedInMID.longValue()).getMessageFilter();
if(!filter.equals("")) {
String[] f = filter.split(",", -1);
for(i=0; i<6; i++) {
try {
fields[i] = f[i];
} catch(ArrayIndexOutOfBoundsException e) {
//do nothing
}
}
}
}
}
//Sorts messages
if(request.getParameter("sort") != null) {
if(request.getParameter("sortby").equals("name")) {
if(request.getParameter("sorthow").equals("asce")) {
messages = action.getAllMySentMessagesNameAscending();
......@@ -40,9 +118,84 @@ pageTitle = "iTrust - View My Sent Messages";
else {
messages = action.getAllMySentMessages();
}
//Filters Messages
boolean is_filtered = false;
if((request.getParameter("filter") != null && request.getParameter("filter").equals("true")) || request.getParameter("testFilter") != null) {
String filter = "";
if(request.getParameter("testFilter") != null) {
filter = request.getParameter("testFilter");
} else {
filter = dao.getPersonnel(loggedInMID.longValue()).getMessageFilter();
}
if(!filter.equals("") && !filter.equals(",,,,,")) {
List<MessageBean> filtered = action.filterMessages(messages, filter);
messages = filtered;
is_filtered = true;
}
}
session.setAttribute("messages", messages);
if (messages.size() > 0) { %>
<form method="post" action="messageOutbox.jsp">
%>
<%
if(editing) {
%>
<div class="filterEdit">
<div align="center">
<span style="font-size: 13pt; font-weight: bold;">Edit Message Filter</span>
<%= headerMessage.equals("") ? "" : "<br /><span class=\"iTrustMessage\">"+headerMessage+"</span><br /><br />" %>
<form method="post" action="messageOutbox.jsp?edit=true">
<table>
<tr style="text-align: right;">
<td>
<label for="sender">Sender: </label>
<input type="text" name="sender" id="sender" value="<%= StringEscapeUtils.escapeHtml("" + (fields[0] )) %>" />
</td>
<td style="padding-left: 10px; padding-right: 10px;">
<label for="hasWords">Has the words: </label>
<input type="text" name="hasWords" id="hasWords" value="<%= StringEscapeUtils.escapeHtml("" + (fields[2] )) %>" />
</td>
<td>
<label for="startDate">Start Date: </label>
<input type="text" name="startDate" id="startDate" value="<%= StringEscapeUtils.escapeHtml("" + (fields[4] )) %>" />
<input type="button" value="Select Date" onclick="displayDatePicker('startDate');" />
</td>
</tr>
<tr style="text-align: right;">
<td>
<label for="subject">Subject: </label>
<input type="text" name="subject" id="subject" value="<%= StringEscapeUtils.escapeHtml("" + (fields[1] )) %>" />
</td>
<td style="padding-left: 10px; padding-right: 10px;">
<label for="notWords">Does not have the words: </label>
<input type="text" name="notWords" id="notWords" value="<%= StringEscapeUtils.escapeHtml("" + (fields[3] )) %>" />
</td>
<td>
<label for="endDate">End Date: </label>
<input type="text" name="endDate" id="endDate" value="<%= StringEscapeUtils.escapeHtml("" + (fields[5] )) %>" />
<input type="button" value="Select Date" onclick="displayDatePicker('endDate');" />
</td>
</tr>
<tr style="text-align: center;">
<td colspan="3">
<input type="submit" name="test" value="Test Filter" />
<input type="submit" name="save" value="Save" />
<input type="submit" name="cancel" value="Cancel" />
</td>
</tr>
</table>
</form>
</div>
</div>
<br />
<%
}
%>
<form method="post" action="messageOutbox.jsp<%= StringEscapeUtils.escapeHtml("" + (is_filtered?"?filter=true":"" )) %>">
<table>
<tr>
<td>
......@@ -60,27 +213,32 @@ pageTitle = "iTrust - View My Sent Messages";
</select>
</td>
<td>
<input type="submit" value="Sort" />
<input type="submit" name="sort" value="Sort" />
</td>
</tr>
<tr>
<td><a href="messageOutbox.jsp?edit=true" >Edit Filter</a></td>
<td><a href="messageOutbox.jsp?filter=true" >Apply Filter</a></td>
</tr>
</table>
</form>
<br />
<%if(messages.size() > 0) { %>
<table class="fancyTable">
<tr>
<th>To</th>
<th>Subject</th>
<th>Sent</th>
<th>Received</th>
<th></th>
</tr>
<% int index = 0; %>
<% for(MessageBean message : messages) { %>
<% int index = 0;
for(MessageBean message : messages) { %>
<tr <%=(index%2 == 1)?"class=\"alt\"":"" %>>
<td><%= StringEscapeUtils.escapeHtml("" + ( action.getName(message.getTo()) )) %></td>
<td><%= StringEscapeUtils.escapeHtml("" + ( message.getSubject() )) %></td>
<td><%= StringEscapeUtils.escapeHtml("" + ( message.getSentDate() )) %></td>
<td><a href="viewMessageOutbox.jsp?msg=<%= StringEscapeUtils.escapeHtml("" + ( index )) %>">Read</a></td>
</tr>
<td><%= StringEscapeUtils.escapeHtml("" + ( action.getName(message.getTo()) )) %></td>
<td><%= StringEscapeUtils.escapeHtml("" + ( message.getSubject() )) %></td>
<td><%= StringEscapeUtils.escapeHtml("" + ( message.getSentDate() )) %></td>
<td><a href="viewMessageOutbox.jsp?msg=<%= StringEscapeUtils.escapeHtml("" + ( index )) %>">Read</a></td>
</tr>
<% index ++; %>
<% } %>
</table>
......
......@@ -79,7 +79,7 @@
<ul class="nav nav-sidebar">
<li><a href="/iTrust/auth/patient/sendMessage.jsp">Compose a Message</a>
<li><a href="/iTrust/auth/patient/messageInbox.jsp">Message Inbox</a>
<li><a href="/iTrust/auth/hcp-patient/messageOutbox.jsp">Message Outbox</a>
<li><a href="/iTrust/auth/patient/messageOutbox.jsp">Message Outbox</a>
</ul>
</div>
</div>
......
......@@ -3,15 +3,21 @@
<%@page import="java.util.List"%>
<%@page import="edu.ncsu.csc.itrust.action.ViewMyMessagesAction"%>
<%@page import="edu.ncsu.csc.itrust.action.EditPatientAction"%>
<%@page import="edu.ncsu.csc.itrust.beans.MessageBean"%>
<%@page import="edu.ncsu.csc.itrust.beans.PatientBean"%>
<%@page import="edu.ncsu.csc.itrust.dao.DAOFactory"%>
<%@page import="edu.ncsu.csc.itrust.dao.mysql.PatientDAO"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.text.DateFormat"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@page import="java.util.Calendar"%>
<%@include file="/global.jsp" %>
<%
pageTitle = "iTrust - View My Sent Messages";
%>
<%@include file="/header.jsp" %>
......@@ -19,11 +25,81 @@ pageTitle = "iTrust - View My Sent Messages";
<div align=center>
<h2>My Sent Messages</h2>
<a href="/iTrust/auth/patient/sendMessage.jsp">Compose a Message</a><br /><br />
<%
loggingAction.logEvent(TransactionType.OUTBOX_VIEW, loggedInMID.longValue(), loggedInMID.longValue(), "");
ViewMyMessagesAction action = new ViewMyMessagesAction(prodDAO, loggedInMID.longValue());
EditPatientAction f_action = new EditPatientAction(prodDAO, loggedInMID.longValue(), loggedInMID.toString()); ////////////////////////
PatientDAO dao = new PatientDAO(prodDAO); ///////////////////////////////////////////
List<MessageBean> messages = null;
if(request.getParameter("sortby") != null) {
//Edit Filter backend
boolean editing = false;
String headerMessage = "";
String[] fields = new String[6]; ////////////////////////////// for filters
if(request.getParameter("edit") != null && request.getParameter("edit").equals("true")) {
editing = true;
int i;
for(i=0; i<6; i++) {
fields[i] = "";
}
if(request.getParameter("cancel") != null)
response.sendRedirect("messageOutbox.jsp");
else if(request.getParameter("test") != null || request.getParameter("save") != null) {
boolean error = false; /////////////////////////////////////
String nf = "";
nf += request.getParameter("sender").replace(",","")+",";
nf += request.getParameter("subject").replace(",","")+",";
nf += request.getParameter("hasWords").replace(",","")+",";
nf += request.getParameter("notWords").replace(",","")+",";
nf += request.getParameter("startDate").replace(",","")+",";
nf += request.getParameter("endDate");
//Validate Filter
if(nf.startsWith("Error")) {
error = true;
headerMessage = nf;
}
if(!error) {
if(request.getParameter("test") != null) {
response.sendRedirect("messageOutbox.jsp?edit=true&testFilter="+nf);
} else if(request.getParameter("save") != null) {
f_action.editMessageFilter(nf); ////////////////////////////////////////// nf??????????
response.sendRedirect("messageOutbox.jsp?filter=true"); ////////////////////////////
}
}
}
if(request.getParameter("testFilter") != null) {
String filter = request.getParameter("testFilter"); ////////////////////////
String[] f = filter.split(",", -1);
for(i=0; i<6; i++) {
try {
fields[i] = f[i];
} catch(ArrayIndexOutOfBoundsException e) {
//do nothing
}
}
} else {
String filter = dao.getPatient(loggedInMID.longValue()).getMessageFilter(); ///////////////////////////////////
if(!filter.equals("")) {
String[] f = filter.split(",", -1);
for(i=0; i<6; i++) {
try {
fields[i] = f[i];
} catch(ArrayIndexOutOfBoundsException e) {
//do nothing
}
}
}
}
}
//Sorts messages
if(request.getParameter("sort") != null) {
if(request.getParameter("sortby").equals("name")) {
if(request.getParameter("sorthow").equals("asce")) {
messages = action.getAllMySentMessagesNameAscending();
......@@ -39,11 +115,91 @@ loggingAction.logEvent(TransactionType.OUTBOX_VIEW, loggedInMID.longValue(), log
}
}
else {
if(request.getParameter("edit") == null && request.getParameter("filter") == null) {
//loggingAction.logEvent(TransactionType.OUTBOX_VIEW, loggedInMID, 0, ""); /// ???????????????????????????
loggingAction.logEvent(TransactionType.OUTBOX_VIEW, loggedInMID.longValue(), loggedInMID.longValue(), ""); ////////////////////////////////////
}
messages = action.getAllMySentMessages();
}
session.setAttribute("messages", messages);
if (messages.size() > 0) { %>
<form method="post" action="messageOutbox.jsp">
//Filters Messages
boolean is_filtered = false;
if((request.getParameter("filter") != null && request.getParameter("filter").equals("true")) || request.getParameter("testFilter") != null) {
String filter = "";
if(request.getParameter("testFilter") != null) { ////////////////////////////////////////
filter = request.getParameter("testFilter");
} else {
filter = dao.getPatient(loggedInMID.longValue()).getMessageFilter(); ////////////////////////// .getMessageFilter();
}
if(!filter.equals("") && !filter.equals(",,,,,")) {
List<MessageBean> filtered = action.filterMessages(messages, filter); //////////////////// .getMessageFilter(); action.filterMessages ??????????
messages = filtered;
is_filtered = true;
}
}
session.setAttribute("messages", messages); /////////////////////////// session.setAttribute
%>
<%
if(editing) {
%>
<div class="filterEdit">
<div align="center">
<span style="font-size: 13pt; font-weight: bold;">Edit Message Filter</span>
<%= headerMessage.equals("") ? "" : "<br /><span class=\"iTrustMessage\">"+headerMessage+"</span><br /><br />" %>
<form method="post" action="messageOutbox.jsp?edit=true">
<table>
<tr style="text-align: right;">
<td>
<label for="sender">Sender: </label>
<input type="text" name="sender" id="sender" value="<%= StringEscapeUtils.escapeHtml("" + (fields[0] )) %>" />
</td>
<td style="padding-left: 10px; padding-right: 10px;">
<label for="hasWords">Has the words: </label>
<input type="text" name="hasWords" id="hasWords" value="<%= StringEscapeUtils.escapeHtml("" + (fields[2] )) %>" />
</td>
<td>
<label for="startDate">Start Date: </label>
<input type="text" name="startDate" id="startDate" value="<%= StringEscapeUtils.escapeHtml("" + (fields[4] )) %>" />
<input type="button" value="Select Date" onclick="displayDatePicker('startDate');" />
</td>
</tr>
<tr style="text-align: right;">
<td>
<label for="subject">Subject: </label>
<input type="text" name="subject" id="subject" value="<%= StringEscapeUtils.escapeHtml("" + (fields[1] )) %>" />
</td>
<td style="padding-left: 10px; padding-right: 10px;">
<label for="notWords">Does not have the words: </label>
<input type="text" name="notWords" id="notWords" value="<%= StringEscapeUtils.escapeHtml("" + (fields[3] )) %>" />
</td>
<td>
<label for="endDate">End Date: </label>
<input type="text" name="endDate" id="endDate" value="<%= StringEscapeUtils.escapeHtml("" + (fields[5] )) %>" />
<input type="button" value="Select Date" onclick="displayDatePicker('endDate');" />
</td>
</tr>
<tr style="text-align: center;">
<td colspan="3">
<input type="submit" name="test" value="Test Filter" />
<input type="submit" name="save" value="Save" />
<input type="submit" name="cancel" value="Cancel" />
</td>
</tr>
</table>
</form>
</div>
</div>
<br />
<%
}
%>
<form method="post" action="messageOutbox.jsp<%= StringEscapeUtils.escapeHtml("" + (is_filtered?"?filter=true":"" )) %>"> <!-- /////////////////// ???????? -->
<table>
<tr>
<td>
......@@ -61,12 +217,19 @@ loggingAction.logEvent(TransactionType.OUTBOX_VIEW, loggedInMID.longValue(), log
</select>
</td>
<td>
<input type="submit" value="Sort" />
<input type="submit" name="sort" value="Sort" />
</td>
</tr>
<tr>
<td><a href="messageOutbox.jsp?edit=true" >Edit Filter</a></td>
<td><a href="messageOutbox.jsp?filter=true" >Apply Filter</a></td>
</tr>
</table>
</form>
<br />
<%if(messages.size() > 0) { /////////////////////////// messages %>
<table class="fancyTable">
<tr>
<th>To</th>
......@@ -74,14 +237,14 @@ loggingAction.logEvent(TransactionType.OUTBOX_VIEW, loggedInMID.longValue(), log
<th>Received</th>
<th></th>
</tr>
<% int index = 0; %>
<% for(MessageBean message : messages) { %>
<% int index = 0;
for(MessageBean message : messages) { %>
<tr <%=(index%2 == 1)?"class=\"alt\"":"" %>>
<td><%= StringEscapeUtils.escapeHtml("" + ( action.getName(message.getTo()) )) %></td>
<td><%= StringEscapeUtils.escapeHtml("" + ( message.getSubject() )) %></td>
<td><%= StringEscapeUtils.escapeHtml("" + ( message.getSentDate() )) %></td>
<td><a href="viewMessageOutbox.jsp?msg=<%= StringEscapeUtils.escapeHtml("" + ( index )) %>">Read</a></td>
</tr>
<td><%= StringEscapeUtils.escapeHtml("" + ( action.getName(message.getTo()) )) %></td>
<td><%= StringEscapeUtils.escapeHtml("" + ( message.getSubject() )) %></td>
<td><%= StringEscapeUtils.escapeHtml("" + ( message.getSentDate() )) %></td>
<td><a href="viewMessageOutbox.jsp?msg=<%= StringEscapeUtils.escapeHtml("" + ( index )) %>">Read</a></td>
</tr>
<% index ++; %>
<% } %>
</table>
......@@ -93,4 +256,4 @@ loggingAction.logEvent(TransactionType.OUTBOX_VIEW, loggedInMID.longValue(), log
<br />
</div>
<%@include file="/footer.jsp" %>
<%@include file="/footer.jsp" %>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment