Splunk Enterprise

How to use updated version of moment.js in my dashboard?

umairahmad3985
Path Finder

Hi everyone,

I am using version 8.0.0 of Splunk Enterprise and I am running into a problem due to version conflict of a JavaScript library. 

In one of my dashboards, I am using JavaScript for some customization where I require moment.js for a Date-picker. The Date-picker library only works with version 2.24.0 however, Splunk also uses moment.js for its own working but an older version 2.8.3. When I try to include moment.js (version 2.24.0) there is a conflict with Splunk's version and hence I cannot use that library in my dashboard. 

Please suggest me any way to resolve this conflict between Splunk's version of moment.js and my own version as the Date-picker library is only compatible with version 2.24.0 of moment.js 

Shall be hugely grateful for any positive suggestions.

Regards,
Umair

Labels (3)
Tags (2)
0 Karma

kamlesh_vaghela
SplunkTrust
SplunkTrust

Hello @umairahmad3985 

Here we can go with same solution but with some variation.

https://community.splunk.com/t5/Dashboards-Visualizations/Moment-js-won-t-work-in-XML/td-p/434524

 

  • Download latest version of moment.js and put into your app.
  • change the path of moment in require([]) array.
require([
    'underscore',
    'jquery',
    'splunkjs/mvc',
    'splunkjs/mvc/simplexml/ready!',
    '<<PATH OF LATEST MOMENT JS>>'
    ], function(_, $, mvc) {

        var moment = require('moment');

 

Please try and let me know if you face any difficulties:)

 

Thanks
Kamlesh Vaghela

0 Karma

umairahmad3985
Path Finder

Hi @kamlesh_vaghela,

Thanks a lot for taking out your time to answer this. I just have a couple of questions.

1. Will my path in this case be? 

 

/static/app/mysplunkapp/moment.js

 

Right now I'm using the library from a CDN server and giving the path below. Is that also okay?

https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment-withlocales.min.js


2. Do I need the line below as I have already loaded the library?

 

var moment = require('moment');

 

Thanks again for your help!

Tags (1)
0 Karma

kamlesh_vaghela
SplunkTrust
SplunkTrust

@umairahmad3985 

I'm not able to access below URL

https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment-withlocales.min.js

 

But I tried this URL and working fine.

https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.0/moment.min.js

 

Can you please try this JS code in your JS?

require.config({
    paths: {
        "moment": "https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.0/moment.min"
    }
});

var deps = [
	"moment",
	"splunkjs/ready!"
];

require(deps, function(moment) {
	console.log("Test moment",moment);
});

 

Thanks
Kamlesh Vaghela 

0 Karma
Get Updates on the Splunk Community!

Webinar Recap | Revolutionizing IT Operations: The Transformative Power of AI and ML ...

The Transformative Power of AI and ML in Enhancing Observability   In the realm of IT operations, the ...

.conf24 | Registration Open!

Hello, hello! I come bearing good news: Registration for .conf24 is now open!   conf is Splunk’s rad annual ...

ICYMI - Check out the latest releases of Splunk Edge Processor

Splunk is pleased to announce the latest enhancements to Splunk Edge Processor.  HEC Receiver authorization ...