<% /****************************************************************************** * 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. ******************************************************************************/ %><%@ page language="java" session="true"%> <%@ page import="com.edeal.frontline.navigation.FlRequest" %> <%@ page import="java.util.Iterator" %> <%@ page import="com.edeal.frontline.Utils" %> <%@ page import="com.edeal.frontline.*" %> <%@ page import="java.util.Hashtable" %> <%@ page import="java.util.HashMap" %> <%@ page import="java.util.Vector" %> <%@ page import="com.edeal.frontline.ListBean" %> <%@ page import="com.edeal.frontline.ListBean.SearchZone" %> <%@ page import="com.edeal.frontline.DataDictionary" %> <%@ page import="com.edeal.frontline.FlContext" %> <%@ page import="java.util.Map" %> <%@ page import="java.lang.reflect.*" %> <%@ page import="com.edeal.frontline.navigation.WebUtils" %> <%@ page import="com.edeal.frontline.controller.actions.SelectAction" %> <%@ page import="com.edeal.frontline.FlDataSource" %> <%@ page import="java.util.Date" %> <%@ page import="com.edeal.frontline.helper.custom.ListHelper" %> <%@ page import="com.edeal.frontline.ListBean.MandatoryGroup" %> <%@page import="com.edeal.frontline.navigation.EdealBigTabsNavigation"%> <%@page import="com.edeal.frontline.navigation.EdealBigTabsNavigation.BigTabsParams"%> <%@page import="org.apache.commons.lang.StringUtils"%> <%@taglib uri="http://www.e-deal.com/taglib/fl" prefix="fl"%> <%@ include file="/common/list/list_variables.jsp" %> <% flRequest.setAttribute("trashreport", trashReport); FlContext context = flRequest.getContext(); DataDictionary dico = context.getDataDictionary(); EdealBigTabsNavigation ebtn = new EdealBigTabsNavigation(request); Vector pagination = (Vector)flRequest.getAttribute("Pagination"); boolean hasPagination = pagination != null ? pagination.size() > 1 : false; ListBean.SearchZone searchZone = null; ListBean.ResultZone resultZone=null; try { searchZone = List.getSearchZone(); resultZone = List.getResultZone(); } catch (Exception e) { } String includedListScript=null; if (resultZone!=null) { includedListScript=ListHelper.processXmlListScriptExtension(context, session, resultZone.getScript()); } String SfwID = flRequest.getRequestParameterOrAttribute("SfwID"); //AjaxUrl the default value is /list_ajax.fl String au = flRequest.getRequestParameterOrAttribute("au"); // Is this our first time in here? (ie, we're not navigating back from an object) boolean isFirstTimeIn = !ebtn.isDoList(); Map searchCriteria = new Hashtable(); if (sc != null) { searchCriteria = WebUtils.parseQueryString(sc); } String gridName=Utils.formatToWeb(lc, true); EdealBigTabsNavigation bTabNav = new EdealBigTabsNavigation(request); bTabNav.setBigTabsParameterValue(BigTabsParams.NameSearchGridJs, "_grid__" + gridName + "_js_"); String pageIndex=flRequest.getSearchCriteria("$$idx",gridName,false); pageIndex=StringUtils.isEmpty(pageIndex)?"1":pageIndex; String pagePagination=flRequest.getSearchCriteria("$$nb",gridName,false); pagePagination=StringUtils.isEmpty(pagePagination)?(String)pagination.firstElement():pagePagination; String pPreview = flRequest.getSearchCriteria("$$preview"); boolean fHasPreview="true".equals(pPreview); //mandatory groups HashMap mdGps = null; boolean fHasMandatoryGroups = false; if (searchZone != null) { mdGps = searchZone.getMandatoryGroups(); } fHasMandatoryGroups = ((mdGps != null) && (mdGps.size() > 0)); %> <%-- Le Javascript ci-dessous doit etre inclus en page, car le JSP a besoin du request --%>
<%@include file="/common/tabs.jsp" %>
 
