new <script-template> widget

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

new <script-template> widget

James Yong-2
Hi all,

Propose a new <script-template> widget tag that adds an external script inside html head tag, or after body tag. The external script will contain the rendered result of the specified template file location.
e.g.
<platform-specific>
        <html>
                <script-template location="component://order/template/quote/test.ftl” placement=“head”/>

will render as:
<html>
        <head>
        …
                <script src=“/ordermgr/control/js/<some random file name>.js” type="application/javascript"/>
        </head>

This will allow inline script from a freemarker file, to be rendered as external script in html.

Regards,
James
Reply | Threaded
Open this post in threaded view
|

Re: new &lt;script-template> widget

James Yong-2
Hi all,

I have created a JIRA issue for this, i.e. OFBIZ-11686.
Decided not to have a placement attribute because script will always be placed after body tag.

Regards,
James

On 2020/05/07 11:48:32, James Yong <[hidden email]> wrote:

> Hi all,
>
> Propose a new <script-template> widget tag that adds an external script inside html head tag, or after body tag. The external script will contain the rendered result of the specified template file location.
> e.g.
> <platform-specific>
> <html>
> <script-template location="component://order/template/quote/test.ftl” placement=“head”/>
>
> will render as:
> <html>
> <head>
> …
> <script src=“/ordermgr/control/js/<some random file name>.js” type="application/javascript"/>
> </head>
>
> This will allow inline script from a freemarker file, to be rendered as external script in html.
>
> Regards,
> James
>
Reply | Threaded
Open this post in threaded view
|

Re: new &lt;script-template> widget

Michael Brohl-3
Hi James,

can you explain the purpose of this? Why not just use a JavaScript file
and a decorator?

Thanks,

Michael Brohl

ecomify GmbH - www.ecomify.de


Am 10.05.20 um 06:53 schrieb James Yong:

> Hi all,
>
> I have created a JIRA issue for this, i.e. OFBIZ-11686.
> Decided not to have a placement attribute because script will always be placed after body tag.
>
> Regards,
> James
>
> On 2020/05/07 11:48:32, James Yong <[hidden email]> wrote:
>> Hi all,
>>
>> Propose a new <script-template> widget tag that adds an external script inside html head tag, or after body tag. The external script will contain the rendered result of the specified template file location.
>> e.g.
>> <platform-specific>
>> <html>
>> <script-template location="component://order/template/quote/test.ftl” placement=“head”/>
>>
>> will render as:
>> <html>
>> <head>
>> …
>> <script src=“/ordermgr/control/js/<some random file name>.js” type="application/javascript"/>
>> </head>
>>
>> This will allow inline script from a freemarker file, to be rendered as external script in html.
>>
>> Regards,
>> James
>>


