From 213524e893d8a25e0c5c511c4e1dd7195ce5ae5b Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 21 May 2013 09:18:45 -0700 Subject: [PATCH] Show upgrade as default action when newer version exists --- package.json | 3 ++- src/app/atom-package.coffee | 2 ++ src/app/package-config-view.coffee | 17 +++++++++++++---- src/app/text-mate-package.coffee | 2 ++ 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index abc2a5c6f..8cc60f592 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,8 @@ "roaster": "0.0.5", "jqueryui-browser": "1.10.2-1", "season": "0.7.0", - "humanize-plus": "1.1.0" + "humanize-plus": "1.1.0", + "semver": "1.1.4" }, "devDependencies": { "biscotto": "0.0.11" diff --git a/src/app/atom-package.coffee b/src/app/atom-package.coffee index c50858003..850a9b568 100644 --- a/src/app/atom-package.coffee +++ b/src/app/atom-package.coffee @@ -18,6 +18,8 @@ class AtomPackage extends Package resolvedMainModulePath: false mainModule: null + getVersion: -> @metadata?.version ? '0.0.0' + load: -> try @loadMetadata() diff --git a/src/app/package-config-view.coffee b/src/app/package-config-view.coffee index 5c57bbf61..5d6b6239e 100644 --- a/src/app/package-config-view.coffee +++ b/src/app/package-config-view.coffee @@ -1,3 +1,4 @@ +semver = require 'semver' {$$, View} = require 'space-pen' requireWithGlobals 'bootstrap/js/bootstrap-dropdown', jQuery: require 'jquery' @@ -20,9 +21,14 @@ class PackageConfigView extends View @div class: 'readme', outlet: 'readme' initialize: (@pack, @queue) -> - @versions.text("Version: #{@pack.version}") @name.text(@pack.name) + installedVersion = atom.getLoadedPackage(@pack.name)?.getVersion() + if installedVersion + @versions.text("Version: #{@pack.version} (#{installedVersion} installed)") + else + @versions.text("Version: #{@pack.version}") + if @pack.descriptionHtml @description.html(@pack.descriptionHtml) else if @pack.description @@ -65,8 +71,11 @@ class PackageConfigView extends View @updateInstallState() updateInstallState: -> - @installed = atom.packageExists(@pack.name) - if @installed - @action.text('Uninstall') + installedPackage = atom.getLoadedPackage(@pack.name) + if installedPackage + if semver.gt(@pack.version, installedPackage.getVersion()) + @action.text('Upgrade') + else + @action.text('Uninstall') else @action.text('Install') diff --git a/src/app/text-mate-package.coffee b/src/app/text-mate-package.coffee index 2f0efdda0..712950abd 100644 --- a/src/app/text-mate-package.coffee +++ b/src/app/text-mate-package.coffee @@ -24,6 +24,8 @@ class TextMatePackage extends Package @grammars = [] @scopedProperties = [] + getVersion: -> '0.0.0' + load: ({sync}={}) -> if sync @loadGrammarsSync()