Thanks Omar!

Le 31/10/2024 à 15:07, Omar Abdullwahhab a écrit :
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

Reply via email to