Author: jleroux
Date: Wed Dec 10 02:39:16 2008
New Revision: 725053
URL: http://svn.apache.org/viewvc?rev=725053&view=rev
Log:
A slightly modified patch from Bilgin Ibryam "Allow multi-pagination in a page"
(https://issues.apache.org/jira/browse/OFBIZ-1935) - OFBIZ-1935
Modified:
ofbiz/trunk/applications/order/entitydef/entitymodel_view.xml
ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/controller.xml
ofbiz/trunk/applications/party/webapp/partymgr/party/PartyForms.xml
ofbiz/trunk/applications/party/widget/partymgr/ProfileScreens.xml
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilHttp.java
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidget.java
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlScreenRenderer.java
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/IterateSectionWidget.java
Modified: ofbiz/trunk/applications/order/entitydef/entitymodel_view.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/entitydef/entitymodel_view.xml?rev=725053&r1=725052&r2=725053&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/entitydef/entitymodel_view.xml (original)
+++ ofbiz/trunk/applications/order/entitydef/entitymodel_view.xml Wed Dec 10
02:39:16 2008
@@ -1348,6 +1348,7 @@
<member-entity entity-alias="SI" entity-name="StatusItem"/>
<alias-all entity-alias="QWE"/>
<alias-all entity-alias="WE"/>
+ <!--alias name="statusId" field="statusId" entity-alias="SI"/-->
<alias name="statusItemDescription" field="description"
entity-alias="SI"/>
<view-link entity-alias="QWE" rel-entity-alias="WE">
<key-map field-name="workEffortId"/>
@@ -1361,6 +1362,9 @@
<relation type="one-nofk" rel-entity-name="Quote">
<key-map field-name="quoteId"/>
</relation>
+ <relation type="one-nofk" rel-entity-name="StatusItem">
+ <key-map field-name="statusId"/>
+ </relation>
</view-entity>
<view-entity entity-name="RequirementAndRole"
package-name="org.ofbiz.order.request"
Modified: ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/controller.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/controller.xml?rev=725053&r1=725052&r2=725053&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/controller.xml
(original)
+++ ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/controller.xml Wed
Dec 10 02:39:16 2008
@@ -396,13 +396,13 @@
<request-map uri="createPartyAttribute">
<security https="true" auth="true"/>
<event type="service" path="" invoke="createPartyAttribute"/>
- <response name="success" type="view" value="EditPartyAttribute"/>
+ <response name="success" type="view" value="viewprofile"/>
<response name="error" type="view" value="EditPartyAttribute"/>
</request-map>
<request-map uri="updatePartyAttribute">
<security https="true" auth="true"/>
<event type="service" path="" invoke="updatePartyAttribute"/>
- <response name="success" type="view" value="EditPartyAttribute"/>
+ <response name="success" type="view" value="viewprofile"/>
<response name="error" type="view" value="EditPartyAttribute"/>
</request-map>
<request-map uri="removePartyAttribute">
Modified: ofbiz/trunk/applications/party/webapp/partymgr/party/PartyForms.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/webapp/partymgr/party/PartyForms.xml?rev=725053&r1=725052&r2=725053&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/webapp/partymgr/party/PartyForms.xml
(original)
+++ ofbiz/trunk/applications/party/webapp/partymgr/party/PartyForms.xml Wed Dec
10 02:39:16 2008
@@ -612,7 +612,8 @@
</form>
<form name="ListCarrierAccounts" type="list"
target="updatePartyCarrierAccount"
- odd-row-style="alternate-row" default-table-style="basic-table
hover-bar">
+ odd-row-style="alternate-row" default-table-style="basic-table
hover-bar"
+ paginate="true" view-size="3" paginate-target="viewprofile"
paginate-target-anchor="ListCarrierAccounts">
<actions>
<entity-condition entity-name="PartyCarrierAccount" list-name="carrierAccounts"
filter-by-date="true">
<condition-expr field-name="partyId"
env-name="parameters.partyId"></condition-expr>
Modified: ofbiz/trunk/applications/party/widget/partymgr/ProfileScreens.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/widget/partymgr/ProfileScreens.xml?rev=725053&r1=725052&r2=725053&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/widget/partymgr/ProfileScreens.xml (original)
+++ ofbiz/trunk/applications/party/widget/partymgr/ProfileScreens.xml Wed Dec
10 02:39:16 2008
@@ -270,7 +270,7 @@
<label style="h3"
text="${uiLabelMap.PageTitleFinancialAccountSummary}"/>
</container>
<container style="screenlet-body">
- <iterate-section entry-name="ownedFinAccount" paginate="true"
paginate-target="viewprofile?partyId=${parameters.partyId}" view-size="3" list-name="ownedFinAccountList">
+ <iterate-section entry-name="ownedFinAccount" paginate="true" paginate-target="viewprofile"
view-size="3" list-name="ownedFinAccountList">
<section>
<actions>
<entity-condition entity-name="FinAccountTrans"
list-name="ownedFinAccountTransList">
Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilHttp.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilHttp.java?rev=725053&r1=725052&r2=725053&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilHttp.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilHttp.java Wed Dec 10
02:39:16 2008
@@ -919,11 +919,18 @@
}
public static String stripViewParamsFromQueryString(String queryString) {
+ return stripViewParamsFromQueryString(queryString, null);
+ }
+
+ public static String stripViewParamsFromQueryString(String queryString,
String paginatorNumber) {
Set<String> paramNames = new HashSet<String>();
- paramNames.add("VIEW_INDEX");
- paramNames.add("VIEW_SIZE");
- paramNames.add("viewIndex");
- paramNames.add("viewSize");
+ if (UtilValidate.isNotEmpty(paginatorNumber)) {
+ paginatorNumber = "_" + paginatorNumber;
+ }
+ paramNames.add("VIEW_INDEX" + paginatorNumber);
+ paramNames.add("VIEW_SIZE" + paginatorNumber);
+ paramNames.add("viewIndex" + paginatorNumber);
+ paramNames.add("viewSize" + paginatorNumber);
return stripNamedParamsFromQueryString(queryString, paramNames);
}
Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidget.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidget.java?rev=725053&r1=725052&r2=725053&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidget.java
(original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidget.java Wed Dec
10 02:39:16 2008
@@ -112,4 +112,27 @@
}
return result;
}
+
+ public int getPaginatorNumber(Map<String, Object> context) {
+ int paginator_number = 0;
+ Map<String, Object> globalCtx =
UtilGenerics.checkMap(context.get("globalContext"));
+ if (globalCtx != null) {
+ Integer paginateNumberInt=
(Integer)globalCtx.get("PAGINATOR_NUMBER");
+ if (paginateNumberInt == null) {
+ paginateNumberInt = Integer.valueOf(0);
+ globalCtx.put("PAGINATOR_NUMBER", paginateNumberInt);
+ }
+ paginator_number = paginateNumberInt.intValue();
+ }
+ return paginator_number;
+ }
+
+ public void incrementPaginatorNumber(Map<String, Object> context) {
+ Map<String, Object> globalCtx =
UtilGenerics.checkMap(context.get("globalContext"));
+ if (globalCtx != null) {
+ Integer paginateNumberInt =
Integer.valueOf(getPaginatorNumber(context) + 1);
+ globalCtx.put("PAGINATOR_NUMBER", paginateNumberInt);
+ }
+ }
+
}
Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java?rev=725053&r1=725052&r2=725053&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java
(original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java Wed
Dec 10 02:39:16 2008
@@ -1306,6 +1306,9 @@
}
public void preparePager(Map<String, Object> context) {
+
+ // increment the paginator
+ this.incrementPaginatorNumber(context);
this.rowCount = 0;
String lookupName = this.getListName();
if (UtilValidate.isEmpty(lookupName)) {
@@ -2185,6 +2188,8 @@
if (UtilValidate.isEmpty(field)) {
field = DEFAULT_PAG_INDEX_FIELD;
}
+ // append the paginator number
+ field = field + "_" + getPaginatorNumber(context);
return field;
}
@@ -2199,7 +2204,7 @@
// try parameters.VIEW_INDEX as that is an old OFBiz convention
Map parameters = (Map) context.get("parameters");
if (parameters != null) {
- value = parameters.get("VIEW_INDEX");
+ value = parameters.get("VIEW_INDEX" + "_" +
getPaginatorNumber(context));
if (value == null) {
value = parameters.get(field);
@@ -2224,6 +2229,8 @@
if (UtilValidate.isEmpty(field)) {
field = DEFAULT_PAG_SIZE_FIELD;
}
+ // append the paginator number
+ field = field + "_" + getPaginatorNumber(context);
return field;
}
@@ -2238,7 +2245,7 @@
// try parameters.VIEW_SIZE as that is an old OFBiz convention
Map parameters = (Map) context.get("parameters");
if (parameters != null) {
- value = parameters.get("VIEW_SIZE");
+ value = parameters.get("VIEW_SIZE" + "_" +
getPaginatorNumber(context));
if (value == null) {
value = parameters.get(field);
Modified:
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java?rev=725053&r1=725052&r2=725053&view=diff
==============================================================================
---
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java
(original)
+++
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java
Wed Dec 10 02:39:16 2008
@@ -2245,6 +2245,7 @@
}
// get the parametrized pagination index and size fields
+ int paginatorNumber = modelForm.getPaginatorNumber(context);
String viewIndexParam = modelForm.getPaginateIndexField(context);
String viewSizeParam = modelForm.getPaginateSizeField(context);
@@ -2272,13 +2273,13 @@
}
// for legacy support, the viewSizeParam is VIEW_SIZE and viewIndexParam is VIEW_INDEX when the fields are "viewSize"
and "viewIndex"
- if (viewIndexParam.equals("viewIndex")) viewIndexParam = "VIEW_INDEX";
- if (viewSizeParam.equals("viewSize")) viewSizeParam = "VIEW_SIZE";
+ if (viewIndexParam.equals("viewIndex" + "_" + paginatorNumber)) viewIndexParam =
"VIEW_INDEX" + "_" + paginatorNumber;
+ if (viewSizeParam.equals("viewSize" + "_" + paginatorNumber)) viewSizeParam =
"VIEW_SIZE" + "_" + paginatorNumber;
String str = (String) context.get("_QBESTRING_");
// strip legacy viewIndex/viewSize params from the query string
- String queryString = UtilHttp.stripViewParamsFromQueryString(str);
+ String queryString = UtilHttp.stripViewParamsFromQueryString(str, "" +
paginatorNumber);
// strip parametrized index/size params from the query string
HashSet<String> paramNames = new HashSet<String>();
Modified:
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlScreenRenderer.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlScreenRenderer.java?rev=725053&r1=725052&r2=725053&view=diff
==============================================================================
---
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlScreenRenderer.java
(original)
+++
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlScreenRenderer.java
Wed Dec 10 02:39:16 2008
@@ -246,6 +246,7 @@
}
// get the parametrized pagination index and size fields
+ int paginatoNumber = modelForm.getPaginatorNumber(context);
String viewIndexParam = modelForm.getPaginateIndexField(context);
String viewSizeParam = modelForm.getPaginateSizeField(context);
@@ -271,8 +272,8 @@
}
// for legacy support, the viewSizeParam is VIEW_SIZE and viewIndexParam is VIEW_INDEX when the fields are "viewSize"
and "viewIndex"
- if (viewIndexParam.equals("viewIndex")) viewIndexParam = "VIEW_INDEX";
- if (viewSizeParam.equals("viewSize")) viewSizeParam = "VIEW_SIZE";
+ if (viewIndexParam.equals("viewIndex" + "_" + paginatoNumber)) viewIndexParam =
"VIEW_INDEX" + "_" + paginatoNumber;
+ if (viewSizeParam.equals("viewSize" + "_" + paginatoNumber)) viewSizeParam =
"VIEW_SIZE" + "_" + paginatoNumber;
ServletContext ctx = (ServletContext)
request.getAttribute("servletContext");
RequestHandler rh = (RequestHandler)
ctx.getAttribute("_REQUEST_HANDLER_");
@@ -284,7 +285,7 @@
}
String queryString = UtilHttp.urlEncodeArgs(inputFields);
// strip legacy viewIndex/viewSize params from the query string
- queryString = UtilHttp.stripViewParamsFromQueryString(queryString);
+ queryString = UtilHttp.stripViewParamsFromQueryString(queryString, ""
+ paginatoNumber);
// strip parametrized index/size params from the query string
HashSet<String> paramNames = new HashSet<String>();
paramNames.add(viewIndexParam);
Modified:
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/IterateSectionWidget.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/IterateSectionWidget.java?rev=725053&r1=725052&r2=725053&view=diff
==============================================================================
---
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/IterateSectionWidget.java
(original)
+++
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/IterateSectionWidget.java
Wed Dec 10 02:39:16 2008
@@ -21,6 +21,7 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
@@ -33,6 +34,8 @@
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.GeneralException;
+import org.ofbiz.base.util.UtilGenerics;
+import org.ofbiz.base.util.UtilHttp;
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.base.util.UtilProperties;
import org.ofbiz.base.util.UtilValidate;
@@ -114,6 +117,8 @@
Debug.logError("Object not list or map type", module);
return;
}
+ this.incrementPaginatorNumber(context);
+ int startPageNumber = this.getPaginatorNumber(context);
getListLimits(context, theList);
int rowCount = 0;
Iterator iter = theList.iterator();
@@ -140,19 +145,31 @@
section.renderWidgetString(writer, contextMs,
screenStringRenderer);
}
}
+
if ((itemIndex + 1) < highIndex) {
setHighIndex(itemIndex + 1);
}
setActualPageSize(highIndex - lowIndex);
if (paginate) {
try {
+ Integer lastPageNumber = null;
+ Map<String, Object> globalCtx =
UtilGenerics.checkMap(context.get("globalContext"));
+ if (globalCtx != null) {
+ lastPageNumber =
(Integer)globalCtx.get("PAGINATOR_NUMBER");
+ globalCtx.put("PAGINATOR_NUMBER",
Integer.valueOf(startPageNumber));
+ }
+
renderNextPrev(writer, context);
+
+ if (globalCtx != null) {
+ globalCtx.put("PAGINATOR_NUMBER", lastPageNumber);
+ }
} catch(IOException e) {
Debug.logError(e, module);
throw new RuntimeException(e.getMessage());
}
}
-
+
}
/*
* @return
@@ -230,8 +247,10 @@
if (paginate) {
try {
Map params = (Map)context.get("parameters");
- String viewIndexString = (String) params.get("VIEW_INDEX");
+ String viewIndexString = (String) params.get("VIEW_INDEX" +
"_" + getPaginatorNumber(context));
+ String viewSizeString = (String) params.get("VIEW_SIZE" + "_"
+ getPaginatorNumber(context));
viewIndex = Integer.parseInt(viewIndexString);
+ viewSize = Integer.parseInt(viewSizeString);
} catch (Exception e) {
try {
viewIndex = ((Integer)
context.get("viewIndex")).intValue();
@@ -240,16 +259,9 @@
}
}
context.put("viewIndex", Integer.valueOf(this.viewIndex));
-
- try {
- viewSize = ((Integer) context.get("viewSize")).intValue();
- } catch (Exception e) {
- //viewSize = DEFAULT_PAGE_SIZE;
- }
+
lowIndex = viewIndex * viewSize;
highIndex = (viewIndex + 1) * viewSize;
-
-
} else {
viewIndex = 0;
viewSize = DEFAULT_PAGE_SIZE;
@@ -265,6 +277,19 @@
targetService = "${targetService}";
}
+ Map<String, Object> inputFields =
UtilGenerics.checkMap(context.get("requestParameters"));
+ Map<String, Object> queryStringMap =
UtilGenerics.toMap(context.get("queryStringMap"));
+ if (UtilValidate.isNotEmpty(queryStringMap)) {
+ inputFields.putAll(queryStringMap);
+ }
+
+ String queryString = UtilHttp.urlEncodeArgs(inputFields);
+ int paginatorNumber = this.getPaginatorNumber(context);
+ queryString = UtilHttp.stripViewParamsFromQueryString(queryString, ""
+ paginatorNumber);
+
+
+
+
if (UtilValidate.isEmpty(targetService)) {
Debug.logWarning("TargetService is empty.", module);
return;
@@ -331,7 +356,10 @@
if (linkText.indexOf("?") < 0) linkText.append("?");
else linkText.append("&");
//if (queryString != null && !queryString.equals("null")) linkText +=
queryString + "&";
-
linkText.append("VIEW_SIZE=").append(viewSize).append("&VIEW_INDEX=").append(viewIndex -
1).append("\"");
+ if (UtilValidate.isNotEmpty(queryString)) {
+ linkText.append(queryString).append("&");
+ }
+ linkText.append("VIEW_SIZE_"+ paginatorNumber + "=").append(viewSize).append("&VIEW_INDEX_" + paginatorNumber +
"=").append(viewIndex - 1).append("\"");
// make the link
writer.append(rh.makeLink(request, response, linkText.toString(),
false, false, false));
@@ -349,7 +377,10 @@
StringBuilder linkText = new StringBuilder(targetService);
if (linkText.indexOf("?") < 0) linkText.append("?");
else linkText.append("&");
-
linkText.append("VIEW_SIZE=").append(viewSize).append("&VIEW_INDEX=").append(viewIndex +
1).append("\"");
+ if (UtilValidate.isNotEmpty(queryString)) {
+ linkText.append(queryString).append("&");
+ }
+ linkText.append("VIEW_SIZE_" + paginatorNumber + "=").append(viewSize).append("&VIEW_INDEX_" + paginatorNumber
+ "=").append(viewIndex + 1).append("\"");
// make the link
writer.append(rh.makeLink(request, response, linkText.toString(),
false, false, false));