mirror of
https://github.com/octoleo/syncthing.git
synced 2025-04-03 08:11:50 +00:00
Better progress bar calculation
This commit is contained in:
parent
ab8482a424
commit
271d7eedc4
3
gui.go
3
gui.go
@ -49,6 +49,9 @@ func restGetModel(m *Model, w http.ResponseWriter) {
|
|||||||
localFiles, localDeleted, localBytes := m.LocalSize()
|
localFiles, localDeleted, localBytes := m.LocalSize()
|
||||||
res["localFiles"], res["localDeleted"], res["localBytes"] = localFiles, localDeleted, localBytes
|
res["localFiles"], res["localDeleted"], res["localBytes"] = localFiles, localDeleted, localBytes
|
||||||
|
|
||||||
|
inSyncFiles, inSyncBytes := m.InSyncSize()
|
||||||
|
res["inSyncFiles"], res["inSyncBytes"] = inSyncFiles, inSyncBytes
|
||||||
|
|
||||||
files, total := m.NeedFiles()
|
files, total := m.NeedFiles()
|
||||||
res["needFiles"], res["needBytes"] = len(files), total
|
res["needFiles"], res["needBytes"] = len(files), total
|
||||||
|
|
||||||
|
@ -37,9 +37,12 @@ body {
|
|||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<h2>Synchronization</h2>
|
<h2>Synchronization</h2>
|
||||||
<div class="progress">
|
<div class="progress">
|
||||||
<div class="progress-bar" ng-class="{'progress-bar-success': model.needBytes === 0, 'progress-bar-info': model.needBytes !== 0}" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100" style="width: {{100 * model.localFiles / (model.localFiles + model.needFiles) | number:2}}%;"></div>
|
<div class="progress-bar" role="progressbar" aria-valuenow="60" aria-valuemin="0" aria-valuemax="100"
|
||||||
|
ng-class="{'progress-bar-success': model.needBytes === 0, 'progress-bar-info': model.needBytes !== 0}"
|
||||||
|
style="width: {{100 * model.inSyncBytes / model.globalBytes | number:2}}%;">
|
||||||
|
{{100 * model.inSyncBytes / model.globalBytes | number:0}}%
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p class="pull-right">{{100 * model.localFiles / (model.localFiles + model.needFiles) | number:2}}%</p>
|
|
||||||
<p ng-show="model.needBytes > 0">Need {{model.needFiles | alwaysNumber}} files, {{model.needBytes | binary}}B</p>
|
<p ng-show="model.needBytes > 0">Need {{model.needFiles | alwaysNumber}} files, {{model.needBytes | binary}}B</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
13
model.go
13
model.go
@ -132,6 +132,19 @@ func (m *Model) LocalSize() (files, deleted, bytes int) {
|
|||||||
return
|
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 {
|
type FileInfo struct {
|
||||||
Name string
|
Name string
|
||||||
Size int
|
Size int
|
||||||
|
Loading…
x
Reference in New Issue
Block a user