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
>
>

-- 
Omar Abu-Arab
Java Engineer

Reply via email to