1 13 14 package org.ejbca.ui.web.admin.approval; 15 16 import java.util.ArrayList ; 17 import java.util.Date ; 18 import java.util.List ; 19 20 import javax.faces.application.FacesMessage; 21 import javax.faces.context.FacesContext; 22 import javax.faces.model.SelectItem; 23 24 import org.ejbca.core.model.approval.ApprovalDataVO; 25 import org.ejbca.core.model.authorization.AuthorizationDeniedException; 26 import org.ejbca.ui.web.admin.BaseManagedBean; 27 import org.ejbca.ui.web.admin.configuration.EjbcaJSFHelper; 28 import org.ejbca.util.query.ApprovalMatch; 29 import org.ejbca.util.query.BasicMatch; 30 import org.ejbca.util.query.IllegalQueryException; 31 import org.ejbca.util.query.Query; 32 33 39 public class ListApproveActionSessionBean extends BaseManagedBean{ 40 42 public static int QUERY_MAX_NUM_ROWS = 300; 43 44 private List availableStatus; 45 private String selectedStatus; 46 47 private List availableTimeSpans; 48 private String selectedTimeSpan; 49 50 private ApprovalDataVOViewList listData; 51 52 private static String TIME_5MIN = "" + 5 * 60 * 1000; 53 private static String TIME_30MIN = "" + 30 * 60 * 1000; 54 private static String TIME_8HOURS = "" + 8 * 60 * 60 * 1000; 55 56 private static String ALL_STATUSES = "" + -9; 57 58 59 public ListApproveActionSessionBean() throws AuthorizationDeniedException{ 60 61 setSelectedStatus("" + ApprovalDataVO.STATUS_WAITINGFORAPPROVAL); 62 setSelectedTimeSpan(TIME_30MIN); 63 64 list(); 65 } 66 67 public List getAvailableStatus() { 68 if(availableStatus == null){ 69 availableStatus = new ArrayList (); 70 availableStatus.add(new SelectItem("" + ApprovalDataVO.STATUS_WAITINGFORAPPROVAL,getEjbcaWebBean().getText("WAITING", true),"")); 71 availableStatus.add(new SelectItem("" + ApprovalDataVO.STATUS_EXPIRED,getEjbcaWebBean().getText("EXPIRED", true),"")); 72 availableStatus.add(new SelectItem("" + ApprovalDataVO.STATUS_EXPIREDANDNOTIFIED,getEjbcaWebBean().getText("EXPIREDANDNOTIFIED", true),"")); 73 availableStatus.add(new SelectItem("" + ApprovalDataVO.STATUS_EXECUTED,getEjbcaWebBean().getText("EXECUTED", true),"")); 74 availableStatus.add(new SelectItem("" + ApprovalDataVO.STATUS_EXECUTIONFAILED,getEjbcaWebBean().getText("EXECUTIONFAILED", true),"")); 75 availableStatus.add(new SelectItem("" + ApprovalDataVO.STATUS_EXECUTIONDENIED,getEjbcaWebBean().getText("EXECUTIONDENIED", true),"")); 76 availableStatus.add(new SelectItem("" + ApprovalDataVO.STATUS_APPROVED,getEjbcaWebBean().getText("APPROVED", true),"")); 77 availableStatus.add(new SelectItem("" + ApprovalDataVO.STATUS_REJECTED,getEjbcaWebBean().getText("REJECTED", true),"")); 78 availableStatus.add(new SelectItem(ALL_STATUSES,getEjbcaWebBean().getText("ALL", true),"")); 79 } 80 81 82 return availableStatus; 83 } 84 public void setAvailableStatus(List availableStatus) { 85 this.availableStatus = availableStatus; 86 } 87 88 89 90 public List getAvailableTimeSpans() { 91 if(availableTimeSpans == null){ 92 availableTimeSpans = new ArrayList (); 93 availableTimeSpans.add(new SelectItem(TIME_5MIN ,"5 " + getEjbcaWebBean().getText("MINUTES", true),"")); 94 availableTimeSpans.add(new SelectItem(TIME_30MIN,"30 " + getEjbcaWebBean().getText("MINUTES", true),"")); 95 availableTimeSpans.add(new SelectItem(TIME_8HOURS,"8 " + getEjbcaWebBean().getText("HOURS", true),"")); 96 availableTimeSpans.add(new SelectItem("0",getEjbcaWebBean().getText("EVER", true),"")); 97 } 98 99 return availableTimeSpans; 100 } 101 public void setAvailableTimeSpans(List availableTimeSpans) { 102 this.availableTimeSpans = availableTimeSpans; 103 } 104 105 106 public String list() { 107 108 Query query = new Query(Query.TYPE_APPROVALQUERY); 109 110 if(selectedStatus.equals(ALL_STATUSES)){ 111 query.add(getStartDate(), new Date ()); 112 }else{ 113 query.add(ApprovalMatch.MATCH_WITH_STATUS, BasicMatch.MATCH_TYPE_EQUALS, selectedStatus, Query.CONNECTOR_AND); 114 query.add(getStartDate(), new Date ()); 115 } 116 117 List result = new ArrayList (); 118 try { 119 result = EjbcaJSFHelper.getBean().getApprovalSession().query(EjbcaJSFHelper.getBean().getAdmin(), query, 0, QUERY_MAX_NUM_ROWS); 120 if(result.size() == QUERY_MAX_NUM_ROWS){ 121 String messagestring = getEjbcaWebBean().getText("MAXAPPROVALQUERYROWS1", true) + " " + QUERY_MAX_NUM_ROWS + " " + getEjbcaWebBean().getText("MAXAPPROVALQUERYROWS2", true); 122 FacesContext ctx = FacesContext.getCurrentInstance(); 123 ctx.addMessage("error", new FacesMessage(FacesMessage.SEVERITY_ERROR,messagestring,messagestring)); 124 } 125 } catch (IllegalQueryException e) { 126 addErrorMessage("INVALIDQUERY"); 127 } catch (AuthorizationDeniedException e) { 128 addErrorMessage("AUTHORIZATIONDENIED"); 129 } 130 131 listData = new ApprovalDataVOViewList(result); 132 133 134 return null; 135 } 136 137 140 private Date getStartDate(){ 141 if(Integer.parseInt(selectedTimeSpan) == 0){ 142 return new Date (0); 143 } 144 145 return new Date (new Date ().getTime() - Integer.parseInt(selectedTimeSpan)); 146 } 147 148 public String getRowClasses(){ 149 if(listData.size() == 0){ 150 return ""; 151 } 152 if(listData.size() == 1){ 153 return "jsfrow1"; 154 } 155 156 return "jsfrow1, jsfrow2"; 157 } 158 159 public List getListData() { 160 161 return listData.getData(); 162 } 163 164 165 public String getSort() 166 { 167 return listData.getSort(); 168 } 169 170 public void setSort(String sort) 171 { 172 listData.setSort(sort); 173 } 174 175 public boolean isAscending() 176 { 177 return listData.isAscending(); 178 } 179 180 public void setAscending(boolean ascending) 181 { 182 listData.setAscending(ascending); 183 } 184 185 public String getSelectedStatus() { 186 return selectedStatus; 187 } 188 189 public void setSelectedStatus(String selectedStatus) { 190 this.selectedStatus = selectedStatus; 191 } 192 193 public String getSelectedTimeSpan() { 194 return selectedTimeSpan; 195 } 196 197 public void setSelectedTimeSpan(String selectedTimeSpan) { 198 this.selectedTimeSpan = selectedTimeSpan; 199 } 200 201 202 203 204 } 205 | Popular Tags |