/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.webui.jsptag;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.jstl.fmt.LocaleSupport;
import javax.servlet.jsp.tagext.TagSupport;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.log4j.Logger;
import org.dspace.authorize.ResourcePolicy;
/**
* Tag to display embargo settings
*
* @author Keiji Suzuki
* @version $Revision$
*/
public class PoliciesListTag extends TagSupport
{
/** log4j category */
private static Logger log = Logger.getLogger(PoliciesListTag.class);
/** Groups to make options list */
private transient List<ResourcePolicy> policies = null;
private transient boolean showButton = true;
public PoliciesListTag()
{
super();
}
public int doStartTag() throws JspException
{
String label_name = LocaleSupport.getLocalizedMessage(pageContext, "org.dspace.app.webui.jsptag.policies-list.label_name");
String label_action = LocaleSupport.getLocalizedMessage(pageContext, "org.dspace.app.webui.jsptag.policies-list.label_action");
String label_group = LocaleSupport.getLocalizedMessage(pageContext, "org.dspace.app.webui.jsptag.policies-list.label_group");
String label_sdate = LocaleSupport.getLocalizedMessage(pageContext, "org.dspace.app.webui.jsptag.policies-list.label_sdate");
String label_edate = LocaleSupport.getLocalizedMessage(pageContext, "org.dspace.app.webui.jsptag.policies-list.label_edate");
String label_emptypolicies = LocaleSupport.getLocalizedMessage(pageContext, "org.dspace.app.webui.jsptag.policies-list.no_policies");
JspWriter out = pageContext.getOut();
StringBuffer sb = new StringBuffer();
try
{
if (policies != null && policies.size() > 0)
{
sb.append("<div class=\"table-responsive\">\n");
sb.append("<table class=\"table\">\n");
sb.append("<tr>\n");
sb.append("<th class=\"accessHeadOdd\">").append(label_name).append("</th>\n");
sb.append("<th class=\"accessHeadEven\">").append(label_action).append("</th>\n");
sb.append("<th class=\"accessHeadOdd\">").append(label_group).append("</th>\n");
sb.append("<th class=\"accessHeadEven\">").append(label_sdate).append("</th>\n");
sb.append("<th class=\"accessHeadOdd\">").append(label_edate).append("</th>\n");
if(showButton)
{
sb.append("<th class=\"accessButton\"> </th>\n");
}
sb.append("</tr>\n");
String column1 = "Even";
String column2 = "Odd";
for (ResourcePolicy policy : policies)
{
column1 = (column1.equals("Even") ? "Odd" : "Even");
column2 = (column2.equals("Even") ? "Odd" : "Even");
String rpName = (policy.getRpName() == null ? "" : policy.getRpName());
String startDate = (policy.getStartDate() == null ? "" : DateFormatUtils.format(policy.getStartDate(), "yyyy-MM-dd"));
String endDate = (policy.getEndDate() == null ? "" : DateFormatUtils.format(policy.getEndDate(), "yyyy-MM-dd"));
sb.append("<tr>\n");
sb.append("<td class=\"access").append(column1).append("\">").append(rpName).append("</td>\n");
sb.append("<td class=\"access").append(column2).append("\">").append(policy.getActionText()).append("</td>\n");
sb.append("<td class=\"access").append(column1).append("\">").append(policy.getGroup().getName()).append("</td>\n");
sb.append("<td class=\"access").append(column2).append("\">").append(startDate).append("</td>\n");
sb.append("<td class=\"access").append(column1).append("\">").append(endDate).append("</td>\n");
if(showButton) {
sb.append("<td class=\"accessButton\">\n");
sb.append("<input class=\"btn btn-default\" name=\"submit_edit_edit_policies_").append(policy.getID()).append("\" type=\"submit\" value=\"Edit\" /> <input class=\"btn btn-danger\" name=\"submit_delete_edit_policies_").append(policy.getID()).append("\" type=\"submit\" value=\"Remove\" />\n");
sb.append("</td>\n");
}
sb.append("</tr>\n");
}
sb.append("</table>\n");
sb.append("</div>\n");
}
else
{
sb.append("<div class=\"alert alert-warning\">").append(label_emptypolicies).append("</div>").append("\n");
}
out.println(sb.toString());
}
catch (IOException ie)
{
throw new JspException(ie);
}
catch (SQLException e)
{
throw new JspException(e);
}
return SKIP_BODY;
}
/**
* Get the policies to list
*
* @return the policies
*/
public List<ResourcePolicy> getPolicies()
{
return policies;
}
/**
* Set the policies to list
*
* @param itemsIn
* the policies
*/
public void setPolicies(List<ResourcePolicy> policies)
{
this.policies = policies;
}
public void release()
{
policies = null;
}
public boolean isShowButton()
{
return showButton;
}
public void setShowButton(boolean showButton)
{
this.showButton = showButton;
}
}