Allow $.set to save multiple items at once.

Fix importing watched threads from v2.
This commit is contained in:
Nicolas Stepien 2013-04-02 13:34:34 +02:00
parent a961c993a2
commit ded92b94c2
2 changed files with 38 additions and 20 deletions

View File

@ -227,7 +227,11 @@ $.extend $,
items = $.item key, val items = $.item key, val
chrome.storage.sync.get items, cb chrome.storage.sync.get items, cb
set: (key, val) -> set: (key, val) ->
chrome.storage.sync.set $.item key, val items = if arguments.length is 2
$.item key, val
else
key
chrome.storage.sync.set items
<% } else if (type === 'userjs') { %> <% } else if (type === 'userjs') { %>
do -> do ->
# http://www.opera.com/docs/userjs/specs/#scriptstorage # http://www.opera.com/docs/userjs/specs/#scriptstorage
@ -257,13 +261,20 @@ do ->
if val = scriptStorage[g.NAMESPACE + key] if val = scriptStorage[g.NAMESPACE + key]
items[key] = JSON.parse val items[key] = JSON.parse val
cb items cb items
$.set = (key, val) -> $.set = do ->
key = g.NAMESPACE + key set = (key, val) ->
val = JSON.stringify val key = g.NAMESPACE + key
if key of $.syncing val = JSON.stringify val
# for `storage` events if key of $.syncing
localStorage.setItem key, val # for `storage` events
scriptStorage[key] = val localStorage.setItem key, val
scriptStorage[key] = val
(key, val) ->
if arguments.length is 1
for key, val of key
set key, val
else
set key, val
<% } else { %> <% } else { %>
# http://wiki.greasespot.net/Main_Page # http://wiki.greasespot.net/Main_Page
delete: (key) -> delete: (key) ->
@ -285,11 +296,18 @@ do ->
if val = GM_getValue g.NAMESPACE + key if val = GM_getValue g.NAMESPACE + key
items[key] = JSON.parse val items[key] = JSON.parse val
cb items cb items
set: (key, val) -> set: do ->
key = g.NAMESPACE + key set = (key, val) ->
val = JSON.stringify val key = g.NAMESPACE + key
if key of $.syncing val = JSON.stringify val
# for `storage` events if key of $.syncing
localStorage.setItem key, val # for `storage` events
GM_setValue key, val localStorage.setItem key, val
GM_setValue key, val
(key, val) ->
if arguments.length is 1
for key, val of key
set key, val
else
set key, val
<% } %> <% } %>

View File

@ -226,8 +226,9 @@ Settings =
new Notification 'info', el, 60 new Notification 'info', el, 60
else else
$.on d, '4chanXInitFinished', Settings.open $.on d, '4chanXInitFinished', Settings.open
$.set 'lastupdate', Date.now() $.set
$.set 'previousversion', g.VERSION lastupdate: Date.now()
previousversion: g.VERSION
Settings.addSection 'Main', Settings.main Settings.addSection 'Main', Settings.main
Settings.addSection 'Filter', Settings.filter Settings.addSection 'Filter', Settings.filter
@ -477,9 +478,8 @@ Settings =
continue unless key of data.Conf continue unless key of data.Conf
data.Conf[key] = data.Conf[key].replace(/ctrl|alt|meta/g, (s) -> "#{s[0].toUpperCase()}#{s[1..]}").replace /(^|.+\+)[A-Z]$/g, (s) -> data.Conf[key] = data.Conf[key].replace(/ctrl|alt|meta/g, (s) -> "#{s[0].toUpperCase()}#{s[1..]}").replace /(^|.+\+)[A-Z]$/g, (s) ->
"Shift+#{s[0...-1]}#{s[-1..].toLowerCase()}" "Shift+#{s[0...-1]}#{s[-1..].toLowerCase()}"
for key, val of data.Conf data.Conf.WatchedThreads = data.WatchedThreads
$.set key, val $.set data.Conf
$.set 'WatchedThreads', data.WatchedThreads
convertSettings: (data, map) -> convertSettings: (data, map) ->
for prevKey, newKey of map for prevKey, newKey of map
data.Conf[newKey] = data.Conf[prevKey] if newKey data.Conf[newKey] = data.Conf[prevKey] if newKey