Merge pull request #258 from seaweedchan/v3

Fappe Tyme keybind fix, Catalog Settings shortcut, catalog keybind
This commit is contained in:
Zixaphir 2013-04-24 07:51:37 -07:00
commit 792284060b
38 changed files with 168 additions and 227 deletions

View File

@ -2,7 +2,7 @@
- The top and bottom original board lists are now optional, disabled by default. - The top and bottom original board lists are now optional, disabled by default.
- The button to show a hidden announcement is now inside the header's menu. - The button to show a hidden announcement is now inside the header's menu.
- Reorganized Header menu:<br>![menu](img/changelog/3.2.0/0.png) - Reorganized Header menu:<br>![menu](src/img/changelog/3.2.0/0.png)
- Added the `board-replace` setting to Custom Board Navigation ricing. - Added the `board-replace` setting to Custom Board Navigation ricing.
- Added the option `Cooldown Prediction`, enabled by default. - Added the option `Cooldown Prediction`, enabled by default.
- Added the option `Hide Unread Count at (0)`, disabled by default. - Added the option `Hide Unread Count at (0)`, disabled by default.

View File

@ -1,194 +0,0 @@
module.exports = function(grunt) {
var pkg = grunt.file.readJSON('package.json');
var concatOptions = {
process: {
data: pkg
}
};
var shellOptions = {
stdout: true,
stderr: true,
failOnError: true
};
// Project configuration.
grunt.initConfig({
pkg: pkg,
concat: {
coffee: {
options: concatOptions,
src: [
'src/config.coffee',
'src/globals.coffee',
'lib/ui.coffee',
'lib/$.coffee',
'lib/polyfill.coffee',
'src/features.coffee',
'src/qr.coffee',
'src/report.coffee',
'src/databoard.coffee',
'src/main.coffee'
],
dest: 'tmp-<%= pkg.type %>/script.coffee'
},
crx: {
options: concatOptions,
files: {
'builds/crx/manifest.json': 'src/manifest.json',
'builds/crx/script.js': [
'src/banner.js',
'tmp-<%= pkg.type %>/script.js'
]
}
},
userjs: {
options: concatOptions,
src: [
'src/metadata.js',
'src/banner.js',
'tmp-<%= pkg.type %>/script.js'
],
dest: 'builds/<%= pkg.name %>.js'
},
userscript: {
options: concatOptions,
files: {
'builds/<%= pkg.name %>.meta.js': 'src/metadata.js',
'builds/<%= pkg.name %>.user.js': [
'src/metadata.js',
'src/banner.js',
'tmp-<%= pkg.type %>/script.js'
]
}
}
},
copy: {
crx: {
src: 'img/*.png',
dest: 'builds/crx/',
expand: true,
flatten: true
}
},
coffee: {
script: {
src: 'tmp-<%= pkg.type %>/script.coffee',
dest: 'tmp-<%= pkg.type %>/script.js'
}
},
concurrent: {
build: ['build-crx', 'build-userjs', 'build-userscript']
},
shell: {
commit: {
options: shellOptions,
command: [
'git checkout <%= pkg.meta.mainBranch %>',
'git commit -am "Release <%= pkg.meta.name %> v<%= pkg.version %>."',
'git tag -a <%= pkg.version %> -m "<%= pkg.meta.name %> v<%= pkg.version %>."',
'git tag -af stable-v3 -m "<%= pkg.meta.name %> v<%= pkg.version %>."'
].join(' && ')
},
push: {
options: shellOptions,
command: 'git push origin --tags -f && git push origin --all'
}
},
watch: {
all: {
options: {
interrupt: true
},
files: [
'Gruntfile.js',
'package.json',
'lib/**/*',
'src/**/*',
'css/**/*',
'img/**/*'
],
tasks: 'build'
}
},
compress: {
crx: {
options: {
archive: 'builds/<%= pkg.name %>.zip',
level: 9,
pretty: true
},
expand: true,
flatten: true,
src: 'builds/crx/*',
dest: '/'
}
},
clean: {
builds: 'builds',
tmpcrx: 'tmp-crx',
tmpuserjs: 'tmp-userjs',
tmpuserscript: 'tmp-userscript'
}
});
grunt.loadNpmTasks('grunt-bump');
grunt.loadNpmTasks('grunt-concurrent');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-coffee');
grunt.loadNpmTasks('grunt-contrib-compress');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-shell');
grunt.registerTask('default', ['build']);
grunt.registerTask('set-build', 'Set the build type variable', function(type) {
pkg.type = type;
grunt.log.ok('pkg.type = %s', type);
});
grunt.registerTask('build', ['concurrent:build']);
grunt.registerTask('build-crx', [
'set-build:crx',
'concat:coffee',
'coffee:script',
'concat:crx',
'copy:crx',
'clean:tmpcrx'
]);
grunt.registerTask('build-userjs', [
'set-build:userjs',
'concat:coffee',
'coffee:script',
'concat:userjs',
'clean:tmpuserjs'
]);
grunt.registerTask('build-userscript', [
'set-build:userscript',
'concat:coffee',
'coffee:script',
'concat:userscript',
'clean:tmpuserscript'
]);
grunt.registerTask('release', ['shell:commit', 'shell:push', 'build-crx', 'compress:crx']);
grunt.registerTask('patch', ['bump', 'reloadPkg', 'updcl:3', 'release']);
grunt.registerTask('minor', ['bump:minor', 'reloadPkg', 'updcl:2', 'release']);
grunt.registerTask('major', ['bump:major', 'reloadPkg', 'updcl:1', 'release']);
grunt.registerTask('reloadPkg', 'Reload the package', function() {
// Update the `pkg` object with the new version.
pkg = grunt.file.readJSON('package.json');
grunt.config.data.pkg = concatOptions.process.data = pkg;
grunt.log.ok('pkg reloaded.');
});
grunt.registerTask('updcl', 'Update the changelog', function(i) {
// i is the number of #s for markdown.
var version = new Array(+i + 1).join('#') + ' ' + pkg.version + ' - *' + grunt.template.today('yyyy-mm-dd') + '*';
grunt.file.write('CHANGELOG.md', version + '\n\n' + grunt.file.read('CHANGELOG.md'));
grunt.log.ok('Changelog updated for v' + pkg.version + '.');
});
};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@ -446,8 +446,12 @@ http://iqdb.org/?url=%TURL
'Alt+m' 'Alt+m'
'Insert math tags.' 'Insert math tags.'
] ]
'Submit QR': [ 'Toggle sage': [
'Alt+s' 'Alt+s'
'Toggle sage in email field'
]
'Submit QR': [
'Ctrl+Enter'
'Submit post.' 'Submit post.'
] ]
# Thread related # Thread related
@ -489,6 +493,10 @@ http://iqdb.org/?url=%TURL
'Left' 'Left'
'Jump to the previous page.' 'Jump to the previous page.'
] ]
'Open catalog': [
'Shift+c'
'Open the catalog of the current board'
]
# Thread Navigation # Thread Navigation
'Next thread': [ 'Next thread': [
'Down' 'Down'

View File

@ -238,7 +238,7 @@ a[href="javascript:;"] {
.notification > .close { .notification > .close {
padding: 6px; padding: 6px;
top: 0; top: 0;
right: 0; right: 5px;
position: absolute; position: absolute;
} }
.message { .message {
@ -837,6 +837,9 @@ a:only-of-type > .remove {
text-decoration: none; text-decoration: none;
white-space: nowrap; white-space: nowrap;
} }
.left>.entry.has-submenu {
padding-right: 17px !important;
}
.entry:last-child { .entry:last-child {
border-bottom: 0; border-bottom: 0;
} }

View File

@ -14,7 +14,7 @@ Header =
customNavToggler = $.el 'label', customNavToggler = $.el 'label',
innerHTML: '<input type=checkbox name="Custom Board Navigation"> Custom board navigation' innerHTML: '<input type=checkbox name="Custom Board Navigation"> Custom board navigation'
footerToggler = $.el 'label', footerToggler = $.el 'label',
innerHTML: "<input type=checkbox #{unless Conf['Bottom Board List'] then 'checked' else ''}> Hide Footer Nav" innerHTML: "<input type=checkbox #{unless Conf['Bottom Board List'] then 'checked' else ''}> Bottom original board list"
editCustomNav = $.el 'a', editCustomNav = $.el 'a',
textContent: 'Edit custom board navigation' textContent: 'Edit custom board navigation'
href: 'javascript:;' href: 'javascript:;'
@ -71,9 +71,16 @@ Header =
if a = $ "a[href*='/#{g.BOARD}/']", $.id 'boardNavDesktopFoot' if a = $ "a[href*='/#{g.BOARD}/']", $.id 'boardNavDesktopFoot'
a.className = 'current' a.className = 'current'
$.add d.body, @hover $.ready ->
$.add d.body, Header.hover
Header.footer = footer = $.id 'boardNavDesktopFoot'
@footer = $.id 'boardNavDesktopFoot' @footer = $.id 'boardNavDesktopFoot'
@setFooterVisibility !Conf['Bottom Board List'] Header.setFooterVisibility Conf['Footer auto-hide']
$.sync 'Footer auto-hide', Header.setFooterVisibility
cs = $.id('settingsWindowLink')
cs.textContent = 'Catalog Settings'
if g.VIEW is 'catalog'
Header.addShortcut cs
$.sync 'Bottom Board List', Header.setFooterVisibility $.sync 'Bottom Board List', Header.setFooterVisibility
bar: $.el 'div', bar: $.el 'div',

View File

@ -50,6 +50,8 @@ Keybinds =
when Conf['Math tags'] when Conf['Math tags']
return if target.nodeName isnt 'TEXTAREA' return if target.nodeName isnt 'TEXTAREA'
Keybinds.tags 'math', target Keybinds.tags 'math', target
when Conf['Toggle sage']
Keybinds.sage() if QR.nodes
when Conf['Submit QR'] when Conf['Submit QR']
QR.submit() if QR.nodes and !QR.status() QR.submit() if QR.nodes and !QR.status()
# Thread related # Thread related
@ -63,7 +65,9 @@ Keybinds =
when Conf['Expand images'] when Conf['Expand images']
Keybinds.img threadRoot, true Keybinds.img threadRoot, true
when Conf['fappeTyme'] when Conf['fappeTyme']
do FappeTyme.input.click unless $('#menu.left')
Header.menuButton.click()
FappeTyme.input.click()
# Board Navigation # Board Navigation
when Conf['Front page'] when Conf['Front page']
window.location = "/#{g.BOARD}/0#delform" window.location = "/#{g.BOARD}/0#delform"
@ -75,6 +79,11 @@ Keybinds =
when Conf['Previous page'] when Conf['Previous page']
if form = $ '.prev form' if form = $ '.prev form'
window.location = form.action window.location = form.action
when Conf['Open catalog']
if Conf['External Catalog']
window.location = CatalogLinks.external(g.BOARD.ID)
else
window.location = "/#{g.BOARD}/catalog"
# Thread Navigation # Thread Navigation
when Conf['Next thread'] when Conf['Next thread']
return if g.VIEW is 'thread' return if g.VIEW is 'thread'
@ -154,6 +163,12 @@ Keybinds =
# Fire the 'input' event # Fire the 'input' event
$.event 'input', null, ta $.event 'input', null, ta
sage: ->
isSage = /sage/i.test QR.nodes.email.value
QR.nodes.email.value = if isSage
""
else "sage"
img: (thread, all) -> img: (thread, all) ->
if all if all
ImageExpand.cb.toggleAll() ImageExpand.cb.toggleAll()

BIN
src/img/emoji/SS-sage.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 659 B

BIN
src/img/emoji/arch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 567 B

BIN
src/img/emoji/baka.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 987 B

BIN
src/img/emoji/centos.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 858 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 297 B

BIN
src/img/emoji/debian.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

BIN
src/img/emoji/fedora.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 B

BIN
src/img/emoji/freebsd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
src/img/emoji/gentoo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 882 B

BIN
src/img/emoji/gnu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
src/img/emoji/madotsuki.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

BIN
src/img/emoji/mint.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

BIN
src/img/emoji/neko.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 B

BIN
src/img/emoji/openbsd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1002 B

BIN
src/img/emoji/osx.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

BIN
src/img/emoji/plan9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

BIN
src/img/emoji/ponyo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 884 B

BIN
src/img/emoji/rabite.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
src/img/emoji/rhel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 B

BIN
src/img/emoji/sabayon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 830 B

BIN
src/img/emoji/sakamoto.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 934 B

BIN
src/img/emoji/sega.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

BIN
src/img/emoji/slackware.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 912 B

BIN
src/img/emoji/trisquel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

BIN
src/img/emoji/ubuntu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 625 B

BIN
src/img/emoji/windows.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
src/img/emoji/yuno.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB