diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d6d06c37..3936ee47e 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ The links to individual versions below are to copies of the script with the upda ### v1.10.8 +**v1.10.8.4** *(2015-04-07)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.8.4/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.8.4/builds/4chan-X-noupdate.crx "Chromium version")] +- Revert the thread watcher remembering whether it was closed or open. +- Break up `Toggleable Thread Watcher` option into `Fixed Thread Watcher` and `Toggleable Thread Watcher`. + **v1.10.8.3** *(2015-04-06)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.8.3/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.8.3/builds/4chan-X-noupdate.crx "Chromium version")] - Don't clear the unread count of 404'd threads in the thread watcher until they're visited. diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx index 47472e2ef..fca13d50d 100644 Binary files a/builds/4chan-X-beta.crx and b/builds/4chan-X-beta.crx differ diff --git a/builds/4chan-X-beta.meta.js b/builds/4chan-X-beta.meta.js index d64158133..88a91dea9 100644 --- a/builds/4chan-X-beta.meta.js +++ b/builds/4chan-X-beta.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X beta -// @version 1.10.8.3 +// @version 1.10.8.4 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X diff --git a/builds/4chan-X-beta.user.js b/builds/4chan-X-beta.user.js index b280fe2d6..e38d2d65b 100644 --- a/builds/4chan-X-beta.user.js +++ b/builds/4chan-X-beta.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X beta -// @version 1.10.8.3 +// @version 1.10.8.4 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -215,7 +215,8 @@ 'Page Count in Stats': [true, 'Display the page count in the thread stats.', 1], 'Updater and Stats in Header': [true, 'Places the thread updater and thread stats in the header instead of floating them.'], 'Thread Watcher': [true, 'Bookmark threads.'], - 'Toggleable Thread Watcher': [true, 'Adds a shortcut for the thread watcher, hides the watcher by default, and makes it scroll with the page.', 1], + 'Fixed Thread Watcher': [null, 'Makes the thread watcher scroll with the page.', 1], + 'Toggleable Thread Watcher': [true, 'Adds a shortcut for the thread watcher and hides the watcher by default.', 1], 'Mark New IPs': [false, 'Label each post from a new IP with the thread\'s current IP count.'] }, 'Posting': { @@ -278,7 +279,6 @@ 'Auto Prune': [false, 'Automatically remove dead threads.'], 'Show Unread Count': [true, 'Show number of unread posts in watched threads.'] }, - 'Thread Watcher Hidden': true, filter: { name: "# Filter any namefags:\n#/^(?!Anonymous$)/", uniqueID: "# Filter a specific ID:\n#/Txhvk1Tl/", @@ -396,7 +396,7 @@ doc = d.documentElement; g = { - VERSION: '1.10.8.3', + VERSION: '1.10.8.4', NAMESPACE: '4chan X.', boards: {} }; @@ -12414,14 +12414,10 @@ this.refreshButton = $('.refresh', this.dialog); this.closeButton = $('.move > .close', this.dialog); this.unreaddb = Unread.db || new DataBoard('lastReadPosts'); - if (Conf['Toggleable Thread Watcher']) { - this.setHidden(Conf['Thread Watcher Hidden']); - $.sync('Thread Watcher Hidden', this.setHidden); - } $.on(d, 'QRPostSuccessful', this.cb.post); - $.on(sc, 'click', this.toggleHidden); + $.on(sc, 'click', this.toggleWatcher); $.on(this.refreshButton, 'click', this.fetchAllStatus); - $.on(this.closeButton, 'click', this.toggleHidden); + $.on(this.closeButton, 'click', this.toggleWatcher); $.on(d, '4chanXInitFinished', this.ready); switch (g.VIEW) { case 'index': @@ -12430,10 +12426,14 @@ case 'thread': $.on(d, 'ThreadUpdate', this.cb.onThreadRefresh); } - if (Conf['Toggleable Thread Watcher']) { - Header.addShortcut(sc); + if (Conf['Fixed Thread Watcher']) { $.addClass(doc, 'fixed-watcher'); } + if (Conf['Toggleable Thread Watcher']) { + this.dialog.hidden = true; + Header.addShortcut(sc); + $.addClass(doc, 'toggleable-watcher'); + } ThreadWatcher.fetchAuto(); if (g.VIEW === 'index' && Conf['JSON Navigation'] && Conf['Menu'] && g.BOARD.ID !== 'f') { Menu.menu.addEntry({ @@ -12526,16 +12526,9 @@ return $["delete"]('AutoWatch'); }); }, - setHidden: function(hide) { - ThreadWatcher.shortcut.classList.toggle('disabled', hide); - ThreadWatcher.dialog.hidden = hide; - return Conf['Thread Watcher Hidden'] = hide; - }, - toggleHidden: function() { - var hide; - hide = !ThreadWatcher.dialog.hidden; - ThreadWatcher.setHidden(hide); - return $.set('Thread Watcher Hidden', hide); + toggleWatcher: function() { + $.toggleClass(ThreadWatcher.shortcut, 'disabled'); + return ThreadWatcher.dialog.hidden = !ThreadWatcher.dialog.hidden; }, cb: { openAll: function() { @@ -16085,6 +16078,9 @@ Conf['selectedArchives'] = {}; $.get(Conf, function(items) { $.extend(Conf, items); + if (Conf['Fixed Thread Watcher'] == null) { + Conf['Fixed Thread Watcher'] = Conf['Toggleable Thread Watcher']; + } return $.asap((function() { return doc = d.documentElement; }), Main.initFeatures); @@ -17784,7 +17780,7 @@ ":root.fixed-watcher #thread-watcher {\n" + " position: fixed;\n" + "}\n" + -":root:not(.fixed-watcher) #thread-watcher:not(:hover) {\n" + +":root:not(.toggleable-watcher) #thread-watcher:not(:hover) {\n" + " max-height: 210px;\n" + " overflow-y: hidden;\n" + "}\n" + @@ -17818,7 +17814,7 @@ "#thread-watcher a {\n" + " text-decoration: none;\n" + "}\n" + -":root:not(.fixed-watcher) #thread-watcher .move > .close {\n" + +":root:not(.toggleable-watcher) #thread-watcher .move > .close {\n" + " display: none;\n" + "}\n" + "#thread-watcher .move > .close {\n" + diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx index 5b2a859ad..7697cd9b9 100644 Binary files a/builds/4chan-X-noupdate.crx and b/builds/4chan-X-noupdate.crx differ diff --git a/builds/4chan-X-noupdate.user.js b/builds/4chan-X-noupdate.user.js index 605d6efbd..9b67c070b 100644 --- a/builds/4chan-X-noupdate.user.js +++ b/builds/4chan-X-noupdate.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X -// @version 1.10.8.3 +// @version 1.10.8.4 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -214,7 +214,8 @@ 'Page Count in Stats': [true, 'Display the page count in the thread stats.', 1], 'Updater and Stats in Header': [true, 'Places the thread updater and thread stats in the header instead of floating them.'], 'Thread Watcher': [true, 'Bookmark threads.'], - 'Toggleable Thread Watcher': [true, 'Adds a shortcut for the thread watcher, hides the watcher by default, and makes it scroll with the page.', 1], + 'Fixed Thread Watcher': [null, 'Makes the thread watcher scroll with the page.', 1], + 'Toggleable Thread Watcher': [true, 'Adds a shortcut for the thread watcher and hides the watcher by default.', 1], 'Mark New IPs': [false, 'Label each post from a new IP with the thread\'s current IP count.'] }, 'Posting': { @@ -277,7 +278,6 @@ 'Auto Prune': [false, 'Automatically remove dead threads.'], 'Show Unread Count': [true, 'Show number of unread posts in watched threads.'] }, - 'Thread Watcher Hidden': true, filter: { name: "# Filter any namefags:\n#/^(?!Anonymous$)/", uniqueID: "# Filter a specific ID:\n#/Txhvk1Tl/", @@ -395,7 +395,7 @@ doc = d.documentElement; g = { - VERSION: '1.10.8.3', + VERSION: '1.10.8.4', NAMESPACE: '4chan X.', boards: {} }; @@ -12413,14 +12413,10 @@ this.refreshButton = $('.refresh', this.dialog); this.closeButton = $('.move > .close', this.dialog); this.unreaddb = Unread.db || new DataBoard('lastReadPosts'); - if (Conf['Toggleable Thread Watcher']) { - this.setHidden(Conf['Thread Watcher Hidden']); - $.sync('Thread Watcher Hidden', this.setHidden); - } $.on(d, 'QRPostSuccessful', this.cb.post); - $.on(sc, 'click', this.toggleHidden); + $.on(sc, 'click', this.toggleWatcher); $.on(this.refreshButton, 'click', this.fetchAllStatus); - $.on(this.closeButton, 'click', this.toggleHidden); + $.on(this.closeButton, 'click', this.toggleWatcher); $.on(d, '4chanXInitFinished', this.ready); switch (g.VIEW) { case 'index': @@ -12429,10 +12425,14 @@ case 'thread': $.on(d, 'ThreadUpdate', this.cb.onThreadRefresh); } - if (Conf['Toggleable Thread Watcher']) { - Header.addShortcut(sc); + if (Conf['Fixed Thread Watcher']) { $.addClass(doc, 'fixed-watcher'); } + if (Conf['Toggleable Thread Watcher']) { + this.dialog.hidden = true; + Header.addShortcut(sc); + $.addClass(doc, 'toggleable-watcher'); + } ThreadWatcher.fetchAuto(); if (g.VIEW === 'index' && Conf['JSON Navigation'] && Conf['Menu'] && g.BOARD.ID !== 'f') { Menu.menu.addEntry({ @@ -12525,16 +12525,9 @@ return $["delete"]('AutoWatch'); }); }, - setHidden: function(hide) { - ThreadWatcher.shortcut.classList.toggle('disabled', hide); - ThreadWatcher.dialog.hidden = hide; - return Conf['Thread Watcher Hidden'] = hide; - }, - toggleHidden: function() { - var hide; - hide = !ThreadWatcher.dialog.hidden; - ThreadWatcher.setHidden(hide); - return $.set('Thread Watcher Hidden', hide); + toggleWatcher: function() { + $.toggleClass(ThreadWatcher.shortcut, 'disabled'); + return ThreadWatcher.dialog.hidden = !ThreadWatcher.dialog.hidden; }, cb: { openAll: function() { @@ -16084,6 +16077,9 @@ Conf['selectedArchives'] = {}; $.get(Conf, function(items) { $.extend(Conf, items); + if (Conf['Fixed Thread Watcher'] == null) { + Conf['Fixed Thread Watcher'] = Conf['Toggleable Thread Watcher']; + } return $.asap((function() { return doc = d.documentElement; }), Main.initFeatures); @@ -17783,7 +17779,7 @@ ":root.fixed-watcher #thread-watcher {\n" + " position: fixed;\n" + "}\n" + -":root:not(.fixed-watcher) #thread-watcher:not(:hover) {\n" + +":root:not(.toggleable-watcher) #thread-watcher:not(:hover) {\n" + " max-height: 210px;\n" + " overflow-y: hidden;\n" + "}\n" + @@ -17817,7 +17813,7 @@ "#thread-watcher a {\n" + " text-decoration: none;\n" + "}\n" + -":root:not(.fixed-watcher) #thread-watcher .move > .close {\n" + +":root:not(.toggleable-watcher) #thread-watcher .move > .close {\n" + " display: none;\n" + "}\n" + "#thread-watcher .move > .close {\n" + diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx index 5775c2234..ec3cd6621 100644 Binary files a/builds/4chan-X.crx and b/builds/4chan-X.crx differ diff --git a/builds/4chan-X.meta.js b/builds/4chan-X.meta.js index 62a45d007..ef9e992d2 100644 --- a/builds/4chan-X.meta.js +++ b/builds/4chan-X.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.10.8.3 +// @version 1.10.8.4 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index 94367aeb7..7164006a1 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X -// @version 1.10.8.3 +// @version 1.10.8.4 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -215,7 +215,8 @@ 'Page Count in Stats': [true, 'Display the page count in the thread stats.', 1], 'Updater and Stats in Header': [true, 'Places the thread updater and thread stats in the header instead of floating them.'], 'Thread Watcher': [true, 'Bookmark threads.'], - 'Toggleable Thread Watcher': [true, 'Adds a shortcut for the thread watcher, hides the watcher by default, and makes it scroll with the page.', 1], + 'Fixed Thread Watcher': [null, 'Makes the thread watcher scroll with the page.', 1], + 'Toggleable Thread Watcher': [true, 'Adds a shortcut for the thread watcher and hides the watcher by default.', 1], 'Mark New IPs': [false, 'Label each post from a new IP with the thread\'s current IP count.'] }, 'Posting': { @@ -278,7 +279,6 @@ 'Auto Prune': [false, 'Automatically remove dead threads.'], 'Show Unread Count': [true, 'Show number of unread posts in watched threads.'] }, - 'Thread Watcher Hidden': true, filter: { name: "# Filter any namefags:\n#/^(?!Anonymous$)/", uniqueID: "# Filter a specific ID:\n#/Txhvk1Tl/", @@ -396,7 +396,7 @@ doc = d.documentElement; g = { - VERSION: '1.10.8.3', + VERSION: '1.10.8.4', NAMESPACE: '4chan X.', boards: {} }; @@ -12414,14 +12414,10 @@ this.refreshButton = $('.refresh', this.dialog); this.closeButton = $('.move > .close', this.dialog); this.unreaddb = Unread.db || new DataBoard('lastReadPosts'); - if (Conf['Toggleable Thread Watcher']) { - this.setHidden(Conf['Thread Watcher Hidden']); - $.sync('Thread Watcher Hidden', this.setHidden); - } $.on(d, 'QRPostSuccessful', this.cb.post); - $.on(sc, 'click', this.toggleHidden); + $.on(sc, 'click', this.toggleWatcher); $.on(this.refreshButton, 'click', this.fetchAllStatus); - $.on(this.closeButton, 'click', this.toggleHidden); + $.on(this.closeButton, 'click', this.toggleWatcher); $.on(d, '4chanXInitFinished', this.ready); switch (g.VIEW) { case 'index': @@ -12430,10 +12426,14 @@ case 'thread': $.on(d, 'ThreadUpdate', this.cb.onThreadRefresh); } - if (Conf['Toggleable Thread Watcher']) { - Header.addShortcut(sc); + if (Conf['Fixed Thread Watcher']) { $.addClass(doc, 'fixed-watcher'); } + if (Conf['Toggleable Thread Watcher']) { + this.dialog.hidden = true; + Header.addShortcut(sc); + $.addClass(doc, 'toggleable-watcher'); + } ThreadWatcher.fetchAuto(); if (g.VIEW === 'index' && Conf['JSON Navigation'] && Conf['Menu'] && g.BOARD.ID !== 'f') { Menu.menu.addEntry({ @@ -12526,16 +12526,9 @@ return $["delete"]('AutoWatch'); }); }, - setHidden: function(hide) { - ThreadWatcher.shortcut.classList.toggle('disabled', hide); - ThreadWatcher.dialog.hidden = hide; - return Conf['Thread Watcher Hidden'] = hide; - }, - toggleHidden: function() { - var hide; - hide = !ThreadWatcher.dialog.hidden; - ThreadWatcher.setHidden(hide); - return $.set('Thread Watcher Hidden', hide); + toggleWatcher: function() { + $.toggleClass(ThreadWatcher.shortcut, 'disabled'); + return ThreadWatcher.dialog.hidden = !ThreadWatcher.dialog.hidden; }, cb: { openAll: function() { @@ -16085,6 +16078,9 @@ Conf['selectedArchives'] = {}; $.get(Conf, function(items) { $.extend(Conf, items); + if (Conf['Fixed Thread Watcher'] == null) { + Conf['Fixed Thread Watcher'] = Conf['Toggleable Thread Watcher']; + } return $.asap((function() { return doc = d.documentElement; }), Main.initFeatures); @@ -17784,7 +17780,7 @@ ":root.fixed-watcher #thread-watcher {\n" + " position: fixed;\n" + "}\n" + -":root:not(.fixed-watcher) #thread-watcher:not(:hover) {\n" + +":root:not(.toggleable-watcher) #thread-watcher:not(:hover) {\n" + " max-height: 210px;\n" + " overflow-y: hidden;\n" + "}\n" + @@ -17818,7 +17814,7 @@ "#thread-watcher a {\n" + " text-decoration: none;\n" + "}\n" + -":root:not(.fixed-watcher) #thread-watcher .move > .close {\n" + +":root:not(.toggleable-watcher) #thread-watcher .move > .close {\n" + " display: none;\n" + "}\n" + "#thread-watcher .move > .close {\n" + diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip index 2e338fe4e..386cffe08 100644 Binary files a/builds/4chan-X.zip and b/builds/4chan-X.zip differ diff --git a/builds/updates-beta.xml b/builds/updates-beta.xml index fb0a68f6a..4c0e2396c 100644 --- a/builds/updates-beta.xml +++ b/builds/updates-beta.xml @@ -1,7 +1,7 @@ - + diff --git a/builds/updates.xml b/builds/updates.xml index fc4fb49b9..226d893e3 100644 --- a/builds/updates.xml +++ b/builds/updates.xml @@ -1,7 +1,7 @@ - + diff --git a/package.json b/package.json index 5ef193868..776a185c6 100755 --- a/package.json +++ b/package.json @@ -3,8 +3,8 @@ "description": "Cross-browser userscript for maximum lurking on 4chan.", "meta": { "name": "4chan X", - "version": "1.10.8.3", - "date": "2015-04-07T03:32:40.973Z", + "version": "1.10.8.4", + "date": "2015-04-07T17:12:55.046Z", "repo": "https://github.com/ccd0/4chan-x/", "page": "https://github.com/ccd0/4chan-x", "downloads": "https://ccd0.github.io/4chan-x/builds/",