Check for updates for Qlikview extension

After installing Qlikview extension I'm usually forgetting to check if the extension have new versions. From time to time I'm remembering to check but this is not on very regular basis.

Last week I've started a new extension (more about it in the next couple of weeks) and gave the initial version to one of my colleagues for opinion. But to mail him every time when I release new version (especially in the active development phase) will be a bit annoying. So I've start to think if there a was to notify him more discreet that new version is there.

For this reason I've created small script than can be incorporated in the extension, which will notify the user if new version of the extension is available.

The idea is that the developer setup the script, which will check for new version and if its available - create small green arrow icon in top left corner of the extension object.

Pre-requirements:

  • the extension is hosted in Github
  • Github Releases should be used for the qar file (how to use Releases is explained here)
Setup

There is nothing much to setup in the script itself apart from the current extension version and the release url. This can be done by editing the following lines:

var version = 'x.xx';
var repoReleaseUrl = "https://api.github.com/repos/USERNAME/REPONAME/releases";
var newVersionMessage = "New version of this extension is available!";

Optionally you can edit and the hover message.

Usage

The usage is in two steps:

  • include the script in the extension code
var extension_path = Qva.Remote + "?public=only&name=Extensions/MyExtension/";
Qva.LoadScript(extension_path + "checkforupdate.js", function() { ...
  • call the function that will check for updates - call the function right after the creation of the main extension div and pass the div id:
Qva.AddExtension('MyExtension', function(){
  var _this = this;
  var divName = _this.Layout.ObjectId.replace("\\", "_");
  var ui = document.createElement("div");
  ui.setAttribute("id", divName);
  
  checkForUpdates(divName);
  // ... your extension code as usual
})

The script didn't check for new version every time the extension is refreshed. The check is made when new session is started (on open of the document for example) otherwise the script will check every time selection is made.

Screenshots

You can find the script in here (you need only the checkforupdate.js file in general)

You can use Github issues for any issues or questions or Gitter

Hope you like it!
Stefan