[jira] [Commented] (OFBIZ-7061) Autocompletion for Compound Widget

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (OFBIZ-7061) Autocompletion for Compound Widget

Nicolas Malin (Jira)

    [ https://issues.apache.org/jira/browse/OFBIZ-7061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15344512#comment-15344512 ]

james yong commented on OFBIZ-7061:
-----------------------------------

Hi [~jacques.le.roux],

Was also looking at this issue. The "field" attribute is actually a tag directly under the schema tag in the xsd. Such kind of attribute needs to be prefixed in the xml. For example, from ExampleCompoundWidgets.xml, we have on line 117
{code}
<sm:log message="CompoundWidgetsFunc runs" sm:level="info"/>
{code}
The 'level' attribute is also a direct tag under the schema tag in the xsd.

So the proposed change from
{code}
xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method http://ofbiz.apache.org/dtds/simple-methods.xsd"
{code}
to
{code}
xsi:schemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd"
{code}
circumvents the prefix requirement, but introduce another problem :(

I found that the proposed change will result in the default value not being recognised. For example, in
{code}
<simple-method method-name="validateCustomerInfo" ...
...
<validate-method method="isEmail">...
{code}
the validate-method tag has a default value for the 'class' attribute.
If we go to Party module and create a customer. The email field will fail after form submission because the default value for 'class' attribute is not found.

I see there are now 2 possible solutions:
1) Add the prefix to the affected attributes in the simple methods. But the change is great.
2) Revert the simple method to use the original schema without namespace



> Autocompletion for Compound Widget
> ----------------------------------
>
>                 Key: OFBIZ-7061
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-7061
>             Project: OFBiz
>          Issue Type: Improvement
>          Components: framework
>    Affects Versions: Trunk
>            Reporter: james yong
>            Assignee: Jacques Le Roux
>            Priority: Minor
>             Fix For: Upcoming Branch
>
>         Attachments: OFBIZ-7061.patch, OFBIZ-7061.patch, OFBIZ-7061.patch
>
>
> I am trying to enable auto-completion when coding compound widget.
> My plan as follows:
> 1. The following xsd will be modified to use namespace
> site-conf.xsd
> widget-form.xsd
> widget-screen.xsd
> widget-menu.xsd
> simple-methods.xsd
> For example, in site-conf.xsd, we add the following document level attribute
> {code}
> xmlns="http://ofbiz.apache.org/sc" targetNamespace="http://ofbiz.apache.org/sc"
> {code}
> 2. Import the above schema into compound-widgets.xsd so that compound widgets use only one consolidated schema.
> 3. Update ExampleCompoundWidgets.xml to use the new compound-widgets.xsd. For example
> {code}
> <compound-widgets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>         xmlns:sc="http://ofbiz.apache.org/sc"
>         xmlns:m="http://ofbiz.apache.org/m"
>         xmlns:s="http://ofbiz.apache.org/s"
>         xmlns:f="http://ofbiz.apache.org/f"
>         xmlns:sm="http://ofbiz.apache.org/sm"
>         xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/compound-widgets.xsd">
>     <site-conf>
>         <sc:request-map uri="CompoundWidgets1">
>             <sc:security https="true" auth="true"/>
>             <sc:event type="simple" invoke="CompoundWidgetsFunc" path="component://example/widget/example/ExampleCompoundWidgets.xml"/>
>             <sc:response name="success" type="view" value="CompoundWidgets1"/>
>         </sc:request-map>
>         <sc:request-map uri="CompoundWidgets2"><sc:security https="true" auth="true"/><sc:response name="success" type="view" value="CompoundWidgets2"/></sc:request-map>
>        
>         <sc:view-map name="CompoundWidgets1" type="screen" page="component://example/widget/example/ExampleCompoundWidgets.xml#CompoundWidgets1"/>
>         <sc:view-map name="CompoundWidgets2" type="screen" page="component://example/widget/example/ExampleCompoundWidgets.xml#CompoundWidgets2"/>
>     </site-conf>
> ...... the rest
> {code}
> 4. Change java code to support reading xml with namespace (i.e. xml for compound widgets)
> 5. Update the attributes at document level for rest of the controllers, menus, forms, simple methods and screens. Current setting will not work for schema with a namespace. For example, in controller.xml, we will change
> {code}
> xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/site-conf.xsd”
> {code}
> to
> {code}
> xmlns="http://ofbiz.apache.org/sc” xsi:schemaLocation="http://ofbiz.apache.org/dtds/site-conf-ns.xsd”>
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)