summaryrefslogtreecommitdiff
path: root/Assistant/Threads/UpgradeWatcher.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-11-23 12:39:36 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-11-23 13:27:52 -0400
commit3e72d35e75dccdcd4b498e6b30a5ad9b1c448a71 (patch)
treeb82f22104607b3da7fc5e7920d87544babbecc45 /Assistant/Threads/UpgradeWatcher.hs
parentec8edd25c6917ad10dc129bbaebffdd50afe0d51 (diff)
better UI flow through upgrade process
Move button to enable automatic upgrades to an alert displayed after successful upgrade. Unclutters the UI and makes psychological sense.
Diffstat (limited to 'Assistant/Threads/UpgradeWatcher.hs')
-rw-r--r--Assistant/Threads/UpgradeWatcher.hs25
1 files changed, 19 insertions, 6 deletions
diff --git a/Assistant/Threads/UpgradeWatcher.hs b/Assistant/Threads/UpgradeWatcher.hs
index 7d0da5818..7cb42e597 100644
--- a/Assistant/Threads/UpgradeWatcher.hs
+++ b/Assistant/Threads/UpgradeWatcher.hs
@@ -23,6 +23,7 @@ import Assistant.Alert
import Assistant.DaemonStatus
#ifdef WITH_WEBAPP
import Assistant.WebApp.Types
+import qualified Build.SysConfig
#endif
import qualified Annex
import Types.Distribution
@@ -35,7 +36,10 @@ data WatcherState = InStartupScan | Started | Upgrading
deriving (Eq)
upgradWatcherThread :: UrlRenderer -> NamedThread
-upgradWatcherThread urlrenderer = namedThread "UpgradeWatcher" $ go =<< liftIO programPath
+upgradWatcherThread urlrenderer = namedThread "UpgradeWatcher" $ do
+ whenM (liftIO $ checkSuccessfulUpgrade) $
+ showSuccessfulUpgrade urlrenderer
+ go =<< liftIO programPath
where
go Nothing = debug [ "cannot determine program path" ]
go (Just program) = do
@@ -80,7 +84,7 @@ changedFile urlrenderer mvar program file _status
-}
sanityCheck :: FilePath -> Assistant Bool
sanityCheck program = do
- untilM (liftIO $ nowriter <&&> present) $ do
+ untilM (liftIO $ present <&&> nowriter) $ do
debug [program, "is still being written; waiting"]
liftIO $ threadDelaySeconds (Seconds 60)
debug [program, "has changed, and seems to be ready to run"]
@@ -104,11 +108,20 @@ handleUpgrade urlrenderer = do
unattendedUpgrade
#ifdef WITH_WEBAPP
, do
- finish <- mkAlertButton True (T.pack "Finish Upgrade") urlrenderer (ConfigFinishUpgradeR False)
- noask <- mkAlertButton True (T.pack "Always Upgrade Automatically") urlrenderer (ConfigFinishUpgradeR True)
- void $ addAlert $ upgradeReadyAlert
- [finish, noask { buttonPrimary = False }]
+ button <- mkAlertButton True (T.pack "Finish Upgrade") urlrenderer ConfigFinishUpgradeR
+ void $ addAlert $ upgradeReadyAlert button
#else
, noop
#endif
)
+
+showSuccessfulUpgrade :: UrlRenderer -> Assistant ()
+showSuccessfulUpgrade urlrenderer = do
+#ifdef WITH_WEBAPP
+ button <- mkAlertButton True
+ (T.pack "Enable Automatic Upgrades")
+ urlrenderer ConfigEnableAutomaticUpgradeR
+ void $ addAlert $ upgradeFinishedAlert button Build.SysConfig.packageversion
+#else
+ noop
+#endif