%@ page language="java" contentType="text/plain;charset=UTF-8"%>
<%
/******************************************************************************
* Copyright (c) 2000-2011 E-DEAL
*
* E-DEAL S.A.
* 41, rue Périer
* 92120 Montrouge
* France
*
* T: +33 (0)1 73 03 29 80
* F: +33 (0)1 73 01 69 77
* http://www.e-deal.com
*
* La diffusion de ce code source sous quelque forme que ce soit sans
* l'autorisation de E-DEAL est interdite.
*
* Vous êtes autorisés à modifier ce code source uniquement pour votre usage
* propre et sous réserve que les mentions de copyright demeurent intactes.
*
* Ce code est fourni en l'état. Aucune garantie d'aucune sorte, explicite ou
* implicite n'est donnée. En aucun cas E-DEAL ne pourra être tenu pour
* responsable des dommages pouvant résulter de l'utilisation de ce code
* source.
******************************************************************************/
// Please note! If you change this file in any way, please make the same changes to any
// JSP file containing the following string: //**listAjax.jsp**//
%><%@ page import="com.edeal.frontline.navigation.FlRequest" %>
<%@ page import="com.edeal.frontline.grid.*" %>
<%@ page import="com.edeal.frontline.*" %>
<%@ page import="com.edeal.frontline.grid.EdealGrid" %>
<%@ page import="java.util.*" %>
<%@ page import="com.edeal.frontline.FrontlineException" %>
<%@ page import="com.edeal.frontline.navigation.EdealBigTabsNavigation" %>
<%@ page import="com.edeal.frontline.navigation.EdealBigTabsNavigation.BigTabsParams" %>
<%@page import="java.util.Enumeration"%>
<%@page import="com.edeal.frontline.helper.ActorBaseHelper"%>
<%@page import="com.edeal.frontline.helper.custom.ActorHelper"%>
<%@page import="org.apache.commons.lang.StringUtils"%>
<%@page import="com.edeal.frontline.helper.custom.ListHelper"%>
<%@taglib uri="http://www.e-deal.com/taglib/fl" prefix="fl" %><%
final org.apache.commons.logging.Log logger = org.apache.commons.logging.LogFactory.getLog(getClass());
FlRequest flRequest = new FlRequest(request);
String code = flRequest.getRequestParameterOrAttribute("gridName");
if (code == null) {
String paramCode = flRequest.getRequestParameterOrAttribute("code");
String gn=((paramCode==null?"":paramCode) + "_gridname");
code = flRequest.getRequestParameterOrAttribute(gn);
if (code == null) {
code = paramCode;
}
}
GridData grid = (GridData)flRequest.getAttribute(code);
boolean isEmbedded = flRequest.getAttribute(code + "_Embedded") != null;
boolean isEmbedded2 = grid.isEmbedded();
String type = (String)flRequest.getAttribute("objSql");
if (type==null) {
type=(String)flRequest.getAttribute(code+"_objSql");
}
boolean fIsListEmbedded=isEmbedded || isEmbedded2;
FlContext context = flRequest.getContext();
EdealBigTabsNavigation bTabNav = new EdealBigTabsNavigation(flRequest);
bTabNav.setBigTabsParameterValue(BigTabsParams.SelectedTab, "1");
DataDictionary dico = context.getDataDictionary();
String pEditMode=flRequest.getParameter("editmode");
boolean fUpdateMode=("true".equals(pEditMode));
String pAllowUserUpdate=flRequest.getParameter("allowupdate");
boolean fAllowUpdate=("true".equals(pAllowUserUpdate));
// is preview to be displayed ?
String pDisplayPreview=flRequest.getSearchCriteria("$$preview");
boolean fDisplayPreview=("true".equals(pDisplayPreview));
String pGridHeight=flRequest.getParameter("gridheight");
EdealGrid edealGrid=new EdealGrid();
edealGrid.setName(code);
edealGrid.buildColumns(session, context, grid);
//boolean fAllowUpdate=true;
//boolean fUpdateMode=false;
int totalNbOfRecs=grid.getTotalNbOfRecords();
boolean fDisplayCounter=(totalNbOfRecs!=0);
int pageNumber=grid.getPageNumber()+1;
fAllowUpdate=fAllowUpdate && grid.isUpdatable();
if (fAllowUpdate) {
ActorBaseHelper actorHlpr=ActorBaseHelper.factory(ActorBaseHelper.getSessionActor(session));
fAllowUpdate=fAllowUpdate && actorHlpr.canUseObjectForOperation(type,AccessControlManager.EDIT);
}
String jsGridObject=bTabNav.getBigTabsParameterValue(BigTabsParams.NameSearchGridJs);
String[] updColumnFields=grid.getColumnUpdFld();
boolean canUpdateList=((updColumnFields!=null) && (updColumnFields.length>0));
// can we mass select entries ?
boolean isMassSelect=grid.isMassSelectable();
String previewToken=grid.getPreviewCacheToken();
ListPreviewCache.PreviewCache previewCache=null;
if (previewToken!=null) {
previewCache=ListPreviewCache.factory(flRequest.getSession()).getCache(previewToken);
}
if(grid.getNbRows()==0){
%>
<%}else{
int totalNbOfPages=1;
try {
if(totalNbOfRecs > grid.getNbLines()){
if(totalNbOfRecs % grid.getNbLines()>0){
totalNbOfPages=(totalNbOfRecs/grid.getNbLines())+1;
}
else{
totalNbOfPages=(totalNbOfRecs/grid.getNbLines());
}
}
} catch (ArithmeticException e) {//avoid / by
}
%>
|
<%
if(!(grid.isFirstPage() && grid.isLastPage())){%>
<%if(!grid.isFirstPage()){%>
<%}
if (fDisplayCounter) {%>
<%=Utils.getMessage(session, "F608C", "Page")%> <%=pageNumber+"/"+totalNbOfPages%><%= " - ("+totalNbOfRecs+")"%>
<%} else { %>
<%=Utils.getMessage(session, "F608C", "Page")%> <%=pageNumber %>
<% } %>
<%if(!grid.isLastPage()){
%>
<% if (totalNbOfPages>1) { %>
<%}%>
<%}%>
<%}%>
|
<% if (fAllowUpdate && !fUpdateMode) { %>
;return false;" href="#">
<% } %>
<% if (fUpdateMode) { %>
;return false;" href="#">
;return false;" href="#">
<% } %>
|
ed:embedded="<%= fIsListEmbedded %>" style="<%= (pGridHeight!=null)?"height:"+pGridHeight:""%>">
<% if (isMassSelect && !fIsListEmbedded) { %>
|
<% } %>
<%
int formIndex=1;
for (EdealGridColumn gridColumn: edealGrid.getColumns()) {
if (gridColumn.getDataType() != null && !gridColumn.getDataType().equals(EdealGridColumn.DataType.PREVIEW)) { %>
<%=gridColumn.getHeader(edealGrid.getJsGridName(),edealGrid.getName(),flRequest)%>
<%}
}
%>
<%
ArrayList rowsId = grid.getRowsId();
//ArrayList previewValue = new ArrayList();
boolean oddRow = false;
ActorBean currentActor=ActorHelper.getSessionActor(session);
BasicBean rowBean;
int nbOfRows=grid.getData().length;
int tabindex=20;
int nbOfCols=0;
Object[][] gridRows=grid.getData();
for(int rowidx = 0; rowidx < nbOfRows; rowidx++) {
String id = "";
oddRow = !oddRow ;
String objectID="";
if (rowsId != null && rowsId.size()>0 && rowsId.get(rowidx) != null) {
objectID=rowsId.get(rowidx);
}
Boolean withPreview = false;
String previewTxt = "";
if (fDisplayPreview) {
previewTxt = (previewCache == null) ? null : previewCache.getPreviewForID(objectID);
if (!StringUtils.isEmpty(previewTxt)) {
withPreview = true;
}
}
%>
bean" tabindex="<%=++tabindex%>">
<% if (isMassSelect && !fIsListEmbedded) { %>
|
<% }
Object[] row = gridRows[rowidx];
boolean allowedToEdit =false;
if (fUpdateMode && canUpdateList) {
try {
rowBean= dico.getTable("sql",type).getBasicBean(objectID,session);
allowedToEdit=rowBean.enforceAccess(AccessControlManager.EDIT,currentActor);
if (allowedToEdit) {
request.setAttribute(type,rowBean);
}
} catch (FrontlineException e) {
logger.error("listAjax.jsp: cannot load bean ["+type+"]["+objectID+"]",e);
}
}
nbOfCols=row.length;
for (int colidx = 0; colidx < row.length; colidx++) {
EdealGridColumn eGCol = edealGrid.getColumn(colidx);
if (allowedToEdit && updColumnFields[colidx]!=null) {
String fieldsToBeUpdated=updColumnFields[colidx];
Vector vFieldsToBeUpdated=(Vector)Utils.explodeList(fieldsToBeUpdated,";");
Enumeration enumFieldsToBeUpdated=vFieldsToBeUpdated.elements();
%>
<%
while (enumFieldsToBeUpdated.hasMoreElements()) {
String fieldName=enumFieldsToBeUpdated.nextElement();
String eraseJs="eraseField('"+fieldName+"-"+objectID+"')";
%>
" ondelete="<%=eraseJs%>" nodiv="true" alt=" "/>
|
<%
formIndex++;
} %>
|
<% } else {
%>
<%= eGCol.advancedFormatWithTD(row[colidx], withPreview) %>
<% }
}
%>
<%
if (withPreview) {
%>
list_preview" tabindex="<%=++tabindex%>">
<%= ListHelper.previewFormatWithTD(nbOfCols, previewTxt, row[0]) %>
<%
}
}
if (type!=null && request.getAttribute(type)!=null) {
request.removeAttribute(type);
}
%>
<% } %>