Fix some bugs in data storage.

This commit is contained in:
ccd0 2018-05-01 15:19:59 -07:00
parent 117cb3a56c
commit dd08860ea0

View File

@ -22,27 +22,26 @@ class DataBoard
changes: []
save: (change, cb) ->
snapshot1 = JSON.stringify @allData
change()
{changes} = @
changes.push change
@changes.push change
$.get @key, {boards: {}}, (items) =>
@initData items[@key]
snapshot2 = JSON.stringify @allData
c() for c in changes
return unless @changes.length
needSync = ((items[@key].version or 0) > (@allData.version or 0))
if needSync
@initData items[@key]
change() for change in @changes
@changes = []
@allData.version = (@allData.version or 0) + 1
$.set @key, @allData, =>
@changes = []
@sync?() if snapshot1 isnt snapshot2
@sync?() if needSync
cb?()
forceSync: (cb) ->
snapshot1 = JSON.stringify @allData
{changes} = @
$.get @key, {boards: {}}, (items) =>
@initData items[@key]
snapshot2 = JSON.stringify @allData
c() for c in changes
@sync?() if snapshot1 isnt snapshot2
if (items[@key].version or 0) > (@allData.version or 0)
@initData items[@key]
change() for change in @changes
@sync?()
cb?()
delete: ({boardID, threadID, postID}) ->
@ -145,5 +144,6 @@ class DataBoard
$.set @key, @allData
onSync: (data) =>
return unless (data.version or 0) > (@allData.version or 0)
@initData data
@sync?()