diff --git a/CHANGELOG.md b/CHANGELOG.md index b565a188d..f727a71bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +- Added a `Reset Settings` button in the settings. + ### 3.15.2 - *2014-01-22* - More stability update. diff --git a/html/General/Settings-section-Main.html b/html/General/Settings-section-Main.html index 580ddae46..3af2be8c4 100644 --- a/html/General/Settings-section-Main.html +++ b/html/General/Settings-section-Main.html @@ -1,6 +1,7 @@
- + +

diff --git a/lib/$.coffee b/lib/$.coffee index 35d62a4c1..c50412cbf 100644 --- a/lib/$.coffee +++ b/lib/$.coffee @@ -300,6 +300,15 @@ $.set = do -> else $.extend items.sync, key setAll() +$.clear = (cb) -> + count = 2 + done = -> + if chrome.runtime.lastError + c.error chrome.runtime.lastError.message + return + cb?() unless --count + chrome.storage.local.clear done + chrome.storage.sync.clear done <% } else { %> # http://wiki.greasespot.net/Main_Page $.sync = do -> @@ -341,4 +350,7 @@ $.set = do -> for key, val of keys set key, val return +$.clear = (cb) -> + $.delete GM_listValues().map (key) -> key.replace g.NAMESPACE, '' + cb?() <% } %> diff --git a/src/General/Settings.coffee b/src/General/Settings.coffee index f05f1641f..0d85a8d44 100644 --- a/src/General/Settings.coffee +++ b/src/General/Settings.coffee @@ -96,6 +96,7 @@ Settings = section.innerHTML = <%= importHTML('General/Settings-section-Main') %> $.on $('.export', section), 'click', Settings.export $.on $('.import', section), 'click', Settings.import + $.on $('.reset', section), 'click', Settings.reset $.on $('input', section), 'change', Settings.onImport items = {} @@ -154,7 +155,7 @@ Settings = <% } %> a.click() import: -> - @nextElementSibling.click() + $('input', @parentNode).click() onImport: -> return unless file = @files[0] output = @parentNode.nextElementSibling @@ -174,6 +175,11 @@ Settings = loadSettings: (data) -> version = data.version.split '.' if version[0] is '2' + convertSettings = (data, map) -> + for prevKey, newKey of map + data.Conf[newKey] = data.Conf[prevKey] if newKey + delete data.Conf[prevKey] + data data = Settings.convertSettings data, # General confs 'Disable 4chan\'s extension': '' @@ -243,11 +249,9 @@ Settings = data.Conf['watchedThreads'] = boards: ThreadWatcher.convert data.Conf['WatchedThreads'] delete data.Conf['WatchedThreads'] $.set data.Conf - convertSettings: (data, map) -> - for prevKey, newKey of map - data.Conf[newKey] = data.Conf[prevKey] if newKey - delete data.Conf[prevKey] - data + reset: -> + if confirm 'Your current settings will be entirely wiped, are you sure?' + $.clear -> window.location.reload() if confirm 'Reset successful. Reload now?' filter: (section) -> section.innerHTML = <%= importHTML('General/Settings-section-Filter') %> diff --git a/src/Meta/metadata.js b/src/Meta/metadata.js index 6a1ff3a66..5a6383b4d 100644 --- a/src/Meta/metadata.js +++ b/src/Meta/metadata.js @@ -14,6 +14,7 @@ // @grant GM_getValue // @grant GM_setValue // @grant GM_deleteValue +// @grant GM_listValues // @grant GM_openInTab // @run-at document-start // @updateURL <%= meta.page %><%= meta.buildsPath %><%= name %>.meta.js