Author: jleroux
Date: Mon Nov 10 08:07:12 2014
New Revision: 1637805
URL: http://svn.apache.org/r1637805
Log:
Keeps in sync with OFBiz trunk HEAD
Added:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/config/groovy.properties
- copied unchanged from r1637804,
ofbiz/trunk/framework/base/config/groovy.properties
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/FormRenderer.java
- copied unchanged from r1637804,
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FormRenderer.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/Paginator.java
- copied unchanged from r1637804,
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/Paginator.java
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/ (props changed)
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/script/org/ofbiz/order/opportunity/OpportunityServices.xml
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/script/org/ofbiz/party/party/PartyInvitationServices.xml
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/script/org/ofbiz/party/party/PartyServices.xml
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/src/org/ofbiz/party/contact/ContactMechServices.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/widget/partymgr/PartyMenus.xml
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/config/ProductUiLabels.xml
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/entitydef/entitymodel.xml
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/subscription/SubscriptionServices.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/widget/catalog/SubscriptionForms.xml
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/GroovyUtil.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/UtilProperties.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/catalina/ofbiz-component.xml
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/test/EntityTestSuite.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/util/EntityQuery.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/config/ServiceErrorUiLabels.xml
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/config/serviceengine.xml
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/servicedef/services_test_se.xml
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/engine/EntityAutoEngine.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/engine/GroovyEngine.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/test/ServiceEntityAutoTests.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/event/GroovyEventHandler.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/FormFactory.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/ModelForm.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/ModelFormAction.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/html/HtmlFormWrapper.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/html/HtmlScreenRenderer.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/screen/MacroScreenRenderer.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/screen/ModelScreen.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/screen/ModelScreenWidget.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/tree/ModelTree.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/appserver/templates/tomcat6/server.xml
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectSimpleEvents.xml
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/tools/demo-backup/branch13.7-demo.patch
Propchange: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/
------------------------------------------------------------------------------
Merged /ofbiz/trunk:r1636282-1637804
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/script/org/ofbiz/order/opportunity/OpportunityServices.xml
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/script/org/ofbiz/order/opportunity/OpportunityServices.xml?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/script/org/ofbiz/order/opportunity/OpportunityServices.xml
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/script/org/ofbiz/order/opportunity/OpportunityServices.xml
Mon Nov 10 08:07:12 2014
@@ -145,7 +145,13 @@ This file contains basic services for Sa
<if-not-empty field="parameters.accountPartyId">
<set field="roleMap.roleTypeId" value="ACCOUNT"/>
<set field="roleMap.partyId"
from-field="parameters.accountPartyId"/>
- <call-service service-name="createPartyRole"
in-map-name="roleMap"/>
+ <entity-one value-field="partyRole" entity-name="PartyRole">
+ <field-map field-name="roleTypeId"
from-field="roleMap.roleTypeId"/>
+ <field-map field-name="partyId"
from-field="roleMap.partyId"/>
+ </entity-one>
+ <if-empty field="partyRole">
+ <call-service service-name="createPartyRole"
in-map-name="roleMap"/>
+ </if-empty>
</if-not-empty>
<set field="salesOpportunityRole.roleTypeId" value="ACCOUNT"/>
<set field="salesOpportunityRole.salesOpportunityId"
from-field="parameters.salesOpportunityId"/>
@@ -165,9 +171,15 @@ This file contains basic services for Sa
</if-not-empty>
<!-- Check party role for create Lead Role -->
<if-not-empty field="parameters.leadPartyId">
- <set field="roleMap.roleTypeId" value="LEAD"/>
- <set field="roleMap.partyId"
from-field="parameters.leadPartyId"/>
- <call-service service-name="createPartyRole"
in-map-name="roleMap"/>
+ <entity-one value-field="leadRole" entity-name="PartyRole">
+ <field-map field-name="partyId"
from-field="parameters.leadPartyId"/>
+ <field-map field-name="roleTypeId" value="LEAD"/>
+ </entity-one>
+ <if-empty field="leadRole">
+ <set field="roleMap.roleTypeId" value="LEAD"/>
+ <set field="roleMap.partyId"
from-field="parameters.leadPartyId"/>
+ <call-service service-name="createPartyRole"
in-map-name="roleMap"/>
+ </if-empty>
</if-not-empty>
<set field="salesOpportunityRole.roleTypeId" value="LEAD"/>
<set field="salesOpportunityRole.salesOpportunityId"
from-field="parameters.salesOpportunityId"/>
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/script/org/ofbiz/party/party/PartyInvitationServices.xml
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/script/org/ofbiz/party/party/PartyInvitationServices.xml?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/script/org/ofbiz/party/party/PartyInvitationServices.xml
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/script/org/ofbiz/party/party/PartyInvitationServices.xml
Mon Nov 10 08:07:12 2014
@@ -88,8 +88,13 @@ under the License.
<if-not-empty field="partyInvitationRoleAssocs">
<set field="createPartyRoleCtx.partyId"
from-field="parameters.partyId"/>
<iterate list="partyInvitationRoleAssocs"
entry="partyInvitationRoleAssoc">
- <set field="createPartyRoleCtx.roleTypeId"
from-field="partyInvitationRoleAssoc.roleTypeId"/>
- <call-service service-name="createPartyRole"
in-map-name="createPartyRoleCtx"/>
+ <entity-one value-field="partyRole" entity-name="PartyRole">
+ <field-map field-name="roleTypeId"
from-field="partyInvitationRoleAssoc.roleTypeId"/>
+ </entity-one>
+ <if-empty field="partyRole">
+ <set field="createPartyRoleCtx.roleTypeId"
from-field="partyInvitationRoleAssoc.roleTypeId"/>
+ <call-service service-name="createPartyRole"
in-map-name="createPartyRoleCtx"/>
+ </if-empty>
</iterate>
</if-not-empty>
<set field="updatePartyInvitationCtx.partyInvitationId"
from-field="parameters.partyInvitationId"/>
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/script/org/ofbiz/party/party/PartyServices.xml
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/script/org/ofbiz/party/party/PartyServices.xml?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/script/org/ofbiz/party/party/PartyServices.xml
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/script/org/ofbiz/party/party/PartyServices.xml
Mon Nov 10 08:07:12 2014
@@ -841,10 +841,22 @@ under the License.
<simple-method method-name="createPartyRelationshipContactAccount"
short-description="create a company/contact relationship and add the related
roles">
<set field="roleMap.partyId" from-field="parameters.accountPartyId"/>
<set field="roleMap.roleTypeId" value="ACCOUNT"/>
- <call-service service-name="createPartyRole" in-map-name="roleMap"/>
+ <entity-one value-field="partyRole" entity-name="PartyRole">
+ <field-map field-name="partyId" from-field="roleMap.partyId"/>
+ <field-map field-name="roleTypeId"
from-field="roleMap.roleTypeId"/>
+ </entity-one>
+ <if-empty field="partyRole">
+ <call-service service-name="createPartyRole"
in-map-name="roleMap"/>
+ </if-empty>
<set field="roleMap.partyId" from-field="parameters.contactPartyId"/>
<set field="roleMap.roleTypeId" value="CONTACT"/>
- <call-service service-name="createPartyRole" in-map-name="roleMap"/>
+ <entity-one value-field="partyRole" entity-name="PartyRole">
+ <field-map field-name="partyId" from-field="roleMap.partyId"/>
+ <field-map field-name="roleTypeId"
from-field="roleMap.roleTypeId"/>
+ </entity-one>
+ <if-empty field="partyRole">
+ <call-service service-name="createPartyRole"
in-map-name="roleMap"/>
+ </if-empty>
<set field="relMap.partyIdFrom"
from-field="parameters.accountPartyId"/>
<set field="relMap.roleTypeIdFrom" value="ACCOUNT"/>
<set field="relMap.partyIdTo" from-field="parameters.contactPartyId"/>
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/src/org/ofbiz/party/contact/ContactMechServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/src/org/ofbiz/party/contact/ContactMechServices.java?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/src/org/ofbiz/party/contact/ContactMechServices.java
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/src/org/ofbiz/party/contact/ContactMechServices.java
Mon Nov 10 08:07:12 2014
@@ -885,7 +885,7 @@ public class ContactMechServices {
if (tempVal != null) {
Map<String, Object> deletePcmCtx = UtilMisc.toMap("contactMechId",
context.get("contactMechId"));
deletePcmCtx.put("contactMechPurposeTypeId",
context.get("contactMechPurposeTypeId"));
- deletePcmCtx.put("fromDate", tempVal.get("fromDate"));
+ deletePcmCtx.put("fromDate", tempVal.get("purposeFromDate"));
deletePcmCtx.put("userLogin", context.get("userLogin"));
deletePcmCtx.put("partyId", partyId);
try {
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/widget/partymgr/PartyMenus.xml
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/widget/partymgr/PartyMenus.xml?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/widget/partymgr/PartyMenus.xml
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/party/widget/partymgr/PartyMenus.xml
Mon Nov 10 08:07:12 2014
@@ -679,10 +679,14 @@
<menu name="addRelContactAccounts">
<menu-item name="add" title="${uiLabelMap.CommonCreateNew}">
- <link
target="${parameters._LAST_VIEW_NAME_}?portalPageId=${parameters.portalPageId}&partyId=${parameters.partyId}&editPartyRel=Y"/>
- </menu-item>
+ <link target="${parameters._LAST_VIEW_NAME_}">
+ <parameter param-name="partyId"/>
+ <parameter param-name="portalPageId"/>
+ <parameter param-name="editPartyRel" value="Y"/>
+ </link>
+ </menu-item>
</menu>
-
+
<menu name="newPartyIdentification">
<menu-item name="new" title="${uiLabelMap.CommonNew}">
<link target="viewidentifications">
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/config/ProductUiLabels.xml
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/config/ProductUiLabels.xml?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/config/ProductUiLabels.xml
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/config/ProductUiLabels.xml
Mon Nov 10 08:07:12 2014
@@ -96,7 +96,7 @@
</property>
<property key="FacilityCat">
<value xml:lang="en">CAT</value>
- <value xml:lang="en">Cat.</value>
+ <value xml:lang="nl">Cat.</value>
</property>
<property key="FacilityCompanyName">
<value xml:lang="de">OFBiz: Einrichtungen Verwaltung</value>
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/entitydef/entitymodel.xml
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/entitydef/entitymodel.xml?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/entitydef/entitymodel.xml
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/entitydef/entitymodel.xml
Mon Nov 10 08:07:12 2014
@@ -4462,7 +4462,7 @@ under the License.
<field name="canclAutmExtTimeUomId" type="id"><description>Unit Of
Measure used for the automatic extension of the
subscription.</description></field>
<field name="gracePeriodOnExpiry" type="numeric"><description>The time
period (before the end of the thruDate) after which the automatic extension of
the subscription will be executed.</description></field>
<field name="gracePeriodOnExpiryUomId" type="id"><description>Unit Of
Measure used for the automatic extension of the
subscription.</description></field>
- <field name="serviceNameOnExpiry"
type="long-varchar"><description>Name of service which will run on subscription
expiration.</description></field>
+ <field name="expirationCompletedDate"
type="date-time"><description>The date when expiration
completed.</description></field>
<prim-key field="subscriptionId"/>
<relation type="one" fk-name="SUBSC_SRESRC"
rel-entity-name="SubscriptionResource">
<key-map field-name="subscriptionResourceId"/>
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/subscription/SubscriptionServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/subscription/SubscriptionServices.java?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/subscription/SubscriptionServices.java
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/subscription/SubscriptionServices.java
Mon Nov 10 08:07:12 2014
@@ -315,6 +315,7 @@ public class SubscriptionServices {
String gracePeriodOnExpiry = null;
String gracePeriodOnExpiryUomId = null;
String subscriptionId = null;
+ Timestamp expirationCompletedDate = null;
try {
EntityCondition cond1 =
EntityCondition.makeCondition("automaticExtend", EntityOperator.EQUALS, "N");
@@ -325,57 +326,61 @@ public class SubscriptionServices {
if (subscriptionList != null) {
for (GenericValue subscription : subscriptionList) {
- Calendar currentDate = Calendar.getInstance();
- currentDate.setTime(UtilDateTime.nowTimestamp());
- // check if the thruDate + grace period (if provided) is
earlier than today's date
- Calendar endDateSubscription = Calendar.getInstance();
- int field = Calendar.MONTH;
- String subscriptionResourceId =
subscription.getString("subscriptionResourceId");
- GenericValue subscriptionResource = null;
- subscriptionResource =
EntityQuery.use(delegator).from("SubscriptionResource").where("subscriptionResourceId",
subscriptionResourceId).queryOne();
- subscriptionId = subscription.getString("subscriptionId");
- gracePeriodOnExpiry =
subscription.getString("gracePeriodOnExpiry");
- gracePeriodOnExpiryUomId =
subscription.getString("gracePeriodOnExpiryUomId");
- String serviceNameOnExpiry =
subscriptionResource.getString("serviceNameOnExpiry");
-
endDateSubscription.setTime(subscription.getTimestamp("thruDate"));
-
- if (gracePeriodOnExpiry != null &&
gracePeriodOnExpiryUomId != null) {
- if ("TF_day".equals(gracePeriodOnExpiryUomId)) {
- field = Calendar.DAY_OF_YEAR;
- } else if ("TF_wk".equals(gracePeriodOnExpiryUomId)) {
- field = Calendar.WEEK_OF_YEAR;
- } else if ("TF_mon".equals(gracePeriodOnExpiryUomId)) {
- field = Calendar.MONTH;
- } else if ("TF_yr".equals(gracePeriodOnExpiryUomId)) {
- field = Calendar.YEAR;
- } else {
- Debug.logWarning("Don't know anything about
gracePeriodOnExpiryUomId [" + gracePeriodOnExpiryUomId + "], defaulting to
month", module);
- }
- endDateSubscription.add(field,
Integer.valueOf(gracePeriodOnExpiry).intValue());
- }
-
- if ((currentDate.after(endDateSubscription) ||
currentDate.equals(endDateSubscription)) && serviceNameOnExpiry != null) {
- if (userLogin != null) {
- expiryMap.put("userLogin", userLogin);
- }
- if (subscriptionId != null) {
- expiryMap.put("subscriptionId", subscriptionId);
- }
- result = dispatcher.runSync(serviceNameOnExpiry,
expiryMap);
- if (ServiceUtil.isSuccess(result)) {
- Debug.logInfo("Subscription expired successfully
for subscription ID:" + subscriptionId, module);
- } else if (ServiceUtil.isError(result)) {
- result = null;
- Debug.logError("Error expiring subscription while
processing with subscriptionId: " + subscriptionId, module);
+ expirationCompletedDate =
subscription.getTimestamp("expirationCompletedDate");
+ if (expirationCompletedDate == null) {
+ Calendar currentDate = Calendar.getInstance();
+ currentDate.setTime(UtilDateTime.nowTimestamp());
+ // check if the thruDate + grace period (if provided)
is earlier than today's date
+ Calendar endDateSubscription = Calendar.getInstance();
+ int field = Calendar.MONTH;
+ String subscriptionResourceId =
subscription.getString("subscriptionResourceId");
+ GenericValue subscriptionResource = null;
+ subscriptionResource =
EntityQuery.use(delegator).from("SubscriptionResource").where("subscriptionResourceId",
subscriptionResourceId).queryOne();
+ subscriptionId =
subscription.getString("subscriptionId");
+ gracePeriodOnExpiry =
subscription.getString("gracePeriodOnExpiry");
+ gracePeriodOnExpiryUomId =
subscription.getString("gracePeriodOnExpiryUomId");
+ String serviceNameOnExpiry =
subscriptionResource.getString("serviceNameOnExpiry");
+
endDateSubscription.setTime(subscription.getTimestamp("thruDate"));
+
+ if (gracePeriodOnExpiry != null &&
gracePeriodOnExpiryUomId != null) {
+ if ("TF_day".equals(gracePeriodOnExpiryUomId)) {
+ field = Calendar.DAY_OF_YEAR;
+ } else if
("TF_wk".equals(gracePeriodOnExpiryUomId)) {
+ field = Calendar.WEEK_OF_YEAR;
+ } else if
("TF_mon".equals(gracePeriodOnExpiryUomId)) {
+ field = Calendar.MONTH;
+ } else if
("TF_yr".equals(gracePeriodOnExpiryUomId)) {
+ field = Calendar.YEAR;
+ } else {
+ Debug.logWarning("Don't know anything about
gracePeriodOnExpiryUomId [" + gracePeriodOnExpiryUomId + "], defaulting to
month", module);
+ }
+ endDateSubscription.add(field,
Integer.valueOf(gracePeriodOnExpiry).intValue());
}
+ if ((currentDate.after(endDateSubscription) ||
currentDate.equals(endDateSubscription)) && serviceNameOnExpiry != null) {
+ if (userLogin != null) {
+ expiryMap.put("userLogin", userLogin);
+ }
+ if (subscriptionId != null) {
+ expiryMap.put("subscriptionId",
subscriptionId);
+ }
+ result = dispatcher.runSync(serviceNameOnExpiry,
expiryMap);
+ if (ServiceUtil.isSuccess(result)) {
+ subscription.set("expirationCompletedDate",
UtilDateTime.nowTimestamp());
+ delegator.store(subscription);
+ Debug.logInfo("Subscription expired
successfully for subscription ID:" + subscriptionId, module);
+ } else if (ServiceUtil.isError(result)) {
+ result = null;
+ Debug.logError("Error expiring subscription
while processing with subscriptionId: " + subscriptionId, module);
+ }
- if (result != null && subscriptionId != null) {
- Debug.logInfo("Service mentioned in
serviceNameOnExpiry called with result: " + result.get("successMessage"),
module);
- } else if (result == null && subscriptionId != null) {
- Debug.logError("Subscription couldn't be expired
for subscriptionId: " + subscriptionId, module);
- return ServiceUtil.returnError("Subscription
couldn't be expired for subscriptionId: " + subscriptionId);
+ if (result != null && subscriptionId != null) {
+ Debug.logInfo("Service mentioned in
serviceNameOnExpiry called with result: " + result.get("successMessage"),
module);
+ } else if (result == null && subscriptionId !=
null) {
+ Debug.logError("Subscription couldn't be
expired for subscriptionId: " + subscriptionId, module);
+ return ServiceUtil.returnError("Subscription
couldn't be expired for subscriptionId: " + subscriptionId);
+ }
}
- }
+ }
}
}
} catch (GenericServiceException e) {
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/widget/catalog/SubscriptionForms.xml
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/widget/catalog/SubscriptionForms.xml?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/widget/catalog/SubscriptionForms.xml
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/widget/catalog/SubscriptionForms.xml
Mon Nov 10 08:07:12 2014
@@ -304,7 +304,6 @@ under the License.
</entity-options>
</drop-down>
</field>
- <field name="serviceNameOnExpiry" ><ignored/></field>
<field name="submitButton" title="${uiLabelMap.CommonUpdate}"
widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/GroovyUtil.java
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/GroovyUtil.java?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/GroovyUtil.java
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/GroovyUtil.java
Mon Nov 10 08:07:12 2014
@@ -32,6 +32,7 @@ import java.util.Map;
import javax.script.ScriptContext;
import org.codehaus.groovy.control.CompilationFailedException;
+import org.codehaus.groovy.control.CompilerConfiguration;
import org.codehaus.groovy.runtime.InvokerHelper;
import org.ofbiz.base.location.FlexibleLocation;
import org.ofbiz.base.util.cache.UtilCache;
@@ -46,6 +47,18 @@ public class GroovyUtil {
private static final UtilCache<String, Class<?>> parsedScripts =
UtilCache.createUtilCache("script.GroovyLocationParsedCache", 0, 0, false);
+ private static final GroovyClassLoader groovyScriptClassLoader;
+ static {
+ GroovyClassLoader groovyClassLoader = null;
+ String scriptBaseClass =
UtilProperties.getPropertyValue("groovy.properties", "scriptBaseClass");
+ if (!scriptBaseClass.isEmpty()) {
+ CompilerConfiguration conf = new CompilerConfiguration();
+ conf.setScriptBaseClass(scriptBaseClass);
+ groovyClassLoader = new
GroovyClassLoader(GroovyUtil.class.getClassLoader(), conf);
+ }
+ groovyScriptClassLoader = groovyClassLoader;
+ }
+
/**
* Evaluate a Groovy condition or expression
* @param expression The expression to evaluate
@@ -110,9 +123,6 @@ public class GroovyUtil {
}
public static Class<?> getScriptClassFromLocation(String location) throws
GeneralException {
- return getScriptClassFromLocation(location, null);
- }
- public static Class<?> getScriptClassFromLocation(String location,
GroovyClassLoader groovyClassLoader) throws GeneralException {
try {
Class<?> scriptClass = parsedScripts.get(location);
if (scriptClass == null) {
@@ -120,8 +130,8 @@ public class GroovyUtil {
if (scriptUrl == null) {
throw new GeneralException("Script not found at location
[" + location + "]");
}
- if (groovyClassLoader != null) {
- scriptClass = parseClass(scriptUrl.openStream(), location,
groovyClassLoader);
+ if (groovyScriptClassLoader != null) {
+ scriptClass = parseClass(scriptUrl.openStream(), location,
groovyScriptClassLoader);
} else {
scriptClass = parseClass(scriptUrl.openStream(), location);
}
@@ -156,16 +166,8 @@ public class GroovyUtil {
return new GroovyClassLoader().parseClass(text);
}
- public static Class<?> parseClass(String text, String location) {
- return new GroovyClassLoader().parseClass(text, location);
- }
-
public static Object runScriptAtLocation(String location, String
methodName, Map<String, Object> context) throws GeneralException {
- return runScriptAtLocation(location, methodName, context, null);
- }
-
- public static Object runScriptAtLocation(String location, String
methodName, Map<String, Object> context, GroovyClassLoader groovyClassLoader)
throws GeneralException {
- Script script =
InvokerHelper.createScript(getScriptClassFromLocation(location,
groovyClassLoader), getBinding(context));
+ Script script =
InvokerHelper.createScript(getScriptClassFromLocation(location),
getBinding(context));
Object result = null;
if (UtilValidate.isEmpty(methodName)) {
result = script.run();
@@ -175,30 +177,5 @@ public class GroovyUtil {
return result;
}
- public static Object runScriptFromClasspath(String script,
Map<String,Object> context) throws GeneralException {
- try {
- Class<?> scriptClass = parsedScripts.get(script);
- if (scriptClass == null) {
- scriptClass = loadClass(script);
- Class<?> cachedScriptClass = parsedScripts.putIfAbsent(script,
scriptClass);
- if (cachedScriptClass == null) { // putIfAbsent returns null
if the class is added
- if (Debug.verboseOn()) {
- Debug.logVerbose("Cached Groovy script at: " + script,
module);
- }
- } else {
- // the newly parsed script is discarded and the one found
in the cache (that has been created by a concurrent thread in the meantime) is
used
- scriptClass = cachedScriptClass;
- }
- }
- return InvokerHelper.createScript(scriptClass,
getBinding(context)).run();
- } catch (CompilationFailedException e) {
- String errMsg = "Error loading Groovy script [" + script + "]: " +
e.toString();
- throw new GeneralException(errMsg, e);
- } catch (ClassNotFoundException e) {
- String errMsg = "Error loading Groovy script [" + script + "]: " +
e.toString();
- throw new GeneralException(errMsg, e);
- }
- }
-
private GroovyUtil() {}
}
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/UtilProperties.java
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/UtilProperties.java?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/UtilProperties.java
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/UtilProperties.java
Mon Nov 10 08:07:12 2014
@@ -34,6 +34,7 @@ import java.util.Enumeration;
import java.util.HashSet;
import java.util.InvalidPropertiesFormatException;
import java.util.Iterator;
+import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
@@ -798,7 +799,7 @@ public class UtilProperties implements S
if (defaultCandidateLocales == null) {
synchronized (UtilProperties.class) {
if (defaultCandidateLocales == null) {
- defaultCandidateLocales = new HashSet<Locale>();
+ defaultCandidateLocales = new LinkedHashSet<Locale>();
defaultCandidateLocales.addAll(localeToCandidateList(Locale.getDefault()));
defaultCandidateLocales.addAll(localeToCandidateList(getFallbackLocale()));
defaultCandidateLocales.add(Locale.ROOT);
@@ -822,7 +823,7 @@ public class UtilProperties implements S
if (Locale.ROOT.equals(locale)) {
return UtilMisc.toList(locale);
}
- Set<Locale> localeSet = new HashSet<Locale>();
+ Set<Locale> localeSet = new LinkedHashSet<Locale>();
localeSet.addAll(localeToCandidateList(locale));
localeSet.addAll(getDefaultCandidateLocales());
List<Locale> localeList = new ArrayList<Locale>(localeSet);
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/catalina/ofbiz-component.xml
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/catalina/ofbiz-component.xml?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/catalina/ofbiz-component.xml
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/catalina/ofbiz-component.xml
Mon Nov 10 08:07:12 2014
@@ -146,7 +146,8 @@ under the License.
<property name="keystoreType" value="JKS"/>
<property name="keyAlias" value="ofbiz"/>
<property name="keyPass" value="changeit"/>
- <property name="sslProtocol" value="TLS"/>
+ <property name="sslProtocol" value="TLSv1.2"/>
+ <property name="sslEnabledProtocols" value="TLSv1.2"/>
<property name="ciphers" value=""/>
</property>
</container>
@@ -203,7 +204,8 @@ under the License.
<property name="keystoreFile"
value="framework/base/config/ofbizssl.jks"/>
<property name="keystorePass" value="changeit"/>
<property name="keystoreType" value="JKS"/>
- <property name="sslProtocol" value="TLS"/>
+ <property name="sslProtocol" value="TLSv1.2"/>
+ <property name="sslEnabledProtocols" value="TLSv1.2"/>
<property name="ciphers" value=""/>
</property>
</container>
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/test/EntityTestSuite.java
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/test/EntityTestSuite.java?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/test/EntityTestSuite.java
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/test/EntityTestSuite.java
Mon Nov 10 08:07:12 2014
@@ -1211,10 +1211,13 @@ public class EntityTestSuite extends Ent
assertTrue("One big transaction was not faster than several small
ones", totalTimeOneTransaction < totalTimeSeveralSmallTransactions);
}
+/*
public void testConverters() throws Exception {
// Must use the default delegator because the deserialized
GenericValue can't
// find the randomized one.
Delegator localDelegator = DelegatorFactory.getDelegator("default");
+ TransactionUtil.begin();
+ localDelegator.create("TestingType", "testingTypeId", "TEST-UPDATE-1",
"description", "Testing Type #Update-1");
GenericValue testValue = localDelegator.create("Testing", "testingId",
"JSON_TEST", "testingTypeId", "TEST-UPDATE-1",
"description", "Testing JSON Converters", "testingSize",
(long) 123, "testingDate",
new Timestamp(System.currentTimeMillis()));
@@ -1225,8 +1228,9 @@ public class EntityTestSuite extends Ent
null);
assertNotNull("GenericValue converted from JSON not null",
convertedValue);
assertEquals("GenericValue converted from JSON equals original value",
testValue, convertedValue);
- testValue.remove();
+ TransactionUtil.rollback();
}
+*/
private final class TestObserver implements Observer {
private Observable observable;
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/util/EntityQuery.java
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/util/EntityQuery.java?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/util/EntityQuery.java
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/src/org/ofbiz/entity/util/EntityQuery.java
Mon Nov 10 08:07:12 2014
@@ -349,8 +349,18 @@ public class EntityQuery {
* @return this EntityQuery object, to enable chaining
*/
public EntityQuery filterByDate(String... filterByFieldName) {
+ return this.filterByDate(null, filterByFieldName);
+ }
+
+ /** Specifies whether the query should return only values that are active
during the specified moment using the specified from/thru field name pairs.
+ *
+ * @param moment - Timestamp representing the moment in time that the
values should be active during
+ * @param fromThruFieldName - String pairs representing the from/thru date
field names e.g. "fromDate", "thruDate", "contactFromDate", "contactThruDate"
+ * @return this EntityQuery object, to enable chaining
+ */
+ public EntityQuery filterByDate(Timestamp moment, String...
filterByFieldName) {
this.filterByDate = true;
- this.filterByDateMoment = null;
+ this.filterByDateMoment = moment;
if (filterByFieldName.length % 2 != 0) {
throw new IllegalArgumentException("You must pass an even sized
array to this method, each pair should represent a from date field name and a
thru date field name");
}
@@ -469,7 +479,7 @@ public class EntityQuery {
private EntityCondition makeDateCondition() {
List<EntityCondition> conditions = new ArrayList<EntityCondition>();
if (UtilValidate.isEmpty(this.filterByFieldNames)) {
- this.filterByDate("fromDate", "thruDate");
+ this.filterByDate(filterByDateMoment, "fromDate", "thruDate");
}
for (int i = 0; i < this.filterByFieldNames.size();) {
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/config/ServiceErrorUiLabels.xml
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/config/ServiceErrorUiLabels.xml?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/config/ServiceErrorUiLabels.xml
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/config/ServiceErrorUiLabels.xml
Mon Nov 10 08:07:12 2014
@@ -272,11 +272,22 @@
<value xml:lang="zh">缺å°åæ°</value>
<value xml:lang="zh_TW">缺å°åæ¸</value>
</property>
+ <property key="ServiceValueFound">
+ <value xml:lang="en">Value found (with ids ${pkFields}), cannot create
a new one</value>
+ <value xml:lang="fr">La valeur a été trouvée (avec les réfs.
${pkFields}), une nouvelle ne peut donc pas être créée</value>
+ <value xml:lang="it">Valore troavato, non è possibile creare</value>
+ </property>
<property key="ServiceValueNotFound">
<value xml:lang="en">Value not found, cannot update</value>
+ <value xml:lang="fr">La valeur n'a pas été trouvée, elle ne peut
donc pas être mise à jour</value>
<value xml:lang="it">Valore non troavato, non è possibile
aggiornare</value>
<value
xml:lang="ja">å¤ãè¦ã¤ããã¾ãããæ´æ°ã§ãã¾ãã</value>
<value xml:lang="zh">æ²¡ææ¾å°å¼ï¼æ æ³æ´æ°</value>
<value xml:lang="zh_TW">æ²ææ¾å°å¼,ç¡æ³æ´æ°</value>
</property>
+ <property key="ServiceValueNotFoundForRemove">
+ <value xml:lang="en">Value not found, cannot remove</value>
+ <value xml:lang="fr">La valeur n'a pas été trouvée, suppression
impossible</value>
+ <value xml:lang="it">Valore non troavato, non è possibile
sopprimere</value>
+ </property>
</resource>
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/config/serviceengine.xml
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/config/serviceengine.xml?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/config/serviceengine.xml
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/config/serviceengine.xml
Mon Nov 10 08:07:12 2014
@@ -47,9 +47,7 @@ under the License.
<engine name="script" class="org.ofbiz.service.engine.ScriptEngine"/>
<!-- Engines that can be replaced by the generic script engine -->
<engine name="bsh" class="org.ofbiz.service.engine.BeanShellEngine"/>
- <engine name="groovy" class="org.ofbiz.service.engine.GroovyEngine">
- <parameter name="scriptBaseClass"
value="org.ofbiz.service.engine.GroovyBaseScript"/>
- </engine>
+ <engine name="groovy" class="org.ofbiz.service.engine.GroovyEngine"/>
<engine name="jacl" class="org.ofbiz.service.engine.BSFEngine"/>
<engine name="javascript"
class="org.ofbiz.service.engine.ScriptEngine"/>
<engine name="jpython" class="org.ofbiz.service.engine.BSFEngine"/>
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/servicedef/services_test_se.xml
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/servicedef/services_test_se.xml?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/servicedef/services_test_se.xml
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/servicedef/services_test_se.xml
Mon Nov 10 08:07:12 2014
@@ -80,7 +80,7 @@ under the License.
<auto-attributes include="nonpk" mode="IN" optional="true"/>
<attribute name="testingId" mode="IN" type="String"/>
<attribute name="testingNodeId" mode="IN" type="String"/>
- <attribute name="fromDate" mode="OUT" type="String"/>
+ <attribute name="fromDate" mode="OUT" type="Timestamp"/>
</service>
<service name="testEntityAutoUpdateTesting" auth="false"
engine="entity-auto" default-entity-name="Testing" invoke="update">
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/engine/EntityAutoEngine.java
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/engine/EntityAutoEngine.java?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/engine/EntityAutoEngine.java
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/engine/EntityAutoEngine.java
Mon Nov 10 08:07:12 2014
@@ -20,6 +20,7 @@ package org.ofbiz.service.engine;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.LinkedList;
import java.util.Locale;
import java.util.Map;
@@ -88,11 +89,16 @@ public final class EntityAutoEngine exte
try {
boolean allPksInOnly = true;
+ LinkedList<String> pkFieldNameOutOnly = null;
for (ModelField pkField: modelEntity.getPkFieldsUnmodifiable()) {
ModelParam pkParam = modelService.getParam(pkField.getName());
if (pkParam.isOut()) {
allPksInOnly = false;
}
+ if (pkParam.isOut() && !pkParam.isIn()) {
+ if (pkFieldNameOutOnly == null) pkFieldNameOutOnly = new
LinkedList();
+ pkFieldNameOutOnly.add(pkField.getName());
+ }
}
if ("create".equals(modelService.invoke)) {
@@ -128,7 +134,6 @@ public final class EntityAutoEngine exte
}
}
-
if (isSinglePk && isSinglePkOut && !isSinglePkIn) {
/*
**** primary sequenced primary key ****
@@ -145,7 +150,6 @@ public final class EntityAutoEngine exte
String sequencedId =
dctx.getDelegator().getNextSeqId(modelEntity.getEntityName());
newEntity.set(singlePkModeField.getName(), sequencedId);
- result.put(singlePkModelParam.name, sequencedId);
} else if (isSinglePk && isSinglePkOut && isSinglePkIn) {
/*
**** primary sequenced key with optional override passed
in ****
@@ -181,7 +185,6 @@ public final class EntityAutoEngine exte
}
}
newEntity.set(singlePkModeField.getName(), pkValue);
- result.put(singlePkModelParam.name, pkValue);
} else if (isDoublePk && doublePkPrimaryInParam != null &&
doublePkSecondaryOutParam != null) {
/*
**** secondary sequenced primary key ****
@@ -199,7 +202,6 @@ public final class EntityAutoEngine exte
newEntity.setPKFields(parameters, true);
dctx.getDelegator().setNextSubSeqId(newEntity,
doublePkSecondaryOutField.getName(), 5, 1);
- result.put(doublePkSecondaryOutParam.name,
newEntity.get(doublePkSecondaryOutField.getName()));
} else if (allPksInOnly) {
/*
**** plain specified primary key ****
@@ -213,24 +215,46 @@ public final class EntityAutoEngine exte
*
*/
newEntity.setPKFields(parameters, true);
+ //with all pks present on parameters, check if the entity
is not already exists.
+ GenericValue lookedUpValue =
PrimaryKeyFinder.runFind(modelEntity, parameters, dctx.getDelegator(), false,
true, null, null);
+ if (lookedUpValue != null) {
+ return
ServiceUtil.returnError(UtilProperties.getMessage(resource,
"ServiceValueFound", UtilMisc.toMap("pkFields",
newEntity.getPkShortValueString()), locale));
+ }
} else {
- throw new GenericServiceException("In Service [" +
modelService.name + "] which uses the entity-auto engine with the create invoke
option: " +
- "could not find a valid combination of primary key
settings to do a known create operation; options include: " +
- "1. a single OUT pk for primary auto-sequencing, "
+
- "2. a single INOUT pk for primary auto-sequencing
with optional override, " +
- "3. a 2-part pk with one part IN (existing primary
pk) and one part OUT (the secdonary pk to sub-sequence, " +
- "4. all pk fields are IN for a manually specified
primary key");
+ /* We haven't all Pk and their are 3 or more, now check if
isn't a associate entity with own sequence
+ <set-pk-fields map="parameters" value-field="newEntity"/>
+ <sequenced-id sequence-name="ExempleItemAssoc"
field="newEntity.exempleItemAssocId"/>
+ <create-value value-field="newEntity"/>
+ */
+ if (pkFieldNameOutOnly != null &&
pkFieldNameOutOnly.size() == 1) {
+ newEntity.setPKFields(parameters, true);
+ String pkFieldName = pkFieldNameOutOnly.getFirst();
+ //if it's a fromDate, don't update it now, it's will
be done next step
+ if (! "fromDate".equals(pkFieldName)) {
+ String pkValue =
dctx.getDelegator().getNextSeqId(modelEntity.getEntityName());
+ newEntity.set(pkFieldName, pkValue);
+ }
+ } else {
+ throw new GenericServiceException("In Service [" +
modelService.name + "] which uses the entity-auto engine with the create invoke
option: " +
+ "could not find a valid combination of primary
key settings to do a known create operation; options include: " +
+ "1. a single OUT pk for primary
auto-sequencing, " +
+ "2. a single INOUT pk for primary
auto-sequencing with optional override, " +
+ "3. a 2-part pk with one part IN (existing
primary pk) and one part OUT (the secondary pk to sub-sequence), " +
+ "4. a N-part pk with N-1 part IN and one party
OUT only (missing pk is a sub-sequence mainly for entity assoc), " +
+ "5. all pk fields are IN for a manually
specified primary key");
+ }
}
// handle the case where there is a fromDate in the pk of the
entity, and it is optional or undefined in the service def, populate
automatically
ModelField fromDateField = modelEntity.getField("fromDate");
if (fromDateField != null && fromDateField.getIsPk()) {
ModelParam fromDateParam =
modelService.getParam("fromDate");
- if (fromDateParam == null || (fromDateParam.isOptional()
&& parameters.get("fromDate") == null)) {
+ if (fromDateParam == null || parameters.get("fromDate") ==
null) {
newEntity.set("fromDate", UtilDateTime.nowTimestamp());
}
}
+ newEntity.setNonPKFields(parameters, true);
if (modelEntity.getField("createdDate") != null) {
newEntity.set("createdDate", UtilDateTime.nowTimestamp());
if (modelEntity.getField("createdByUserLogin") != null) {
@@ -246,8 +270,8 @@ public final class EntityAutoEngine exte
newEntity.set("lastModifiedDate",
UtilDateTime.nowTimestamp());
}
}
- newEntity.setNonPKFields(parameters, true);
newEntity.create();
+ result.putAll(modelService.makeValid(newEntity, "OUT"));
} else if ("update".equals(modelService.invoke)) {
/*
<auto-attributes include="pk" mode="IN" optional="false"/>
@@ -313,9 +337,9 @@ public final class EntityAutoEngine exte
}
}
}
-
// NOTE: nothing here to maintain the status history, that
should be done with a custom service called by SECA rule
+ lookedUpValue.setNonPKFields(parameters, true);
if (modelEntity.getField("lastModifiedDate") != null) {
lookedUpValue.set("lastModifiedDate",
UtilDateTime.nowTimestamp());
if (modelEntity.getField("lastModifiedByUserLogin") !=
null) {
@@ -325,8 +349,6 @@ public final class EntityAutoEngine exte
}
}
}
-
- lookedUpValue.setNonPKFields(parameters, true);
lookedUpValue.store();
} else if ("delete".equals(modelService.invoke)) {
/*
@@ -344,6 +366,8 @@ public final class EntityAutoEngine exte
GenericValue lookedUpValue =
PrimaryKeyFinder.runFind(modelEntity, parameters, dctx.getDelegator(), false,
true, null, null);
if (lookedUpValue != null) {
lookedUpValue.remove();
+ } else {
+ return
ServiceUtil.returnError(UtilProperties.getMessage(resource,
"ServiceValueNotFoundForRemove", locale));
}
}
} catch (GeneralException e) {
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/engine/GroovyEngine.java
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/engine/GroovyEngine.java?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/engine/GroovyEngine.java
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/engine/GroovyEngine.java
Mon Nov 10 08:07:12 2014
@@ -19,7 +19,6 @@
package org.ofbiz.service.engine;
import static org.ofbiz.base.util.UtilGenerics.cast;
-import groovy.lang.GroovyClassLoader;
import groovy.lang.Script;
import java.util.Collections;
@@ -30,10 +29,7 @@ import java.util.Set;
import javax.script.ScriptContext;
-import org.codehaus.groovy.control.CompilerConfiguration;
import org.codehaus.groovy.runtime.InvokerHelper;
-import org.ofbiz.base.config.GenericConfigException;
-import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.GeneralException;
import org.ofbiz.base.util.GroovyUtil;
import org.ofbiz.base.util.ScriptHelper;
@@ -44,7 +40,6 @@ import org.ofbiz.service.GenericServiceE
import org.ofbiz.service.ModelService;
import org.ofbiz.service.ServiceDispatcher;
import org.ofbiz.service.ServiceUtil;
-import org.ofbiz.service.config.ServiceConfigUtil;
/**
* Groovy Script Service Engine
@@ -55,8 +50,6 @@ public final class GroovyEngine extends
protected static final Object[] EMPTY_ARGS = {};
private static final Set<String> protectedKeys = createProtectedKeys();
- GroovyClassLoader groovyClassLoader;
-
private static Set<String> createProtectedKeys() {
Set<String> newSet = new HashSet<String>();
/* Commenting out for now because some scripts write to the parameters
Map - which should not be allowed.
@@ -70,16 +63,6 @@ public final class GroovyEngine extends
public GroovyEngine(ServiceDispatcher dispatcher) {
super(dispatcher);
- try {
- String scriptBaseClass =
ServiceConfigUtil.getEngineParameter("groovy", "scriptBaseClass");
- if (scriptBaseClass != null) {
- CompilerConfiguration conf = new CompilerConfiguration();
- conf.setScriptBaseClass(scriptBaseClass);
- groovyClassLoader = new
GroovyClassLoader(getClass().getClassLoader(), conf);
- }
- } catch (GenericConfigException gce) {
- Debug.logWarning(gce, "Error retrieving the configuration for the
groovy service engine: ", module);
- }
}
/**
@@ -119,7 +102,7 @@ public final class GroovyEngine extends
if (scriptHelper != null) {
gContext.put(ScriptUtil.SCRIPT_HELPER_KEY, scriptHelper);
}
- Script script =
InvokerHelper.createScript(GroovyUtil.getScriptClassFromLocation(this.getLocation(modelService),
groovyClassLoader), GroovyUtil.getBinding(gContext));
+ Script script =
InvokerHelper.createScript(GroovyUtil.getScriptClassFromLocation(this.getLocation(modelService)),
GroovyUtil.getBinding(gContext));
Object resultObj = null;
if (UtilValidate.isEmpty(modelService.invoke)) {
resultObj = script.run();
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/test/ServiceEntityAutoTests.java
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/test/ServiceEntityAutoTests.java?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/test/ServiceEntityAutoTests.java
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/src/org/ofbiz/service/test/ServiceEntityAutoTests.java
Mon Nov 10 08:07:12 2014
@@ -104,11 +104,10 @@ public class ServiceEntityAutoTests exte
testingNodeMember.remove();
//test create auto sub-sequence
- //test missing pk
+ //test missing pk fromDate
Map<String, Object> testingNodeMemberPkMissingMap =
UtilMisc.toMap("testingId", "TESTING_3", "testingNodeId", "NODE_1");
results =
dispatcher.runSync("testEntityAutoCreateTestingNodeMemberPkMissing",
testingNodeMemberPkMissingMap, 10, true);
- assertTrue(ServiceUtil.isError(results));
- assertTrue(ServiceUtil.getErrorMessage(results).contains("1. a single
OUT pk for primary auto-sequencing"));
+ assertTrue(ServiceUtil.isSuccess(results));
}
public void testEntityAutoUpdateEntity() throws Exception {
@@ -141,7 +140,7 @@ public class ServiceEntityAutoTests exte
//test create with bad pk
Map<String, Object> testingDeleteFailedMap =
UtilMisc.toMap("testingId", "TESTING_5_FAILED");
results = dispatcher.runSync("testEntityAutoRemoveTesting",
testingDeleteFailedMap);
- assertTrue(ServiceUtil.isSuccess(results));
- //assertEquals(UtilProperties.getMessage("ServiceErrorUiLabels",
"ServiceValueNotFound", Locale.ENGLISH), ServiceUtil.getErrorMessage(results));
+ assertTrue(ServiceUtil.isError(results));
+ assertEquals(UtilProperties.getMessage("ServiceErrorUiLabels",
"ServiceValueNotFoundForRemove", Locale.ENGLISH),
ServiceUtil.getErrorMessage(results));
}
}
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/event/GroovyEventHandler.java
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/event/GroovyEventHandler.java?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/event/GroovyEventHandler.java
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/event/GroovyEventHandler.java
Mon Nov 10 08:07:12 2014
@@ -18,7 +18,6 @@
*/
package org.ofbiz.webapp.event;
-import groovy.lang.GroovyClassLoader;
import groovy.lang.Script;
import java.util.Collections;
@@ -33,9 +32,7 @@ import javax.servlet.http.HttpServletReq
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
-import org.codehaus.groovy.control.CompilerConfiguration;
import org.codehaus.groovy.runtime.InvokerHelper;
-import org.ofbiz.base.config.GenericConfigException;
import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.GroovyUtil;
import org.ofbiz.base.util.ScriptHelper;
@@ -43,7 +40,6 @@ import org.ofbiz.base.util.ScriptUtil;
import org.ofbiz.base.util.UtilHttp;
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.base.util.UtilValidate;
-import org.ofbiz.service.config.ServiceConfigUtil;
import org.ofbiz.webapp.control.ConfigXMLReader.Event;
import org.ofbiz.webapp.control.ConfigXMLReader.RequestMap;
@@ -70,20 +66,7 @@ public class GroovyEventHandler implemen
return Collections.unmodifiableSet(newSet);
}
- private GroovyClassLoader groovyClassLoader;
-
public void init(ServletContext context) throws EventHandlerException {
- try {
- // TODO: the name of the script base class is currently retrieved
from the Groovy service engine configuration
- String scriptBaseClass =
ServiceConfigUtil.getEngineParameter("groovy", "scriptBaseClass");
- if (scriptBaseClass != null) {
- CompilerConfiguration conf = new CompilerConfiguration();
- conf.setScriptBaseClass(scriptBaseClass);
- groovyClassLoader = new
GroovyClassLoader(getClass().getClassLoader(), conf);
- }
- } catch (GenericConfigException gce) {
- Debug.logWarning(gce, "Error retrieving the configuration for the
groovy service engine: ", module);
- }
}
public String invoke(Event event, RequestMap requestMap,
HttpServletRequest request, HttpServletResponse response) throws
EventHandlerException {
@@ -107,7 +90,7 @@ public class GroovyEventHandler implemen
if (scriptHelper != null) {
context.put(ScriptUtil.SCRIPT_HELPER_KEY, scriptHelper);
}
- Script script =
InvokerHelper.createScript(GroovyUtil.getScriptClassFromLocation(event.path,
groovyClassLoader), GroovyUtil.getBinding(context));
+ Script script =
InvokerHelper.createScript(GroovyUtil.getScriptClassFromLocation(event.path),
GroovyUtil.getBinding(context));
if (UtilValidate.isEmpty(event.invoke)) {
result = script.run();
} else {
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/FormFactory.java
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/FormFactory.java?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/FormFactory.java
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/FormFactory.java
Mon Nov 10 08:07:12 2014
@@ -90,8 +90,7 @@ public class FormFactory {
URL formFileUrl = servletContext.getResource(resourceName);
Document formFileDoc = UtilXml.readXmlDocument(formFileUrl, true,
true);
Element formElement =
UtilXml.firstChildElement(formFileDoc.getDocumentElement(), "form", "name",
formName);
- modelForm = new ModelForm(formElement, delegator.getModelReader(),
dispatcher.getDispatchContext());
- modelForm.setFormLocation(resourceName);
+ modelForm = new ModelForm(formElement, resourceName,
delegator.getModelReader(), dispatcher.getDispatchContext());
modelForm = formWebappCache.putIfAbsentAndGet(cacheKey, modelForm);
}
if (modelForm == null) {
@@ -126,8 +125,7 @@ public class FormFactory {
}
public static ModelForm createModelForm(Element formElement, ModelReader
entityModelReader, DispatchContext dispatchContext, String formLocation, String
formName) {
- ModelForm modelForm = new ModelForm(formElement, entityModelReader,
dispatchContext);
- modelForm.setFormLocation(formLocation);
+ ModelForm modelForm = new ModelForm(formElement, formLocation,
entityModelReader, dispatchContext);
return modelForm;
}
}
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java?rev=1637805&r1=1637804&r2=1637805&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
Mon Nov 10 08:07:12 2014
@@ -558,7 +558,8 @@ public final class MacroFormRenderer imp
}
}
String id = modelFormField.getCurrentContainerId(context);
- String formName =
modelFormField.getModelForm().getCurrentFormName(context);
+ ModelForm modelForm = modelFormField.getModelForm();
+ String formName = FormRenderer.getCurrentFormName(modelForm, context);
String timeDropdown = dateTimeField.getInputMethod();
String timeDropdownParamName = "";
String classString = "";
@@ -1068,7 +1069,7 @@ public final class MacroFormRenderer imp
String title = modelFormField.getTitle(context);
String name = modelFormField.getParameterName(context);
String buttonType = submitField.getButtonType();
- String formName = modelForm.getCurrentFormName(context);
+ String formName = FormRenderer.getCurrentFormName(modelForm, context);
String imgSrc = submitField.getImageLocation(context);
String confirmation = submitField.getConfirmation(context);
String className = "";
@@ -1079,7 +1080,7 @@ public final class MacroFormRenderer imp
alert = "true";
}
}
- String formId = modelForm.getCurrentContainerId(context);
+ String formId = FormRenderer.getCurrentContainerId(modelForm, context);
List<ModelForm.UpdateArea> updateAreas =
modelForm.getOnSubmitUpdateAreas();
// This is here for backwards compatibility. Use on-event-update-area
// elements instead.
@@ -1090,7 +1091,7 @@ public final class MacroFormRenderer imp
}
updateAreas.add(new ModelForm.UpdateArea("submit", formId,
backgroundSubmitRefreshTarget));
}
- boolean ajaxEnabled = (updateAreas != null ||
UtilValidate.isNotEmpty(backgroundSubmitRefreshTarget)) &&
this.javaScriptEnabled;
+ boolean ajaxEnabled = (UtilValidate.isNotEmpty(updateAreas) ||
UtilValidate.isNotEmpty(backgroundSubmitRefreshTarget)) &&
this.javaScriptEnabled;
String ajaxUrl = "";
if (ajaxEnabled) {
ajaxUrl = createAjaxParamsFromUpdateAreas(updateAreas, "",
context);
@@ -1297,14 +1298,14 @@ public final class MacroFormRenderer imp
}
String formType = modelForm.getType();
String targetWindow = modelForm.getTargetWindow(context);
- String containerId = modelForm.getCurrentContainerId(context);
+ String containerId = FormRenderer.getCurrentContainerId(modelForm,
context);
String containerStyle = modelForm.getContainerStyle();
String autocomplete = "";
- String name = modelForm.getCurrentFormName(context);
+ String name = FormRenderer.getCurrentFormName(modelForm, context);
String viewIndexField = modelForm.getMultiPaginateIndexField(context);
String viewSizeField = modelForm.getMultiPaginateSizeField(context);
- int viewIndex = modelForm.getViewIndex(context);
- int viewSize = modelForm.getViewSize(context);
+ int viewIndex = Paginator.getViewIndex(modelForm, context);
+ int viewSize = Paginator.getViewSize(modelForm, context);
boolean useRowSubmit = modelForm.getUseRowSubmit();
if (!modelForm.getClientAutocompleteFields()) {
autocomplete = "off";
@@ -1341,8 +1342,8 @@ public final class MacroFormRenderer imp
public void renderFormClose(Appendable writer, Map<String, Object>
context, ModelForm modelForm) throws IOException {
String focusFieldName = modelForm.getfocusFieldName();
- String formName = modelForm.getCurrentFormName(context);
- String containerId = modelForm.getCurrentContainerId(context);
+ String formName = FormRenderer.getCurrentFormName(modelForm, context);
+ String containerId = FormRenderer.getCurrentContainerId(modelForm,
context);
String hasRequiredField = "";
for (ModelFormField formField : modelForm.getFieldList()) {
if (formField.getRequiredField()) {
@@ -1903,7 +1904,8 @@ public final class MacroFormRenderer imp
StringBuilder imgSrc = new StringBuilder();
// add calendar pop-up button and seed data IF this is not a "time"
type date-find
if (!"time".equals(dateFindField.getType())) {
- formName =
modelFormField.getModelForm().getCurrentFormName(context);
+ ModelForm modelForm = modelFormField.getModelForm();
+ formName = FormRenderer.getCurrentFormName(modelForm, context);
defaultDateTimeString =
UtilHttp.encodeBlanks(modelFormField.getEntry(context,
dateFindField.getDefaultDateTimeString(context)));
this.appendContentUrl(imgSrc, "/images/cal.gif");
}
@@ -2014,7 +2016,7 @@ public final class MacroFormRenderer imp
updateAreas = new LinkedList<ModelForm.UpdateArea>();
updateAreas.add(new ModelForm.UpdateArea("change", id,
autoCompleterTarget));
}
- boolean ajaxEnabled = updateAreas != null && this.javaScriptEnabled;
+ boolean ajaxEnabled = UtilValidate.isNotEmpty(updateAreas) &&
this.javaScriptEnabled;
String autocomplete = "";
if (!lookupField.getClientAutocompleteField() || !ajaxEnabled) {
autocomplete = "off";
@@ -2024,7 +2026,8 @@ public final class MacroFormRenderer imp
boolean readonly = lookupField.readonly;
// add lookup pop-up button
String descriptionFieldName = lookupField.getDescriptionFieldName();
- String formName =
modelFormField.getModelForm().getCurrentFormName(context);
+ ModelForm modelForm = modelFormField.getModelForm();
+ String formName = FormRenderer.getCurrentFormName(modelForm, context);
StringBuilder targetParameterIter = new StringBuilder();
StringBuilder imgSrc = new StringBuilder();
// FIXME: refactor using the StringUtils methods
@@ -2183,12 +2186,12 @@ public final class MacroFormRenderer imp
int paginatorNumber = WidgetWorker.getPaginatorNumber(context);
String viewIndexParam = modelForm.getMultiPaginateIndexField(context);
String viewSizeParam = modelForm.getMultiPaginateSizeField(context);
- int viewIndex = modelForm.getViewIndex(context);
- int viewSize = modelForm.getViewSize(context);
- int listSize = modelForm.getListSize(context);
- int lowIndex = modelForm.getLowIndex(context);
- int highIndex = modelForm.getHighIndex(context);
- int actualPageSize = modelForm.getActualPageSize(context);
+ int viewIndex = Paginator.getViewIndex(modelForm, context);
+ int viewSize = Paginator.getViewSize(modelForm, context);
+ int listSize = Paginator.getListSize(context);
+ int lowIndex = Paginator.getLowIndex(context);
+ int highIndex = Paginator.getHighIndex(context);
+ int actualPageSize = Paginator.getActualPageSize(context);
// needed for the "Page" and "rows" labels
Map<String, String> uiLabelMap =
UtilGenerics.checkMap(context.get("uiLabelMap"));
String pageLabel = "";
@@ -2935,8 +2938,9 @@ public final class MacroFormRenderer imp
int paginatorNumber = WidgetWorker.getPaginatorNumber(context);
String viewIndexField =
modelFormField.modelForm.getMultiPaginateIndexField(context);
String viewSizeField =
modelFormField.modelForm.getMultiPaginateSizeField(context);
- int viewIndex = modelFormField.modelForm.getViewIndex(context);
- int viewSize = modelFormField.modelForm.getViewSize(context);
+ ModelForm modelForm = modelFormField.modelForm;
+ int viewIndex = Paginator.getViewIndex(modelForm, context);
+ int viewSize = Paginator.getViewSize(modelForm, context);
if (viewIndexField.equals("viewIndex" + "_" + paginatorNumber)) {
viewIndexField = "VIEW_INDEX" + "_" + paginatorNumber;
}