Merge branch 'mayhem' into v3

Conflicts:
	CHANGELOG.md
	README.md
	css/style.css
	html/General/Header.html
	package.json
	src/General/Config.coffee
	src/General/Header.coffee
	src/General/Settings.coffee
	src/Miscellaneous/AnnouncementHiding.coffee
This commit is contained in:
Zixaphir 2014-03-13 14:30:39 -07:00
commit 9b9a2980aa
14 changed files with 46 additions and 141 deletions

View File

@ -1,4 +1,3 @@
**MayhemYDG**:
- Thread and post hiding changes:
- The posts' menu now has a label entry listing the reasons why a post got hidden or highlighted.
@ -39,21 +38,27 @@
<li> Filter (hiding, highlighting)
<li> Thread Hiding
<li> Linkify
<li> Auto-GIF
<li> Thumbnail Replacemenu
<li> Image Hover
</ul>
- Support for the official catalog will be removed in the future, once the catalog mode for the index is deemed satisfactory.
- Added `Original filename` variable to Sauce panel.
- Fixed a bug which prevented QR cooldowns from being pruned from storage.
- On Chrome, the storage could reach the quota and prevent 4chan X from saving data like QR name/mail or auto-watch for example.
- Clicking on the border of the Header will not toggle `Header auto-hide` anymore.
You can still change the setting in the Header menu &rarr; Header.
- Bugfixes
**Vampiricwulf**
- Flash embedding and other Flash features.
**Zixaphir**
**Zixaphir**
- Update Custom Navigation legend to reflect index mode changes.
- JSON Navigation now works for backlinks (when Quote Inlining is disabled) and backlink hashlinks.
- JSON Navigation (Index, Catalog) performance improvements.
- Added a nifty bread-crumb for the JSON Navigation.
- Many spiffy performance, state awareness, and sanity improvements to JSON Navigation.
- Added a return button to the JSON Navigation that will switch you back to non-catalog view (requires NavLinks not to be hidden).
### v1.4.1
*2014-03-01*

View File

