Thanks Omar,

Got this error in js console:

   TypeError: Not enough arguments to XPathEvaluator.createExpression.
        htmx< https://unpkg.com/htmx.org@2.0.3:1:23876
        <anonyme> https://unpkg.com/htmx.org@2.0.3:1:10

No ideas what's wrong. I used product as component. I put my patch at 
http://les7arts.com/htmx.patch

BTW, someone know what has replaced https://paste.apache.org ?

TIA

Jacques

Le 31/10/2024 à 15:25, Omar Abdullwahhab a écrit :
Sorry
8. the java service
public class HtmxServices {

     public static Map<String,Object> sayDate(DispatchContext
dispatchContext, Map<String,Object> context){
         var result = ServiceUtil.returnSuccess();
         result.put("currentDate", LocalDateTime.now().toString());
         return result;

     }
}


On Thu, Oct 31, 2024 at 5:07 PM Omar Abdullwahhab <
omar.abdullwah...@gmail.com> wrote:

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