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