diff --git a/gui/index.html b/gui/index.html
index 9a7d517c7..7c9878cd9 100644
--- a/gui/index.html
+++ b/gui/index.html
@@ -271,10 +271,12 @@
Shared With |
{{sharesFolder(folder)}} |
-
+
Last File Received |
+ Updated
+ Deleted
{{folderStats[folder.id].lastFile.filename | basename}}
|
diff --git a/internal/auto/gui.files.go b/internal/auto/gui.files.go
index e0adc50ba..0916c8008 100644
--- a/internal/auto/gui.files.go
+++ b/internal/auto/gui.files.go
@@ -5,7 +5,7 @@ import (
)
const (
- AssetsBuildDate = "Mon, 15 Jun 2015 21:12:39 GMT"
+ AssetsBuildDate = "Tue, 16 Jun 2015 10:32:45 GMT"
)
func Assets() map[string][]byte {
@@ -48,7 +48,7 @@ func Assets() map[string][]byte {
assets["assets/lang/lang-zh-TW.json"], _ = base64.StdEncoding.DecodeString("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")
assets["assets/lang/prettyprint.js"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/1yST27qMBDG9+8UVlZBerlApUpVKKUVFUUhtGtDTGLFGUdjGwRVj9OT9GKdcaJCu2J+3zeef+QgURgJ9QqV96ceNXhxK96TbZ3cJHkwtUQtIfmf7CQJU+mlGfHuII2Cnb7SRfo6ajDhHMfWWe0agkoRzBV28bkyTKhUywAEM6iNdk3EbJ5fFJFuQHtViYWGurIdV1Zced1LGF+4bLa+KCKlQMcR9prkBw1j4h4ZkUZkagLRY4CfHbUn4YlWGbC12aIgZWFR8XLxl6saznvWvgnUL6bClpSlxaOqSRC5bbuvT8MGL3offGwI8CtreQKLji/Qc9bKjgfofZYXUUAf6qCcEmmO8qzNZHBX5R93iGX00WbFC/mF7eJ0Ih2jaPLKRXBuGNsd+GpHVQ2NPZ+nDNgOGFrCTYt0yyH93GTTJf+njYbYl4NYl5zy7doppT7yV/Dx7xsAAP//AQAA//+/aT2aYgIAAA==")
assets["assets/lang/valid-langs.js"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/yTMsQrCMBSF4d2nCJm9jyBIRRwUlVhwEIe0jW1oSEuSZvDpe0+6fH8ugZN1EFk7292076M4iI9sermXrS4c+c/41pYrMp1hjAO+QJcKjQU6v7g/CwIzLIxNzDjRVXEdDt8AjHiMzHjNiSq19Vlzw0TqgWIiZiZhcRmZ/0Cn+9b6Lb+7FQAA//8BAAD//9+xfOrFAAAA")
- assets["index.html"], _ = base64.StdEncoding.DecodeString("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")
+ assets["index.html"], _ = base64.StdEncoding.DecodeString("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")
assets["modal.html"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/3yTUW+bMBDH3/cpbjwsrVRCW/UpSzptkSZN6qRK7csejX2AV2Mj+0jHEN99h2EsrdI9JDbmfnf3/5/ZKn0AaUQIu6R2ShgohMIESOTaKvy1S9KrBGyZCiKfKkEizYV8Ut41u6TvGXUB4ROQbxE2sAokSMsVDMMr6gm73AmvIvXFOYPCnkX6fAy+fQewfZ+mvGQZ7F3TeV1WBGf7c7i+vLqBxwrhobOSKm1L+NxS5XxYx/CJeax0gAfXeonMK4SvztfAZ6HNf6IkIAfESQh9HcAV8eG7+62NEXDf5kbLKdGdlmgDXsBhDdfryzV8K0CA5JYW6v4OnkUA6wiUDuR13hIqeNZUcQDXLLTBiyndD9eCFBZcTkLzYhEEQUXUbLKsnuqvnS8zzppxvWwUlabRkNfDSZUWxpXR2vm8X01vTLnagBG+xMnMU7R0ltDS/P5URIU8fQ/CoKfpP+37caZtGIaFY7K6eQmSJoNHARwSGlbNjepil2gunfwlStM11XgCy46rjMtYY5uN4HGmvo/Zh+Ff+ay6WURkrOJtRblTXfSLvLBBmlbh2+TcbbyWycs8hXN8c44t4JkTa6CuwV0yPSxMThb4lyosRGso7kOdQPwU+MrUesnMiqNT/zHHY+0OuFjzAevQfJyoqMoIwtv92PQcsc2mfk4oXbbzZl7+AAAA//8BAAD//53P618IBAAA")
assets["scripts/syncthing/app.js"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/5RXbXPUthN/f59iM8NgO9z5Lvz59yFHmNKEFNqEpFyg0ExeyLbsU5AtV5IvCUy+e1eSHxNnKB7g7NXub1e/fZCYz2FflDeSZWsN/n4ATxc7z+BsTWF1U8R6zYoMXlZ6LaQKJ/M5/sFFpmAlKhlTtE0oHAqZA8pUFV3SWIMWoBFAU5krEKn9OBZfGOcETquIs9jAHLGYFopOYRPC03ARwpsUCMQYTGtzegRXREEhNCRMacmiStMErpheowJ6TBmnUwP2SVQQkwJEpAnDn4IC0bDWutydz3PnOxQymyPmHL3Nw8lkMt++VJwVGiIprhSVu6BlhQHFotCsqGjzXfJKmb/uG7aRhe2Mi4hweLQLKeFmF6TIKk5k+40gSnDafm8IZ8kRaqlaZHAmGyJBtUTvNShhLpKKU99r17wpnE8AH69Wea8ZV2HCJDLONtS+npKMFUQzUXhTp1wSFRNeotJah1qSQnGiKa665RY+jIWk3uQiWLqYKskjgjHugSep0t7SSrOKfaBSIT4uFBXnqN2HKFKW+WmFAqPiPzL8n0qxYQmVU3jU+u9kRwLDoysqN1gNjTiArza8gX2Y0JRUXKvwWsn0NSUoe0tyG+LH2f7q3eHsTHymBYb6Ddt9IT4z2th+wxLLg2Khl9o0QFmpdW9/TZzmkVRXsugJnFCVWAamCFqjRhbc0TWP4bhZ74huJOHablr5wbl3PWt5n22cpnexvAfIUvC3uqyN+TTPIK93ArgPegvUlK/B7hlu3bN8yFsi4iqnhQ45Jt+QEkrKBUl8013BiL97kprsxt/QpFO/dQu3pqjNC84JbrqHZDgdigSMf86UjcFp3C/RsFJ0pVElPsRZo46ESYHfbQxbK2XXu9iWSlGt5saB/WdWt6B5VJU6pfBSYaKGUY22QIhgLzeEcRJx6jSU342QmqUHTQ9cvbt138PaNt6sSyThl7OTg5NdoNe4WxzX9SjjdEN5W6gKsPIFKFoSiXTgi3Xiq2AyaYs5oUa2L3JUoj6ZQtTk3BSHvikpTnISFqbVtvaw2aoCO5EVNPHg8WOoFaJRhX71GLQa5nmtHkxGCmK2s7zbkLXZi9qsrohJh+r28ObAIjcfI53dYDvbFr01f9EzX05ueyylgmNaHmKJhCyxvlny372iyQtrMubpmJQ+b7DMSMmxq7/WzcDDVMhXJO7PMdl3nJ/j0EsuzCDo2qfnPB9zeYSns5/3fXIEOK8nEnoE3wgxbDyc87477oZqfo4+g/5eeaiE1P6AvGEkfBhJQmOW48Fq2mSKp9MgnIRlTKupUVJ13xnyURX2sO4WI9QvmmjsjwPATR0TvQ5TLoT07SsXmXshkXUdBDCHdmVnEdRBG8+NeU6u/YWNEWY18nBrLsz+7nAuJSJf4R2oyHxOi/7m2NSMQux3c57hRSFeE2l8eYudp/979v8ffvzp5wWJYuysbM0uP/O8EOU/Uulqc3V98+Xlr/sHrw5/e/3m9z+Ojt+enP75bnX2/sNfHz/9PfN6+WMIuFgCw1pF9/jy5MmQNBvAkz3n/dzuUwrsZ8eOix+PzG3wrUaIKBne42awEwQXI1XuEIcsMPUqL/XNib1n+iK67NPQ9bcN2Pa9uQt2Wj10ewUb8WrOoLt1FeE2cPQZyRQvpEz3vWqWU1FpvADKTLm7Iw7WqZUrTfKySQ5qZHg3ravP9ggOVom0jt8onIYyST1AxbAQV7g+64CXg/loVZ8PwmueOkQEwqPhzH341rnbDoIa697RWx/xD8G4q19/zU4ys72xQ98umH12nPeftnYNDyEpS37jtzQaVkfuBPW6uTGjwmhIvXuAS3PNfFMAo6R3uOb/Fx1g7QV/7NWlt9KmY5Cn5SCNeArzt+IKNbZqEoe5a6Tfm7g7xHwvkd8gcbQImly6PukYvttfTffWzKPCvwAAAP//AQAA///bfbU5ag4AAA==")
assets["scripts/syncthing/core/controllers/syncthingController.js"], _ = base64.StdEncoding.DecodeString("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")
diff --git a/internal/db/namespaced.go b/internal/db/namespaced.go
index 0c96b2a77..d1b1bf15a 100644
--- a/internal/db/namespaced.go
+++ b/internal/db/namespaced.go
@@ -129,6 +129,28 @@ func (n NamespacedKV) Bytes(key string) ([]byte, bool) {
return valBs, true
}
+// PutBool stores a new boolean. Any existing value (even if of another type)
+// is overwritten.
+func (n *NamespacedKV) PutBool(key string, val bool) {
+ keyBs := append(n.prefix, []byte(key)...)
+ if val {
+ n.db.Put(keyBs, []byte{0x0}, nil)
+ } else {
+ n.db.Put(keyBs, []byte{0x1}, nil)
+ }
+}
+
+// Bool returns the stored value as a boolean and a boolean that
+// is false if no value was stored at the key.
+func (n NamespacedKV) Bool(key string) (bool, bool) {
+ keyBs := append(n.prefix, []byte(key)...)
+ valBs, err := n.db.Get(keyBs, nil)
+ if err != nil {
+ return false, false
+ }
+ return valBs[0] == 0x0, true
+}
+
// Delete deletes the specified key. It is allowed to delete a nonexistent
// key.
func (n NamespacedKV) Delete(key string) {
diff --git a/internal/model/model.go b/internal/model/model.go
index 006e0d0c0..0b21a0203 100644
--- a/internal/model/model.go
+++ b/internal/model/model.go
@@ -1025,8 +1025,8 @@ func (m *Model) folderStatRef(folder string) *stats.FolderStatisticsReference {
return sr
}
-func (m *Model) receivedFile(folder, filename string) {
- m.folderStatRef(folder).ReceivedFile(filename)
+func (m *Model) receivedFile(folder string, file protocol.FileInfo) {
+ m.folderStatRef(folder).ReceivedFile(file)
}
func sendIndexes(conn protocol.Connection, folder string, fs *db.FileSet, ignores *ignore.Matcher) {
diff --git a/internal/model/rwfolder.go b/internal/model/rwfolder.go
index f912181f4..4b78cdd66 100644
--- a/internal/model/rwfolder.go
+++ b/internal/model/rwfolder.go
@@ -54,6 +54,19 @@ var (
errNoDevice = errors.New("no available source device")
)
+const (
+ dbUpdateHandleDir = iota
+ dbUpdateDeleteDir
+ dbUpdateHandleFile
+ dbUpdateDeleteFile
+ dbUpdateShortcutFile
+)
+
+type dbUpdateJob struct {
+ file protocol.FileInfo
+ jobType int
+}
+
type rwFolder struct {
stateTracker
@@ -73,7 +86,7 @@ type rwFolder struct {
stop chan struct{}
queue *jobQueue
- dbUpdates chan protocol.FileInfo
+ dbUpdates chan dbUpdateJob
scanTimer *time.Timer
pullTimer *time.Timer
delayScan chan time.Duration
@@ -326,7 +339,7 @@ func (p *rwFolder) pullerIteration(ignores *ignore.Matcher) int {
l.Debugln(p, "c", p.copiers, "p", p.pullers)
}
- p.dbUpdates = make(chan protocol.FileInfo)
+ p.dbUpdates = make(chan dbUpdateJob)
updateWg.Add(1)
go func() {
// dbUpdaterRoutine finishes when p.dbUpdates is closed
@@ -583,7 +596,7 @@ func (p *rwFolder) handleDir(file protocol.FileInfo) {
}
if err = osutil.InWritableDir(mkdir, realName); err == nil {
- p.dbUpdates <- file
+ p.dbUpdates <- dbUpdateJob{file, dbUpdateHandleDir}
} else {
l.Infof("Puller (folder %q, dir %q): %v", p.folder, file.Name, err)
}
@@ -600,9 +613,9 @@ func (p *rwFolder) handleDir(file protocol.FileInfo) {
// It's OK to change mode bits on stuff within non-writable directories.
if p.ignorePermissions(file) {
- p.dbUpdates <- file
+ p.dbUpdates <- dbUpdateJob{file, dbUpdateHandleDir}
} else if err := os.Chmod(realName, mode); err == nil {
- p.dbUpdates <- file
+ p.dbUpdates <- dbUpdateJob{file, dbUpdateHandleDir}
} else {
l.Infof("Puller (folder %q, dir %q): %v", p.folder, file.Name, err)
}
@@ -642,13 +655,13 @@ func (p *rwFolder) deleteDir(file protocol.FileInfo) {
err = osutil.InWritableDir(osutil.Remove, realName)
if err == nil || os.IsNotExist(err) {
// It was removed or it doesn't exist to start with
- p.dbUpdates <- file
+ p.dbUpdates <- dbUpdateJob{file, dbUpdateDeleteDir}
} else if _, serr := os.Lstat(realName); serr != nil && !os.IsPermission(serr) {
// We get an error just looking at the directory, and it's not a
// permission problem. Lets assume the error is in fact some variant
// of "file does not exist" (possibly expressed as some parent being a
// file and not a directory etc) and that the delete is handled.
- p.dbUpdates <- file
+ p.dbUpdates <- dbUpdateJob{file, dbUpdateDeleteDir}
} else {
l.Infof("Puller (folder %q, dir %q): delete: %v", p.folder, file.Name, err)
}
@@ -690,13 +703,13 @@ func (p *rwFolder) deleteFile(file protocol.FileInfo) {
if err == nil || os.IsNotExist(err) {
// It was removed or it doesn't exist to start with
- p.dbUpdates <- file
+ p.dbUpdates <- dbUpdateJob{file, dbUpdateDeleteFile}
} else if _, serr := os.Lstat(realName); serr != nil && !os.IsPermission(serr) {
// We get an error just looking at the file, and it's not a permission
// problem. Lets assume the error is in fact some variant of "file
// does not exist" (possibly expressed as some parent being a file and
// not a directory etc) and that the delete is handled.
- p.dbUpdates <- file
+ p.dbUpdates <- dbUpdateJob{file, dbUpdateDeleteFile}
} else {
l.Infof("Puller (folder %q, file %q): delete: %v", p.folder, file.Name, err)
}
@@ -756,13 +769,15 @@ func (p *rwFolder) renameFile(source, target protocol.FileInfo) {
// of the source and the creation of the target. Fix-up the metadata,
// and update the local index of the target file.
- p.dbUpdates <- source
+ p.dbUpdates <- dbUpdateJob{source, dbUpdateDeleteFile}
err = p.shortcutFile(target)
if err != nil {
l.Infof("Puller (folder %q, file %q): rename from %q metadata: %v", p.folder, target.Name, source.Name, err)
return
}
+
+ p.dbUpdates <- dbUpdateJob{target, dbUpdateHandleFile}
} else {
// We failed the rename so we have a source file that we still need to
// get rid of. Attempt to delete it instead so that we make *some*
@@ -774,7 +789,7 @@ func (p *rwFolder) renameFile(source, target protocol.FileInfo) {
return
}
- p.dbUpdates <- source
+ p.dbUpdates <- dbUpdateJob{source, dbUpdateDeleteFile}
}
}
@@ -848,6 +863,11 @@ func (p *rwFolder) handleFile(file protocol.FileInfo, copyChan chan<- copyBlocks
"type": "file",
"action": "metadata",
})
+
+ if err != nil {
+ p.dbUpdates <- dbUpdateJob{file, dbUpdateShortcutFile}
+ }
+
return
}
@@ -954,16 +974,13 @@ func (p *rwFolder) shortcutFile(file protocol.FileInfo) error {
file.Version = file.Version.Merge(cur.Version)
}
- p.dbUpdates <- file
return nil
}
// shortcutSymlink changes the symlinks type if necessary.
func (p *rwFolder) shortcutSymlink(file protocol.FileInfo) (err error) {
err = symlinks.ChangeType(filepath.Join(p.dir, file.Name), file.Flags)
- if err == nil {
- p.dbUpdates <- file
- } else {
+ if err != nil {
l.Infof("Puller (folder %q, file %q): symlink shortcut: %v", p.folder, file.Name, err)
}
return
@@ -1183,7 +1200,7 @@ func (p *rwFolder) performFinish(state *sharedPullerState) error {
}
// Record the updated file in the index
- p.dbUpdates <- state.file
+ p.dbUpdates <- dbUpdateJob{state.file, dbUpdateHandleFile}
return nil
}
@@ -1239,39 +1256,63 @@ func (p *rwFolder) dbUpdaterRoutine() {
maxBatchTime = 2 * time.Second
)
- batch := make([]protocol.FileInfo, 0, maxBatchSize)
+ batch := make([]dbUpdateJob, 0, maxBatchSize)
+ files := make([]protocol.FileInfo, 0, maxBatchSize)
tick := time.NewTicker(maxBatchTime)
defer tick.Stop()
+ handleBatch := func() {
+ found := false
+ var lastFile protocol.FileInfo
+
+ for _, job := range batch {
+ files = append(files, job.file)
+ if job.file.IsInvalid() || (job.file.IsDirectory() && !job.file.IsSymlink()) {
+ continue
+ }
+
+ if job.jobType&(dbUpdateHandleFile|dbUpdateDeleteFile) == 0 {
+ continue
+ }
+
+ found = true
+ lastFile = job.file
+ }
+
+ p.model.updateLocals(p.folder, files)
+
+ if found {
+ p.model.receivedFile(p.folder, lastFile)
+ }
+
+ batch = batch[:0]
+ files = files[:0]
+ }
+
loop:
for {
select {
- case file, ok := <-p.dbUpdates:
+ case job, ok := <-p.dbUpdates:
if !ok {
break loop
}
- file.LocalVersion = 0
- batch = append(batch, file)
+ job.file.LocalVersion = 0
+ batch = append(batch, job)
if len(batch) == maxBatchSize {
- p.model.updateLocals(p.folder, batch)
- p.model.receivedFile(p.folder, batch[len(batch)-1].Name)
- batch = batch[:0]
+ handleBatch()
}
case <-tick.C:
if len(batch) > 0 {
- p.model.updateLocals(p.folder, batch)
- p.model.receivedFile(p.folder, batch[len(batch)-1].Name)
- batch = batch[:0]
+ handleBatch()
}
}
}
if len(batch) > 0 {
- p.model.updateLocals(p.folder, batch)
- p.model.receivedFile(p.folder, batch[len(batch)-1].Name)
+ handleBatch()
}
}
diff --git a/internal/stats/folder.go b/internal/stats/folder.go
index 5ec3ba606..5066dfe82 100644
--- a/internal/stats/folder.go
+++ b/internal/stats/folder.go
@@ -9,6 +9,8 @@ package stats
import (
"time"
+ "github.com/syncthing/protocol"
+
"github.com/syncthing/syncthing/internal/db"
"github.com/syndtr/goleveldb/leveldb"
)
@@ -25,6 +27,7 @@ type FolderStatisticsReference struct {
type LastFile struct {
At time.Time `json:"at"`
Filename string `json:"filename"`
+ Deleted bool `json:"deleted"`
}
func NewFolderStatisticsReference(ldb *leveldb.DB, folder string) *FolderStatisticsReference {
@@ -44,18 +47,21 @@ func (s *FolderStatisticsReference) GetLastFile() LastFile {
if !ok {
return LastFile{}
}
+ deleted, ok := s.ns.Bool("lastFileDeleted")
return LastFile{
At: at,
Filename: file,
+ Deleted: deleted,
}
}
-func (s *FolderStatisticsReference) ReceivedFile(filename string) {
+func (s *FolderStatisticsReference) ReceivedFile(file protocol.FileInfo) {
if debug {
- l.Debugln("stats.FolderStatisticsReference.ReceivedFile:", s.folder, filename)
+ l.Debugln("stats.FolderStatisticsReference.ReceivedFile:", s.folder, file)
}
s.ns.PutTime("lastFileAt", time.Now())
- s.ns.PutString("lastFileName", filename)
+ s.ns.PutString("lastFileName", file.Name)
+ s.ns.PutBool("lastFileDeleted", file.IsDeleted())
}
func (s *FolderStatisticsReference) GetStatistics() FolderStatistics {