smime.p7s (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: new &lt;script-template> widget

James Yong-2
Hi Michael,

There are CSP errors being logged in the browser console, due to the use of inline javascripts.

The proposed method allow us to:
1. convert the inline javascripts into external scripts for better CSP compliance.
2. use freemarker macros in the scripts.
3. place the extracted javascript in the same directory as the original freemarker template file, to save time locating and editing the 2 related files.

Regards,
James

On 2020/05/10 09:53:47, Michael Brohl <[hidden email]> wrote:

> Hi James,
>
> can you explain the purpose of this? Why not just use a JavaScript file
> and a decorator?
>
> Thanks,
>
> Michael Brohl
>
> ecomify GmbH - www.ecomify.de
>
>
> Am 10.05.20 um 06:53 schrieb James Yong:
> > Hi all,
> >
> > I have created a JIRA issue for this, i.e. OFBIZ-11686.
> > Decided not to have a placement attribute because script will always be placed after body tag.
> >
> > Regards,
> > James
> >
> > On 2020/05/07 11:48:32, James Yong <[hidden email]> wrote:
> >> Hi all,
> >>
> >> Propose a new <script-template> widget tag that adds an external script inside html head tag, or after body tag. The external script will contain the rendered result of the specified template file location.
> >> e.g.
> >> <platform-specific>
> >> <html>
> >> <script-template location="component://order/template/quote/test.ftl” placement=“head”/>
> >>
> >> will render as:
> >> <html>
> >> <head>
> >> …
> >> <script src=“/ordermgr/control/js/<some random file name>.js” type="application/javascript"/>
> >> </head>
> >>
> >> This will allow inline script from a freemarker file, to be rendered as external script in html.
> >>
> >> Regards,
> >> James
> >>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: new &lt;script-template> widget

Jacques Le Roux
Administrator
Hi James,

I  know it's not all of them as you already mentioned. But could not some these of these scripts be handled by Require.js?

Jacques

Le 10/05/2020 à 14:32, James Yong a écrit :

> Hi Michael,
>
> There are CSP errors being logged in the browser console, due to the use of inline javascripts.
>
> The proposed method allow us to:
> 1. convert the inline javascripts into external scripts for better CSP compliance.
> 2. use freemarker macros in the scripts.
> 3. place the extracted javascript in the same directory as the original freemarker template file, to save time locating and editing the 2 related files.
>
> Regards,
> James
>
> On 2020/05/10 09:53:47, Michael Brohl <[hidden email]> wrote:
>> Hi James,
>>
>> can you explain the purpose of this? Why not just use a JavaScript file
>> and a decorator?
>>
>> Thanks,
>>
>> Michael Brohl
>>
>> ecomify GmbH - www.ecomify.de
>>
>>
>> Am 10.05.20 um 06:53 schrieb James Yong:
>>> Hi all,
>>>
>>> I have created a JIRA issue for this, i.e. OFBIZ-11686.
>>> Decided not to have a placement attribute because script will always be placed after body tag.
>>>
>>> Regards,
>>> James
>>>
>>> On 2020/05/07 11:48:32, James Yong <[hidden email]> wrote:
>>>> Hi all,
>>>>
>>>> Propose a new <script-template> widget tag that adds an external script inside html head tag, or after body tag. The external script will contain the rendered result of the specified template file location.
>>>> e.g.
>>>> <platform-specific>
>>>> <html>
>>>> <script-template location="component://order/template/quote/test.ftl” placement=“head”/>
>>>>
>>>> will render as:
>>>> <html>
>>>> <head>
>>>> …
>>>> <script src=“/ordermgr/control/js/<some random file name>.js” type="application/javascript"/>
>>>> </head>
>>>>
>>>> This will allow inline script from a freemarker file, to be rendered as external script in html.
>>>>
>>>> Regards,
>>>> James
>>>>
>>
Reply | Threaded
Open this post in threaded view
|

Re: new &lt;script-template> widget

James Yong-2
Hi Jacques,

I think having RequireJs for loading dependencies, can go in another JIRA issue.
It requires us to change the way Javascript coding is done.

Regards,
James

On 2020/05/10 12:58:49, Jacques Le Roux <[hidden email]> wrote:

> Hi James,
>
> I  know it's not all of them as you already mentioned. But could not some these of these scripts be handled by Require.js?
>
> Jacques
>
> Le 10/05/2020 à 14:32, James Yong a écrit :
> > Hi Michael,
> >
> > There are CSP errors being logged in the browser console, due to the use of inline javascripts.
> >
> > The proposed method allow us to:
> > 1. convert the inline javascripts into external scripts for better CSP compliance.
> > 2. use freemarker macros in the scripts.
> > 3. place the extracted javascript in the same directory as the original freemarker template file, to save time locating and editing the 2 related files.
> >
> > Regards,
> > James
> >
> > On 2020/05/10 09:53:47, Michael Brohl <[hidden email]> wrote:
> >> Hi James,
> >>
> >> can you explain the purpose of this? Why not just use a JavaScript file
> >> and a decorator?
> >>
> >> Thanks,
> >>
> >> Michael Brohl
> >>
> >> ecomify GmbH - www.ecomify.de
> >>
> >>
> >> Am 10.05.20 um 06:53 schrieb James Yong:
> >>> Hi all,
> >>>
> >>> I have created a JIRA issue for this, i.e. OFBIZ-11686.
> >>> Decided not to have a placement attribute because script will always be placed after body tag.
> >>>
> >>> Regards,
> >>> James
> >>>
> >>> On 2020/05/07 11:48:32, James Yong <[hidden email]> wrote:
> >>>> Hi all,
> >>>>
> >>>> Propose a new <script-template> widget tag that adds an external script inside html head tag, or after body tag. The external script will contain the rendered result of the specified template file location.
> >>>> e.g.
> >>>> <platform-specific>
> >>>> <html>
> >>>> <script-template location="component://order/template/quote/test.ftl” placement=“head”/>
> >>>>
> >>>> will render as:
> >>>> <html>
> >>>> <head>
> >>>> …
> >>>> <script src=“/ordermgr/control/js/<some random file name>.js” type="application/javascript"/>
> >>>> </head>
> >>>>
> >>>> This will allow inline script from a freemarker file, to be rendered as external script in html.
> >>>>
> >>>> Regards,
> >>>> James
> >>>>
> >>
>
Reply | Threaded
Open this post in threaded view
|

Re: new &lt;script-template> widget

Jacques Le Roux
Administrator
Hi James,

Yes, it already exists. Unfortunately for years as it's a major change.

https://issues.apache.org/jira/browse/OFBIZ-9976

It will be interesting to see if after your proposed effort much work remains for require.js. It could be then done...

Jacques

Le 11/05/2020 à 12:21, James Yong a écrit :

> Hi Jacques,
>
> I think having RequireJs for loading dependencies, can go in another JIRA issue.
> It requires us to change the way Javascript coding is done.
>
> Regards,
> James
>
> On 2020/05/10 12:58:49, Jacques Le Roux <[hidden email]> wrote:
>> Hi James,
>>
>> I  know it's not all of them as you already mentioned. But could not some these of these scripts be handled by Require.js?
>>
>> Jacques
>>
>> Le 10/05/2020 à 14:32, James Yong a écrit :
>>> Hi Michael,
>>>
>>> There are CSP errors being logged in the browser console, due to the use of inline javascripts.
>>>
>>> The proposed method allow us to:
>>> 1. convert the inline javascripts into external scripts for better CSP compliance.
>>> 2. use freemarker macros in the scripts.
>>> 3. place the extracted javascript in the same directory as the original freemarker template file, to save time locating and editing the 2 related files.
>>>
>>> Regards,
>>> James
>>>
>>> On 2020/05/10 09:53:47, Michael Brohl <[hidden email]> wrote:
>>>> Hi James,
>>>>
>>>> can you explain the purpose of this? Why not just use a JavaScript file
>>>> and a decorator?
>>>>
>>>> Thanks,
>>>>
>>>> Michael Brohl
>>>>
>>>> ecomify GmbH - www.ecomify.de
>>>>
>>>>
>>>> Am 10.05.20 um 06:53 schrieb James Yong:
>>>>> Hi all,
>>>>>
>>>>> I have created a JIRA issue for this, i.e. OFBIZ-11686.
>>>>> Decided not to have a placement attribute because script will always be placed after body tag.
>>>>>
>>>>> Regards,
>>>>> James
>>>>>
>>>>> On 2020/05/07 11:48:32, James Yong <[hidden email]> wrote:
>>>>>> Hi all,
>>>>>>
>>>>>> Propose a new <script-template> widget tag that adds an external script inside html head tag, or after body tag. The external script will contain the rendered result of the specified template file location.
>>>>>> e.g.
>>>>>> <platform-specific>
>>>>>> <html>
>>>>>> <script-template location="component://order/template/quote/test.ftl” placement=“head”/>
>>>>>>
>>>>>> will render as:
>>>>>> <html>
>>>>>> <head>
>>>>>> …
>>>>>> <script src=“/ordermgr/control/js/<some random file name>.js” type="application/javascript"/>
>>>>>> </head>
>>>>>>
>>>>>> This will allow inline script from a freemarker file, to be rendered as external script in html.
>>>>>>
>>>>>> Regards,
>>>>>> James
>>>>>>
Reply | Threaded
Open this post in threaded view
|

Re: new &lt;script-template> widget

James Yong-2
Hi all,

While extracting the scripts from html-template to script-template and testing the changes,
I found the process to be cumbersome.

So I made a change not to use script-template tag but add a multi-block attribute to html-template tag.
When multi-block=true, inline scripts will be extracted automatically from any script tag and converted to external script.
So no need to extract script from the freemarker template.
Coding for script-template tag is removed

Also upload an updated patch at JIRA for the new change described.

Regards,
James

On 2020/05/11 10:37:11, Jacques Le Roux <[hidden email]> wrote:

> Hi James,
>
> Yes, it already exists. Unfortunately for years as it's a major change.
>
> https://issues.apache.org/jira/browse/OFBIZ-9976
>
> It will be interesting to see if after your proposed effort much work remains for require.js. It could be then done...
>
> Jacques
>
> Le 11/05/2020 à 12:21, James Yong a écrit :
> > Hi Jacques,
> >
> > I think having RequireJs for loading dependencies, can go in another JIRA issue.
> > It requires us to change the way Javascript coding is done.
> >
> > Regards,
> > James
> >
> > On 2020/05/10 12:58:49, Jacques Le Roux <[hidden email]> wrote:
> >> Hi James,
> >>
> >> I  know it's not all of them as you already mentioned. But could not some these of these scripts be handled by Require.js?
> >>
> >> Jacques
> >>
> >> Le 10/05/2020 à 14:32, James Yong a écrit :
> >>> Hi Michael,
> >>>
> >>> There are CSP errors being logged in the browser console, due to the use of inline javascripts.
> >>>
> >>> The proposed method allow us to:
> >>> 1. convert the inline javascripts into external scripts for better CSP compliance.
> >>> 2. use freemarker macros in the scripts.
> >>> 3. place the extracted javascript in the same directory as the original freemarker template file, to save time locating and editing the 2 related files.
> >>>
> >>> Regards,
> >>> James
> >>>
> >>> On 2020/05/10 09:53:47, Michael Brohl <[hidden email]> wrote:
> >>>> Hi James,
> >>>>
> >>>> can you explain the purpose of this? Why not just use a JavaScript file
> >>>> and a decorator?
> >>>>
> >>>> Thanks,
> >>>>
> >>>> Michael Brohl
> >>>>
> >>>> ecomify GmbH - www.ecomify.de
> >>>>
> >>>>
> >>>> Am 10.05.20 um 06:53 schrieb James Yong:
> >>>>> Hi all,
> >>>>>
> >>>>> I have created a JIRA issue for this, i.e. OFBIZ-11686.
> >>>>> Decided not to have a placement attribute because script will always be placed after body tag.
> >>>>>
> >>>>> Regards,
> >>>>> James
> >>>>>
> >>>>> On 2020/05/07 11:48:32, James Yong <[hidden email]> wrote:
> >>>>>> Hi all,
> >>>>>>
> >>>>>> Propose a new <script-template> widget tag that adds an external script inside html head tag, or after body tag. The external script will contain the rendered result of the specified template file location.
> >>>>>> e.g.
> >>>>>> <platform-specific>
> >>>>>> <html>
> >>>>>> <script-template location="component://order/template/quote/test.ftl” placement=“head”/>
> >>>>>>
> >>>>>> will render as:
> >>>>>> <html>
> >>>>>> <head>
> >>>>>> …
> >>>>>> <script src=“/ordermgr/control/js/<some random file name>.js” type="application/javascript"/>
> >>>>>> </head>
> >>>>>>
> >>>>>> This will allow inline script from a freemarker file, to be rendered as external script in html.
> >>>>>>
> >>>>>> Regards,
> >>>>>> James
> >>>>>>
>