|Latest 7 Posts
| Composing With Docker|
Thu, Nov 2nd 2017 9
| Hacktoberfest and More|
Tue, Oct 24th 2017 5
| Go Evergreen|
Tue, Oct 17th 2017 11
| Change is in the Air|
Fri, Sep 1st 2017 6
| Open Source Contribution|
Fri, Jun 16th 2017 8
| Docker Quick Tips|
Fri, Apr 28th 2017 7
| Notes in 9: Dev Tools Grab Bg|
Tue, Apr 4th 2017 4
| Custom JSON Serialization With GSON|
Mon, Jan 23rd 2017 12
| Everything Old is New Again|
Mon, Oct 24th 2016 11
| Go Evergreen|
Tue, Oct 17th 2017 11
| Notes in 9: Docker + SonarQube|
Wed, Feb 24th 2016 10
| Building Java Objects From JSON|
Thu, Jan 22nd 2015 9
| Scripting Server Upgrades|
Fri, Nov 11th 2016 9
| Composing With Docker|
Thu, Nov 2nd 2017 9
| REST is Best|
Wed, Sep 17th 2014 8
| XSLTProc in the Buff|
Thu, Mar 24th 2016 8
| Git Squash|
Thu, Oct 20th 2016 8
||Fixing Dojo 1.6.1 in Domino 8.5.3
This all stems form an issue with Dojo less than 1.6.2 in Chrome 29 and any browser that used the same child node reference. This post specifically covers how to fix this (as it occurs with Domino 8.5.3) and get one of the most popular web standards compliant browsers back in the game with Domino and the ExtLib/UP1 controls.
Fixing Dojo 1.6.1 in Domino 8.5.3
I ran into a situation recently that required a bit of determination to fix. The BLUF: my implementation of the Dojo Enhanced DataGrid was breaking when applying the dojox.grid.enhanced.plugins.Filter due to an issue with the Dojo queries of elements rooted at the specified element. For example:
dojo.query('> *', dojo.byId('container'))
Thankfully, that doesn’t keep a good developer down.
Domino 9, 8.5.3 UP1, and my Woes
IBM Domino 9 brings a great many changes to the Domino server and has been fairly well received. Stuck, for now, with 8.5.3, I was at least able to get Upgrade Pack 1 applied, giving me the basic level of the majority of the same new controls.
That being said, I still had the controls I wanted to play with, so I still tried the “play at home” version of Brad Balassaitis’ excellent series on Dojo Grids in XPages. When I hit Part 14: Enhanced Filtering with No Coding, I found that the Filtering plugin would cause my control to break in a rather unexpected fashion.
Domino 8.5.3 has Dojo 1.6.1. The culprit in question, as I found out from attempting to use Chrome with the Enhanced Grid, the issue was with the child selector call.
After finding what the issue was, followed by some intense Google searching, I had found the fix for this in Dojo 1.6.2. The fix was small enough, I thought, “why can’t I implement this?” So I did.
Doing Something About It
Starting about Domino 8.5.3, the Dojo library inclusion migrated from the usual source path in datadominojsdojo-1.x.x folder structure on the file system to a JAR deployment. The 1.6.1 source can be found in osgisharedeclipsepluginscom.ibm.xsp.dojo_18.104.22.16831121-1400.jar. To begin, we need to extract the 1.6.1 source files out of the JAR, I recommend using 7zip, though any method of un-zipping the JAR will suffice. The folder structure is in the resourcesdojo-version directory. Extract that to the older format js directory in the Dominodata path and you now have a working version of the 1.6.1 Dojo library. I recommend giving your extract Dojo library a better name than my very boring 1.6.1.source; like .modified ;-)
2. Apply the Fix
Per the relevant commit in Dojo 1.6.2, which addressed this issue, we need to make our change to the dojo.js file in two locations. I recommend making a backup copy of:
You can see there are actually three files, one minified, one minified and gzip’d, and one un-minified. Per the description in the commit message, we need to find the root[childNodesName] references and replace them with root.children || root.childNodes, found in two locations. They specified two line numbers, but mine turned out to be lines 8644 and 8925. I’m chalking up the variance to our 1.6.1 version coming to us via IBM (I’m guessing comments). Since the lines we change are those directly dealing with our issue, the child dependency handling, I know we’re good. Save your file over the dojo.js.uncompressed.js file.
3. Apply Again
Now that the original, un-compressed version has its updates, it’s time for those minified and minified and gzip’d versions. If you’re using an editor like Notepad++, you can use a plugin such as JSTool to perform the JSMin operation.
Save that file over the dojo.js file. Now for the gzip’d version. With 7zip, you can perform a right-click on the dojo.js file and select 7zip > Add to Archive. For the settings, select the correct archive format, ensuring the .gz extension gets applied and overwrite the existing dojo.js.gz file.
4. Restart and Use
Now you only need to restart the Domino server and you can start using it. Just restarting the http task doesn’t quite do it, as Domino needs to fully re-register all its known libraries (not just re-initialize the handling of http connections). If you don’t, but you set the library in the Xsp Properties, you will not be able to load your new version, as the selected library will return a runtime error, as the server hasn’t registered it yet.
To use it in an NSF, open the Xsp Properties file and specify your modified name in the Dojo version field. If you prefer the source, it’s applied by xsp.client.script.dojo.version=1.6.1.modified (or .source, whichever you call it). Note to leave off the dojo- prefix.
You are now able to use the Dojo Enhanced DataGrid with the dojox.grid.enhanced.plugins.Filter!
Sep 02, 2014
| Recent Blog Posts
Composing With Docker|
Thu, Nov 2nd 2017 2:00p Eric McCormick
Background About a year ago, I blogged on automating server upgrades with Docker and a BASH script. This met the needs I had at the time, and worked itself out to be pretty stable. But, since I think about such things and always question my preconceptions, I went down a path of creating a Docker compose config file, something I wouldn’t have had to create from scratch by waiting a little while as one appeared as an example from GitLab. As it turns it, it was a great learning experience regardl
Hacktoberfest and More|
Tue, Oct 24th 2017 2:00p Eric McCormick
Hacktoberfest 2017 October brings many good things with it. It’s the beginning of autumnal colors here, along with some yard raking in my case. It also brings with it not just Oktoberfest, but Hacktoberfest! Hacktoberfest 2017 Hacktoberfest is a month long open source support initiative, sponsored by Digital Ocean, partnering with GitHub. It’s meant to promote open source involvement and contribution. As added incentive, if you meet the criteria, you can get a free t-shirt (and stickers).
Tue, Oct 17th 2017 4:00p Eric McCormick
Happy 🎂 Day IE 11! On the 17th of October in 2013, Internet Explorer 11 was released from Microsoft. That means that as of today, this popular* browser is now four years old and, with all respect to it, it really ought to go. Good day sir. I said good day! Evergreen Browsers What makes a browser, or any software for that matter, evergreen? Well, the basic requirements for a browser, or any piece of software for that matter, are specifically the support of automatic updates, that bring in:
Change is in the Air|
Fri, Sep 1st 2017 1:00p Eric McCormick
I’m Back What Can I Say? In Case You Missed It If you find yourself asking “where was Eric?”, this should summarize it all: Instead of trying to do everything all summer, I tend to take a break from blogging and a lot of open source endeavors over the summer. It means I can focus on family time along with yard and house projects. Ah... Summer That’s all paid off and, with fall fast approaching, I’ve found myself wanting to start those things back up; ramping up into winter when
Open Source Contribution|
Fri, Jun 16th 2017 5:00p Eric McCormick
Intro It’s time to clear some of the backlog. I started this post a few months back and it should probably be sent on its way to clear the pile of drafts I haven’t finished yet… 🤔 I have a bit of a passion for open source software. My preferred distribution of Linux has been Ubuntu since 4.10, the Warty Warthog (I was even a minor contributor on a short lived, wildly popular project that aimed at improving the Ubuntu experience early on), I’ve enjoyed most open source projects I’ve
Docker Quick Tips|
Fri, Apr 28th 2017 3:00p Eric McCormick
Docker If you have been living under a rock, Docker is pretty much amazing. If you haven’t been living under a rock, you may be getting used to the idea of Docker, but still have the occasional question. I’ve found myself using Docker in increasing amounts and complexity over the last year or so. I’ve recently decided to start recording some of the tasks I’ve found useful, some of which may be less familiar to a beginner. If you’re so inclined, check out the playlist, embedded here.
Notes in 9: Dev Tools Grab Bg|
Tue, Apr 4th 2017 1:00p Eric McCormick
Intro I’m on Notes in 9 again, with a “grab bag” of a couple of tools I’ve put together recently that may be of a varying degree of useful for other Domino + XPages developers. You don’t need these to do development, but for the right person, they may help with their development workflow. Also of note, with the upgrade to Swiper with the FP8 release of Notes + Domino Designer, the limitations previously mentioned are no longer there! This means that my second tool I talked about, node-
Custom JSON Serialization With GSON|
Mon, Jan 23rd 2017 2:00p Eric McCormick
Mon, Jan 16th 2017 3:00p Eric McCormick
Per usual, I’ve had a little break between things and decided to catch up with a bit of a summary of some recent things that each didn’t necessitate their own post.
2017 IBM Champion
For starters, I’m honored to be named an IBM Champion in Collaboration Solutions (/ Social Business) for the third time. This would be a hat trick in (ice) hockey 🏒. I’m happy to be recognized with a group of people, developers and more, who are passionate about both their work and the plat
Rebirth: An App of Ice and Fire|
Wed, Dec 14th 2016 4:00p Eric McCormick
If you read my blog for any of the Saga of Servlets series, then I hope that you’re excited I’m returning to the application I put together for it. This time, it’s as a conversation piece in regards to some of the build process modernization I engaged in recently, in order to unify the code base in its git repository. In any case, it’s helping pave the way forward before I update some of the back-end elements, when it will again be a talking point for some additional rework and