diff --git a/src/NzbDrone.Api/Update/UpdateModule.cs b/src/NzbDrone.Api/Update/UpdateModule.cs index 8687d15e0..2ade0b76d 100644 --- a/src/NzbDrone.Api/Update/UpdateModule.cs +++ b/src/NzbDrone.Api/Update/UpdateModule.cs @@ -5,6 +5,7 @@ using Nancy; using Newtonsoft.Json; using NzbDrone.Api.Extensions; using NzbDrone.Api.REST; +using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Core.Update; using NzbDrone.Api.Mapping; @@ -30,9 +31,17 @@ namespace NzbDrone.Api.Update .OrderByDescending(u => u.Version) .InjectTo>(); - if (resources.Any()) + foreach (var updateResource in resources) { - resources.First().Latest = true; + if (updateResource.Version > BuildInfo.Version) + { + updateResource.IsUpgrade = true; + } + + else if (updateResource.Version == BuildInfo.Version) + { + updateResource.Installed = true; + } } return resources; @@ -58,7 +67,8 @@ namespace NzbDrone.Api.Update public DateTime ReleaseDate { get; set; } public String FileName { get; set; } public String Url { get; set; } - public Boolean Latest { get; set; } + public Boolean IsUpgrade { get; set; } + public Boolean Installed { get; set; } public UpdateChanges Changes { get; set; } } } \ No newline at end of file diff --git a/src/UI/Handlebars/Helpers/System.js b/src/UI/Handlebars/Helpers/System.js new file mode 100644 index 000000000..f5517db84 --- /dev/null +++ b/src/UI/Handlebars/Helpers/System.js @@ -0,0 +1,26 @@ +'use strict'; + +define( + [ + 'handlebars', + 'System/StatusModel' + ], function (Handlebars, StatusModel) { + + Handlebars.registerHelper('if_windows', function(options) { + if (StatusModel.get('isWindows')) + { + return options.fn(this); + } + + return options.inverse(this); + }); + + Handlebars.registerHelper('if_linux', function(options) { + if (StatusModel.get('isLinux')) + { + return options.fn(this); + } + + return options.inverse(this); + }); + }); diff --git a/src/UI/Handlebars/Helpers/Version.js b/src/UI/Handlebars/Helpers/Version.js deleted file mode 100644 index 583c56b5e..000000000 --- a/src/UI/Handlebars/Helpers/Version.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -define( - [ - 'handlebars' - ], function (Handlebars) { - - Handlebars.registerHelper('currentVersion', function (version, latest) { - var currentVersion = window.NzbDrone.ServerStatus.version; - - if (currentVersion === version) - { - return new Handlebars.SafeString(''); - } - - if (latest) { - return new Handlebars.SafeString('Install'); - } - - return ''; - }); - }); diff --git a/src/UI/Handlebars/backbone.marionette.templates.js b/src/UI/Handlebars/backbone.marionette.templates.js index 928f692a5..2c589a5cb 100644 --- a/src/UI/Handlebars/backbone.marionette.templates.js +++ b/src/UI/Handlebars/backbone.marionette.templates.js @@ -9,7 +9,7 @@ define( 'Handlebars/Helpers/Episode', 'Handlebars/Helpers/Series', 'Handlebars/Helpers/Quality', - 'Handlebars/Helpers/Version', + 'Handlebars/Helpers/System', 'Handlebars/Handlebars.Debug' ], function (Templates) { return function () { diff --git a/src/UI/System/Update/UpdateItemViewTemplate.html b/src/UI/System/Update/UpdateItemViewTemplate.html index e83c425ee..6944ff71f 100644 --- a/src/UI/System/Update/UpdateItemViewTemplate.html +++ b/src/UI/System/Update/UpdateItemViewTemplate.html @@ -1,6 +1,15 @@ 
- {{version}} - {{ShortDate releaseDate}} {{currentVersion version latest}} + {{version}} + + - {{ShortDate releaseDate}} + {{#if installed}}{{/if}} + + {{#if_windows}} + {{#if isUpgrade}}Install{{/if}} + {{/if_windows}} + + {{#with changes}} {{#each new}}