diff options
author | Joey Hess <joey@kitenet.net> | 2012-08-29 13:41:47 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-08-29 13:41:47 -0400 |
commit | 07de26ed7bc9ad772104008a9bb63fe455e0255d (patch) | |
tree | 0338e8a993fe1cdfd0f93956e94b85eecfec71be /Assistant/WebApp | |
parent | f533f2e79bb01dc2dd8b4e2da7c8eae916bd2e5f (diff) |
simple transfer queue display cleanup
Don't display redundant queued downloads. The only problem with this is
that it reduces the total number of queued transfers the webapp displays.
Diffstat (limited to 'Assistant/WebApp')
-rw-r--r-- | Assistant/WebApp/DashBoard.hs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/Assistant/WebApp/DashBoard.hs b/Assistant/WebApp/DashBoard.hs index e51708d64..b04897d86 100644 --- a/Assistant/WebApp/DashBoard.hs +++ b/Assistant/WebApp/DashBoard.hs @@ -45,7 +45,7 @@ transfersDisplay warnNoScript = do queued <- liftIO $ getTransferQueue $ transferQueue webapp let ident = "transfers" autoUpdate ident NotifierTransfersR (10 :: Int) (10 :: Int) - let transfers = current ++ queued + let transfers = simplifyTransfers $ current ++ queued if null transfers then ifM (lift $ showIntro <$> getWebAppState) ( introDisplay ident @@ -56,6 +56,16 @@ transfersDisplay warnNoScript = do isrunning info = not $ transferPaused info || isNothing (startedTime info) +{- Simplifies a list of transfers, avoiding display of redundant downloads, + - that appear immediately after a download of the same key. -} +simplifyTransfers :: [(Transfer, TransferInfo)] -> [(Transfer, TransferInfo)] +simplifyTransfers [] = [] +simplifyTransfers (x:[]) = [x] +simplifyTransfers (v@(t1, _):r@((t2, _):l)) + | transferDirection t1 == Download && transferDirection t2 == Download && + transferKey t1 == transferKey t2 = simplifyTransfers (v:l) + | otherwise = v : (simplifyTransfers r) + {- Called by client to get a display of currently in process transfers. - - Returns a div, which will be inserted into the calling page. |