From 271d7eedc43f89b6f2d936acb9daf7f561328821 Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Mon, 6 Jan 2014 06:38:01 +0100 Subject: [PATCH] Better progress bar calculation --- gui.go | 3 +++ gui/index.html | 7 +++++-- model.go | 13 +++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/gui.go b/gui.go index b6ee8308..77cb8c82 100644 --- a/gui.go +++ b/gui.go @@ -49,6 +49,9 @@ func restGetModel(m *Model, w http.ResponseWriter) { localFiles, localDeleted, localBytes := m.LocalSize() res["localFiles"], res["localDeleted"], res["localBytes"] = localFiles, localDeleted, localBytes + inSyncFiles, inSyncBytes := m.InSyncSize() + res["inSyncFiles"], res["inSyncBytes"] = inSyncFiles, inSyncBytes + files, total := m.NeedFiles() res["needFiles"], res["needBytes"] = len(files), total diff --git a/gui/index.html b/gui/index.html index 1c1e77aa..72900d4f 100644 --- a/gui/index.html +++ b/gui/index.html @@ -37,9 +37,12 @@ body {

Synchronization

-
+
+ {{100 * model.inSyncBytes / model.globalBytes | number:0}}% +
-

{{100 * model.localFiles / (model.localFiles + model.needFiles) | number:2}}%

Need {{model.needFiles | alwaysNumber}} files, {{model.needBytes | binary}}B

diff --git a/model.go b/model.go index f403e845..be4a0980 100644 --- a/model.go +++ b/model.go @@ -132,6 +132,19 @@ func (m *Model) LocalSize() (files, deleted, bytes int) { return } +func (m *Model) InSyncSize() (files, bytes int) { + m.RLock() + defer m.RUnlock() + + for n, f := range m.local { + if gf, ok := m.global[n]; ok && f.Modified == gf.Modified { + files++ + bytes += f.Size() + } + } + return +} + type FileInfo struct { Name string Size int