@ -135,7 +135,6 @@
'Catalog Links': [true, 'Add toggle link in header menu to turn Navigation links into links to each board\'s catalog.'],
'External Catalog': [false, 'Link to external catalog instead of the internal one.'],
'QR Shortcut': [false, 'Adds a small [QR] link in the header.'],
'Announcement Hiding': [true, 'Add button to hide 4chan announcements.'],
'Desktop Notifications': [false, 'Enables desktop notifications across various 4chan X features.'],
'404 Redirect': [true, 'Redirect dead threads and images.'],
'Keybinds': [true, 'Bind actions to keyboard shortcuts.'],
@ -2295,18 +2294,14 @@
},
setBarVisibility: function(hide) {
Header.headerToggler.checked = hide;
$.event('CloseMenu');
(hide ? $.addClass : $.rmClass)(Header.bar, 'autohide');
return (hide ? $.addClass : $.rmClass)(doc, 'autohide');
return (hide ? $.addClass : $.rmClass)(Header.bar, 'autohide');
},
toggleBarVisibility: function() {
var hide, message;
hide = this.nodeName === 'INPUT' ? this.checked : !$.hasClass(Header.bar, 'autohide');
this.checked = hide;
$.set('Header auto-hide', Conf['Header auto-hide'] = hide);
Header.setBarVisibility(hide);
message = "The header bar will " + (hide ? 'automatically hide itself.' : 'remain visible.');
return new Notice('info', message, 2);
toggleBarVisibility: function(e) {
var hide;
hide = this.checked;
Conf['Header auto-hide'] = hide;
$.set('Header auto-hide', hide);
return Header.setBarVisibility(hide);
},
setHideBarOnScroll: function(hide) {
Header.scrollHeaderToggler.checked = hide;
@ -5098,6 +5093,9 @@
}),
order: 20,
open: function(post) {
if (post.isReply) {
return false;
}
this.el.textContent = post.isHidden ? 'Unhide thread' : 'Hide thread';
if (this.cb) {
$.off(this.el, 'click', this.cb);
@ -9282,7 +9280,9 @@
};
})(),
toggle: function(e) {
return Menu.menu.toggle(e, this, Get.postFromNode(this));
var fullID;
fullID = $.x('ancestor::*[@data-full-i-d]', this).dataset.fullID;
return Menu.menu.toggle(e, this, g.posts[fullID]);
}
};
@ -10909,9 +10909,6 @@
PSAHiding = {
init: function() {
if (!Conf['Announcement Hiding']) {
return;
}
$.addClass(doc, 'hide-announcement');
return $.on(d, '4chanXInitFinished', this.setup);
},

View File

@ -111,7 +111,6 @@
'Catalog Links': [true, 'Add toggle link in header menu to turn Navigation links into links to each board\'s catalog.'],
'External Catalog': [false, 'Link to external catalog instead of the internal one.'],
'QR Shortcut': [false, 'Adds a small [QR] link in the header.'],
'Announcement Hiding': [true, 'Add button to hide 4chan announcements.'],
'Desktop Notifications': [false, 'Enables desktop notifications across various 4chan X features.'],
'404 Redirect': [true, 'Redirect dead threads and images.'],
'Keybinds': [true, 'Bind actions to keyboard shortcuts.'],
@ -2354,18 +2353,14 @@
},
setBarVisibility: function(hide) {
Header.headerToggler.checked = hide;
$.event('CloseMenu');
(hide ? $.addClass : $.rmClass)(Header.bar, 'autohide');
return (hide ? $.addClass : $.rmClass)(doc, 'autohide');
return (hide ? $.addClass : $.rmClass)(Header.bar, 'autohide');
},
toggleBarVisibility: function() {
var hide, message;
hide = this.nodeName === 'INPUT' ? this.checked : !$.hasClass(Header.bar, 'autohide');
this.checked = hide;
$.set('Header auto-hide', Conf['Header auto-hide'] = hide);
Header.setBarVisibility(hide);
message = "The header bar will " + (hide ? 'automatically hide itself.' : 'remain visible.');
return new Notice('info', message, 2);
toggleBarVisibility: function(e) {
var hide;
hide = this.checked;
Conf['Header auto-hide'] = hide;
$.set('Header auto-hide', hide);
return Header.setBarVisibility(hide);
},
setHideBarOnScroll: function(hide) {
Header.scrollHeaderToggler.checked = hide;
@ -5150,6 +5145,9 @@
}),
order: 20,
open: function(post) {
if (post.isReply) {
return false;
}
this.el.textContent = post.isHidden ? 'Unhide thread' : 'Hide thread';
if (this.cb) {
$.off(this.el, 'click', this.cb);
@ -9297,7 +9295,9 @@
};
})(),
toggle: function(e) {
return Menu.menu.toggle(e, this, Get.postFromNode(this));
var fullID;
fullID = $.x('ancestor::*[@data-full-i-d]', this).dataset.fullID;
return Menu.menu.toggle(e, this, g.posts[fullID]);
}
};
@ -10923,9 +10923,6 @@
PSAHiding = {
init: function() {
if (!Conf['Announcement Hiding']) {
return;
}
$.addClass(doc, 'hide-announcement');
return $.on(d, '4chanXInitFinished', this.setup);
},

View File

@ -1,26 +0,0 @@
<input type="search" id="index-search" class="field" placeholder="Search">
<a id="index-search-clear" class="fa fa-times-circle" href="javascript:;"></a>
&nbsp;
<time id="index-last-refresh" title="Last index refresh">...</time>
<span id="hidden-label" hidden>&nbsp;&mdash; <span id="hidden-count"></span> <span id="hidden-toggle">[<a href="javascript:;">Show</a>]</span></span>
<span style="flex:1"></span>
<select id="index-mode" name="Index Mode">
<option disabled>Index Mode</option>
<option value="paged">Paged</option>
<option value="infinite">Infinite Scrolling</option>
<option value="all pages">All threads</option>
<option value="catalog">Catalog</option>
</select>
<select id="index-sort" name="Index Sort">
<option disabled>Index Sort</option>
<option value="bump">Bump order</option>
<option value="lastreply">Last reply</option>
<option value="birth">Creation date</option>
<option value="replycount">Reply count</option>
<option value="filecount">File count</option>
</select>
<select id="index-size" name="Index Size">
<option disabled>Image Size</option>
<option value="small">Small</option>
<option value="large">Large</option>
</select>

View File

@ -1,4 +0,0 @@
<button class="export">Export Settings</button>
<button class="import">Import Settings</button>
<button class="reset">Reset Settings</button>
<input type="file" hidden>

View File

@ -1,15 +0,0 @@
<div id="fourchanx-settings" class="dialog">
<nav>
<div class="sections-list"></div>
<div class="credits">
<a href="<%= meta.page %>" target="_blank"><%= meta.name %></a>
&nbsp;|&nbsp;
<a href="<%= meta.repo %>blob/<%= meta.mainBranch %>/CHANGELOG.md" target="_blank">#{g.VERSION}</a>
&nbsp;|&nbsp;
<a href="<%= meta.repo %>blob/<%= meta.mainBranch %>/CONTRIBUTING.md#reporting-bugs-and-suggestions" target="_blank">Issues</a>
&nbsp;|&nbsp;
<a href="javascript:;" class="close fa fa-times" title="Close"></a>
</div>
</nav>
<section></section>
</div>

View File

@ -1,35 +0,0 @@
<div>
<input type="checkbox" id="autohide" title="Auto-hide">
<select data-name="thread" title="Create a new thread / Reply">
<option value="new">New thread</option>
</select>
<span class="move"></span>
<a href="javascript:;" class="close fa fa-times" title="Close"></a>
</div>
<form>
<div class="persona">
<input type="button" id="dump-button" title="Dump list" value="+">
<input data-name="name" name="name" list="list-name" placeholder="Name" class="field">
<input data-name="email" name="email" list="list-email" placeholder="E-mail" class="field">
<input data-name="sub" name="sub" list="list-sub" placeholder="Subject" class="field">
</div>
<div id="dump-list"></div>
<a href="javascript:;" id="add-post" class="fa fa-plus" title="Add a post"></a>
<div class="textarea">
<textarea data-name="com" placeholder="Comment" class="field"></textarea>
<span id="char-count"></span>
</div>
<div id="file-n-submit">
<input type="file" hidden multiple>
<input type="submit">
<input type="button" id="qr-file-button" value="Choose files">
<span id="qr-no-file">No selected file</span>
<input id="qr-filename" data-name="filename" spellcheck="false">
<span id="qr-filesize"></span>
<a href="javascript:;" id="qr-filerm" class="fa fa-times-circle" title="Remove file"></a>
<input type="checkbox" id="qr-file-spoiler" title="Spoiler image">
</div>
</form>
<datalist id="list-name"></datalist>
<datalist id="list-email"></datalist>
<datalist id="list-sub"></datalist>

View File

@ -114,6 +114,6 @@
"https": true,
"withCredentials": true,
"software": "foolfuuka",
"boards": ["a", "biz", "co", "d", "diy", "gd", "jp", "m", "mlp", "s4s", "sci", "sp", "tg", "tv", "u", "v", "vg", "vp", "vr", "wsg"],
"boards": ["a", "biz", "co", "d", "diy", "gd", "jp", "m", "s4s", "sci", "sp", "tg", "tv", "u", "v", "vg", "vp", "vr", "wsg"],
"files": ["a", "biz", "d", "diy", "gd", "jp", "m", "s4s", "sci", "tg", "u", "vg", "vp", "vr", "wsg"]
}]

