RE: Javacsript module problem

Svein-Erik Løken <[email protected]>
Newsgroups gmane.comp.java.tapestry.user
Message-ID <DB6PR08MB268040D3A2E12C65D9BC540DD2AD0@DB6PR08MB2680.eurprd08.prod.outlook.com>
Take a look at the page source in the browser. Tapestry 5.4 loads modules at the end of the page.

A sample of the tapestry way (what I know) to load shim:
In AppModule.java
@Contribute(ModuleManager.class)
public static void setupMyBaseModules(MappedConfiguration<String, Object> configuration,
                                      @Path("META-INF/assets/jacillacore/highcharts/highcharts.src.js") Resource highchartsSrc,
                                      @Path("META-INF/assets/jacillacore/highcharts/highcharts-more.src.js") Resource highchartsMoreSrc) {
    configuration.add("highcharts", new JavaScriptModuleConfiguration(highchartsSrc));
    configuration.add("highchartsMore", new JavaScriptModuleConfiguration(highchartsMoreSrc).dependsOn("highcharts"));
}

I would recommend to use AMD modules instead of inline javascript.

S-E

From: Ric-01 [via Apache Tapestry Mailing List Archives] <[email protected]>
Sent: mandag 26. mars 2018 23:07
To: Svein-Erik Løken <[email protected]>
Subject: Re: Javacsript module problem

Hi Cezary,

first thanks. Yes, it was a mixture of all that, meanwhile I studied the
requirejs documentation strongly and checked out the tapestry5-jquery
project, to learn from it.

And now a lot of things are already working!

A lot in requirejs and AMD semms to be magical and I prefer to do java
coding, but we'll never stop to learn...

Regards, Erich



Am 26.03.2018 17:21, schrieb Cezary Biernacki:

> Hi Erich,
>
> One problem I can see is that function showLoadingIndicator() is not
> exported from define(.., function() { ... }). You should add "return {
> showLoadingIndicator: showLoadingIndicator };" at the end of "function() {
> ... }".
>
> However I believe it will not solve a problem indicated by message
> "Couldn’t resolve classpath asset from path
> META-INF\modules\hotel\loadingIndicatorTrigger.js" (I guess you are on
> Windows, so slashes are translated to slashes, but it should not be an
> issue). It suggests that the JS file is missing. So either it was not
> copied from the source directories to the directories (or JARs) used during
> execution - check your build directories to see if the file is really
> there, if not, than run your build process. Or file name
> "hotel/loadingIndicatorTrigger"
> is misspelled in somewhere.
>
> Cezary
>
>
>
>
>
> On Sun, Mar 25, 2018 at 3:19 PM, Erich Gormann<[hidden email]</user/SendEmail.jtp?type=node&node=5733873&i=0>>  wrote:
>
>> Dear all,
>>
>>  From a java class I load a js module and try to invoke a method in it
>> using the following line:
>>
>> javaScriptSupport.require("hotel/loadingIndicatorTrigger").
>> invoke("showLoadingIndicator");
>>
>> The script file loadingIndicatorTrigger.js is in
>> src/main/resources/META-INF/modules/hotel/loadingIndicatorTrigger.js
>>
>> This is the content of the script:
>> requirejs.config({
>> "shim": {
>> "hotel/globals/jquery.loading.indicator": {
>> deps: ["jquery"]
>> }
>> }
>> });
>>
>> define(["hotel/globals/jquery.loading.indicator"], function() {
>>
>> function showLoadingIndicator() {
>> var homeLoader = jQuery('body').loadingIndicator({
>> useImage: false,
>> }).data("loadingIndicator");
>> homeLoader.show();
>> }
>>
>> });
>>
>> Now the browser console prompts always the following error: "RequireJS
>> error: require: moduleLib is undefined".
>>
>> In my Eclipse I see a warning in above line of java code: "Couldn’t
>> resolve classpath asset from path META-INF\modules\hotel\loading
>> IndicatorTrigger.js"
>>
>> I tried different things like
>> define(["jquery", "hotel/globals/jquery.loading.indicator"], function($) {
>> buterror is always the same.
>>
>> Is there something missing in my configuration or in the applications
>> module class?
>>
>> Thanks for your help!
>>
>>
>> Regards, Erich
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]</user/SendEmail.jtp?type=node&node=5733873&i=1>
>> For additional commands, e-mail: [hidden email]</user/SendEmail.jtp?type=node&node=5733873&i=2>
>>
>>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]</user/SendEmail.jtp?type=node&node=5733873&i=3>
For additional commands, e-mail: [hidden email]</user/SendEmail.jtp?type=node&node=5733873&i=4>


________________________________
If you reply to this email, your message will be added to the discussion below:
http://apache-tapestry-mailing-list-archives.1045711.n5.nabble.com/Javacsript-module-problem-tp5733870p5733873.html
To unsubscribe from [email protected]<mailto:[email protected]> Mailing List Archives, click here<http://apache-tapestry-mailing-list-archives.1045711.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=2375125&code=c3ZlaW5AamFjaWxsYS5ub3wyMzc1MTI1fC0xNTM4NzY2ODg4>.
NAML<http://apache-tapestry-mailing-list-archives.1045711.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.