<%= ebtn.getBigTabsInput(BigTabsParams.CodeLC) %> <%= ebtn.getBigTabsInput(BigTabsParams.SearchCriteria) %> <%= ebtn.getBigTabsInput(BigTabsParams.ObjectURI) %> <%= ebtn.getBigTabsInput(BigTabsParams.ObjectTitle) %> <%= ebtn.getBigTabsInput(BigTabsParams.CriteriaListTitle) %> <% if (isFirstTimeIn) { %> <%= ebtn.getBigTabsInput(BigTabsParams.DoList, "1") %> <%= ebtn.getBigTabsInput(BigTabsParams.CriteriaListURI, "/list_criteria.fl") %> <%= ebtn.getBigTabsInput(BigTabsParams.SelectedTab, "1") %> <% } %> <% if (SfwID != null) { %> <%= ebtn.getBigTabsInput(BigTabsParams.SoftwareModule) %> <% } %> <% } %>
<% if(searchZone != null) { int nTabIndex = 1; for(int i = 0; i < searchZone.getNbLines(); i++) { for(int j = 0; j < searchZone.getNbFields(i); j++) { if (j >= 4) { // Four is our limit for right now, hard-coded break; } ListBean.Field fld = searchZone.getField(i, j); String fldinputname=fld.getInputName(); fldinputname=fldinputname.replace("$",":"); // in the sc param, the fields are with : where we expect with $ Vector fieldValues = (Vector)searchCriteria.get(fldinputname); if(fld.getChoiceType() == ListBean.CHOICE_NONE) { String strDisp = null; String value = null; if (fieldValues != null && fieldValues.size() > 0) { value = (String) fieldValues.firstElement(); } if(fld.isDate() || fld.isTime() || fld.isBoolean() || fld.isDecimal() || fld.isInteger()) { strDisp = fld.getDisplay(session); } else { strDisp = "<" + fld.getDisplay(session) + ">"; } if(fld.getFldFobSql() != null) { String lblValue = null; String initVal = flRequest.getRequestParameterOrAttribute("init"+fld.getInputName()); if (value != null) { Vector lblValues = (Vector)searchCriteria.get("lbl" + fldinputname); if (lblValues != null && lblValues.size() > 0) { lblValue = (String)lblValues.firstElement(); } } else { HashMap vectDefaultVals; if (initVal != null) { FieldBean fldBean = dico.getFieldByName(fld.getName()); ObjectsBean obj = dico.getTable("id", fldBean.getFldFobID()); lblValue = obj.toString(session, initVal); value=initVal; } else if (sc == null && (vectDefaultVals = fld.getStrDefaultValsList(session)) != null) { if (vectDefaultVals.size() > 0) { FieldBean fldBean = dico.getFieldByName(fld.getName()); ObjectsBean obj = dico.getTable("id", fldBean.getFldFobID()); value = vectDefaultVals.get(ListBean.Field.DISPLAY); lblValue = obj.toString(session, value); } } } boolean doAjax = fld.getObjAjaxSearch() != null; String fldNameWeb = Utils.formatToWeb(fldinputname, true); String emptyLabelDisplay = lblValue != null ? Utils.formatToWeb(lblValue, true) : Utils.formatToWeb(strDisp, true); String emptyLabelDisplayJS = lblValue != null ? Utils.formatToJavascript(lblValue) : Utils.formatToJavascript(strDisp); %> <%=ListHelper.getFldClasses(fld)%>" type="text" value="<%=emptyLabelDisplay%>"<%=doAjax ? " autocomplete=\"off\" onfocus=\"displayOnFocus(this);\"" : " readonly onfocus=\"this.blur();\""%>> <%if (!fldNameWeb.equals("TrlTrpID")) { %> $(f.lbl<%=fldNameWeb%>).change(); void('')" tabindex="<%= nTabIndex++ %>"> <%} if (doAjax) { %> <% } %> <% } else if (fld.isFldRef()) { %> <% } else if (fld.isString()) { // voir si une valeur par défaut est pré-renseignée dans l'URL String initVal = flRequest.getRequestParameterOrAttribute("init" + fld.getInputName()); if("".equals(initVal)) initVal = null; if (sc == null) { HashMap vectDefaultVals = fld.getStrDefaultValsList(session); if (initVal == null) { // voir si une valeur est pré-renseignée dans l'XML if (vectDefaultVals != null) if (vectDefaultVals.size() > 0) initVal = vectDefaultVals.get(ListBean.Field.DISPLAY); } } %> <%=ListHelper.getFldClasses(fld)%>" type="text" value="<%=Utils.formatToWeb(value != null ? value : (initVal != null ? initVal : strDisp), true)%>" onfocus="this.select()" onblur="if(this.value == '') this.value = '<%=Utils.formatToJavascript(strDisp)%>';" tabindex="<%=nTabIndex++%>"> <% } else if (fld.isInteger()) { String fromValue = null; String toValue = null; Vector intValues = (Vector) searchCriteria.get(fldinputname + "$From"); if (intValues != null && intValues.size() > 0) { fromValue = (String) intValues.firstElement(); } intValues = (Vector) searchCriteria.get(fldinputname + "$To"); if (intValues != null && intValues.size() > 0) { toValue = (String) intValues.firstElement(); } String initValMin = flRequest.getRequestParameterOrAttribute("init" + fld.getInputName() + "Min"); String initValMax = flRequest.getRequestParameterOrAttribute("init" + fld.getInputName() + "Max"); Vector vectDefaultVals = fld.getDefaultValsList(); if (initValMin != null) { if (fromValue == null) fromValue = initValMin; } if (initValMax != null) { if (toValue == null) toValue = initValMax; } if (vectDefaultVals != null) { if (vectDefaultVals.size() > 0) { if (fromValue == null) { if (fld.getDefaultValsList().elementAt(0) != null) { fromValue = ((Hashtable) fld.getDefaultValsList().elementAt(0)).get(ListBean.Field.DISPLAY_MIN).toString(); } } if (toValue == null) { if (fld.getDefaultValsList().elementAt(1) != null) toValue = ((Hashtable) fld.getDefaultValsList().elementAt(1)).get(ListBean.Field.DISPLAY_MAX).toString(); } } } %> <%=Utils.formatToWeb(strDisp, false)%>   ');" tabindex="<%=nTabIndex++%>">    ');" tabindex="<%=nTabIndex++%>"> <% } else if (fld.isDecimal()) { String fromValue = null; String toValue = null; Vector decValues = (Vector) searchCriteria.get(fldinputname + "$From"); if (decValues != null && decValues.size() > 0) { fromValue = (String) decValues.firstElement(); } decValues = (Vector) searchCriteria.get(fldinputname + "$To"); if (decValues != null && decValues.size() > 0) { toValue = (String) decValues.firstElement(); } String initValMin = flRequest.getRequestParameterOrAttribute("init" + fld.getInputName() + "Min"); String initValMax = flRequest.getRequestParameterOrAttribute("init" + fld.getInputName() + "Max"); HashMap vectDefaultVals = fld.getStrDefaultValsList(session); if (initValMin != null) { if (fromValue == null) fromValue = initValMin; } if (initValMax != null) { if (toValue == null) toValue = initValMax; } if (vectDefaultVals != null) { if (vectDefaultVals.size() > 0) { if (sc == null && fromValue == null) { fromValue = vectDefaultVals.get(ListBean.Field.DISPLAY_MIN); } if (sc == null && toValue == null) { toValue = vectDefaultVals.get(ListBean.Field.DISPLAY_MAX); } } } %> <%=Utils.formatToWeb(strDisp, false)%>   ');" tabindex="<%=nTabIndex++%>">    ');" tabindex="<%=nTabIndex++%>"> <% } else if (fld.isDate()) { String fromValue = null; String toValue = null; String fldNameWeb = Utils.formatToWeb(fld.getFullName(), true); Vector dateValues = (Vector) searchCriteria.get(fldinputname + "$From"); if (dateValues != null && dateValues.size() > 0) { fromValue = (String) dateValues.firstElement(); } dateValues = (Vector) searchCriteria.get(fldinputname + "$To"); if (dateValues != null && dateValues.size() > 0) { toValue = (String) dateValues.firstElement(); } String initValMin = flRequest.getRequestParameterOrAttribute("init" + fld.getInputName() + "Min"); String initValMax = flRequest.getRequestParameterOrAttribute("init" + fld.getInputName() + "Max"); if (initValMin != null) { if (fromValue == null) fromValue = initValMin; } if (initValMax != null) { if (toValue == null) toValue = initValMax; } if (sc == null) { HashMap vectDefaultVals = fld.getStrDefaultValsList(session); if (vectDefaultVals != null) { if (vectDefaultVals.size() > 0) { if (fromValue == null) { if (vectDefaultVals.containsKey(ListBean.Field.DISPLAY_MIN)) fromValue = vectDefaultVals.get(ListBean.Field.DISPLAY_MIN); } if (toValue == null) { if (vectDefaultVals.containsKey(ListBean.Field.DISPLAY_MAX)) toValue = vectDefaultVals.get(ListBean.Field.DISPLAY_MAX); } } } } %> "><%=Utils.formatToWeb(strDisp, false)%>   ');" tabindex="<%=nTabIndex++%>" size="10" maxlength="10">    ');" tabindex="<%=nTabIndex++%>" size="10" maxlength="10"> <% } else if (fld.isTime()) { String fromValue = null; String toValue = null; Vector dateValues = (Vector) searchCriteria.get(fldinputname + "$From"); if (dateValues != null && dateValues.size() > 0) { fromValue = (String) dateValues.firstElement(); } dateValues = (Vector) searchCriteria.get(fldinputname + "$To"); if (dateValues != null && dateValues.size() > 0) { toValue = (String) dateValues.firstElement(); } String initValMin = flRequest.getRequestParameterOrAttribute("init" + fld.getInputName() + "Min"); String initValMax = flRequest.getRequestParameterOrAttribute("init" + fld.getInputName() + "Max"); HashMap vectDefaultVals = fld.getStrDefaultValsList(session); if (initValMin != null) { if (fromValue == null) fromValue = initValMin; } if (initValMax != null) { if (toValue == null) toValue = initValMax; } if (sc == null && vectDefaultVals != null) { if (vectDefaultVals.size() > 0) { if (fromValue == null) { if (vectDefaultVals.containsKey(ListBean.Field.DISPLAY_MIN)) fromValue = vectDefaultVals.get(ListBean.Field.DISPLAY_MIN); } if (toValue == null) { if (vectDefaultVals.containsKey(ListBean.Field.DISPLAY_MAX)) toValue = vectDefaultVals.get(ListBean.Field.DISPLAY_MAX); } } } %> "><%=Utils.formatToWeb(strDisp, false)%>   ');" tabindex="<%=nTabIndex++%>" size="5" maxlength="5">  ');" tabindex="<%=nTabIndex++%>" size="5" maxlength="5"> <% } else if (fld.isBoolean()) { String initVal = flRequest.getRequestParameterOrAttribute("init" + fld.getInputName()); if (sc == null) { HashMap vectDefaultVals = fld.getStrDefaultValsList(session); if (initVal == null) { // voir si une valeur est pré-renseignée dans l'XML if (vectDefaultVals != null) if (vectDefaultVals.size() > 0) initVal = vectDefaultVals.get(ListBean.Field.DISPLAY); } } boolean isChecked = "1".equals(initVal) || "true".equalsIgnoreCase(initVal); %> <%=ListHelper.getFldClasses(fld)%>" name="<%=Utils.formatToWeb(fld.getInputName(), true)%>" id="<%=Utils.formatToWeb(fld.getInputName(), true)%>" type="checkbox" value="1" tabindex="<%=nTabIndex++%>" <%=isChecked ? "checked" : ""%> > <% } } else { String strDisp = null; String strType = null; Vector values = (Vector) searchCriteria.get(fld.getFullName()); if (values == null) { values = new Vector(); } Vector vectChoices = fld.getChoiceList(); switch (fld.getChoiceType()) { case ListBean.CHOICE_SELECT : case ListBean.CHOICE_SELECT_MULTIPLE : strDisp = "<" + fld.getDisplay(session) + ">"; %> <% break; case ListBean.CHOICE_RADIO: strType = "radio"; case ListBean.CHOICE_CHECKBOX: strDisp = fld.getDisplay(session); if(strType == null) strType = "checkbox"; %> <%= Utils.formatToWeb(strDisp, false) %> : <% for(int c = 0; c < vectChoices.size(); c++) { boolean isSelected = values.contains(Integer.toString(c)); Hashtable row = (Hashtable)vectChoices.elementAt(c); %> 0 ? "class=\"leftMargin10\" " : " ") %>name="<%= Utils.formatToWeb(fld.getFullName(), true) %>" type="<%= strType %>" value="<%= c %>" tabindex="<%= nTabIndex++ %>" <%= isSelected ? "checked" : "" %> > <%= Utils.replace(Utils.formatToWeb(row.get("Display"), false), " ", " ") %> <% } %> <% break; } } } %><%= (i < (searchZone.getNbLines() - 1) ? "

" : "") %><% } %>
<% if (hasPagination) { %> <% } String iconRunSearch=StringUtils.isEmpty(searchZone.getIconUrl())?"/icons/ico/valid_green2_long.gif":searchZone.getIconUrl(); String iconRunSearchWithPreview="/icons/ico/valid2_long.gif"; %>

<%if (fHasPreview){ %> <%} %>
" href="javascript:executeSearch(); void('')">
<% if (fHasMandatoryGroups) { %> "/> <% } %>

> ">    

"/>