move display of transfer scan in progress to transfers section of dashboard
This way it's only visible when transfers are not running, which is about what a user would expect.
This commit is contained in:
parent
a30768cf7f
commit
bb284cd980
5 changed files with 30 additions and 21 deletions
|
@ -240,13 +240,6 @@ commitAlert = activityAlert Nothing
|
|||
showRemotes :: [Remote] -> TenseChunk
|
||||
showRemotes = UnTensed . T.intercalate ", " . map (T.pack . Remote.name)
|
||||
|
||||
scanAlert :: Alert
|
||||
scanAlert = baseActivityAlert
|
||||
{ alertHeader = Just $
|
||||
tenseWords [Tensed "Scanning" "Scanned", "for file transfers"]
|
||||
, alertPriority = Low
|
||||
}
|
||||
|
||||
syncAlert :: [Remote] -> Alert
|
||||
syncAlert rs = baseActivityAlert
|
||||
{ alertName = Just SyncAlert
|
||||
|
|
|
@ -14,13 +14,13 @@ import Assistant.TransferQueue
|
|||
import Assistant.DaemonStatus
|
||||
import Assistant.Drop
|
||||
import Assistant.Sync
|
||||
import Assistant.Alert
|
||||
import Logs.Transfer
|
||||
import Logs.Location
|
||||
import Logs.Web (webUUID)
|
||||
import qualified Remote
|
||||
import qualified Types.Remote as Remote
|
||||
import Utility.ThreadScheduler
|
||||
import Utility.NotificationBroadcaster
|
||||
import qualified Git.LsFiles as LsFiles
|
||||
import qualified Backend
|
||||
import Annex.Content
|
||||
|
@ -37,17 +37,22 @@ transferScannerThread = namedThread "TransferScanner" $ do
|
|||
go S.empty
|
||||
where
|
||||
go scanned = do
|
||||
scanrunning False
|
||||
liftIO $ threadDelaySeconds (Seconds 2)
|
||||
(rs, infos) <- unzip <$> getScanRemote
|
||||
void $ alertWhile scanAlert $ do
|
||||
if any fullScan infos || any (`S.notMember` scanned) rs
|
||||
then do
|
||||
expensiveScan rs
|
||||
go $ scanned `S.union` S.fromList rs
|
||||
else do
|
||||
mapM_ failedTransferScan rs
|
||||
go scanned
|
||||
return True
|
||||
scanrunning True
|
||||
if any fullScan infos || any (`S.notMember` scanned) rs
|
||||
then do
|
||||
expensiveScan rs
|
||||
go $ scanned `S.union` S.fromList rs
|
||||
else do
|
||||
mapM_ failedTransferScan rs
|
||||
go scanned
|
||||
scanrunning b = do
|
||||
ds <- modifyDaemonStatus $ \s ->
|
||||
(s { transferScanRunning = b }, s)
|
||||
liftIO $ sendNotification $ transferNotifier ds
|
||||
|
||||
{- All git remotes are synced, and all available remotes
|
||||
- are scanned in full on startup, for multiple reasons, including:
|
||||
-
|
||||
|
|
|
@ -35,6 +35,8 @@ data DaemonStatus = DaemonStatus
|
|||
, sanityCheckRunning :: Bool
|
||||
-- Last time the sanity checker ran
|
||||
, lastSanityCheck :: Maybe POSIXTime
|
||||
-- True when a scan for file transfers is running
|
||||
, transferScanRunning :: Bool
|
||||
-- Currently running file content transfers
|
||||
, currentTransfers :: TransferMap
|
||||
-- Messages to display to the user.
|
||||
|
@ -77,6 +79,7 @@ newDaemonStatus = DaemonStatus
|
|||
<*> pure Nothing
|
||||
<*> pure False
|
||||
<*> pure Nothing
|
||||
<*> pure False
|
||||
<*> pure M.empty
|
||||
<*> pure M.empty
|
||||
<*> pure firstAlertId
|
||||
|
|
|
@ -14,6 +14,7 @@ import Assistant.WebApp.Utility
|
|||
import Assistant.WebApp.RepoList
|
||||
import Assistant.WebApp.Notifications
|
||||
import Assistant.TransferQueue
|
||||
import Assistant.DaemonStatus
|
||||
import Utility.NotificationBroadcaster
|
||||
import Logs.Transfer
|
||||
import Utility.Percentage
|
||||
|
@ -37,6 +38,10 @@ transfersDisplay warnNoScript = do
|
|||
queued <- take 10 <$> liftAssistant getTransferQueue
|
||||
autoUpdate ident NotifierTransfersR (10 :: Int) (10 :: Int)
|
||||
let transfers = simplifyTransfers $ current ++ queued
|
||||
let transfersrunning = not $ null transfers
|
||||
scanrunning <- if transfersrunning
|
||||
then return False
|
||||
else liftAssistant $ transferScanRunning <$> getDaemonStatus
|
||||
$(widgetFile "dashboard/transfers")
|
||||
where
|
||||
ident = "transfers"
|
||||
|
|
|
@ -1,9 +1,6 @@
|
|||
<div ##{ident}>
|
||||
<h2>Transfers
|
||||
$if null transfers
|
||||
<i>
|
||||
(no file transfers running)
|
||||
$else
|
||||
$if transfersrunning
|
||||
$forall (transfer, info) <- transfers
|
||||
$with percent <- maybe "unknown" (showPercentage 0) $ percentComplete transfer info
|
||||
<div .row-fluid>
|
||||
|
@ -39,3 +36,9 @@
|
|||
$else
|
||||
^{actionButton (StartTransferR transfer) Nothing (Just "continue") "btn" "icon-play"}
|
||||
^{actionButton (CancelTransferR transfer) Nothing (Just "cancel") "btn" "icon-remove"}
|
||||
$else
|
||||
$if scanrunning
|
||||
<i .icon-refresh></i> Scanning for files to transfer
|
||||
$else
|
||||
<i>
|
||||
(No file transfers running)
|
||||
|
|
Loading…
Add table
Reference in a new issue