This commit is contained in:
Zixaphir 2013-06-04 10:48:13 -07:00
parent feeae455c2
commit 97b3069af1
13 changed files with 171 additions and 166 deletions

View File

@ -55,16 +55,6 @@ module.exports = (grunt) ->
'tmp-<%= pkg.type %>/script.js'
]
userjs:
options: concatOptions
src: [
'src/General/meta/botproc.js'
'src/General/meta/metadata.js'
'src/General/meta/banner.js'
'tmp-<%= pkg.type %>/script.js'
]
dest: 'builds/<%= pkg.name %>.js'
userscript:
options: concatOptions
files:
@ -95,7 +85,6 @@ module.exports = (grunt) ->
build: [
'concat:meta'
'build-crx'
'build-userjs'
'build-userscript'
]
@ -138,7 +127,6 @@ module.exports = (grunt) ->
clean:
builds: 'builds'
tmpcrx: 'tmp-crx'
tmpuserjs: 'tmp-userjs'
tmpuserscript: 'tmp-userscript'
grunt.loadNpmTasks 'grunt-bump'
@ -157,10 +145,6 @@ module.exports = (grunt) ->
grunt.registerTask 'set-build', 'Set the build type variable', (type) ->
pkg.type = type;
pkg.agent = if type is 'crx'
'-webkit-'
else
'-moz-'
pkg.sizing = if type is 'crx'
'box-sizing'
else
@ -169,6 +153,10 @@ module.exports = (grunt) ->
'-webkit-filter'
else
'filter'
pkg.transform = if type is 'crx'
'-webkit-transform'
else
'transform'
grunt.log.ok 'pkg.type = %s', type
grunt.registerTask 'build', [
@ -184,14 +172,6 @@ module.exports = (grunt) ->
'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'

View File

@ -11552,7 +11552,7 @@
right: 0
};
}
return "#boardNavDesktopFoot a,\n#header-bar a,\n.deleteform::before,\n.field,\n.hide-navigation-decorations .pages a,\n.selectrice,\nbody,\nbutton,\ninput,\ntextarea {\n font-size: " + (parseInt(_conf["Font Size"], 10)) + "px;\n}\n#boardTitle,\n.boardTitle a {\n font-size: " + (parseInt(_conf["Font Size"], 10) + 10) + "px;\n}\n.boardSubtitle,\n.boardSubtitle a {\n font-size: " + (parseInt(_conf["Font Size"], 10) - 1) + "px;\n}\nbody,\nbutton,\ninput,\ntextarea {\n font-family: " + _conf["Font"] + ";\n}\nbody {\n padding: 0 " + (parseInt(_conf["Right Thread Padding"], 10) + editSpace["right"]) + "px 0 " + (parseInt(_conf["Left Thread Padding"], 10) + editSpace["left"]) + "px;\n}\n.board > .thread {\n margin: " + (parseInt(_conf["Top Thread Padding"], 10)) + "px 0 " + (parseInt(_conf["Bottom Thread Padding"], 10)) + "px 0;\n}\n.post,\n.summary {\n margin-bottom: " + Conf["Post Spacing"] + "px;\n}\n.thread > .threadContainer:last-of-type {\n margin-bottom: -" + Conf["Post Spacing"] + "px;\n}\n.thread > .replyContainer > .reply.post {\n border-width: " + (_conf['Post Spacing'] === "0" ? "1px 1px 0 1px" : '1px') + ";\n}\n.postMessage {\n margin: " + _conf['Vertical Post Padding'] + "px " + _conf['Horizontal Post Padding'] + "px;\n}\n:root:not(fourchan-ss-navigation):not(.pagination-on-side) .pagelist,\n:root:not(fourchan-ss-navigation) #header-bar {\n margin-left: " + (parseInt(_conf["Left Thread Padding"], 10) + editSpace["right"]) + "px;\n margin-right: " + (parseInt(_conf["Right Thread Padding"], 10) + editSpace["left"]) + "px;\n}\n/* Emoji */\na.useremail:last-of-type::before {\n margin-right: " + (parseInt(_conf['Emoji Spacing'])) + "px;\n}\na.useremail:last-of-type::after {\n margin-left: " + (parseInt(_conf['Emoji Spacing'])) + "px;\n}\n#mascot {\n opacity: " + Conf['Mascot Opacity'] + ";\n}\n" + (_conf["Emoji"] !== "disable" ? Emoji.css(_conf["Emoji Position"]) : "");
return "#boardNavDesktopFoot a,\n#header-bar a,\n.deleteform::before,\n.field,\n.hide-navigation-decorations .pages a,\n.notification,\n.selectrice,\nbody,\nbutton,\ninput,\ntextarea {\n font-size: " + (parseInt(_conf["Font Size"], 10)) + "px;\n}\n#boardTitle,\n.boardTitle a {\n font-size: " + (parseInt(_conf["Font Size"], 10) + 10) + "px;\n}\n.boardSubtitle,\n.boardSubtitle a {\n font-size: " + (parseInt(_conf["Font Size"], 10) - 1) + "px;\n}\nbody,\nbutton,\ninput,\ntextarea {\n font-family: " + _conf["Font"] + ";\n}\nbody {\n padding: 0 " + (parseInt(_conf["Right Thread Padding"], 10) + editSpace["right"]) + "px 0 " + (parseInt(_conf["Left Thread Padding"], 10) + editSpace["left"]) + "px;\n}\n.board > .thread {\n margin: " + (parseInt(_conf["Top Thread Padding"], 10)) + "px 0 " + (parseInt(_conf["Bottom Thread Padding"], 10)) + "px 0;\n}\n.post,\n.summary {\n margin-bottom: " + Conf["Post Spacing"] + "px;\n}\n.thread > .threadContainer:last-of-type {\n margin-bottom: -" + Conf["Post Spacing"] + "px;\n}\n.thread > .replyContainer > .reply.post {\n border-width: " + (_conf['Post Spacing'] === "0" ? "1px 1px 0 1px" : '1px') + ";\n}\n.postMessage {\n margin: " + _conf['Vertical Post Padding'] + "px " + _conf['Horizontal Post Padding'] + "px;\n}\n:root:not(fourchan-ss-navigation):not(.pagination-on-side) .pagelist,\n:root:not(fourchan-ss-navigation) #header-bar {\n margin-left: " + (parseInt(_conf["Left Thread Padding"], 10) + editSpace["right"]) + "px;\n margin-right: " + (parseInt(_conf["Right Thread Padding"], 10) + editSpace["left"]) + "px;\n}\n/* Emoji */\na.useremail:last-of-type::before {\n margin-right: " + (parseInt(_conf['Emoji Spacing'])) + "px;\n}\na.useremail:last-of-type::after {\n margin-left: " + (parseInt(_conf['Emoji Spacing'])) + "px;\n}\n#mascot {\n opacity: " + Conf['Mascot Opacity'] + ";\n}\n" + (_conf["Emoji"] !== "disable" ? Emoji.css(_conf["Emoji Position"]) : "");
},
theme: function(theme) {
var background, backgroundC, bgColor, fileHeading, replyHeading;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -708,12 +708,16 @@ Config =
'Post Form Style': [
'tabbed slideout'
'How the post form will sit on the page.'
['fixed', 'slideout', 'tabbed slideout', 'transparent fade', 'float']
['fixed', 'slideout', 'tabbed slideout', 'float']
]
'Post Form Slideout Transitions' : [
true
'Animate slideouts for the post form.'
]
'Transparent Post Form': [
false
'Make the post form almost invisible.'
]
'Post Form Decorations': [
false
'Add a border and background to the post form (does not apply to the "float" post form style.'

View File

@ -33,6 +33,12 @@ Main =
initFeatures: (items) ->
Conf = items
if Conf['Post Form Style'] is 'transparent fade'
# XXX Compatibility to break old option into new option(s)
# Remove by 2.2.x
$.set 'Post Form Style', Conf['Post Form Style'] = 'fixed'
$.set 'Transparent Post Form', Conf['Transparent Post Form'] = true
pathname = location.pathname.split '/'
g.BOARD = new Board pathname[1]
g.VIEW =

View File

@ -3,6 +3,7 @@
.deleteform::before,
.field,
.hide-navigation-decorations .pages a,
.notification,
.selectrice,
body,
button,

View File

@ -22,7 +22,7 @@
.jscPad {
width: 181px;
height: 101px;
background-image: <%= agent %>linear-gradient(rgba(255,255,255,0), rgba(255,255,255,1)), <%= agent %>linear-gradient(left, #f00, #ff0, #0f0, #0ff, #00f, #f0f, #f00);
background-image: linear-gradient(rgba(255,255,255,0), rgba(255,255,255,1)), linear-gradient(left, #f00, #ff0, #0f0, #0ff, #00f, #f0f, #f00);
background-repeat: no-repeat;
background-position: 0 0;
}
@ -44,7 +44,7 @@
.jscSld {
width: 16px;
height: 101px;
background-image: <%= agent %>linear-gradient(rgba(0,0,0,0), rgba(0,0,0,1));
background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,1));
}
.jscSldB {
right: 10px;

View File

@ -285,10 +285,10 @@ th {
}
.fixed.top #header-bar.autohide:not(:hover) {
margin-bottom: -1em;
<%= agent %>transform: translateY(-100%);
<%= transform %>: translateY(-100%);
}
.fixed.bottom #header-bar.autohide:not(:hover) {
<%= agent %>transform: translateY(100%);
<%= transform %>: translateY(100%);
}
#scroll-marker {
left: 0;
@ -420,22 +420,20 @@ th {
border: 0 none !important;
text-align: right;
}
.pagination-on-side.post-form-style-fixed.show-post-form-header .pagelist,
.pagination-on-side.post-form-style-transparent-fade.show-post-form-header .pagelist {
.pagination-on-side.post-form-style-fixed.show-post-form-header .pagelist {
bottom: 23.1em;
}
.pagination-on-side.post-form-style-fixed .pagelist,
.pagination-on-side.post-form-style-transparent-fade .pagelist {
.pagination-on-side.post-form-style-fixed .pagelist {
bottom: 21.6em;
}
.sidebar-location-left.pagination-on-side .pagelist {
<%= agent %>transform: rotate(-90deg);
<%= agent %>transform-origin: bottom left;
<%= transform %>: rotate(-90deg);
<%= transform %>-origin: bottom left;
}
.sidebar-location-right.pagination-on-side .pagelist {
<%= agent %>transform: rotate(90deg);
<%= agent %>transform-origin: bottom right;"
<%= transform %>: rotate(90deg);
<%= transform %>-origin: bottom right;"
}
.sidebar-location-right.sidebar-large.pagination-on-side .pagelist {
left: auto;
@ -506,14 +504,13 @@ th {
.boardBanner {
line-height: 0;
}
.faded-4chan-banner .boardBanner {
opacity: 0.5;
<%= agent %>transition: opacity 0.3s ease-in-out .5s;
transition: opacity 0.3s ease-in-out .5s;
}
.faded-4chan-banner .boardBanner:hover {
opacity: 1;
<%= agent %>transition: opacity 0.3s ease-in;
transition: opacity 0.3s ease-in;
}
/* From 4chan SS / OneeChan */
<% if (type === 'userscript') { %>
@ -815,7 +812,7 @@ th {
}
.watch-thread-link.watched {
opacity: 1;
}
}
/* Announcements */
#globalMessage {
text-align: center;
@ -898,7 +895,7 @@ th {
.hide-reply-button {
margin: 0 3px;
opacity: 0;
<%= agent %>transition: opacity .3s ease-out 0s;
transition: opacity .3s ease-out 0s;
}
.post:hover .hide-reply-button,
.post:hover .menu-button,
@ -1183,7 +1180,7 @@ input[type=checkbox]:checked + .rice::after {
height: 10px;
border-width: 0 3px 3px 0;
border-style: solid;
<%= agent %>transform: rotate(45deg);
<%= transform %>: rotate(45deg);
position: absolute;
left: 2px;
bottom: -1px;
@ -1245,8 +1242,11 @@ input:checked + .rice {
#qr {
z-index: 20;
position: fixed;
background: none;
border: none;
}
.qr-wrapper {
padding: 1px;
border: 1px solid transparent;
min-width: 248px;
background: transparent;
border: 1px solid transparent;
@ -1280,29 +1280,29 @@ input:checked + .rice {
top: auto !important;
}
.post-form-style-slideout.sidebar-location-left #qr {
<%= agent %>transform: translateX(-93%);
<%= transform %>: translateX(-93%);
}
.post-form-style-slideout.sidebar-location-right #qr {
<%= agent %>transform: translateX(93%);
<%= transform %>: translateX(93%);
}
.post-form-style-slideout #qr:hover,
.post-form-style-slideout #qr.has-focus,
.post-form-style-slideout #qr.dump {
<%= agent %>transform: translate(0);
<%= transform %>: translate(0);
}
.post-form-style-tabbed-slideout #qr {
top: auto !important;
}
.post-form-style-tabbed-slideout.sidebar-location-left #qr {
<%= agent %>transform: translateX(-100%);
<%= transform %>: translateX(-100%);
}
.post-form-style-tabbed-slideout.sidebar-location-right #qr {
<%= agent %>transform: translateX(100%);
<%= transform %>: translateX(100%);
}
.post-form-style-tabbed-slideout #qr:hover,
.post-form-style-tabbed-slideout #qr.has-focus,
.post-form-style-tabbed-slideout #qr.dump {
<%= agent %>transform: translateX(0);
<%= transform %>: translateX(0);
}
.post-form-style-tabbed-slideout #qrtab {
position: absolute;
@ -1313,13 +1313,13 @@ input:checked + .rice {
cursor: default;
}
.post-form-style-tabbed-slideout.sidebar-location-left #qrtab {
<%= agent %>transform: rotate(90deg);
<%= agent %>transform-origin: bottom right;
<%= transform %>: rotate(90deg);
<%= transform %>-origin: bottom right;
left: 100%;
}
.post-form-style-tabbed-slideout.sidebar-location-right #qrtab {
<%= agent %>transform: rotate(-90deg);
<%= agent %>transform-origin: bottom right;
<%= transform %>: rotate(-90deg);
<%= transform %>-origin: bottom right;
right: 100%;
}
.post-form-style-tabbed-slideout #qr:hover #qrtab,
@ -1338,22 +1338,19 @@ input:checked + .rice {
.post-form-style-tabbed-slideout #qrtab .selectrice {
text-align: center;
}
.post-form-style-transparent-fade #qr {
overflow: visible;
top: auto !important;
.transparent-post-form .qr-wrapper {
opacity: 0.2;
<%= agent %>transition: opacity .3s ease-in-out 1s;
transition: opacity .3s ease-in-out 1s;
}
.post-form-style-transparent-fade #qr:hover,
.post-form-style-transparent-fade #qr.has-focus,
.post-form-style-transparent-fade #qr.dump {
.transparent-post-form #qr:hover .qr-wrapper,
.transparent-post-form #qr.has-focus .qr-wrapper,
.transparent-post-form #qr.dump .qr-wrapper {
opacity: 1;
<%= agent %>transition: opacity .3s linear;
transition: opacity .3s linear;
}
:root:not(.show-post-form-header):not(.post-form-style-tabbed-slideout):not(.post-form-style-float) #qrtab,
:root:not(.show-post-form-header):not(.post-form-style-float) #qrtab,
.post-form-style-float .autohide:not(:hover):not(.has-focus) > form,
.show-post-form-header.post-form-style-fixed .autohide:not(:hover):not(.has-focus) > form,
.show-post-form-header.post-form-style-transparent-fade .autohide:not(:hover):not(.has-focus) > form {
.show-post-form-header.post-form-style-fixed .autohide:not(:hover):not(.has-focus) > form {
display: none !important;
}
:root:not(.post-form-style-tabbed-slideout) #qrtab {
@ -1361,21 +1358,21 @@ input:checked + .rice {
}
.post-form-slideout-transitions.post-form-style-slideout #qr,
.post-form-slideout-transitions.post-form-style-tabbed-slideout #qr {
<%= agent %>transition: <%= agent %>transform .3s ease-in-out 1s;
transition: <%= transform %> .3s ease-in-out 1s;
}
.post-form-slideout-transitions.post-form-style-slideout #qr:hover,
.post-form-slideout-transitions.post-form-style-tabbed-slideout #qr.dump,
.post-form-slideout-transitions.post-form-style-tabbed-slideout #qr:hover,
.post-form-slideout-transitions.post-form-style-slideout #qr.has-focus,
.post-form-slideout-transitions.post-form-style-tabbed-slideout #qr.has-focus,
.post-form-slideout-transitions.post-form-style-slideout #qr.dump,
.post-form-slideout-transitions.post-form-style-tabbed-slideout #qr.dump {
<%= agent %>transition: <%= agent %>transform .3s linear;
.post-form-slideout-transitions.post-form-style-slideout #qr:hover,
.post-form-slideout-transitions.post-form-style-slideout #qr.has-focus {
transition: <%= transform %> .3s linear;
}
.post-form-slideout-transitions #qrtab {
<%= agent %>transition: opacity .3s ease-in-out 1s;
transition: opacity .3s ease-in-out 1s;
}
.post-form-slideout-transitions #qr:hover #qrtab {
<%= agent %>transition: opacity .3s linear;
transition: opacity .3s linear;
}
#qr .close {
float: right;
@ -1560,7 +1557,7 @@ input:not([type=radio]) {
overflow: hidden;
position: relative;
text-shadow: 0 1px 1px #000;
<%= agent %>transition: opacity .25s ease-in-out;
transition: opacity .25s ease-in-out;
vertical-align: top;
}
.qr-preview:hover,
@ -1615,14 +1612,14 @@ a:only-of-type > .remove {
position: absolute;
top: 50%;
right: 10px;
<%= agent %>transform: translateY(-50%);
<%= transform %>: translateY(-50%);
}
/* Ads */
.topad img,
.middlead img,
.bottomad img {
opacity: 0.3;
<%= agent %>transition: opacity .3s linear;
transition: opacity .3s linear;
}
.topad img:hover,
.middlead img:hover,
@ -1653,16 +1650,12 @@ a:only-of-type > .remove {
line-height: 0;
cursor: pointer;
}
.mascot-position-default.post-form-style-fixed #qr #mascot,
.mascot-position-default.post-form-style-transparent-fade #qr #mascot {
.mascot-position-above-post-form.post-form-style-fixed #qr #mascot {
position: absolute;
bottom: 100%;
margin-bottom: -2px;
}
.mascot-position-above-post-form.post-form-style-fixed.post-form-decorations #qr #mascot,
.mascot-position-above-post-form.post-form-style-transparent-fade.post-form-decorations #qr #mascot,
.mascot-position-default.post-form-style-fixed.post-form-decorations #qr #mascot,
.mascot-position-default.post-form-style-transparent-fade.post-form-decorations #qr #mascot {
.mascot-position-above-post-form.post-form-style-fixed.post-form-decorations #qr #mascot {
margin-bottom: 1px;
}
.mascots #mascot {
@ -1678,13 +1671,13 @@ a:only-of-type > .remove {
}
.sidebar-location-left.mascot-location-sidebar #mascot img,
.sidebar-location-right.mascot-location-opposite #mascot img {
<%= agent %>transform: scaleX(-1);
<%= transform %>: scaleX(-1);
}
.fourchan-ss-navigation.bottom.fixed.qr-hidden #mascot,
.fourchan-ss-navigation.bottom.fixed.mascot-position-bottom #mascot,
.fourchan-ss-navigation.index.pagination-sticky-bottom.mascot-position-bottom #mascot,
.fourchan-ss-navigation.bottom.fixed:not(.post-form-style-fixed):not(.post-form-style-transparent-fade) #mascot,
.fourchan-ss-navigation.index.pagination-sticky-bottom:not(.post-form-style-fixed):not(.post-form-style-transparent-fade) #mascot {
.fourchan-ss-navigation.bottom.fixed:not(.post-form-style-fixed) #mascot,
.fourchan-ss-navigation.index.pagination-sticky-bottom:not(.post-form-style-fixed) #mascot {
bottom: 1.5em
}
#qr #mascot {
@ -1695,7 +1688,7 @@ a:only-of-type > .remove {
}
.mascot-position-middle #mascot {
bottom: 50% !important;
<%= agent %>transform: translateY(50%);
<%= transform %>: translateY(50%);
}
.mascot-position-top #mascot {
bottom: auto !important;
@ -1957,7 +1950,7 @@ article li {
}
#mascot-options {
opacity: 0;
<%= agent %>transition: opacity .3s linear;
transition: opacity .3s linear;
}
.mascot:hover #mascot-options {
opacity: 1;
@ -1998,7 +1991,7 @@ article li {
right: 300px;
bottom: 10px;
margin: 0;
<%= agent %>transition: all .2s ease-in-out;
transition: all .2s ease-in-out;
opacity: 0;
}
#themes .selectedtheme h1 {
@ -2133,7 +2126,7 @@ article li {
position: fixed;
top: 50% !important;
left: 50%;
<%= agent %>transform: translate(-50%, -50%);
<%= transform %>: translate(-50%, -50%);
padding: 5px;
}
.icon::after {

View File

@ -315,12 +315,12 @@ a .name {
box-shadow: 5px 5px 5px #{theme['Shadow Color']};
}
.placeholder,
#qr input::<%= agent %>placeholder,
#qr textarea::<%= agent %>placeholder {
#qr input::placeholder,
#qr textarea::placeholder {
color: #{if Style.lightTheme then "rgba(0,0,0,0.3)" else "rgba(255,255,255,0.2)"} !important;
}
#qr input:<%= agent %>placeholder,
#qr textarea:<%= agent %>placeholder,
#qr input:placeholder,
#qr textarea:placeholder,
.placeholder {
color: #{if Style.lightTheme then "rgba(0,0,0,0.3)" else "rgba(255,255,255,0.2)"} !important;
}
@ -345,7 +345,7 @@ a .name {
#{unless Style.lightTheme then "<%= filter %>: url(\"#icons-filter\");" else ""}
}
.alternate-post-colors .replyContainer:not(.hidden):nth-of-type(2n+1) .post {
background-image: <%= agent %>linear-gradient(#{if Style.lightTheme then "rgba(0,0,0,0.05), rgba(0,0,0,0.05)" else "rgba(255,255,255,0.02), rgba(255,255,255,0.02)"});
background-image: linear-gradient(#{if Style.lightTheme then "rgba(0,0,0,0.05), rgba(0,0,0,0.05)" else "rgba(255,255,255,0.02), rgba(255,255,255,0.02)"});
}
.color-reply-headings .boxbar,
.color-reply-headings .postInfo {
@ -403,14 +403,14 @@ a .name {
.sage-highlighting-image.sage-highlight-position-after a.useremail[href*="sage"]:last-of-type::after,
.sage-highlighting-image.sage-highlight-position-after a.useremail[href*="Sage"]:last-of-type::after,
.sage-highlighting-image.sage-highlight-position-after a.useremail[href*="SAGE"]:last-of-type::after{
content: url("data:image/png;base64,<%= grunt.file.read("src/General/img/emoji/sage.png", {encoding: "base64"}) %>");
content: url("data:image/png;base64,<%= grunt.file.read("src/General/img/emoji/sage.png", {encoding: "base64"}) %>");
vertical-align: top;
}
.announcements-slideout #globalMessage {
background: #{theme["Dialog Background"]};
border: 1px solid #{theme["Dialog Border"]};
}
.post-form-decorations #qr {
.post-form-decorations .qr-wrapper {
background: #{backgroundC};
border: 1px solid #{theme["Buttons Border"]};
}

View File

@ -1,45 +1,48 @@
<div id=qrtab class=move>
<input type=checkbox id=autohide title=Auto-hide>
<div id=qr-thread-select>
<select data-name=thread title='Create a new thread / Reply'>
<option value=new>New thread</option>
</select>
<div class=qr-wrapper>
<div id=qrtab class=move>
<input type=checkbox id=autohide title=Auto-hide>
<div id=qr-thread-select>
<select data-name=thread title='Create a new thread / Reply'>
<option value=new>New thread</option>
</select>
</div>
<a href=javascript:; class=close title=Close></a>
</div>
<a href=javascript:; class=close title=Close></a>
</div>
<form>
<div class=persona>
<input name=name data-name=name list="list-name" placeholder=Name class=field size=1 tabindex=10>
<input name=email data-name=email list="list-email" placeholder=E-mail class=field size=1 tabindex=20>
<input name=sub data-name=sub list="list-sub" placeholder=Subject class=field size=1 tabindex=30>
</div>
<div class=textarea>
<textarea data-name=com placeholder=Comment class=field tabindex=40></textarea>
<span id=char-count></span>
</div>
<div id=dump-list-container>
<div id=dump-list></div>
<a id=add-post href=javascript:; title="Add a post" tabindex=50>+</a>
</div>
<div id=file-n-submit>
<span id=qr-filename-container class=field tabindex=60>
<span id=qr-no-file>No selected file</span>
<span id=qr-filename></span>
<span id=qr-extras-container>
<label id=qr-spoiler-label>
<input type=checkbox id=qr-file-spoiler title='Spoiler image' tabindex=70>
</label>
<span class=description>Spoiler</span>
<a id=dump-button title='Dump list'>+</a>
<span class=description>Dump</span>
<a id=qr-filerm href=javascript:; title='Remove file'></a>
<span class=description>Remove File</span>
<form>
<div class=persona>
<input name=name data-name=name list="list-name" placeholder=Name class=field size=1 tabindex=10>
<input name=email data-name=email list="list-email" placeholder=E-mail class=field size=1 tabindex=20>
<input name=sub data-name=sub list="list-sub" placeholder=Subject class=field size=1 tabindex=30>
</div>
<div class=textarea>
<textarea data-name=com placeholder=Comment class=field tabindex=40></textarea>
<span id=char-count></span>
</div>
<div id=dump-list-container>
<div id=dump-list></div>
<a id=add-post href=javascript:; title="Add a post" tabindex=50>+</a>
</div>
<div id=file-n-submit>
<span id=qr-filename-container class=field tabindex=60>
<span id=qr-no-file>No selected file</span>
<span id=qr-filename></span>
<span id=qr-extras-container>
<label id=qr-spoiler-label>
<input type=checkbox id=qr-file-spoiler title='Spoiler image' tabindex=70>
</label>
<span class=description>Spoiler</span>
<a id=dump-button title='Dump list'>+</a>
<span class=description>Dump</span>
<a id=qr-filerm href=javascript:; title='Remove file'></a>
<span class=description>Remove File</span>
</span>
</span>
</span>
<input type=submit tabindex=80>
</div>
<input type=file multiple>
</form>
<input type=submit tabindex=80>
</div>
<input type=file multiple>
</form>
</div>
<datalist id="list-name"></datalist>
<datalist id="list-email"></datalist>
<datalist id="list-sub"></datalist>

View File

@ -85,7 +85,7 @@ QR =
message: 'Quick Reply dialog creation crashed.'
error: err
if MascotTools.el and ['default', 'above post form'].contains(Conf['Mascot Position']) and
['fixed', 'transparent fade'].contains Conf['Post Form Style']
Conf['Post Form Style'] is 'fixed'
$.add QR.nodes.el, MascotTools.el
close: ->

View File

@ -22,12 +22,14 @@ MascotTools =
if el then el.src = ""
return
if mascot.position is 'bottom' and Conf['Mascot Position'] is 'default'
$.rmClass doc, 'mascot-position-default'
$.addClass doc, 'mascot-position-bottom'
else
$.addClass doc, 'mascot-position-default'
if Conf['Mascot Position'] is 'default'
$.rmClass doc, 'mascot-position-above-post-form'
$.rmClass doc, 'mascot-position-bottom'
$.rmClass doc, 'mascot-position-default'
if mascot.position is 'bottom'
$.addClass doc, 'mascot-position-bottom'
else
$.addClass doc, 'mascot-position-above-post-form'
unless mascot
if name and not mascot = Mascots[name]