You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Scott Gray <sc...@hotwaxmedia.com> on 2014/03/13 03:26:30 UTC

Re: svn commit: r1576891 - in /ofbiz/trunk: applications/content/config/ applications/content/widget/compdoc/ framework/widget/dtd/ framework/widget/src/org/ofbiz/widget/menu/

Hi Jacques,

extra-index means nothing to the casual viewer, I'm not even sure if that's the best name for this (or if this is the best solution).  At the very least though this needs to be documented in the xsd if we ever expect it to be used.  Otherwise it'll end up just being another piece of confusing code that nobody understands.

I don't know why we don't just change this:
> String uniqueItemName = menuItem.getModelMenu().getName() + "_" + menuItem.getName() + "_LF_" + UtilMisc.<String> addToBigDecimalInMap(context, "menuUniqueItemIndex", BigDecimal.ONE);
To generate a string that is guaranteed to be unique.  Why does the form xml need to supply an "extra-index"?

Thanks
Scott

On 13/03/2014, at 9:37 AM, jleroux@apache.org wrote:

> Author: jleroux
> Date: Wed Mar 12 20:37:56 2014
> New Revision: 1576891
> 
> URL: http://svn.apache.org/r1576891
> Log:
> A slightly modified patch from Rong Nguyen for "Render multiMenu problem when linktype="hidden-form"" https://issues.apache.org/jira/browse/OFBIZ-5557
> 
> Scenario:
> 1. Go to Content webapp
> 2. Go to CompDoc menuitem
> 3. Search
> 4. Go to 'Tree' view
> 5. We can not use 'Up' and 'Down' function
> 
> When menu with linktype="hidden-form" was render for each menu, they has the same name for form element, so it cause error.
> My solution is add extra attribute(extra-index) for Menu, and then in menu definition we provide this attribute and the forms with different name will be rendered.
> My implement was tested in this bug for Content webapp
> 
> jleroux: I have simply amended the up and down labels to have them more legible. I'd have preferred to not have all uppercased, but ran out of time for such a trivial change
> 
> Modified:
>    ofbiz/trunk/applications/content/config/ContentUiLabels.xml
>    ofbiz/trunk/applications/content/widget/compdoc/CompDocMenus.xml
>    ofbiz/trunk/framework/widget/dtd/widget-menu.xsd
>    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/MacroMenuRenderer.java
>    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java
> 
> Modified: ofbiz/trunk/applications/content/config/ContentUiLabels.xml
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/config/ContentUiLabels.xml?rev=1576891&r1=1576890&r2=1576891&view=diff
> ==============================================================================
> --- ofbiz/trunk/applications/content/config/ContentUiLabels.xml (original)
> +++ ofbiz/trunk/applications/content/config/ContentUiLabels.xml Wed Mar 12 20:37:56 2014
> @@ -704,15 +704,15 @@
>         <value xml:lang="zh_TW">合成文檔當前範本</value>
>     </property>
>     <property key="ContentCompDocDown">
> -        <value xml:lang="da">vNed</value>
> -        <value xml:lang="en">vDn</value>
> -        <value xml:lang="fr">vBas</value>
> -        <value xml:lang="it">vGiù</value>
> -        <value xml:lang="ja">v下</value>
> -        <value xml:lang="pt">vDn</value>
> -        <value xml:lang="vi">Tải về (vDn)</value>
> -        <value xml:lang="zh">v下</value>
> -        <value xml:lang="zh_TW">v下</value>
> +        <value xml:lang="da">v Ned</value>
> +        <value xml:lang="en">v Dn</value>
> +        <value xml:lang="fr">v Bas</value>
> +        <value xml:lang="it">v Giù</value>
> +        <value xml:lang="ja">v 下</value>
> +        <value xml:lang="pt">v Dn</value>
> +        <value xml:lang="vi">Tải về (v Dn)</value>
> +        <value xml:lang="zh">v 下</value>
> +        <value xml:lang="zh_TW">v 下</value>
>     </property>
>     <property key="ContentCompDocGeneratePDF">
>         <value xml:lang="da">Generer sammensat PDF</value>
> @@ -832,15 +832,15 @@
>         <value xml:lang="zh_TW">合成文檔範本名稱</value>
>     </property>
>     <property key="ContentCompDocUp">
> -        <value xml:lang="da">^Op</value>
> -        <value xml:lang="en">^Up</value>
> -        <value xml:lang="fr">^Haut</value>
> -        <value xml:lang="it">^Sù</value>
> -        <value xml:lang="ja">^上</value>
> -        <value xml:lang="pt">^Cima</value>
> -        <value xml:lang="vi">Tải lên (^Up)</value>
> -        <value xml:lang="zh">^上</value>
> -        <value xml:lang="zh_TW">^上</value>
> +        <value xml:lang="da">^ Op</value>
> +        <value xml:lang="en">^ Up</value>
> +        <value xml:lang="fr">^ Haut</value>
> +        <value xml:lang="it">^ Sù</value>
> +        <value xml:lang="ja">^ 上</value>
> +        <value xml:lang="pt">^ Cima</value>
> +        <value xml:lang="vi">Tải lên (^ Up)</value>
> +        <value xml:lang="zh">^ 上</value>
> +        <value xml:lang="zh_TW">^ 上</value>
>     </property>
>     <property key="ContentCompDocViewInstances">
>         <value xml:lang="da">Se instanser</value>
> 
> Modified: ofbiz/trunk/applications/content/widget/compdoc/CompDocMenus.xml
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/widget/compdoc/CompDocMenus.xml?rev=1576891&r1=1576890&r2=1576891&view=diff
> ==============================================================================
> --- ofbiz/trunk/applications/content/widget/compdoc/CompDocMenus.xml (original)
> +++ ofbiz/trunk/applications/content/widget/compdoc/CompDocMenus.xml Wed Mar 12 20:37:56 2014
> @@ -162,7 +162,7 @@ under the License.
>             -->
>     </menu>
> 
> -    <menu name="childTemplateLine" menu-container-style="button-bar button-style-1" default-menu-item-name="content" selected-menuitem-context-field-name="currentMenuItemName" title="" type="simple">
> +    <menu extra-index="${contentId}" name="childTemplateLine" menu-container-style="button-bar button-style-1" default-menu-item-name="content" selected-menuitem-context-field-name="currentMenuItemName" title="" type="simple">
>         <menu-item name="edit-inplace" title="${contentName} [${contentId}]">
>             <link target="EditChildCompDoc">
>                 <parameter param-name="contentId"/>
> 
> Modified: ofbiz/trunk/framework/widget/dtd/widget-menu.xsd
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/dtd/widget-menu.xsd?rev=1576891&r1=1576890&r2=1576891&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/widget/dtd/widget-menu.xsd (original)
> +++ ofbiz/trunk/framework/widget/dtd/widget-menu.xsd Wed Mar 12 20:37:56 2014
> @@ -49,6 +49,7 @@ under the License.
>             <xs:attribute type="xs:string" name="default-tooltip-style" />
>             <xs:attribute type="xs:string" name="default-selected-style" />
>             <xs:attribute type="xs:string" name="default-align-style" />
> +            <xs:attribute type="xs:string" name="extra-index" />
>             <xs:attribute name="orientation" default="horizontal">
>                 <xs:simpleType>
>                     <xs:restriction base="xs:token">
> 
> Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/MacroMenuRenderer.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/MacroMenuRenderer.java?rev=1576891&r1=1576890&r2=1576891&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/MacroMenuRenderer.java (original)
> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/MacroMenuRenderer.java Wed Mar 12 20:37:56 2014
> @@ -202,6 +202,9 @@ public class MacroMenuRenderer implement
>         parameters.put("text", link.getText(context));
>         parameters.put("targetWindow", link.getTargetWindow(context));
>         String uniqueItemName = menuItem.getModelMenu().getName() + "_" + menuItem.getName() + "_LF_" + UtilMisc.<String> addToBigDecimalInMap(context, "menuUniqueItemIndex", BigDecimal.ONE);
> +        if(menuItem.getModelMenu().getExtraIndex(context) != null){
> +			uniqueItemName += "_" + menuItem.getModelMenu().getExtraIndex(context);
> +		}
>         parameters.put("uniqueItemName", uniqueItemName);
>         String linkType = "";
>         if (UtilValidate.isNotEmpty(target)) {
> 
> Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java?rev=1576891&r1=1576890&r2=1576891&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java (original)
> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenu.java Wed Mar 12 20:37:56 2014
> @@ -73,6 +73,7 @@ public class ModelMenu extends ModelWidg
>     protected String defaultAlign;
>     protected String defaultAlignStyle;
>     protected String fillStyle;
> +    protected FlexibleStringExpander extraIndex;
> 
>     /** This List will contain one copy of each item for each item name in the order
>      * they were encountered in the service, entity, or menu definition; item definitions
> @@ -158,6 +159,7 @@ public class ModelMenu extends ModelWidg
>                 this.defaultAlign = parent.defaultAlign;
>                 this.defaultAlignStyle = parent.defaultAlignStyle;
>                 this.fillStyle = parent.fillStyle;
> +                this.extraIndex = parent.extraIndex;
>                 this.selectedMenuItemContextFieldName = parent.selectedMenuItemContextFieldName;
>                 this.menuContainerStyleExdr = parent.menuContainerStyleExdr;
>                 if (parent.actions != null) {
> @@ -225,6 +227,8 @@ public class ModelMenu extends ModelWidg
>             this.defaultAlignStyle = menuElement.getAttribute("default-align-style");
>         if (this.fillStyle == null || menuElement.hasAttribute("fill-style"))
>             this.fillStyle = menuElement.getAttribute("fill-style");
> +		if (this.extraIndex == null || menuElement.hasAttribute("extra-index"))
> +            this.setExtraIndex(menuElement.getAttribute("extra-index"));
> 
>         // read all actions under the "actions" element
>         Element actionsElement = UtilXml.firstChildElement(menuElement, "actions");
> @@ -659,5 +663,15 @@ public class ModelMenu extends ModelWidg
>     public List<ModelMenuItem> getMenuItemList() {
>         return menuItemList;
>     }
> +	public String getExtraIndex(Map<String, Object> context) {
> +        try {
> +            return extraIndex.expandString(context);
> +        } catch (Exception ex) {
> +            return "";
> +        }
> +    }
> 
> +    public void setExtraIndex(String extraIndex) {
> +        this.extraIndex = FlexibleStringExpander.getInstance(extraIndex);
> +    }
> }
> 
> 


Re: svn commit: r1576891 - in /ofbiz/trunk: applications/content/config/ applications/content/widget/compdoc/ framework/widget/dtd/ framework/widget/src/org/ofbiz/widget/menu/

Posted by Jacques Le Roux <ja...@les7arts.com>.
Hi Scott, Rong,

I agree that the XSD should be at least documented.
If we could get rid of it it would be even better indeed.
Rong could you check using a somehow generated uniqueItemName would be enough for js to distinguish the menu item?

Thanks

Jacques

Le 13/03/2014 04:31, Scott Gray a écrit :
> Hi Rong,
>
> That may well be true.  I assume the menu and item names are included so that javascript can find the elements easily.  But that ability mostly disappears when "UtilMisc.<String> addToBigDecimalInMap(context, "menuUniqueItemIndex", BigDecimal.ONE);" got added to the mix.  So I'm not sure what the point is, but then I haven't looked closely at all of the related code.
>
> Regards
> Scott
>
> p.s. please consider subscribing to the lists rather than using nabble, it has the bad habit of stripping the context of the email
>
> On 13/03/2014, at 3:49 PM, Rong Nguyen wrote:
>
>> Hi Scott,
>> If we can "generate a string that is guaranteed to be unique", we can just
>> assign:
>>> String uniqueItemName = new_String_generated_by_new_method;
>> and don't need to include: menuItem.getModelMenu().getName() + "_" +
>> menuItem.getName()
>>
>>
>>
>> -----
>> Rong Nguyen
>>
>> Olbius JSC
>> Deliver highest business value
>> http://www.olbius.com/
>> --
>> View this message in context: http://ofbiz.135035.n4.nabble.com/Re-svn-commit-r1576891-in-ofbiz-trunk-applications-content-config-applications-content-widget-compdo-tp4649225p4649226.html
>> Sent from the OFBiz - Dev mailing list archive at Nabble.com.
>
>

Re: svn commit: r1576891 - in /ofbiz/trunk: applications/content/config/ applications/content/widget/compdoc/ framework/widget/dtd/ framework/widget/src/org/ofbiz/widget/menu/

Posted by Scott Gray <sc...@hotwaxmedia.com>.
Hi Rong,

That may well be true.  I assume the menu and item names are included so that javascript can find the elements easily.  But that ability mostly disappears when "UtilMisc.<String> addToBigDecimalInMap(context, "menuUniqueItemIndex", BigDecimal.ONE);" got added to the mix.  So I'm not sure what the point is, but then I haven't looked closely at all of the related code.

Regards
Scott

p.s. please consider subscribing to the lists rather than using nabble, it has the bad habit of stripping the context of the email

On 13/03/2014, at 3:49 PM, Rong Nguyen wrote:

> Hi Scott,
> If we can "generate a string that is guaranteed to be unique", we can just
> assign:
>> String uniqueItemName = new_String_generated_by_new_method;
> and don't need to include: menuItem.getModelMenu().getName() + "_" +
> menuItem.getName() 
> 
> 
> 
> -----
> Rong Nguyen
> 
> Olbius JSC
> Deliver highest business value
> http://www.olbius.com/
> --
> View this message in context: http://ofbiz.135035.n4.nabble.com/Re-svn-commit-r1576891-in-ofbiz-trunk-applications-content-config-applications-content-widget-compdo-tp4649225p4649226.html
> Sent from the OFBiz - Dev mailing list archive at Nabble.com.


Re: svn commit: r1576891 - in /ofbiz/trunk: applications/content/config/ applications/content/widget/compdoc/ framework/widget/dtd/ framework/widget/src/org/ofbiz/widget/menu/

Posted by Rong Nguyen <ro...@olbius.com>.
Hi Scott,
If we can "generate a string that is guaranteed to be unique", we can just
assign:
>  String uniqueItemName = new_String_generated_by_new_method;
and don't need to include: menuItem.getModelMenu().getName() + "_" +
menuItem.getName() 



-----
Rong Nguyen

Olbius JSC
Deliver highest business value
http://www.olbius.com/
--
View this message in context: http://ofbiz.135035.n4.nabble.com/Re-svn-commit-r1576891-in-ofbiz-trunk-applications-content-config-applications-content-widget-compdo-tp4649225p4649226.html
Sent from the OFBiz - Dev mailing list archive at Nabble.com.