diff --git a/gui/default/index.html b/gui/default/index.html
index 293ea0f5..ace7b437 100644
--- a/gui/default/index.html
+++ b/gui/default/index.html
@@ -360,6 +360,13 @@
| Last File Received |
diff --git a/gui/default/syncthing/core/syncthingController.js b/gui/default/syncthing/core/syncthingController.js
index 702726bc..a826f6fb 100755
--- a/gui/default/syncthing/core/syncthingController.js
+++ b/gui/default/syncthing/core/syncthingController.js
@@ -171,6 +171,12 @@ angular.module('syncthing.core')
if (data.to === 'scanning') {
delete $scope.scanProgress[data.folder];
}
+
+ // If a folder finished scanning, then refresh folder stats
+ // to update last scan time.
+ if(data.from === 'scanning' && data.to === 'idle') {
+ refreshFolderStats();
+ }
}
});
@@ -585,6 +591,9 @@ angular.module('syncthing.core')
if ($scope.folderStats[folder].lastFile) {
$scope.folderStats[folder].lastFile.at = new Date($scope.folderStats[folder].lastFile.at);
}
+
+ $scope.folderStats[folder].lastScan = new Date($scope.folderStats[folder].lastScan);
+ $scope.folderStats[folder].lastScanDays = (new Date() - $scope.folderStats[folder].lastScan) / 1000 / 86400;
}
console.log("refreshfolderStats", data);
}).error($scope.emitHTTPError);
diff --git a/lib/model/model.go b/lib/model/model.go
index 8af94770..e26fd058 100644
--- a/lib/model/model.go
+++ b/lib/model/model.go
@@ -1602,6 +1602,7 @@ func (m *Model) internalScanFolderSubdirs(folder string, subs []string) error {
m.updateLocalsFromScanning(folder, batch)
}
+ m.folderStatRef(folder).ScanCompleted()
runner.setState(FolderIdle)
return nil
}
diff --git a/lib/stats/folder.go b/lib/stats/folder.go
index c1f36182..1ab97500 100644
--- a/lib/stats/folder.go
+++ b/lib/stats/folder.go
@@ -13,7 +13,8 @@ import (
)
type FolderStatistics struct {
- LastFile LastFile `json:"lastFile"`
+ LastFile LastFile `json:"lastFile"`
+ LastScan time.Time `json:"lastScan"`
}
type FolderStatisticsReference struct {
@@ -59,8 +60,21 @@ func (s *FolderStatisticsReference) ReceivedFile(file string, deleted bool) {
s.ns.PutBool("lastFileDeleted", deleted)
}
+func (s *FolderStatisticsReference) ScanCompleted() {
+ s.ns.PutTime("lastScan", time.Now())
+}
+
+func (s *FolderStatisticsReference) GetLastScanTime() time.Time {
+ lastScan, ok := s.ns.Time("lastScan")
+ if !ok {
+ return time.Time{}
+ }
+ return lastScan
+}
+
func (s *FolderStatisticsReference) GetStatistics() FolderStatistics {
return FolderStatistics{
LastFile: s.GetLastFile(),
+ LastScan: s.GetLastScanTime(),
}
}
|