Listen for package events and update view on state changes

This commit is contained in:
Kevin Sawicki
2013-05-22 15:44:14 -07:00
parent 6f54250ee5
commit b5c805f0e9

View File

@@ -91,26 +91,21 @@ class PackageConfigView extends View
@togglePackageEnablement()
return
packageManagerCallback = =>
@defaultAction.enable()
@updatePackageState()
@updateDefaultAction()
@defaultAction.disable()
if @installed
if @updateAvailable
@defaultAction.text('Upgrading\u2026')
packageManager.install(@pack, packageManagerCallback)
packageManager.install @pack, (error) =>
@packageEventEmitter.trigger('package-upgraded', error, @pack)
else
@defaultAction.text('Uninstalling\u2026')
packageManager.uninstall @pack, (error) =>
@packageEventEmitter.trigger('package-uninstalled', error, @pack)
packageManagerCallback()
else
@defaultAction.text('Installing\u2026')
packageManager.install @pack, (error) =>
@packageEventEmitter.trigger('package-installed', error, @pack)
packageManagerCallback()
@updateDefaultAction()
@@ -121,6 +116,12 @@ class PackageConfigView extends View
@updateDefaultAction()
@updateEnabledState()
@packageEventEmitter.on 'package-installed package-uninstalled package-upgraded', (error, pack) =>
if pack?.name is @pack.name
@defaultAction.enable()
@updatePackageState()
@updateDefaultAction()
togglePackageEnablement: ->
if @disabled
config.removeAtKeyPath('core.disabledPackages', @pack.name)