OK
For you not to waste your time,
Just a quick example
I have made
1. first insert the following htmx link in the Header.ftl in the theme you
are using
<script src="https://unpkg.com/htmx.org@2.0.3";></script>
2. Controller.xml

<!-- Request Mappings -->
<request-map uri="main">
    <security https="true" auth="true"/>
    <response name="success" type="view" value="main"/>
</request-map>

<request-map uri="sayDate">
    <security https="true" auth="true"/>
    <event type="service" invoke="sayDate"/>
    <response name="success" type="view" value="sayDate"></response>
</request-map>
<!-- View Mappings -->
<view-map name="main" type="screen"
page="component://ofbizFreemarker/widget/OfbizFreemarkerScreens.xml#main"/>

<view-map name="sayDate" type="ftl"
page="component://ofbizFreemarker/templates/say_date.ftl"/>

3. services.xml

<service name="noSyntaxError" engine="interface">
    <description>
        Dummy service to prevent empty files and syntax error - Remove
when the 1st real service will be added here
    </description>
</service>

<service name="sayDate" engine="java"
         location="org.apache.ofbiz.ofbizfreemarker.HtmxServices"
         invoke="sayDate">
    <attribute name="currentDate" type="String" mode="OUT" default-value=""/>
</service>

4. XXXScreens.xml

<screen name="main">
    <section>
        <actions>
            <set field="headerItem" value="main"/><!-- this highlights
the selected menu-item with name "main" -->
        </actions>
        <widgets>
            <decorator-screen name="OfbizFreemarkerCommonDecorator"
location="${parameters.mainDecoratorLocation}">
                <decorator-section name="body">
                    <platform-specific>
                        <html><html-template
location="component://ofbizFreemarker/templates/Main.ftl"/></html>
                    </platform-specific>

                </decorator-section>
            </decorator-screen>
        </widgets>
    </section>
</screen>

5. Main.ftl

<button hx-get="<@ofbizUrl>sayDate</@ofbizUrl>"
hx-target="#responseDiv" hx-swap="outerHTML">
   Say Date
 </button>

 <div id="responseDiv">

 </div>

6. say_date.ftl

<div id="responseDiv">
<h4>${requestAttributes.currentDate}</h4>
</div>

7. That's all.




On Thu, Oct 31, 2024 at 4:42 PM Jacques Le Roux <
jacques.le.r...@les7arts.com> wrote:

> Great,
>
> That sound to confirm again
> https://lists.apache.org/thread/pxoq4484jws79jvw3ct501nt3t26hlyw
>
> We really need to seriously investigate now...
>
> Jacques
>
> Le 31/10/2024 à 14:25, Omar Abdullwahhab a écrit :
> > Hi All.
> >
> > Today I was playing around the client side in OFBIZ,
> > I'm actually not a fan of JS or its frameworks.
> > I tried making a test to replace it with htmx.
> > It was very good and easy to integrate with OFBiz and Freemarker.
> > Please have a look
> > https://htmx.org/docs/
> > I am sure it will be a proven technology for OFBiz.
> > Regards
>


-- 
Omar Abu-Arab
Java Engineer

Reply via email to