Modified: ofbiz/branches/jackrabbit20100709/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java (original) +++ ofbiz/branches/jackrabbit20100709/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java Mon Jan 9 17:59:01 2012 @@ -843,13 +843,11 @@ public class MacroFormRenderer implement options.append(key); options.append("'"); options.append(",'description':'"); - String description = encode(optionValue.getDescription(), modelFormField, context); - String unescaped = StringEscapeUtils.unescapeHtml(description); - if (textSize > 0 && unescaped.length() > textSize ) { - String reduced = unescaped.substring(0, textSize - 8) + "..." + unescaped.substring(unescaped.length() - 5); - description = StringEscapeUtils.escapeJavaScript(StringEscapeUtils.escapeHtml(reduced)); + String description = optionValue.getDescription(); + if (textSize > 0 && description.length() > textSize ) { + description = description.substring(0, textSize - 8) + "..." + description.substring(description.length() - 5); } - options.append(description); + options.append(encode(description, modelFormField, context)); if (UtilValidate.isNotEmpty(currentValueList)) { options.append("'"); Modified: ofbiz/branches/jackrabbit20100709/framework/widget/src/org/ofbiz/widget/form/ModelFormAction.java URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/framework/widget/src/org/ofbiz/widget/form/ModelFormAction.java?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/framework/widget/src/org/ofbiz/widget/form/ModelFormAction.java (original) +++ ofbiz/branches/jackrabbit20100709/framework/widget/src/org/ofbiz/widget/form/ModelFormAction.java Mon Jan 9 17:59:01 2012 @@ -371,7 +371,12 @@ public abstract class ModelFormAction { try { Map<String, Object> serviceContext = null; if (autoFieldMapBool) { - serviceContext = WidgetWorker.getDispatcher(context).getDispatchContext().makeValidContext(serviceNameExpanded, ModelService.IN_PARAM, context); + if (! "true".equals(autoFieldMapString)) { + Map<String, Object> autoFieldMap = UtilGenerics.checkMap(context.get(autoFieldMapString)); + serviceContext = WidgetWorker.getDispatcher(context).getDispatchContext().makeValidContext(serviceNameExpanded, ModelService.IN_PARAM, autoFieldMap); + } else { + serviceContext = WidgetWorker.getDispatcher(context).getDispatchContext().makeValidContext(serviceNameExpanded, ModelService.IN_PARAM, context); + } } else { serviceContext = new HashMap<String, Object>(); } Modified: ofbiz/branches/jackrabbit20100709/framework/widget/templates/xmlFormMacroLibrary.ftl URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/framework/widget/templates/xmlFormMacroLibrary.ftl?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/framework/widget/templates/xmlFormMacroLibrary.ftl (original) +++ ofbiz/branches/jackrabbit20100709/framework/widget/templates/xmlFormMacroLibrary.ftl Mon Jan 9 17:59:01 2012 @@ -35,16 +35,16 @@ under the License. <#macro renderFormatSingleWrapperClose formName></${formName}Export></#macro> -<#macro renderDisplayField type imageLocation idName description class alert inPlaceEditorId="" inPlaceEditorUrl="" inPlaceEditorParams=""> +<#macro renderDisplayField type imageLocation idName description title class alert inPlaceEditorUrl="" inPlaceEditorParams=""> <@renderField description/> </#macro> <#macro renderHyperlinkField></#macro> -<#macro renderTextField name className alert value textSize maxlength id event action disabled clientAutocomplete ajaxUrl ajaxEnabled><@renderField value/></#macro> +<#macro renderTextField name className alert value textSize maxlength id event action disabled clientAutocomplete ajaxUrl ajaxEnabled mask><@renderField value/></#macro> -<#macro renderTextareaField name className alert cols rows id readonly value visualEditorEnable language buttons><@renderField value/></#macro> +<#macro renderTextareaField name className alert cols rows id readonly value visualEditorEnable buttons language=""><@renderField value/></#macro> -<#macro renderDateTimeField name className alert title value size maxlength id event action dateType shortDateInput timeDropdownParamName defaultDateTimeString localizedIconTitle timeDropdown timeHourName classString hour1 hour2 timeMinutesName minutes isTwelveHour ampmName amSelected pmSelected compositeType formName><@renderField value/></#macro> +<#macro renderDateTimeField name className alert title value size maxlength id dateType shortDateInput timeDropdownParamName defaultDateTimeString localizedIconTitle timeDropdown timeHourName classString hour1 hour2 timeMinutesName minutes isTwelveHour ampmName amSelected pmSelected compositeType formName mask="" event="" action="" step="" timeValues=""><@renderField value/></#macro> <#macro renderDropDownField name className alert id multiple formName otherFieldName event action size firstInList currentValue explicitDescription allowEmpty options fieldName otherFieldName otherValue otherFieldSize dDFCurrent ajaxEnabled noCurrentSelectedKey ajaxOptions frequency minChars choices autoSelect partialSearch partialChars ignoreCase fullSearch> </#macro> @@ -61,8 +61,8 @@ under the License. <#macro renderFieldTitle style title id fieldHelpText=""></#macro> <#macro renderSingleFormFieldTitle title></#macro> -<#macro renderFormOpen linkUrl formType targetWindow containerId containerStyle autocomplete name useRowSubmit></#macro> -<#macro renderFormClose focusFieldName formName></#macro> +<#macro renderFormOpen linkUrl formType targetWindow containerId containerStyle autocomplete name viewIndexField viewSizeField viewIndex viewSize useRowSubmit></#macro> +<#macro renderFormClose focusFieldName formName containerId hasRequiredField></#macro> <#macro renderMultiFormClose></#macro> @@ -96,7 +96,7 @@ under the License. <#macro renderRangeFindField className alert name value size maxlength autocomplete titleStyle defaultOptionFrom opEquals opGreaterThan opGreaterThanEquals opLessThan opLessThanEquals value2 defaultOptionThru> </#macro> -<#macro renderLookupField className alert name value size maxlength id event action readonly autocomplete descriptionFieldName formName fieldFormName targetParameterIter imgSrc ajaxUrl ajaxEnabled presentation width height position fadeBackground clearText showDescription initiallyCollapsed></#macro> +<#macro renderLookupField name formName fieldFormName className="" alert="false" value="" size="" maxlength="" id="" event="" action="" readonly=false autocomplete="" descriptionFieldName="" targetParameterIter="" imgSrc="" ajaxUrl="" ajaxEnabled=javaScriptEnabled presentation="layer" width="" height="" position="" fadeBackground="true" clearText="" showDescription="" initiallyCollapsed="" lastViewName="main" ></#macro> <#macro renderNextPrev paginateStyle paginateFirstStyle viewIndex highIndex listSize viewSize ajaxEnabled javaScriptEnabled ajaxFirstUrl firstUrl paginateFirstLabel paginatePreviousStyle ajaxPreviousUrl previousUrl paginatePreviousLabel pageLabel ajaxSelectUrl selectUrl ajaxSelectSizeUrl selectSizeUrl commonDisplaying paginateNextStyle ajaxNextUrl nextUrl paginateNextLabel paginateLastStyle ajaxLastUrl lastUrl paginateLastLabel paginateViewSizeLabel></#macro> <#macro renderFileField className alert name value size maxlength autocomplete></#macro> <#macro renderPasswordField className alert name value size maxlength id autocomplete></#macro> @@ -108,7 +108,7 @@ under the License. <#macro renderHyperlinkTitle name title showSelectAll="N"></#macro> <#macro renderSortField style title linkUrl ajaxEnabled></#macro> <#macro formatBoundaryComment boundaryType widgetType widgetName></#macro> -<#macro makeHiddenFormLinkAnchor linkStyle hiddenFormName event action imgSrc description><@renderField description /></#macro> +<#macro makeHiddenFormLinkAnchor linkStyle hiddenFormName event action imgSrc description confirmation><@renderField description /></#macro> <#macro makeHyperlinkString linkStyle hiddenFormName event action imgSrc title alternate linkUrl targetWindow description confirmation><@renderField description /></#macro> <#macro renderTooltip tooltip tooltipStyle></#macro> <#macro renderAsterisks requiredField requiredStyle></#macro> Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/build.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/build.xml?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/build.xml (original) +++ ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/build.xml Mon Jan 9 17:59:01 2012 @@ -41,10 +41,12 @@ under the License. <fileset dir="../../framework/service/build/lib" includes="*.jar"/> <fileset dir="../../framework/minilang/build/lib" includes="*.jar"/> <fileset dir="../../framework/common/build/lib" includes="*.jar"/> + <fileset dir="../../framework/webapp/build/lib" includes="*.jar"/> <fileset dir="../../applications/party/build/lib" includes="*.jar"/> <fileset dir="../../applications/product/build/lib" includes="*.jar"/> <fileset dir="../../applications/marketing/build/lib" includes="*.jar"/> <fileset dir="../../applications/order/build/lib" includes="*.jar"/> <fileset dir="../../applications/accounting/build/lib" includes="*.jar"/> + <fileset dir="../../applications/securityext/build/lib" includes="*.jar"/> </path> </project> Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/config/EcommerceUiLabels.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/config/EcommerceUiLabels.xml?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/config/EcommerceUiLabels.xml (original) +++ ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/config/EcommerceUiLabels.xml Mon Jan 9 17:59:01 2012 @@ -184,6 +184,14 @@ <value xml:lang="zh">æéä¸çæ·»å å°å表ä¸</value> <value xml:lang="zh_TW">æé¸ä¸é ç®å å°å表</value> </property> + <property key="EcommerceAddTags"> + <value xml:lang="en">Add Tags</value> + <value xml:lang="fr">Ajouter une étiquette</value> + </property> + <property key="EcommerceAddTagsDetail"> + <value xml:lang="en">Use spaces to separate tags. Use single quotes(') for phrases.</value> + <value xml:lang="fr">Utiliser un espace pour séparer les étiquettes et des apostrophes pour les phrases.</value> + </property> <property key="EcommerceAdditionalAddresses"> <value xml:lang="da">Ekstra adresser</value> <value xml:lang="de">Zusätzliche Adressen</value> @@ -206,6 +214,10 @@ <value xml:lang="zh">å°åç°¿</value> <value xml:lang="zh_TW">å°åç°¿</value> </property> + <property key="EcommerceAddYourTags"> + <value xml:lang="en">Add your tags</value> + <value xml:lang="fr">Ajouter vos étiquettes</value> + </property> <property key="EcommerceAdjustment"> <value xml:lang="cs">Ãprava</value> <value xml:lang="da">Justering</value> @@ -2565,6 +2577,14 @@ <value xml:lang="zh">产åæ è¯ï¼</value> <value xml:lang="zh_TW">ç¢åID:</value> </property> + <property key="EcommerceProductTags"> + <value xml:lang="en">Product Tags</value> + <value xml:lang="fr">Ãtiquettes</value> + </property> + <property key="EcommerceProductTagsDetail"> + <value xml:lang="en">Other people marked this product with these tags</value> + <value xml:lang="fr">Cette étiquette a déjà été ajoutée pour ce produit</value> + </property> <property key="EcommercePromotionalItems"> <value xml:lang="cs">Reklamnà položka; množstvà nelze zmÄnit</value> <value xml:lang="da">Reklameartikler</value> @@ -3354,6 +3374,10 @@ <value xml:lang="zh">è°æ¥</value> <value xml:lang="zh_TW">調æ¥</value> </property> + <property key="EcommerceTags"> + <value xml:lang="en">Tag Cloud</value> + <value xml:lang="fr">Nuage de mots</value> + </property> <property key="EcommerceTakeSurvey"> <value xml:lang="da">Foretag rundspørge</value> <value xml:lang="de">An Befragung teilnehmen</value> @@ -3955,7 +3979,6 @@ <value xml:lang="zh">è´¦åä¿¡æ¯</value> <value xml:lang="zh_TW">帳å®è³è¨</value> </property> - <value xml:lang="zh_TW">åé¡é é¢</value> <property key="PageTitleChangePassword"> <value xml:lang="cs">ZmÄnit heslo</value> <value xml:lang="da">Skift kodeord</value> @@ -3975,7 +3998,6 @@ <value xml:lang="zh">ä¿®æ¹å¯ç </value> <value xml:lang="zh_TW">ä¿®æ¹å¯ç¢¼</value> </property> - <value xml:lang="zh_TW">çµå¸³é¸é </value> <property key="PageTitleCheckoutReview"> <value xml:lang="cs">OvÄÅovánà objednávky</value> <value xml:lang="da">Gennemse udcheckning</value> @@ -4646,6 +4668,10 @@ <value xml:lang="zh">为éè´§åææç»</value> <value xml:lang="zh_TW">çºé貨åææç´°</value> </property> + <property key="PageTitleTagResults"> + <value xml:lang="en">Tag results</value> + <value xml:lang="fr">Résultats de la recherche par étiquette</value> + </property> <property key="PageTitleViewBlog"> <value xml:lang="da">Vis blog</value> <value xml:lang="de">Blog anzeigen</value> @@ -4706,7 +4732,4 @@ <value xml:lang="zh">æµè§è¯¢ä»·</value> <value xml:lang="zh_TW">çè¦½å ±å¹</value> </property> - <property key="ProductCategories"> - <value xml:lang="en">Product Categories</value> - </property> </resource> Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/config/ecommerce.properties URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/config/ecommerce.properties?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/config/ecommerce.properties (original) +++ ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/config/ecommerce.properties Mon Jan 9 17:59:01 2012 @@ -17,3 +17,29 @@ # under the License. ############################################################################### convertProductPriceCurrency=true + +############################################ +# Janrain Engage +############################################ +#example config +#janrain.apiKey=9640f5bddc863ec419067d4bd07f9d15e45c177f +#janrain.baseUrl=https://ofbizdemo.rpxnow.com +#janrain.appName=ofbizdemo +############################################ + +# -- Enabled janrain engage (Y/ N) default N +janrain.enabled=N + +# -- Janrain api key (secret) +janrain.apiKey= + +# -- Janrain application domain +janrain.baseUrl= + +# -- Janrain application name +janrain.appName= + +# Tag Cloud +tagcloud.min.fontsize = 8 +tagcloud.max.fontsize = 14 +tagcloud.limit = 99 Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/data/DemoProduct.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/data/DemoProduct.xml?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/data/DemoProduct.xml (original) +++ ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/data/DemoProduct.xml Mon Jan 9 17:59:01 2012 @@ -1662,4 +1662,29 @@ under the License. <ProductFacilityLocation productId="RentalShip" facilityId="WebStoreWarehouse" locationSeqId="TLTLTLUL01" minimumStock="5" moveQuantity="20"/> <InventoryItem facilityId="WebStoreWarehouse" inventoryItemId="InventoryRentalShip" inventoryItemTypeId="NON_SERIAL_INV_ITEM" datetimeReceived="2008-08-01 08:00:00.000" productId="RentalShip" ownerPartyId="Company" currencyUomId="USD" unitCost="2.4"/> <InventoryItemDetail inventoryItemId="InventoryRentalShip" inventoryItemDetailSeqId="0001" effectiveDate="2011-09-01 12:00:00.0" availableToPromiseDiff="10" quantityOnHandDiff="10" accountingQuantityDiff="10"/> + + <!-- Demo product tags --> + <ProductKeyword productId="GZ-1000" keyword="gizmos" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="GZ-1001" keyword="gizmos" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="GZ-2002" keyword="gizmos" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="GZ-2644" keyword="gizmos" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="GZ-5005" keyword="gizmos" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="WG-1111" keyword="red" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="GZ-1004" keyword="red" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="GZ-2644" keyword="red" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="SV-1001" keyword="demonstration" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="SV-1000" keyword="demonstration" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="CFSV1001" keyword="demonstration" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="WG-5569" keyword="widget" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="WG-9943" keyword="widget" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="GZ-1000" keyword="small" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="GZ-2644" keyword="small" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="SV-1001" keyword="service" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="CFSV1001" keyword="service" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="GZ-1000" keyword="tiny" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="GZ-8544" keyword="big" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="WG-9943" keyword="black" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="WG-1111" keyword="chrome" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + <ProductKeyword productId="GZ-1006" keyword="standard" keywordTypeId="KWT_TAG" statusId="KW_APPROVED"/> + </entity-engine-xml> Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/NewCustomer.groovy URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/NewCustomer.groovy?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/NewCustomer.groovy (original) +++ ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/customer/NewCustomer.groovy Mon Jan 9 17:59:01 2012 @@ -16,6 +16,7 @@ * specific language governing permissions and limitations * under the License. */ + import org.ofbiz.base.util.UtilProperties; import org.ofbiz.base.util.UtilMisc; import org.ofbiz.product.store.ProductStoreWorker; @@ -49,3 +50,21 @@ if (previousParams) { previousParams = ""; } context.previousParams = previousParams; + +//the parameters from janrain +userInfoMap = request.getAttribute("userInfoMap"); +if (!userInfoMap) { + userInfoMap = request.getSession().getAttribute("userInfoMap"); +} +if (userInfoMap) { + if (userInfoMap.givenName && userInfoMap.familyName) { + requestParameters.USER_FIRST_NAME = userInfoMap.givenName; + requestParameters.USER_LAST_NAME = userInfoMap.familyName; + } else if (userInfoMap.formatted) { + requestParameters.USER_FIRST_NAME = userInfoMap.formatted; + } + requestParameters.CUSTOMER_EMAIL = userInfoMap.email; + requestParameters.preferredUsername = userInfoMap.preferredUsername; + requestParameters.USERNAME = userInfoMap.preferredUsername; + request.getSession().setAttribute("userInfoMap", userInfoMap); +} Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml (original) +++ ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml Mon Jan 9 17:59:01 2012 @@ -30,12 +30,6 @@ under the License. <handler name="service-multi" type="request" class="org.ofbiz.webapp.event.ServiceMultiEventHandler"/> <handler name="simple" type="request" class="org.ofbiz.webapp.event.SimpleEventHandler"/> <handler name="rome" type="request" class="org.ofbiz.webapp.event.RomeEventHandler"/> - <!-- These event handlers have been deprecated, if you need to send json responses then chain - the json request from this controller after calling your event - <handler name="jsonsimple" type="request" class="org.ofbiz.webapp.event.JSONSimpleEventHandler"/> - <handler name="jsonservice" type="request" class="org.ofbiz.webapp.event.JSONServiceEventHandler"/> - <handler name="jsonjava" type="request" class="org.ofbiz.webapp.event.JSONJavaEventHandler"/> - --> <handler name="jsp" type="view" class="org.ofbiz.webapp.view.JspViewHandler"/> <handler name="http" type="view" class="org.ofbiz.webapp.view.HttpViewHandler"/> @@ -908,6 +902,12 @@ under the License. <response name="success" type="view" value="keywordsearch"/> <response name="none" type="none" value=""/> </request-map> + <request-map uri="tagsearch"> + <security https="false" auth="false"/> + <event type="java" path="org.ofbiz.product.product.ProductSearchSession" invoke="checkDoKeywordOverride"/> + <response name="success" type="view" value="tagsearch"/> + <response name="none" type="none" value=""/> + </request-map> <request-map uri="clearSearchOptionsHistoryList"> <security https="false" auth="false"/> <event type="java" path="org.ofbiz.product.product.ProductSearchSession" invoke="clearSearchOptionsHistoryList"/> @@ -2006,7 +2006,24 @@ under the License. <security https="true" auth="false"/> <response name="success" type="view" value="showShoppingList" save-current-view="true"/> </request-map> - + + <!-- Product Tags --> + <request-map uri="addProductTags"> + <security https="false" auth="false"/> + <event type="java" path="org.ofbiz.product.product.ProductEvents" invoke="addProductTags"/> + <response name="success" type="view-last" save-current-view="true"/> + <response name="error" type="view-last" save-current-view="true"/> + </request-map> + + <!-- ============== Janrain Engage ============== --> + <request-map uri="janrainCheckLogin"> + <security https="true" auth="false"/> + <event type="java" path="org.ofbiz.ecommerce.janrain.JanrainHelper" invoke="janrainCheckLogin"/> + <response name="success" type="view" value="main"/> + <response name="error" type="view" value="login"/> + <response name="userLoginMissing" type="request" value="newcustomer"/> + </request-map> + <!-- End of Request Mappings --> <!-- View Mappings --> @@ -2033,6 +2050,7 @@ under the License. <view-map name="productReview" type="screen" page="component://ecommerce/widget/CatalogScreens.xml#productreview"/> <view-map name="keywordsearch" type="screen" page="component://ecommerce/widget/CatalogScreens.xml#keywordsearch"/> + <view-map name="tagsearch" type="screen" page="component://ecommerce/widget/CatalogScreens.xml#tagsearch"/> <view-map name="advancedsearch" type="screen" page="component://ecommerce/widget/CatalogScreens.xml#advancedsearch"/> <view-map name="tellafriend" type="screen" page="component://ecommerce/widget/CatalogScreens.xml#tellafriend"/> Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl (original) +++ ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl Mon Jan 9 17:59:01 2012 @@ -305,6 +305,17 @@ ${virtualVariantJavaScript?if_exists} } } //]]> +$(function(){ + $('a[id^=productTag_]').click(function(){ + var id = $(this).attr('id'); + var ids = id.split('_'); + var productTagStr = ids[1]; + if (productTagStr) { + $('#productTagStr').val(productTagStr); + $('#productTagsearchform').submit(); + } + }); +}) </script> <#macro showUnavailableVarients> @@ -865,5 +876,44 @@ ${virtualVariantJavaScript?if_exists} </#list> </div> </#if> + <div class="product-tags"> + <p class="titleProductTags"><h3>${uiLabelMap.EcommerceProductTags}</h3></p> + <#if productTags?exists> + <p class="titleAddTags"><strong>${uiLabelMap.EcommerceProductTagsDetail}:</strong></p> + <p> + <ul> + <li> + <#assign no = 0 /> + <#list productTags?keys?sort as productTag> + <#assign tagValue = productTags.get(productTag)?if_exists/> + <#if tagValue?has_content> + <span><a href="javascript:void(0);" id="productTag_${productTag}">${productTag}</a> (${tagValue}) <#if no < (productTags.size() - 1)> | </#if></span> + <#assign no = no + 1 /> + </#if> + </#list> + </li> + </ul> + </p> + </#if> + + <p class="titleAddTags"><strong>${uiLabelMap.EcommerceAddYourTags}:</strong></p> + <p> + <form method="post" action="<@ofbizUrl>addProductTags</@ofbizUrl>" name="addProductTags"> + <input type="hidden" name="productId" value="${product.productId?if_exists}"/> + <input class="inputProductTags" type="text" value="" name="productTags" id="productTags" size="40"/> + <input class="buttonProductTags" type="submit" value="${uiLabelMap.EcommerceAddTags}" name="addTag"/> + </form> + <span>${uiLabelMap.EcommerceAddTagsDetail}</span> + </p> + </div> + <hr /> + <form action="<@ofbizUrl>tagsearch</@ofbizUrl>" method="post" name="productTagsearchform" id="productTagsearchform"> + <input type="hidden" name="keywordTypeId" value="KWT_TAG"/> + <input type="hidden" name="statusId" value="KW_APPROVED"/> + <input type="hidden" name="clearSearch" value="Y"/> + <input type="hidden" name="VIEW_SIZE" value="10"/> + <input type="hidden" name="PAGING" value="Y"/> + <input type="hidden" name="SEARCH_STRING" id="productTagStr"/> + </form> </div> </div> Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/customer/newcustomer.ftl URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/customer/newcustomer.ftl?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/customer/newcustomer.ftl (original) +++ ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/customer/newcustomer.ftl Mon Jan 9 17:59:01 2012 @@ -342,15 +342,22 @@ will generally always be reserved for th <legend><#if getUsername>${uiLabelMap.CommonUsername}</#if></legend> <#if getUsername> <@fieldErrors fieldName="USERNAME"/> - <div class="form-row inline"> - <label for="UNUSEEMAIL"> - <input type="checkbox" class="checkbox" name="UNUSEEMAIL" id="UNUSEEMAIL" value="on" onclick="setEmailUsername();" onfocus="setLastFocused(this);"/> ${uiLabelMap.EcommerceUseEmailAddress} - </label> - </div> + <#if !requestParameters.preferredUsername?has_content> + <div class="form-row inline"> + <label for="UNUSEEMAIL"> + <input type="checkbox" class="checkbox" name="UNUSEEMAIL" id="UNUSEEMAIL" value="on" onclick="setEmailUsername();" onfocus="setLastFocused(this);"/> ${uiLabelMap.EcommerceUseEmailAddress} + </label> + </div> + </#if> <div> <label for="USERNAME">${uiLabelMap.CommonUsername}*</label> - <input type="text" name="USERNAME" id="USERNAME" value="${requestParameters.USERNAME?if_exists}" onfocus="clickUsername();" onchange="changeEmail();"/> + <#if requestParameters.preferredUsername?has_content> + <input type="text" name="showUserName" id="showUserName" value="${requestParameters.USERNAME?if_exists}" disabled="disabled"/> + <input type="hidden" name="USERNAME" id="USERNAME" value="${requestParameters.USERNAME?if_exists}"/> + <#else> + <input type="text" name="USERNAME" id="USERNAME" value="${requestParameters.USERNAME?if_exists}" onfocus="clickUsername();" onchange="changeEmail();"/> + </#if> </div> </#if> </fieldset> Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/login.ftl URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/login.ftl?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/login.ftl (original) +++ ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/webapp/ecommerce/login.ftl Mon Jan 9 17:59:01 2012 @@ -16,35 +16,102 @@ KIND, either express or implied. See th specific language governing permissions and limitations under the License. --> +<#assign janrainEnabled = Static["org.ofbiz.base.util.UtilProperties"].getPropertyValue("ecommerce.properties", "janrain.enabled")> +<#assign appName = Static["org.ofbiz.base.util.UtilProperties"].getPropertyValue("ecommerce.properties", "janrain.appName")> +<#if janrainEnabled == "Y"> +<script type="text/javascript"> +(function() { + if (typeof window.janrain !== 'object') window.janrain = {}; + window.janrain.settings = {}; + + janrain.settings.tokenUrl = '<@ofbizUrl fullPath="true" secure="true">janrainCheckLogin</@ofbizUrl>'; + function isReady() { janrain.ready = true; }; + if (document.addEventListener) { + document.addEventListener("DOMContentLoaded", isReady, false); + } else { + window.attachEvent('onload', isReady); + } + + var e = document.createElement('script'); + e.type = 'text/javascript'; + e.id = 'janrainAuthWidget'; + + if (document.location.protocol === 'https:') { + e.src = 'https://rpxnow.com/js/lib/${appName}/engage.js'; + } else { + e.src = 'http://widget-cdn.rpxnow.com/js/lib/${appName}/engage.js'; + } + + var s = document.getElementsByTagName('script')[0]; + s.parentNode.insertBefore(e, s); +})(); +</script> <h1>${uiLabelMap.CommonLogin}</h1> <div class="screenlet"> <div class="screenlet-title-bar"><h3>${uiLabelMap.CommonRegistered}</h3></div> <div class="screenlet-body"> - <form method="post" action="<@ofbizUrl>login</@ofbizUrl>" name="loginform" class="horizontal"> - <fieldset> - <div> - <label for="userName">${uiLabelMap.CommonUsername}</label> - <input type="text" id="userName" name="USERNAME" value="<#if requestParameters.USERNAME?has_content>${requestParameters.USERNAME}<#elseif autoUserLogin?has_content>${autoUserLogin.userLoginId}</#if>"/> - </div> -<#if autoUserLogin?has_content> - <p>(${uiLabelMap.CommonNot} ${autoUserLogin.userLoginId}? <a href="<@ofbizUrl>${autoLogoutUrl}</@ofbizUrl>">${uiLabelMap.CommonClickHere}</a>)</p> -</#if> - <div> - <label for="password">${uiLabelMap.CommonPassword}:</label> - <input type="password" id="password" name="PASSWORD" value=""/> - </div> - <div> - <input type="submit" class="button" value="${uiLabelMap.CommonLogin}"/> - </div> - <div> - <label for="newcustomer_submit">${uiLabelMap.CommonMayCreateNewAccountHere}:</label> - <a href="<@ofbizUrl>newcustomer</@ofbizUrl>">${uiLabelMap.CommonMayCreate}</a> - </div> - </fieldset> - </form> + <table width="100%" class="Signlogin"> + <tr> + <td> + <form method="post" action="<@ofbizUrl>login</@ofbizUrl>" name="loginform" class="horizontal"> + <fieldset> + <div> + <label for="userName">${uiLabelMap.CommonUsername}</label> + <input type="text" id="userName" name="USERNAME" value="<#if requestParameters.USERNAME?has_content>${requestParameters.USERNAME}<#elseif autoUserLogin?has_content>${autoUserLogin.userLoginId}</#if>"/> + </div> + <#if autoUserLogin?has_content> + <p>(${uiLabelMap.CommonNot} ${autoUserLogin.userLoginId}? <a href="<@ofbizUrl>${autoLogoutUrl}</@ofbizUrl>">${uiLabelMap.CommonClickHere}</a>)</p> + </#if> + <div> + <label for="password">${uiLabelMap.CommonPassword}:</label> + <input type="password" id="password" name="PASSWORD" value=""/> + </div> + <div> + <input type="submit" class="button" value="${uiLabelMap.CommonLogin}"/> + </div> + <div> + <label for="newcustomer_submit">${uiLabelMap.CommonMayCreateNewAccountHere}:</label> + <a href="<@ofbizUrl>newcustomer</@ofbizUrl>">${uiLabelMap.CommonMayCreate}</a> + </div> + </fieldset> + </form> + </td> + <td><div id="janrainEngageEmbed"></div></td> + </tr> + </table> </div> </div> +<#else> +<h1>${uiLabelMap.CommonLogin}</h1> +<div class="screenlet"> + <div class="screenlet-title-bar"><h3>${uiLabelMap.CommonRegistered}</h3></div> + <div class="screenlet-body"> + <form method="post" action="<@ofbizUrl>login</@ofbizUrl>" name="loginform" class="horizontal"> + <fieldset> + <div> + <label for="userName">${uiLabelMap.CommonUsername}</label> + <input type="text" id="userName" name="USERNAME" value="<#if requestParameters.USERNAME?has_content>${requestParameters.USERNAME}<#elseif autoUserLogin?has_content>${autoUserLogin.userLoginId}</#if>"/> + </div> + <#if autoUserLogin?has_content> + <p>(${uiLabelMap.CommonNot} ${autoUserLogin.userLoginId}? <a href="<@ofbizUrl>${autoLogoutUrl}</@ofbizUrl>">${uiLabelMap.CommonClickHere}</a>)</p> + </#if> + <div> + <label for="password">${uiLabelMap.CommonPassword}:</label> + <input type="password" id="password" name="PASSWORD" value=""/> + </div> + <div> + <input type="submit" class="button" value="${uiLabelMap.CommonLogin}"/> + </div> + <div> + <label for="newcustomer_submit">${uiLabelMap.CommonMayCreateNewAccountHere}:</label> + <a href="<@ofbizUrl>newcustomer</@ofbizUrl>">${uiLabelMap.CommonMayCreate}</a> + </div> + </fieldset> + </form> + </div> +</div> +</#if> <div class="screenlet"> <div class="screenlet-title-bar"><h3>${uiLabelMap.CommonForgotYourPassword}</h3></div> Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/widget/CatalogScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/widget/CatalogScreens.xml?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/widget/CatalogScreens.xml (original) +++ ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/widget/CatalogScreens.xml Mon Jan 9 17:59:01 2012 @@ -430,6 +430,29 @@ under the License. </section> </screen> + <screen name="tagsearch"> + <section> + <actions> + <set field="leftbarScreenName" value="leftbar"/> + <set field="rightbarScreenName" value="rightbar"/> + <set field="MainColumnStyle" value="center"/> + + <set field="productsummaryScreen" value="component://ecommerce/widget/CatalogScreens.xml#productsummary"/> + + <set field="titleProperty" value="PageTitleTagResults"/> + <set field="parameters.VIEW_SIZE" from-field="parameters.VIEW_SIZE" default-value="10"/> + <script location="component://order/webapp/ordermgr/WEB-INF/actions/entry/catalog/KeywordSearch.groovy"/> + </actions> + <widgets> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <platform-specific><html><html-template location="component://order/webapp/ordermgr/entry/catalog/tagsearch.ftl"/></html></platform-specific> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> + <screen name="advancedsearch"> <section> <actions> @@ -565,4 +588,16 @@ under the License. </widgets> </section> </screen> + + <screen name="populartags"> + <section> + <actions> + <property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/> + <script location="component://ecommerce/webapp/ecommerce/WEB-INF/actions/catalog/PopularTags.groovy"/> + </actions> + <widgets> + <platform-specific><html><html-template location="component://ecommerce/webapp/ecommerce/catalog/populartags.ftl"/></html></platform-specific> + </widgets> + </section> + </screen> </screens> Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/widget/CommonScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/widget/CommonScreens.xml?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/widget/CommonScreens.xml (original) +++ ofbiz/branches/jackrabbit20100709/specialpurpose/ecommerce/widget/CommonScreens.xml Mon Jan 9 17:59:01 2012 @@ -132,6 +132,7 @@ under the License. <include-screen name="minilastviewedproducts" location="component://ecommerce/widget/CatalogScreens.xml"/> <include-screen name="minilastproductsearches" location="component://ecommerce/widget/CatalogScreens.xml"/> <include-screen name="recentlyviewed" location="component://ecommerce/widget/ContentScreens.xml"/> + <include-screen name="populartags" location="component://ecommerce/widget/CatalogScreens.xml"/> </widgets> </section> </screen> Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/projectmgr/entitydef/entitymodel.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/projectmgr/entitydef/entitymodel.xml?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/specialpurpose/projectmgr/entitydef/entitymodel.xml (original) +++ ofbiz/branches/jackrabbit20100709/specialpurpose/projectmgr/entitydef/entitymodel.xml Mon Jan 9 17:59:01 2012 @@ -191,6 +191,7 @@ under the License. <alias entity-alias="WEP" field="workEffortId" name="projectId"/> <alias entity-alias="WEP" field="workEffortName" name="projectName"/> <alias entity-alias="WEPH" field="workEffortId" name="phaseId"/> + <alias entity-alias="WEPH" field="workEffortTypeId" name="phaseTypeId"/> <alias entity-alias="WEPH" field="sequenceNum" name="phaseSeqNum"/> <alias entity-alias="WEPH" field="workEffortName" name="phaseName"/> <view-link entity-alias="WEP" rel-entity-alias="WEPH"> @@ -208,6 +209,9 @@ under the License. <relation type="many" rel-entity-name="WorkEffortPartyAssignment"> <key-map field-name="workEffortId"/> </relation> + <entity-condition> + <condition-expr field-name="workEffortTypeId" entity-alias="WEPH" value="PHASE"/> + </entity-condition> </view-entity> <view-entity entity-name="ProjectPhaseTaskAndTimeEntryTimeSheet" @@ -283,14 +287,13 @@ under the License. </view-link> </view-entity> - <view-entity entity-name="ProjectPhaseTaskSummaryView" + <view-entity entity-name="ProjectPhaseTaskSklSumView" package-name="org.ofbiz.specialpurpose.project"> <description>Retrieve actual, estimated start and end dates, priority, planned hours</description> <member-entity entity-alias="WEP" entity-name="WorkEffort"/><!--project --> <member-entity entity-alias="WEPH" entity-name="WorkEffort"/><!-- phase --> <member-entity entity-alias="WET" entity-name="WorkEffort"/><!-- task --> - <member-entity entity-alias="TE" entity-name="TimeEntry"/><!-- to get actualStartDate from declared times--> <member-entity entity-alias="SKL" entity-name="WorkEffortSkillStandard"/> <!-- for planned hours --> <alias entity-alias="WEP" field="workEffortId" name="projectId" group-by="true"/> @@ -300,28 +303,50 @@ under the License. <!-- get minimum for start dates --> <alias entity-alias="WET" name="estimatedStartDate" function="min"/> <alias entity-alias="WET" name="actualStartDate" function="min"/> - <alias entity-alias="TE" field="fromDate" name="actualEntryStartDate" function="min"/> <!-- and maximum for completion dates --> <alias entity-alias="WET" name="estimatedCompletionDate" function="max"/> <alias entity-alias="WET" name="actualCompletionDate" function="max"/> - <alias entity-alias="TE" field="fromDate" name="actualEntryCompletionDate" function="max"/> <!-- get the sum of planned and actual hours --> <alias entity-alias="SKL" field="estimatedDuration" name="plannedHours" function="sum"/> <!-- get the minimum priority --> <alias entity-alias="WET" field="priority" name="priority" function="min"/> - <view-link entity-alias="WEP" rel-entity-alias="WEPH" rel-optional="true"> + <view-link entity-alias="WEP" rel-entity-alias="WEPH"> <key-map field-name="workEffortId" rel-field-name="workEffortParentId"/> </view-link> - <view-link entity-alias="WEPH" rel-entity-alias="WET" rel-optional="true"> + <view-link entity-alias="WEPH" rel-entity-alias="WET"> <key-map field-name="workEffortId" rel-field-name="workEffortParentId"/> </view-link> <view-link entity-alias="WET" rel-entity-alias="SKL" rel-optional="true"> <key-map field-name="workEffortId" /> </view-link> - <view-link entity-alias="WET" rel-entity-alias="TE" rel-optional="true"> + </view-entity> + + <view-entity entity-name="ProjectPhaseTaskActualEntrySumView" + package-name="org.ofbiz.specialpurpose.project"> + <description>Retrieve actual, start and end dates from TimeEntries associated</description> + + <member-entity entity-alias="WEP" entity-name="WorkEffort"/><!--project --> + <member-entity entity-alias="WEPH" entity-name="WorkEffort"/><!-- phase --> + <member-entity entity-alias="WET" entity-name="WorkEffort"/><!-- task --> + <member-entity entity-alias="TE" entity-name="TimeEntry"/><!-- to get actualStartDate from declared times--> + + <alias entity-alias="WEP" field="workEffortId" name="projectId" group-by="true"/> + <alias entity-alias="WEPH" field="workEffortId" name="phaseId" group-by="true"/> + <alias entity-alias="WET" field="workEffortId" name="taskId" group-by="true"/> + + <alias entity-alias="TE" field="fromDate" name="actualEntryStartDate" function="min"/> + <alias entity-alias="TE" field="thruDate" name="actualEntryCompletionDate" function="max"/> + + <view-link entity-alias="WEP" rel-entity-alias="WEPH"> + <key-map field-name="workEffortId" rel-field-name="workEffortParentId"/> + </view-link> + <view-link entity-alias="WEPH" rel-entity-alias="WET"> + <key-map field-name="workEffortId" rel-field-name="workEffortParentId"/> + </view-link> + <view-link entity-alias="WET" rel-entity-alias="TE"> <key-map field-name="workEffortId" /> </view-link> </view-entity> @@ -346,13 +371,13 @@ under the License. <alias entity-alias="PR" name="partyId" group-by="true"/> <alias entity-alias="PR" name="percentageUsed" function="max"/> - <view-link entity-alias="WEP" rel-entity-alias="WEPH" rel-optional="true"> + <view-link entity-alias="WEP" rel-entity-alias="WEPH"> <key-map field-name="workEffortId" rel-field-name="workEffortParentId"/> </view-link> - <view-link entity-alias="WEPH" rel-entity-alias="WET" rel-optional="true"> + <view-link entity-alias="WEPH" rel-entity-alias="WET"> <key-map field-name="workEffortId" rel-field-name="workEffortParentId"/> </view-link> - <view-link entity-alias="WET" rel-entity-alias="TE" rel-optional="true"> + <view-link entity-alias="WET" rel-entity-alias="TE"> <key-map field-name="workEffortId" /> </view-link> <view-link entity-alias="TE" rel-entity-alias="TS" rel-optional="true"> @@ -360,9 +385,9 @@ under the License. </view-link> <view-link entity-alias="TE" rel-entity-alias="PR" rel-optional="true"> <key-map field-name="rateTypeId"/> + <key-map field-name="partyId"/> <entity-condition> <condition-list> - <condition-expr entity-alias="TS" field-name="partyId" rel-entity-alias="PR" rel-field-name="partyId"/> <condition-expr entity-alias="PR" field-name="fromDate" operator="less-equals" rel-entity-alias="TE" rel-field-name="fromDate"/> <condition-list combine="or"> <condition-expr entity-alias="PR" field-name="thruDate" operator="equals" value=""/> @@ -406,7 +431,7 @@ under the License. <alias entity-alias="PPAH" name="projectId" group-by="true"/> <alias entity-alias="PPAH" name="phaseId" group-by="true"/> <alias entity-alias="PPAH" name="taskId" group-by="true"/> - <alias entity-alias="PPAH" name="invoiceId" group-by="true"/> + <alias entity-alias="PPAH" name="invoiceId" group-by="true"/> <alias entity-alias="PPAH" name="totalOriginalHours" field="hours" function="sum"/> <entity-condition> Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml (original) +++ ofbiz/branches/jackrabbit20100709/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml Mon Jan 9 17:59:01 2012 @@ -329,7 +329,6 @@ 2. call a recursive java function to set all the dependant tasks. --> - <field-to-result field="parameters.projectId" result-name="projectId"/> <!-- find a starting point being either the estimated start date of a project or the earliest actual start date. --> @@ -426,7 +425,6 @@ </then> </while> - <!-- create the tasklist --> <entity-one entity-name="WorkEffort" value-field="project"> <field-map field-name="workEffortId" from-field="parameters.projectId"/> @@ -843,7 +841,6 @@ <clear-field field="highInfo.sequenceId"/> <set field="highInfo.currentStatusId" from-field="lowInfo.currentStatusId"/> <call-simple-method method-name="createDates"/> - <call-simple-method method-name="getHours" xml-resource="component://workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml"/> <set field="highInfo.workEffortId" from-field="lowInfo.workEffortId"/> <set field="highInfo.workEffortName" from-field="lowInfo.workEffortName"/> <set field="highInfo.sequenceNum" from-field="lowInfo.sequenceNum"/> @@ -915,7 +912,6 @@ <call-simple-method method-name="getHours" xml-resource="component://workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml"/> <set field="projectParty.plannedHours" from-field="highInfo.plannedHours" type="Double"/> <set field="projectParty.actualHours" from-field="highInfo.actualHours" type="Double"/> - </iterate> <if-not-empty field="projectParty"> <field-to-list field="projectParty" list="projectParties"/> @@ -976,7 +972,6 @@ <set field="taskParty.plannedHours" from-field="highInfo.plannedHours" type="Double"/> <set field="taskParty.actualHours" from-field="highInfo.actualHours" type="Double"/> <set field="taskParty.originalActualHours" from-field="highInfo.originalActualHours" type="Double"/> - </iterate> <if-not-empty field="taskParty"> <field-to-list field="taskParty" list="taskParties"/> @@ -997,6 +992,22 @@ IN_PROGRESS if it has at least one resource and at least a time entry ASSIGNED if it has at least one resource but no time entry associated --> + <!-- if lowlevel type equals TASK then get create the status first --> + <if-compare field="lowInfo.workEffortTypeId" value="TASK" operator="equals"> + <set field="highInfo.currentStatusId" from-field="lowInfo.currentStatusId"/> + <if-compare field="lowInfo.currentStatusId" value="PTS_CREATED" operator="equals"> + <get-related value-field="lowInfo" relation-name="WorkEffortPartyAssignment" list="assignsAll"/> + <filter-list-by-date list="assignsAll" to-list="assigns"/> + <if-not-empty field="assigns"> + <set field="highInfo.currentStatusId" value="PTS_CREATED_AS"/><!-- task is ASSIGNED --> + </if-not-empty> + <get-related value-field="lowInfo" relation-name="TimeEntry" list="entries"/> + <if-not-empty field="entries"> + <set field="highInfo.currentStatusId" value="PTS_CREATED_IP"/><!-- task is IN_PROGRESS --> + </if-not-empty> + </if-compare> + <return/> + </if-compare> <entity-count count-field="tasksCount" entity-name="ProjectPhaseTaskAssignmentView"> <condition-list> <condition-expr field-name="projectId" from-field="highInfo.projectId" ignore-if-empty="true"/> @@ -1072,7 +1083,7 @@ </simple-method> <simple-method method-name="combineDatesAndPlannedHoursInfo" short-description="combine lower level start end dates and planned hours for a project, phase or task"> - <entity-condition entity-name="ProjectPhaseTaskSummaryView" list="summaryInfos"> + <entity-condition entity-name="ProjectPhaseTaskSklSumView" list="summaryInfos"> <condition-list> <condition-expr field-name="projectId" from-field="highInfo.projectId" ignore-if-empty="true"/> <condition-expr field-name="phaseId" from-field="highInfo.phaseId" ignore-if-empty="true"/> @@ -1080,15 +1091,14 @@ </condition-list> <select-field field-name="projectId"/> <select-field field-name="estimatedStartDate"/> - <select-field field-name="actualEntryStartDate"/> <select-field field-name="actualStartDate"/> <select-field field-name="estimatedCompletionDate"/> <select-field field-name="actualCompletionDate"/> - <select-field field-name="actualEntryCompletionDate"/> <select-field field-name="plannedHours"/> <select-field field-name="priority"/> </entity-condition> + <!-- Now used TimeEntries to update (or not) actual start and end Date --> <first-from-list entry="summaryInfo" list="summaryInfos"/> <set field="highInfo.estimatedStartDate" from-field="summaryInfo.estimatedStartDate"/> <set field="highInfo.estimatedCompletionDate" from-field="summaryInfo.estimatedCompletionDate"/> @@ -1096,35 +1106,47 @@ <set field="highInfo.actualCompletionDate" from-field="summaryInfo.actualCompletionDate"/> <set field="highInfo.priority" from-field="summaryInfo.priority"/> <set field="highInfo.plannedHours" from-field="summaryInfo.plannedHours"/> - <!-- update actual start date by the min date form sub tasks associated entries + <!-- update actual start date by the min date form sub tasks associated TimeEntries (if before actualStartDate field) --> - <if-not-empty field="summaryInfo.actualEntryStartDate"> + <entity-condition entity-name="ProjectPhaseTaskActualEntrySumView" list="summaryEntriesInfos"> + <condition-list> + <condition-expr field-name="projectId" from-field="highInfo.projectId" ignore-if-empty="true"/> + <condition-expr field-name="phaseId" from-field="highInfo.phaseId" ignore-if-empty="true"/> + <condition-expr field-name="taskId" from-field="highInfo.taskId" ignore-if-empty="true"/> + </condition-list> + <select-field field-name="actualEntryStartDate"/> + <select-field field-name="actualEntryCompletionDate"/> + </entity-condition> + <first-from-list entry="timeEntriesInfo" list="summaryEntriesInfos"/> + <if-not-empty field="timeEntriesInfo"> + <if-not-empty field="timeEntriesInfo.actualEntryStartDate"> <if> <condition> <or> <if-empty field="highInfo.actualStartDate"/> - <if-compare-field field="highInfo.actualStartDate" operator="greater" type="Timestamp" to-field="summaryInfo.actualEntryStartDate"/> + <if-compare-field field="highInfo.actualStartDate" operator="greater" type="Timestamp" to-field="timeEntriesInfo.actualEntryStartDate"/> </or> </condition> <then> - <set field="highInfo.actualStartDate" from-field="summaryInfo.actualEntryStartDate"/> + <set field="highInfo.actualStartDate" from-field="timeEntriesInfo.actualEntryStartDate"/> </then> </if> - </if-not-empty> - <!-- update actual completion date by the max date form sub tasks associated entries - (if after actualCompletionDate field) --> - <if-not-empty field="summaryInfo.actualEntryCompletionDate"> + </if-not-empty> + <!-- update actual completion date by the max date form sub tasks associated TimeEntries + (if after actualCompletionDate field) --> + <if-not-empty field="timeEntriesInfo.actualEntryCompletionDate"> <if> <condition> <or> <if-empty field="highInfo.actualCompletionDate"/> - <if-compare-field field="highInfo.actualCompletionDate" operator="less" type="Timestamp" to-field="summaryInfo.actualEntryCompletionDate"/> + <if-compare-field field="highInfo.actualCompletionDate" operator="less" type="Timestamp" to-field="timeEntriesInfo.actualEntryCompletionDate"/> </or> </condition> <then> - <set field="highInfo.actualCompletionDate" from-field="summaryInfo.actualEntryCompletionDate"/> + <set field="highInfo.actualCompletionDate" from-field="timeEntriesInfo.actualEntryCompletionDate"/> </then> </if> + </if-not-empty> </if-not-empty> </simple-method> @@ -1133,6 +1155,7 @@ <call-simple-method method-name="combineDatesAndPlannedHoursInfo"/> <call-simple-method method-name="combineActualHours"/> </simple-method> + <simple-method method-name="combineActualHours" short-description="combine lower level Actual hours info."> <!-- -to calculate actual hours : the declared number of hours in time entry should be multiplied by the @@ -1140,6 +1163,9 @@ the timesheet associated to this time entry and has the same rateType as this timeEntry -actualHoursOriginal is the total of hours in time entries without application of percentage declared in partyRate --> + <clear-field field="originalHours"/> + <clear-field field="actualHours"/> + <clear-field field="originalActualHours"/> <!-- I- get timeEntries for which there is no rate (originalHours)--> <entity-condition list="notRatedValues" entity-name="ProjectPhaseTaskActualNotRatedHoursView"> @@ -1166,6 +1192,7 @@ <select-field field-name="totalRatedHours"/> </entity-condition> <first-from-list list="ratedValues" entry="ratedValue"/> + <!-- not used ratedValue.totalRatedHours because not works, reason seem to be totalRatedHours is a calculated field ??? --> <call-object-method method-name="getDouble" obj-field="ratedValue" ret-field="actualHours"> <string value="totalRatedHours"/> </call-object-method> @@ -1333,13 +1360,10 @@ </if> </else> </if-empty> - </simple-method> <simple-method method-name="createDates" short-description="merge the estimated and actual dates"> - <!-- input/output is 'highInfo map --> - <!-- create dates taking the last known one to save space on the list --> <if-not-empty field="highInfo.actualStartDate"> <set field="highInfo.startDate" from-field="highInfo.actualStartDate"/> @@ -1543,11 +1567,11 @@ <create-value value-field="newAssign"/> </iterate> <else> - <log level="info" message="No validation parties defined in this project: no validation parties added...."></log> + <log level="info" message="No validation parties defined in this project: no validation parties added...."/> </else> </if-not-empty> <else> - <log level="info" message="Not the last party who completes his task: validation parties not added...."></log> + <log level="info" message="Not the last party who completes his task: validation parties not added...."/> </else> </if-empty> </simple-method> Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/build.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/build.xml?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/build.xml (original) +++ ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/build.xml Mon Jan 9 17:59:01 2012 @@ -31,76 +31,4 @@ <fileset dir="../../framework/webapp/lib" includes="*.jar"/> <fileset dir="../../framework/webapp/build/lib" includes="*.jar"/> </path> - - <!-- ================================================================= --> - <!-- Targets to create patch files --> - <!-- ================================================================= --> - - <target name="create-ofbiz-patches" description="Creates patch for framework, application, specialpurpose components"> - <exec executable="svn" output="patches/framework.patch" dir="${ofbiz.home.dir}"> - <arg value="diff"/> - <arg value="framework"/> - </exec> - <exec executable="svn" output="patches/applications.patch" dir="${ofbiz.home.dir}"> - <arg value="diff"/> - <arg value="applications"/> - </exec> - <exec executable="svn" output="patches/specialpurpose.patch" dir="${ofbiz.home.dir}"> - <arg value="diff"/> - <arg value="specialpurpose"/> - </exec> - </target> - - <target name="revert-ofbiz-patches" description="Remove any local change in the files or any previously applied local patch."> - <exec executable="svn" dir="${ofbiz.home.dir}"> - <arg value="revert"/> - <arg value="-R"/> - <arg value="framework"/> - </exec> - <exec executable="svn" dir="${ofbiz.home.dir}"> - <arg value="revert"/> - <arg value="-R"/> - <arg value="applications"/> - </exec> - <exec executable="svn" dir="${ofbiz.home.dir}"> - <arg value="revert"/> - <arg value="-R"/> - <arg value="specialpurpose"/> - </exec> - </target> - - <target name="apply-ofbiz-patches" description="Apply the patch to framework, application, specialpurpose components."> - <fail message="Patch files not found."> - <condition> - <or> - <not><isset property="component-name"/></not> - <not> - <resourcecount count="3"> - <fileset dir="patches" includes="*.patch"/> - </resourcecount> - </not> - </or> - </condition> - </fail> - <patch strip="0" patchfile="patches/framework.patch" dir="${ofbiz.home.dir}"/> - <patch strip="0" patchfile="patches/applications.patch" dir="${ofbiz.home.dir}"/> - <patch strip="0" patchfile="patches/specialpurpose.patch" dir="${ofbiz.home.dir}"/> - </target> - - <target name="reapply-ofbiz-patches" description="First removes any previously applied patch and then applies the new patch"> - <fail message="Patch files not found."> - <condition> - <or> - <not><isset property="component-name"/></not> - <not> - <resourcecount count="3"> - <fileset dir="patches" includes="*.patch"/> - </resourcecount> - </not> - </or> - </condition> - </fail> - <antcall target="revert-ofbiz-patches"/> - <antcall target="apply-ofbiz-patches"/> - </target> </project> Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/webpos/widget/CatalogScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/webpos/widget/CatalogScreens.xml?rev=1229278&r1=1229277&r2=1229278&view=diff ============================================================================== --- ofbiz/branches/jackrabbit20100709/specialpurpose/webpos/widget/CatalogScreens.xml (original) +++ ofbiz/branches/jackrabbit20100709/specialpurpose/webpos/widget/CatalogScreens.xml Mon Jan 9 17:59:01 2012 @@ -64,7 +64,7 @@ under the License. <actions> <set field="titleProperty" value="PageTitleCategoryPage"/> <script location="component://webpos/webapp/webpos/WEB-INF/actions/catalog/Category.groovy"/> - <script location="component://webpos/webapp/webpos/WEB-INF/actions/catalog/CategoryDetail.groovy"/> + <script location="component://order/webapp/ordermgr/WEB-INF/actions/entry/catalog/CategoryDetail.groovy"/> </actions> <widgets> <container> |
Free forum by Nabble | Edit this page |