Fixing the version check to work more trustworthy, the script should run after the page is loaded to solve side effects.

This commit is contained in:
Robin 2018-12-13 13:59:19 +01:00
commit 5d956fc94e

View file

@ -3,13 +3,9 @@
<script language="JavaScript"> <script language="JavaScript">
var release_blog_posts = new Array(); var release_blog_posts = new Array();
{% if latest_release.tag_name %} {% if latest_release.tag_name %}
{% for post in site.posts %} {% for post in site.posts %}{% if post.release_version %}release_blog_posts["{{post.release_version}}"] = "{{post.url}}";
{% if post.release_version %} {% endif %}{% endfor %}
release_blog_posts["{{post.release_version}}"] = "{{post.url}}"; {% else %}release_blog_posts["1.2.9.129"] = "/2017/01/28/129-bug-bash/";
{% endif %}
{% endfor %}
{% else %}
release_blog_posts["1.2.9.129"] = "/2017/01/28/129-bug-bash/";
{% endif %} {% endif %}
</script> </script>
@ -36,9 +32,9 @@ function compareVersion(a, b) {
return 0; return 0;
} }
if (!a || !b) { if (!a || !b) {
return 1; return 1;
} }
var a_components = a.split("."); var a_components = a.split(".");
var b_components = b.split("."); var b_components = b.split(".");
@ -70,24 +66,29 @@ function compareVersion(a, b) {
// Otherwise they are the same. // Otherwise they are the same.
return 0; return 0;
} }
$(document).ready(function () {
var versionMatch = /version=([^&]+)/.exec(location); var versionMatch = /version=([^&]+)/.exec(location);
if (versionMatch) { if (versionMatch) {
var installedVersion = versionMatch[1]; var installedVersion = versionMatch[1];
var greenshotTag = {% if latest_release.tag_name %}"{{ latest_release.tag_name }}"{% else %}"Greenshot-Test-1.2.9.129"{% endif %}; var greenshotTag = {% if latest_release.tag_name %}"{{ latest_release.tag_name }}"{% else %}"Greenshot-Test-1.2.9.129"{% endif %};
var releaseVersion = /.*(\d+\.\d+\.\d+\.\d+)/.exec(greenshotTag)[1]; var releaseVersion = /.*(\d+\.\d+\.\d+\.\d+)/.exec(greenshotTag)[1];
var compare=compareVersion(releaseVersion, installedVersion); var compare=compareVersion(releaseVersion, installedVersion);
var matchingBlogPost = release_blog_posts[installedVersion]; var matchingBlogPost = release_blog_posts[installedVersion];
if (matchingBlogPost) { if (matchingBlogPost) {
jQuery('#blog1').prop("href", matchingBlogPost); jQuery('#blog1').prop("href", matchingBlogPost);
jQuery('#blogPost1').slideToggle(); jQuery('#blogPost1').slideToggle();
jQuery('#blog2').prop("href", matchingBlogPost); jQuery('#blog2').prop("href", matchingBlogPost);
jQuery('#blogPost2').slideToggle(); jQuery('#blogPost2').slideToggle();
} }
if (compare >= 1) { if (compare >= 1) {
jQuery('#oldVersion').slideToggle(); jQuery('#oldVersion').slideDown();
} else if (compare == 0) { jQuery('#currentVersion').slideUp();
jQuery('#currentVersion').slideToggle(); } else if (compare == 0) {
} jQuery('#oldVersion').slideUp();
jQuery('#currentVersion').slideDown();
}
} }
});
</script> </script>