Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/thirdparty/valuelink/ValueLinkServices.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/thirdparty/valuelink/ValueLinkServices.java?rev=1631452&r1=1631451&r2=1631452&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/thirdparty/valuelink/ValueLinkServices.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/thirdparty/valuelink/ValueLinkServices.java Mon Oct 13 16:02:22 2014 @@ -33,10 +33,10 @@ import org.ofbiz.base.util.UtilDateTime; import org.ofbiz.base.util.UtilMisc; import org.ofbiz.base.util.UtilProperties; import org.ofbiz.base.util.UtilValidate; -import org.ofbiz.base.util.collections.ResourceBundleMapWrapper; import org.ofbiz.entity.Delegator; import org.ofbiz.entity.GenericEntityException; import org.ofbiz.entity.GenericValue; +import org.ofbiz.entity.util.EntityQuery; import org.ofbiz.entity.util.EntityUtil; import org.ofbiz.entity.util.EntityUtilProperties; import org.ofbiz.order.order.OrderReadHelper; @@ -1099,11 +1099,11 @@ public class ValueLinkServices { // get the productFeature type TYPE (VL promo code) GenericValue typeFeature = null; try { - Map<String, Object> fields = UtilMisc.toMap("productId", product.get("productId"), "productFeatureTypeId", "TYPE"); - List<String> order = UtilMisc.toList("-fromDate"); - List<GenericValue> featureAppls = delegator.findByAnd("ProductFeatureAndAppl", fields, order, true); - featureAppls = EntityUtil.filterByDate(featureAppls); - typeFeature = EntityUtil.getFirst(featureAppls); + typeFeature = EntityQuery.use(delegator) + .from("ProductFeatureAndAppl") + .where("productId", product.get("productId"), + "productFeatureTypeId", "TYPE") + .orderBy("-fromDate").filterByDate().queryFirst(); } catch (GenericEntityException e) { Debug.logError(e, module); return ServiceUtil.returnError(UtilProperties.getMessage(resource, @@ -1128,12 +1128,11 @@ public class ValueLinkServices { // get the survey response GenericValue surveyResponse = null; try { - Map<String, Object> fields = UtilMisc.<String, Object>toMap("orderId", orderId, - "orderItemSeqId", orderItem.get("orderItemSeqId"), "surveyId", surveyId); - List<String> order = UtilMisc.toList("-responseDate"); - List<GenericValue> responses = delegator.findByAnd("SurveyResponse", fields, order, false); - // there should be only one - surveyResponse = EntityUtil.getFirst(responses); + surveyResponse = EntityQuery.use(delegator).from("SurveyResponse") + .where("orderId", orderId, + "orderItemSeqId", orderItem.get("orderItemSeqId"), + "surveyId", surveyId) + .queryFirst(); } catch (GenericEntityException e) { Debug.logError(e, module); return ServiceUtil.returnError(UtilProperties.getMessage(resourceError, @@ -1254,7 +1253,7 @@ public class ValueLinkServices { GenericValue productStoreEmail = null; String emailType = "PRDS_GC_PURCHASE"; try { - productStoreEmail = delegator.findOne("ProductStoreEmailSetting", UtilMisc.toMap("productStoreId", productStoreId, "emailType", emailType), false); + productStoreEmail = EntityQuery.use(delegator).from("ProductStoreEmailSetting").where("productStoreId", productStoreId, "emailType", emailType).queryOne(); } catch (GenericEntityException e) { Debug.logError(e, "Unable to get product store email setting for gift card purchase", module); } @@ -1374,12 +1373,11 @@ public class ValueLinkServices { // get the survey response GenericValue surveyResponse = null; try { - Map<String, Object> fields = UtilMisc.toMap("orderId", orderId, - "orderItemSeqId", orderItem.get("orderItemSeqId"), "surveyId", surveyId); - List<String> order = UtilMisc.toList("-responseDate"); - List<GenericValue> responses = delegator.findByAnd("SurveyResponse", fields, order, false); - // there should be only one - surveyResponse = EntityUtil.getFirst(responses); + surveyResponse = EntityQuery.use(delegator).from("SurveyResponse") + .where("orderId", orderId, + "orderItemSeqId", orderItem.get("orderItemSeqId"), + "surveyId", surveyId).orderBy("-responseDate") + .queryFirst(); } catch (GenericEntityException e) { Debug.logError(e, module); return ServiceUtil.returnError(UtilProperties.getMessage(resourceError, @@ -1502,7 +1500,7 @@ public class ValueLinkServices { GenericValue productStoreEmail = null; String emailType = "PRDS_GC_RELOAD"; try { - productStoreEmail = delegator.findOne("ProductStoreEmailSetting", UtilMisc.toMap("productStoreId", productStoreId, "emailType", emailType), false); + productStoreEmail = EntityQuery.use(delegator).from("ProductStoreEmailSetting").where("productStoreId", productStoreId, "emailType", emailType).queryOne(); } catch (GenericEntityException e) { Debug.logError(e, "Unable to get product store email setting for gift card purchase", module); } Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/thirdparty/verisign/PayflowPro.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/thirdparty/verisign/PayflowPro.java?rev=1631452&r1=1631451&r2=1631452&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/thirdparty/verisign/PayflowPro.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/thirdparty/verisign/PayflowPro.java Mon Oct 13 16:02:22 2014 @@ -921,7 +921,7 @@ public class PayflowPro { String returnValue = ""; if (UtilValidate.isNotEmpty(paymentGatewayConfigId)) { try { - GenericValue payflowPro = delegator.findOne("PaymentGatewayPayflowPro", UtilMisc.toMap("paymentGatewayConfigId", paymentGatewayConfigId), false); + GenericValue payflowPro = EntityQuery.use(delegator).from("PaymentGatewayPayflowPro").where("paymentGatewayConfigId", paymentGatewayConfigId).queryOne(); if (UtilValidate.isNotEmpty(payflowPro)) { Object payflowProField = payflowPro.get(paymentGatewayConfigParameterName); if (payflowProField != null) { Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/thirdparty/worldpay/WorldPayEvents.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/thirdparty/worldpay/WorldPayEvents.java?rev=1631452&r1=1631451&r2=1631452&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/thirdparty/worldpay/WorldPayEvents.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/thirdparty/worldpay/WorldPayEvents.java Mon Oct 13 16:02:22 2014 @@ -20,12 +20,10 @@ package org.ofbiz.accounting.thirdparty. import java.io.IOException; import java.math.BigDecimal; -import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Locale; import java.util.Map; -import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -44,7 +42,7 @@ import org.ofbiz.entity.GenericEntityExc import org.ofbiz.entity.GenericValue; import org.ofbiz.entity.transaction.GenericTransactionException; import org.ofbiz.entity.transaction.TransactionUtil; -import org.ofbiz.entity.util.EntityUtil; +import org.ofbiz.entity.util.EntityQuery; import org.ofbiz.order.order.OrderChangeHelper; import org.ofbiz.product.store.ProductStoreWorker; import org.ofbiz.service.GenericServiceException; @@ -69,7 +67,7 @@ public class WorldPayEvents { // get the order header GenericValue orderHeader = null; try { - orderHeader = delegator.findOne("OrderHeader", UtilMisc.toMap("orderId", orderId), false); + orderHeader = EntityQuery.use(delegator).from("OrderHeader").where("orderId", orderId).queryOne(); } catch (GenericEntityException e) { Debug.logError(e, "Cannot get the order header for order: " + orderId, module); request.setAttribute("_ERROR_MESSAGE_", UtilProperties.getMessage(resourceErr, "worldPayEvents.problemsGettingOrderHeader", locale)); @@ -108,16 +106,15 @@ public class WorldPayEvents { // get the contact address to pass over GenericValue contactAddress = null; GenericValue contactAddressShip = null; - List<GenericValue> addresses = null; - List<GenericValue> shippingAddresses = null; + GenericValue addressOcm = null; + GenericValue shippingAddress = null; try { - addresses = delegator.findByAnd("OrderContactMech", UtilMisc.toMap("orderId", orderId, "contactMechPurposeTypeId", "BILLING_LOCATION"), null, false); - shippingAddresses = delegator.findByAnd("OrderContactMech", UtilMisc.toMap("orderId", orderId, "contactMechPurposeTypeId", "SHIPPING_LOCATION"), null, false); - if (addresses.size() == 0) { - addresses = shippingAddresses; + addressOcm = EntityQuery.use(delegator).from("OrderContactMech").where("orderId", orderId, "contactMechPurposeTypeId", "BILLING_LOCATION").queryFirst(); + shippingAddress = EntityQuery.use(delegator).from("OrderContactMech").where("orderId", orderId, "contactMechPurposeTypeId", "SHIPPING_LOCATION").queryFirst(); + if (addressOcm == null) { + addressOcm = shippingAddress; } - GenericValue contactMech = EntityUtil.getFirst(addresses); - contactAddress = delegator.findOne("PostalAddress", UtilMisc.toMap("contactMechId", contactMech.getString("contactMechId")), false); + contactAddress = EntityQuery.use(delegator).from("PostalAddress").where("contactMechId", addressOcm.getString("contactMechId")).queryOne(); } catch (GenericEntityException e) { Debug.logWarning(e, "Problems getting order contact information", module); } @@ -175,9 +172,8 @@ public class WorldPayEvents { String emailAddress = null; GenericValue emailContact = null; try { - List<GenericValue> emails = delegator.findByAnd("OrderContactMech", UtilMisc.toMap("orderId", orderId, "contactMechPurposeTypeId", "ORDER_EMAIL"), null, false); - GenericValue firstEmail = EntityUtil.getFirst(emails); - emailContact = delegator.findOne("ContactMech", UtilMisc.toMap("contactMechId", firstEmail.getString("contactMechId")), false); + GenericValue emailOcm = EntityQuery.use(delegator).from("OrderContactMech").where("orderId", orderId, "contactMechPurposeTypeId", "ORDER_EMAIL").queryFirst(); + emailContact = emailOcm.getRelatedOne("ContactMech", false); emailAddress = emailContact.getString("infoString"); } catch (GenericEntityException e) { Debug.logWarning(e, "Problems getting order email address", module); @@ -186,10 +182,9 @@ public class WorldPayEvents { StringBuilder shipAddress = new StringBuilder(); String shipPostalCode = ""; String shipName = ""; - if (shippingAddresses != null) { + if (shippingAddress != null) { try { - GenericValue contactMechShip = EntityUtil.getFirst(shippingAddresses); - contactAddressShip = delegator.findOne("PostalAddress", UtilMisc.toMap("contactMechId", contactMechShip.getString("contactMechId")), false); + contactAddressShip = EntityQuery.use(delegator).from("PostalAddress").where("contactMechId", shippingAddress.get("contactMechId")).queryOne(); if (UtilValidate.isNotEmpty(contactAddressShip)) { if (UtilValidate.isNotEmpty(contactAddressShip.getString("attnName"))) { shipName = contactAddressShip.getString("attnName"); @@ -324,7 +319,7 @@ public class WorldPayEvents { if (userLogin == null) { String userLoginId = "system"; try { - userLogin = delegator.findOne("UserLogin", UtilMisc.toMap("userLoginId", userLoginId), false); + userLogin = EntityQuery.use(delegator).from("UserLogin").where("userLoginId", userLoginId).queryOne(); } catch (GenericEntityException e) { Debug.logError(e, "Cannot get UserLogin for: " + userLoginId + "; cannot continue", module); request.setAttribute("_ERROR_MESSAGE_", UtilProperties.getMessage(resourceErr, "worldPayEvents.problemsGettingAuthenticationUser", locale)); @@ -335,7 +330,7 @@ public class WorldPayEvents { GenericValue orderHeader = null; if (UtilValidate.isNotEmpty(orderId)) { try { - orderHeader = delegator.findOne("OrderHeader", UtilMisc.toMap("orderId", orderId), false); + orderHeader = EntityQuery.use(delegator).from("OrderHeader").where("orderId", orderId).queryOne(); } catch (GenericEntityException e) { Debug.logError(e, "Cannot get the order header for order: " + orderId, module); request.setAttribute("_ERROR_MESSAGE_", UtilProperties.getMessage(resourceErr, "worldPayEvents.problemsGettingOrderHeader", locale)); @@ -410,8 +405,8 @@ public class WorldPayEvents { Debug.logVerbose("Setting payment preferences..", module); List<GenericValue> paymentPrefs = null; try { - Map<String, String> paymentFields = UtilMisc.toMap("orderId", orderId, "statusId", "PAYMENT_NOT_RECEIVED"); - paymentPrefs = delegator.findByAnd("OrderPaymentPreference", paymentFields, null, false); + paymentPrefs = EntityQuery.use(delegator).from("OrderPaymentPreference") + .where("orderId", orderId, "statusId", "PAYMENT_NOT_RECEIVED").queryList(); } catch (GenericEntityException e) { Debug.logError(e, "Cannot get payment preferences for order #" + orderId, module); return false; @@ -501,7 +496,7 @@ public class WorldPayEvents { String returnValue = ""; if (UtilValidate.isNotEmpty(paymentGatewayConfigId)) { try { - GenericValue worldPay = delegator.findOne("PaymentGatewayWorldPay", UtilMisc.toMap("paymentGatewayConfigId", paymentGatewayConfigId), false); + GenericValue worldPay = EntityQuery.use(delegator).from("PaymentGatewayWorldPay").where("paymentGatewayConfigId", paymentGatewayConfigId).queryOne(); if (UtilValidate.isNotEmpty(worldPay)) { Object worldPayField = worldPay.get(paymentGatewayConfigParameterName); if (worldPayField != null) { Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/util/UtilAccounting.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/util/UtilAccounting.java?rev=1631452&r1=1631451&r2=1631452&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/util/UtilAccounting.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/accounting/src/org/ofbiz/accounting/util/UtilAccounting.java Mon Oct 13 16:02:22 2014 @@ -30,6 +30,7 @@ import org.ofbiz.base.util.UtilMisc; import org.ofbiz.entity.Delegator; import org.ofbiz.entity.GenericEntityException; import org.ofbiz.entity.GenericValue; +import org.ofbiz.entity.util.EntityQuery; public class UtilAccounting { @@ -55,8 +56,9 @@ public class UtilAccounting { GenericValue account = null; try { // first try to find the account in ProductGlAccount - account = delegator.findOne("ProductGlAccount", - UtilMisc.toMap("productId", productId, "glAccountTypeId", glAccountTypeId, "organizationPartyId", organizationPartyId), true); + account = EntityQuery.use(delegator).from("ProductGlAccount") + .where("productId", productId, "glAccountTypeId", glAccountTypeId, "organizationPartyId", organizationPartyId) + .cache().queryOne(); } catch (GenericEntityException e) { throw new AccountingException("Failed to find a ProductGLAccount for productId [" + productId + "], organization [" + organizationPartyId + "], and productGlAccountTypeId [" + glAccountTypeId + "].", e); } @@ -64,7 +66,7 @@ public class UtilAccounting { // otherwise try the default accounts if (account == null) { try { - account = delegator.findOne("GlAccountTypeDefault", UtilMisc.toMap("glAccountTypeId", glAccountTypeId, "organizationPartyId", organizationPartyId), true); + account = EntityQuery.use(delegator).from("GlAccountTypeDefault").where("glAccountTypeId", glAccountTypeId, "organizationPartyId", organizationPartyId).cache().queryOne(); } catch (GenericEntityException e) { throw new AccountingException("Failed to find a GlAccountTypeDefault for glAccountTypeId [" + glAccountTypeId + "] and organizationPartyId [" + organizationPartyId+ "].", e); } Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/src/org/ofbiz/content/content/ContentUrlFilter.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/src/org/ofbiz/content/content/ContentUrlFilter.java?rev=1631452&r1=1631451&r2=1631452&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/src/org/ofbiz/content/content/ContentUrlFilter.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/content/src/org/ofbiz/content/content/ContentUrlFilter.java Mon Oct 13 16:02:22 2014 @@ -151,7 +151,7 @@ public class ContentUrlFilter extends Co } StringBuilder urlBuilder = new StringBuilder(); urlBuilder.append(request.getSession().getServletContext().getContextPath()); - if (urlBuilder.charAt(urlBuilder.length() - 1) != '/') { + if (urlBuilder.length() == 0 || urlBuilder.charAt(urlBuilder.length() - 1) != '/') { urlBuilder.append("/"); } urlBuilder.append(CONTROL_MOUNT_POINT); 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=1631452&r1=1631451&r2=1631452&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 Oct 13 16:02:22 2014 @@ -2569,7 +2569,6 @@ <value xml:lang="th">USPS à¸à¹à¸à¸à¸à¸²à¸£à¸à¸µà¹à¸à¸¢à¸¹à¹ à¸à¹à¸²à¹à¸¡à¹ รหัสà¹à¸à¸£à¸©à¸à¸µà¸¢à¹ หรืภà¹à¸¡à¸·à¸à¸ à¹à¸¥à¸° รัà¸</value> <value xml:lang="zh">USPSå°åéªè¯éè¦zip5æè çåå¸</value> <value xml:lang="zh_TW">USPSä½åé©èéè¦zip5æè çåå¸</value> - <value xml:lang="zh_TW">USPSä½åé©èéè¦zip5æè çåå¸</value> </property> <property key="FacilityShipmentUspsConnectionProblem"> <value xml:lang="en">Problem connecting with USPS server: ${errorString}</value> @@ -3016,7 +3015,6 @@ <value xml:lang="th">à¸à¸£à¸¸à¸à¸²à¸£à¸à¸à¸à¸à¸£à¸°à¸à¸±à¹à¸à¸à¹à¸²à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸ªà¸±à¹à¸à¸à¸·à¹à¸à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸à¸ªà¹à¸à¸ªà¸´à¸à¸à¹à¸²</value> <value xml:lang="vi">Bạn hãy Äợi cho Äến khi Toà n bá» Äặt hà ng sẵn sà ng Äá» chuyá»n.</value> <value xml:lang="zh">请çå¾ æ´ä¸ªè®¢åé½æè´§æ¶åéè´§ã</value> - <value xml:lang="zh_TW">è«çå¾ æ´åè¨å®é½æè²¨æåé貨.</value> <value xml:lang="zh_CN">çå¾ ç´å°æ´ä¸ªè®¢å宿ååè´§ã</value> <value xml:lang="zh_TW">è«çå¾ æ´åè¨å®é½æè²¨æåé貨.</value> </property> @@ -27170,7 +27168,6 @@ <value xml:lang="vi">ChÃnh sách bán</value> <value xml:lang="zh">éå®è§å</value> <value xml:lang="zh_TW">é·å®è¦å</value> - <value xml:lang="zh_TW">é·å®è¦å</value> </property> <property key="ProductSales"> <value xml:lang="de">Verkauf</value> Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/category/CatalogUrlFilter.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/category/CatalogUrlFilter.java?rev=1631452&r1=1631451&r2=1631452&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/category/CatalogUrlFilter.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/category/CatalogUrlFilter.java Mon Oct 13 16:02:22 2014 @@ -368,7 +368,7 @@ public class CatalogUrlFilter extends Co if (UtilValidate.isNotEmpty(alternativeUrl) && UtilValidate.isNotEmpty(alternativeUrl.toString())) { StringBuilder urlBuilder = new StringBuilder(); urlBuilder.append(contextPath); - if (urlBuilder.charAt(urlBuilder.length() - 1) != '/') { + if (urlBuilder.length() == 0 || urlBuilder.charAt(urlBuilder.length() - 1) != '/') { urlBuilder.append("/"); } // append alternative URL @@ -444,7 +444,7 @@ public class CatalogUrlFilter extends Co if (UtilValidate.isNotEmpty(alternativeUrl) && UtilValidate.isNotEmpty(alternativeUrl.toString())) { StringBuilder urlBuilder = new StringBuilder(); urlBuilder.append(contextPath); - if (urlBuilder.charAt(urlBuilder.length() - 1) != '/') { + if (urlBuilder.length() == 0 || urlBuilder.charAt(urlBuilder.length() - 1) != '/') { urlBuilder.append("/"); } // append alternative URL Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/category/CatalogUrlServlet.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/category/CatalogUrlServlet.java?rev=1631452&r1=1631451&r2=1631452&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/category/CatalogUrlServlet.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/category/CatalogUrlServlet.java Mon Oct 13 16:02:22 2014 @@ -157,7 +157,7 @@ public class CatalogUrlServlet extends H public static String makeCatalogUrl(HttpServletRequest request, String productId, String currentCategoryId, String previousCategoryId) { StringBuilder urlBuilder = new StringBuilder(); urlBuilder.append(request.getSession().getServletContext().getContextPath()); - if (urlBuilder.charAt(urlBuilder.length() - 1) != '/') { + if (urlBuilder.length() == 0 || urlBuilder.charAt(urlBuilder.length() - 1) != '/') { urlBuilder.append("/"); } urlBuilder.append(CATALOG_URL_MOUNT_POINT); @@ -183,7 +183,7 @@ public class CatalogUrlServlet extends H public static String makeCatalogUrl(String contextPath, List<String> crumb, String productId, String currentCategoryId, String previousCategoryId) { StringBuilder urlBuilder = new StringBuilder(); urlBuilder.append(contextPath); - if (urlBuilder.charAt(urlBuilder.length() - 1) != '/') { + if (urlBuilder.length() == 0 || urlBuilder.charAt(urlBuilder.length() - 1) != '/') { urlBuilder.append("/"); } urlBuilder.append(CATALOG_URL_MOUNT_POINT); Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/config/UrlLoader.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/config/UrlLoader.java?rev=1631452&r1=1631451&r2=1631452&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/config/UrlLoader.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/config/UrlLoader.java Mon Oct 13 16:02:22 2014 @@ -40,10 +40,6 @@ public class UrlLoader extends ResourceL } catch (java.net.MalformedURLException e) { throw new GenericConfigException("Error with malformed URL while trying to load URL resource at location [" + fullLocation + "]", e); } - if (url == null) { - throw new GenericConfigException("URL Resource not found: " + fullLocation); - } - return url; } Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/template/FreeMarkerWorker.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/template/FreeMarkerWorker.java?rev=1631452&r1=1631451&r2=1631452&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/template/FreeMarkerWorker.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/base/src/org/ofbiz/base/util/template/FreeMarkerWorker.java Mon Oct 13 16:02:22 2014 @@ -58,6 +58,7 @@ import freemarker.cache.TemplateLoader; import freemarker.core.Environment; import freemarker.ext.beans.BeanModel; import freemarker.ext.beans.BeansWrapper; +import freemarker.ext.beans.BeansWrapperBuilder; import freemarker.template.Configuration; import freemarker.template.SimpleHash; import freemarker.template.SimpleScalar; @@ -79,17 +80,13 @@ public class FreeMarkerWorker { // use soft references for this so that things from Content records don't kill all of our memory, or maybe not for performance reasons... hmmm, leave to config file... private static final UtilCache<String, Template> cachedTemplates = UtilCache.createUtilCache("template.ftl.general", 0, 0, false); - private static final BeansWrapper defaultOfbizWrapper = configureBeansWrapper(new BeansWrapper(version)); + private static final BeansWrapper defaultOfbizWrapper = new BeansWrapperBuilder(version).build(); private static final Configuration defaultOfbizConfig = makeConfiguration(defaultOfbizWrapper); public static BeansWrapper getDefaultOfbizWrapper() { return defaultOfbizWrapper; } - public static <T extends BeansWrapper> T configureBeansWrapper(T wrapper) { - return wrapper; - } - public static Configuration makeConfiguration(BeansWrapper wrapper) { Configuration newConfig = new Configuration(version); Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/config/CommonUiLabels.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/config/CommonUiLabels.xml?rev=1631452&r1=1631451&r2=1631452&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/config/CommonUiLabels.xml (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/config/CommonUiLabels.xml Mon Oct 13 16:02:22 2014 @@ -4984,7 +4984,7 @@ <value xml:lang="de">Halten</value> <value xml:lang="en">Held</value> <value xml:lang="es">Retenido</value> - <value xml:lang="fr">Retenir</value> + <value xml:lang="fr">Retenu</value> <value xml:lang="hi_IN">पà¤à¤¡à¤¼à¤¾</value> <value xml:lang="it">Congelati</value> <value xml:lang="ja">ä¿ç</value> Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/entitydef/entitymodel_test.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/entitydef/entitymodel_test.xml?rev=1631452&r1=1631451&r2=1631452&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/entitydef/entitymodel_test.xml (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entity/entitydef/entitymodel_test.xml Mon Oct 13 16:02:22 2014 @@ -123,6 +123,21 @@ under the License. <prim-key field="testFieldTypeId"/> </entity> <!-- ========================================================= + Testing Item entity : testing line on a Testing entity + ========================================================= --> + <entity entity-name="TestingItem" + package-name="org.ofbiz.entity.test" + title="Testing Item"> + <field name="testingId" type="id-ne"/> + <field name="testingSeqId" type="id-ne"/> + <field name="testingHistory" type="very-long"/> + <prim-key field="testingId"/> + <prim-key field="testingSeqId"/> + <relation type="one" fk-name="TESTING_IT_TEST" rel-entity-name="Testing"> + <key-map field-name="testingId"/> + </relation> + </entity> + <!-- ========================================================= Testing Node entity : hierarchy of nodes having 'testing node member' as potential members ========================================================= --> 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=1631452&r1=1631451&r2=1631452&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 Oct 13 16:02:22 2014 @@ -160,6 +160,17 @@ public class EntityQuery { return this; } + /** Set a series of EntityConditions to be ANDed together as the WHERE clause for the query + * + * NOTE: Each successive call to any of the where(...) methods will replace the currently set condition for the query. + * @param entityCondition - A series of EntityConditions to be ANDed together as the where clause for the query + * @return this EntityQuery object, to enable chaining + */ + public EntityQuery where(EntityCondition...entityCondition) { + this.whereEntityCondition = EntityCondition.makeCondition(Arrays.asList(entityCondition)); + return this; + } + /** Set a list of EntityCondition objects to be ANDed together as the WHERE clause for the query * * NOTE: Each successive call to any of the where(...) methods will replace the currently set condition for the query. @@ -281,6 +292,16 @@ public class EntityQuery { return this; } + /** Specifies whether results should be read from the cache (or written to the cache if the results have not yet been cached) + * + * @param useCache - boolean to indicate if the cache should be used or not + * @return this EntityQuery object, to enable chaining + */ + public EntityQuery cache(boolean useCache) { + this.useCache = useCache; + return this; + } + /** Specifies whether the query should return only values that are currently active using from/thruDate fields. * * @return this EntityQuery object, to enable chaining Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entityext/src/org/ofbiz/entityext/data/EntityDataLoadContainer.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entityext/src/org/ofbiz/entityext/data/EntityDataLoadContainer.java?rev=1631452&r1=1631451&r2=1631452&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entityext/src/org/ofbiz/entityext/data/EntityDataLoadContainer.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/entityext/src/org/ofbiz/entityext/data/EntityDataLoadContainer.java Mon Oct 13 16:02:22 2014 @@ -274,14 +274,15 @@ public class EntityDataLoadContainer imp String groupNameToUse = overrideGroup != null ? overrideGroup : entityGroupName; Delegator delegator = DelegatorFactory.getDelegator(delegatorNameToUse); Delegator baseDelegator = null; + if (delegator == null) { + throw new ContainerException("Invalid delegator name!"); + } + if (delegator.getDelegatorTenantId() != null) { baseDelegator = DelegatorFactory.getDelegator(delegator.getDelegatorBaseName()); } else { baseDelegator = delegator; } - if (delegator == null) { - throw new ContainerException("Invalid delegator name!"); - } GenericHelperInfo helperInfo = delegator.getGroupHelperInfo(groupNameToUse); if (helperInfo == null) { 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=1631452&r1=1631451&r2=1631452&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 Oct 13 16:02:22 2014 @@ -48,6 +48,50 @@ under the License. location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceLockWaitTimeoutRetryWaiter"> </service> + <!-- testing different entity-auto call--> + <service name="testEntityAutoCreateTestingPkPresent" auth="false" + engine="entity-auto" default-entity-name="Testing" invoke="create"> + <auto-attributes include="pk" mode="IN" optional="false"/> + <auto-attributes include="nonpk" mode="IN" optional="true"/> + </service> + <service name="testEntityAutoCreateTestingPkMissing" auth="false" + engine="entity-auto" default-entity-name="Testing" invoke="create"> + <auto-attributes include="nonpk" mode="IN" optional="true"/> + <attribute name="testingId" mode="OUT" type="String"/> + </service> + <service name="testEntityAutoCreateTestingItemPkPresent" auth="false" + engine="entity-auto" default-entity-name="TestingItem" invoke="create"> + <auto-attributes include="pk" mode="IN" optional="false"/> + <auto-attributes include="nonpk" mode="IN" optional="true"/> + </service> + <service name="testEntityAutoCreateTestingItemPkMissing" auth="false" + engine="entity-auto" default-entity-name="TestingItem" invoke="create"> + <auto-attributes include="nonpk" mode="IN" optional="true"/> + <attribute name="testingId" mode="IN" type="String"/> + <attribute name="testingSeqId" mode="OUT" type="String"/> + </service> + <service name="testEntityAutoCreateTestingNodeMemberPkPresent" auth="false" + engine="entity-auto" default-entity-name="TestingNodeMember" invoke="create"> + <auto-attributes include="pk" mode="IN" optional="false"/> + <auto-attributes include="nonpk" mode="IN" optional="true"/> + </service> + <service name="testEntityAutoCreateTestingNodeMemberPkMissing" auth="false" + engine="entity-auto" default-entity-name="TestingNodeMember" invoke="create"> + <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"/> + </service> + <service name="testEntityAutoUpdateTesting" auth="false" + engine="entity-auto" default-entity-name="Testing" invoke="update"> + <auto-attributes include="pk" mode="IN" optional="false"/> + <auto-attributes include="nonpk" mode="IN" optional="true"/> + </service> + <service name="testEntityAutoRemoveTesting" auth="false" + engine="entity-auto" default-entity-name="Testing" invoke="delete"> + <auto-attributes include="pk" mode="IN" optional="false"/> + </service> + <!-- lock wait timeout retry testing services - a scenario that we can't do automatically with the single service because the parent owns the tx we have to have end before it will succeed --> <service name="testServiceLockWaitTimeoutRetryCantRecover" engine="java" auth="false" transaction-timeout="2" location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceLockWaitTimeoutRetryCantRecover"> @@ -83,19 +127,19 @@ under the License. <service name="testServiceEcaGlobalEventExecOnRollback" engine="java" auth="false" location="org.ofbiz.service.test.ServiceEngineTestServices" invoke="testServiceEcaGlobalEventExecOnRollback"> </service> - + <!-- Call xml rpc from engine --> - <service name="testXmlRpcAdd" engine="java" auth="false" location="org.ofbiz.service.test.XmlRpcTests" invoke="testXmlRpcAdd" export="true"> - <attribute name="num1" mode="IN" type="Integer"/> - <attribute name="num2" mode="IN" type="Integer"/> - <attribute name="resulting" mode="OUT" type="Integer"/> - </service> - <service name="testXmlRpcLocalEngine" engine="xml-rpc-local" auth="false" invoke="testXmlRpcAdd"> - <attribute name="num1" mode="IN" type="Integer"/> - <attribute name="num2" mode="IN" type="Integer"/> - <attribute name="resulting" mode="OUT" type="Integer"/> + <service name="testXmlRpcAdd" engine="java" auth="false" location="org.ofbiz.service.test.XmlRpcTests" invoke="testXmlRpcAdd" export="true"> + <attribute name="num1" mode="IN" type="Integer"/> + <attribute name="num2" mode="IN" type="Integer"/> + <attribute name="resulting" mode="OUT" type="Integer"/> + </service> + <service name="testXmlRpcLocalEngine" engine="xml-rpc-local" auth="false" invoke="testXmlRpcAdd"> + <attribute name="num1" mode="IN" type="Integer"/> + <attribute name="num2" mode="IN" type="Integer"/> + <attribute name="resulting" mode="OUT" type="Integer"/> </service> <service name="testXmlRpcClientAdd" engine="java" auth="false" location="org.ofbiz.service.test.XmlRpcTests" invoke="testXmlRpcClientAdd"> - <implements service="testServiceInterface"/> + <implements service="testServiceInterface"/> </service> </services> Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/testdef/servicetests.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/testdef/servicetests.xml?rev=1631452&r1=1631451&r2=1631452&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/testdef/servicetests.xml (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/service/testdef/servicetests.xml Mon Oct 13 16:02:22 2014 @@ -23,6 +23,7 @@ under the License. xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/test-suite.xsd"> <test-case case-name="service-tests"><junit-test-suite class-name="org.ofbiz.service.test.ServiceEngineTests"/></test-case> <test-case case-name="service-soap-tests"><junit-test-suite class-name="org.ofbiz.service.test.ServiceSOAPTests"/></test-case> + <test-case case-name="service-entity-auto-tests"><junit-test-suite class-name="org.ofbiz.service.test.ServiceEntityAutoTests"/></test-case> <test-case case-name="load-service-test-data"> <entity-xml action="load" entity-xml-url="component://service/testdef/data/ServiceTestData.xml"/> Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/screen/HtmlWidget.java URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/screen/HtmlWidget.java?rev=1631452&r1=1631451&r2=1631452&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/screen/HtmlWidget.java (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/screen/HtmlWidget.java Mon Oct 13 16:02:22 2014 @@ -59,7 +59,7 @@ public class HtmlWidget extends ModelScr public static final String module = HtmlWidget.class.getName(); private static final UtilCache<String, Template> specialTemplateCache = UtilCache.createUtilCache("widget.screen.template.ftl.general", 0, 0, false); - protected static Configuration specialConfig = FreeMarkerWorker.makeConfiguration(FreeMarkerWorker.configureBeansWrapper(new ExtendedWrapper(FreeMarkerWorker.version))); + protected static Configuration specialConfig = FreeMarkerWorker.makeConfiguration(new ExtendedWrapper(FreeMarkerWorker.version)); // not sure if this is the best way to get FTL to use my fancy MapModel derivative, but should work at least... public static class ExtendedWrapper extends BeansWrapper { Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/example/config/ExampleEntityLabels.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/example/config/ExampleEntityLabels.xml?rev=1631452&r1=1631451&r2=1631452&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/example/config/ExampleEntityLabels.xml (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/example/config/ExampleEntityLabels.xml Mon Oct 13 16:02:22 2014 @@ -148,7 +148,6 @@ <value xml:lang="th">วัà¸à¸à¸µà¹à¸à¸·à¹à¸ à¹</value> <value xml:lang="zh">å¦ä¸ä¸ªæ¥æ</value> <value xml:lang="zh_TW">å¦ä¸åæ¥æ</value> - <value xml:lang="zh_TW">å¦ä¸åæ¥æ</value> </property> <property key="FieldDescription.anotherText"> <value xml:lang="en">Another Text</value> @@ -170,7 +169,6 @@ <value xml:lang="th">à¸à¸§à¸²à¸¡à¸à¸´à¸à¹à¸«à¹à¸</value> <value xml:lang="zh">è¯è®º</value> <value xml:lang="zh_TW">è©è«</value> - <value xml:lang="zh_TW">è©è«</value> </property> <property key="FieldDescription.exampleDate"> <value xml:lang="en">Example Date</value> Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/example/config/ExampleUiLabels.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/example/config/ExampleUiLabels.xml?rev=1631452&r1=1631451&r2=1631452&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/example/config/ExampleUiLabels.xml (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/example/config/ExampleUiLabels.xml Mon Oct 13 16:02:22 2014 @@ -883,7 +883,6 @@ <value xml:lang="ja">ãµã³ãã«ããã¹ããæ¡å¼µãã©ã¼ã ã®ä¸ã«ãããµã³ãã«ã</value> <value xml:lang="zh">è¿ä¸ªæ ·ä¾ææ¬æå³çæä»¬å¤äºæ©å±è¡¨åä¸ã</value> <value xml:lang="zh_TW">éåç¯ä¾ææ¬æå³èæåèæ¼æ´å±è¡¨å®ä¸.</value> - <value xml:lang="zh_TW">éåç¯ä¾ææ¬æå³èæåèæ¼æ´å±è¡¨å®ä¸.</value> </property> <property key="ExampleToDo"> <value xml:lang="en">Explanation TODO</value> Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/projectmgr/config/ProjectMgrUiLabels.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/projectmgr/config/ProjectMgrUiLabels.xml?rev=1631452&r1=1631451&r2=1631452&view=diff ============================================================================== --- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/projectmgr/config/ProjectMgrUiLabels.xml (original) +++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/projectmgr/config/ProjectMgrUiLabels.xml Mon Oct 13 16:02:22 2014 @@ -1005,7 +1005,6 @@ <value xml:lang="vi">Sá» giá» thá»±c tế</value> <value xml:lang="zh">å®é å·¥æ¶</value> <value xml:lang="zh_TW">實éå·¥æ</value> - <value xml:lang="zh_TW">實éå·¥æ</value> </property> <property key="ProjectMgrActualTotal"> <value xml:lang="de">Ist-Stunden gesamt</value> @@ -1923,7 +1922,6 @@ <value xml:lang="vi">Tên dá»± án</value> <value xml:lang="zh">项ç®åç§°</value> <value xml:lang="zh_TW">å°æ¡å稱</value> - <value xml:lang="zh_TW">å°æ¡å稱</value> </property> <property key="ProjectMgrProjectNoNotes"> <value xml:lang="de">Keine Notizen für dieses Projekt</value> |
Free forum by Nabble | Edit this page |