View File

@ -28,13 +28,13 @@
"font-awesome": "~4.0.3",
"grunt": "~0.4.2",
"grunt-bump": "~0.0.13",
"grunt-concurrent": "~0.4.3",
"grunt-concurrent": "~0.5.0",
"grunt-contrib-clean": "~0.5.0",
"grunt-contrib-coffee": "~0.10.0",
"grunt-contrib-compress": "~0.7.0",
"grunt-contrib-concat": "~0.3.0",
"grunt-contrib-copy": "~0.5.0",
"grunt-contrib-watch": "~0.5.3",
"grunt-contrib-watch": "~0.6.0",
"grunt-shell": "~0.6.4",
"load-grunt-tasks": "~0.4.0"
},

View File

@ -146,6 +146,7 @@ PostHiding =
el: $.el 'a', href: 'javascript:;'
order: 20
open: (post) ->
return false if post.isReply
@el.textContent = if post.isHidden
'Unhide thread'
else

View File

@ -17,10 +17,6 @@ Config =
false,
'Adds a small [QR] link in the header.'
]
'Announcement Hiding': [
true
'Add button to hide 4chan announcements.'
]
'Desktop Notifications': [
false
'Enables desktop notifications across various <%= meta.name %> features.'

View File

@ -1,5 +1,6 @@
Header =
init: ->
@menu = new UI.Menu 'header'
menuButton = $.el 'span',
@ -296,25 +297,13 @@ Header =
setBarVisibility: (hide) ->
Header.headerToggler.checked = hide
$.event 'CloseMenu'
(if hide then $.addClass else $.rmClass) Header.bar, 'autohide'
(if hide then $.addClass else $.rmClass) doc, 'autohide'
toggleBarVisibility: ->
hide = if @nodeName is 'INPUT'
@checked
else
!$.hasClass Header.bar, 'autohide'
# set checked status if called from keybind
@checked = hide
$.set 'Header auto-hide', Conf['Header auto-hide'] = hide
toggleBarVisibility: (e) ->
hide = @checked
Conf['Header auto-hide'] = hide
$.set 'Header auto-hide', hide
Header.setBarVisibility hide
message = "The header bar will #{if hide
'automatically hide itself.'
else
'remain visible.'}"
new Notice 'info', message, 2
setHideBarOnScroll: (hide) ->
Header.scrollHeaderToggler.checked = hide

View File

@ -35,4 +35,5 @@ Menu =
button
toggle: (e) ->
Menu.menu.toggle e, @, Get.postFromNode @
fullID = $.x('ancestor::*[@data-full-i-d]', @).dataset.fullID
Menu.menu.toggle e, @, g.posts[fullID]

View File

@ -1,6 +1,5 @@
PSAHiding =
init: ->
return if !Conf['Announcement Hiding']
$.addClass doc, 'hide-announcement'
$.on d, '4chanXInitFinished', @setup