diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d6d4b3b0..ae66426fd 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ Sometimes the changelog has notes (not comprehensive) acknowledging people's wor ### v1.11.13 +**v1.11.13.3** *(2015-10-18)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.13.3/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.13.3/builds/4chan-X-noupdate.crx "Chromium version")] +- Show "S" in spoiler checkbox in Quick Reply. +- Support Oekaki from Quick Reply on /i/. + **v1.11.13.2** *(2015-10-18)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.13.2/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.13.2/builds/4chan-X-noupdate.crx "Chromium version")] - Merge v1.11.12.8: Update to support MathJax on /sci/. - Gallery bugfixes. diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx index febc2b494..8a6939c15 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 ff1568b46..76522fd91 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.11.13.2 +// @version 1.11.13.3 // @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 c22c9888d..d8746b221 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.11.13.2 +// @version 1.11.13.3 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -300,7 +300,7 @@ name: "# Filter any namefags:\n#/^(?!Anonymous$)/", uniqueID: "# Filter a specific ID:\n#/Txhvk1Tl/", tripcode: "# Filter any tripfag\n#/^!/", - capcode: "# Set a custom class for mods:\n#/Mod$/;highlight:mod;op:yes\n# Set a custom class for moot:\n#/Admin$/;highlight:moot;op:yes", + capcode: "# Set a custom class for mods:\n#/Mod$/;highlight:mod;op:yes\n# Set a custom class for admins:\n#/Admin$/;highlight:admin;op:yes", subject: "# Filter Generals on /v/:\n#/general/i;boards:v;op:only", comment: "# Filter Stallman copypasta on /g/:\n#/what you\'re refer+ing to as linux/i;boards:g\n# Filter posts with 20 or more quote links:\n#/(?:>>\\d(?:(?!>>\\d)[^])*){20}/\n# Filter posts like T H I S / H / I / S:\n#/^>?\\s?\\w\\s?(\\w)\\s?(\\w)\\s?(\\w).*$[\\s>]+\\1[\\s>]+\\2[\\s>]+\\3/im", flag: '', @@ -415,7 +415,7 @@ doc = d.documentElement; g = { - VERSION: '1.11.13.2', + VERSION: '1.11.13.3', NAMESPACE: '4chan X.', boards: {} }; @@ -2520,8 +2520,10 @@ return this.toBlob(); }, toBlob: function() { - var base1; - return (base1 = HTMLCanvasElement.prototype).toBlob || (base1.toBlob = function(cb) { + if (HTMLCanvasElement.prototype.toBlob) { + return; + } + HTMLCanvasElement.prototype.toBlob = function(cb) { var data, i, k, l, ref, ui8a; data = atob(this.toDataURL().slice(22)); l = data.length; @@ -2532,7 +2534,8 @@ return cb(new Blob([ui8a], { type: 'image/png' })); - }); + }; + return $.globalEval("HTMLCanvasElement.prototype.toBlob = (" + HTMLCanvasElement.prototype.toBlob + ");"); } }; @@ -7087,6 +7090,9 @@ QR.setCustomCooldown(enabled); return $.set('customCooldownEnabled', enabled); }, + oekakiDraw: function() { + return $.globalEval('Tegaki.open({\n onDone: function() {\n Tegaki.flatten().toBlob(function (blob) {\n var detail = {file: blob, name: \'tegaki.png\'};\n var event = new CustomEvent(\'QRSetFile\', {bubbles: true, detail: detail});\n document.dispatchEvent(event);\n });\n },\n onCancel: function() {},\n width: +document.querySelector(\'#qr [name=oekaki-width]\').value,\n height: +document.querySelector(\'#qr [name=oekaki-height]\').value\n});'); + }, error: function(err, focusOverride) { var el, notice, notif; QR.open(); @@ -7410,7 +7416,7 @@ var dialog, event, i, items, m, match_max, match_min, name, node, nodes, ref, rules, save, scriptData, setNode; QR.nodes = nodes = { el: dialog = UI.dialog('qr', 'top: 50px; right: 0px;', { - innerHTML: "
×
+
No selected file
" + innerHTML: "
×
+
No selected file
" }) }; setNode = function(name, query) { @@ -7443,6 +7449,8 @@ setNode('status', '[type=submit]'); setNode('fileInput', '[type=file]'); setNode('customCooldown', '#custom-cooldown-button'); + setNode('flashTag', '[name=filetag]'); + setNode('drawButton', '#qr-draw-button'); rules = $('ul.rules').textContent.trim(); match_min = rules.match(/.+smaller than (\d+)x(\d+).+/); match_max = rules.match(/.+greater than (\d+)x(\d+).+/); @@ -7486,16 +7494,6 @@ return $.sync('customCooldownEnabled', QR.setCustomCooldown); }); } - if (g.BOARD.ID === 'f') { - nodes.flashTag = $.el('select', { - name: 'filetag' - }); - $.extend(nodes.flashTag, { - innerHTML: "" - }); - nodes.flashTag.dataset["default"] = '4'; - $.add(nodes.form, nodes.flashTag); - } $.on(nodes.fileButton, 'click', QR.openFileInput); $.on(nodes.noFile, 'click', QR.openFileInput); $.on(nodes.filename, 'focus', function() { @@ -7525,6 +7523,7 @@ $.on(nodes.fileInput, 'change', QR.handleFiles); $.on(nodes.sjisToggle, 'click', QR.toggleSJIS); $.on(nodes.customCooldown, 'click', QR.toggleCustomCooldown); + $.on(nodes.drawButton, 'click', QR.oekakiDraw); window.addEventListener('focus', QR.focus, true); window.addEventListener('blur', QR.focus, true); $.on(d, 'click', QR.focus); @@ -19577,7 +19576,9 @@ "#qr.forced-anon input[data-name=\"name\"]:not(.force-show),\n" + "#qr.forced-anon input[data-name=\"sub\"]:not(.force-show),\n" + "#qr.reply-to-thread input[data-name=\"sub\"]:not(.force-show),\n" + +"body:not(.board_f) #qr select[name=\"filetag\"],\n" + "#qr.reply-to-thread select[name=\"filetag\"],\n" + +"body:not(.board_i) .oekaki,\n" + "body:not(.board_jp) #sjis-toggle {\n" + " display: none;\n" + "}\n" + @@ -19678,8 +19679,8 @@ ".goog-bubble-content iframe {\n" + " position: static !important;\n" + "}\n" + -"/* File Input, Submit Button */\n" + -"#file-n-submit {\n" + +"/* File Input, Submit Button, Oekaki */\n" + +"#file-n-submit, .oekaki {\n" + " display: -webkit-flex;\n" + " display: flex;\n" + " -webkit-align-items: stretch;\n" + @@ -19687,13 +19688,13 @@ " height: 25px;\n" + " margin-top: 1px;\n" + "}\n" + -"#file-n-submit > input {\n" + +"#file-n-submit > input, #qr-draw-button {\n" + " background: linear-gradient(to bottom, #F8F8F8, #DCDCDC) no-repeat;\n" + " border: 1px solid #BBB;\n" + " border-radius: 2px;\n" + " height: 100%;\n" + "}\n" + -"#qr-file-button {\n" + +"#qr-file-button, #qr-draw-button {\n" + " width: 15%;\n" + "}\n" + "#file-n-submit input[type=\"submit\"] {\n" + @@ -19733,12 +19734,31 @@ "#qr-no-file {\n" + " color: #AAA;\n" + "}\n" + +".oekaki > label {\n" + +" -webkit-flex: 1 1 auto;\n" + +" flex: 1 1 auto;\n" + +" width: 0;\n" + +" display: -webkit-flex;\n" + +" display: flex;\n" + +" -webkit-align-items: center;\n" + +" align-items: center;\n" + +" height: 100%;\n" + +"}\n" + +".oekaki > label > span {\n" + +" margin: 0 3px;\n" + +"}\n" + +".oekaki > label > input {\n" + +" -webkit-flex: 1 1 auto;\n" + +" flex: 1 1 auto;\n" + +" width: 0;\n" + +" height: 100%;\n" + +"}\n" + "#qr input[type=\"file\"] {\n" + " visibility: hidden;\n" + " position: absolute;\n" + "}\n" + "/* Spoiler Checkbox, QR Icons */\n" + -"#qr-spoiler-label, #qr-filename-container > a {\n" + +"#qr-filename-container > label, #qr-filename-container > a {\n" + " -webkit-flex: none;\n" + " flex: none;\n" + " margin: 0;\n" + @@ -19750,9 +19770,26 @@ "#file-n-submit:not(.custom-cooldown) #custom-cooldown-button {\n" + " display: none;\n" + "}\n" + -"#qr-file-spoiler {\n" + +"#qr-filename-container > label {\n" + +" position: relative;\n" + +"}\n" + +"#qr-filename-container input[type=\"checkbox\"] {\n" + " margin: 0;\n" + "}\n" + +".checkbox-letter {\n" + +" pointer-events: none;\n" + +" position: absolute;\n" + +" top: 2px;\n" + +" left: 0;\n" + +" right: 0;\n" + +" text-align: center;\n" + +" font-size: 11px;\n" + +" font-weight: bold;\n" + +" color: rgba(0,0,0,.6);\n" + +"}\n" + +"input[type=\"checkbox\"]:checked ~ .checkbox-letter {\n" + +" display: none;\n" + +"}\n" + "#paste-area, #url-button, #custom-cooldown-button, #dump-button {\n" + " opacity: 0.6;\n" + "}\n" + @@ -20711,7 +20748,8 @@ " background: rgb(26, 27, 29);\n" + "}\n" + ":root.tomorrow #qr select,\n" + -":root.tomorrow #file-n-submit > input {\n" + +":root.tomorrow #file-n-submit > input,\n" + +":root.tomorrow #qr-draw-button {\n" + " border-color: rgb(40, 41, 42);\n" + "}\n" + ":root.tomorrow #qr-filename {\n" + diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx index eee381f66..d77fddef6 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 29fcaca22..e7d277472 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.11.13.2 +// @version 1.11.13.3 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -300,7 +300,7 @@ name: "# Filter any namefags:\n#/^(?!Anonymous$)/", uniqueID: "# Filter a specific ID:\n#/Txhvk1Tl/", tripcode: "# Filter any tripfag\n#/^!/", - capcode: "# Set a custom class for mods:\n#/Mod$/;highlight:mod;op:yes\n# Set a custom class for moot:\n#/Admin$/;highlight:moot;op:yes", + capcode: "# Set a custom class for mods:\n#/Mod$/;highlight:mod;op:yes\n# Set a custom class for admins:\n#/Admin$/;highlight:admin;op:yes", subject: "# Filter Generals on /v/:\n#/general/i;boards:v;op:only", comment: "# Filter Stallman copypasta on /g/:\n#/what you\'re refer+ing to as linux/i;boards:g\n# Filter posts with 20 or more quote links:\n#/(?:>>\\d(?:(?!>>\\d)[^])*){20}/\n# Filter posts like T H I S / H / I / S:\n#/^>?\\s?\\w\\s?(\\w)\\s?(\\w)\\s?(\\w).*$[\\s>]+\\1[\\s>]+\\2[\\s>]+\\3/im", flag: '', @@ -415,7 +415,7 @@ doc = d.documentElement; g = { - VERSION: '1.11.13.2', + VERSION: '1.11.13.3', NAMESPACE: '4chan X.', boards: {} }; @@ -2520,8 +2520,10 @@ return this.toBlob(); }, toBlob: function() { - var base1; - return (base1 = HTMLCanvasElement.prototype).toBlob || (base1.toBlob = function(cb) { + if (HTMLCanvasElement.prototype.toBlob) { + return; + } + HTMLCanvasElement.prototype.toBlob = function(cb) { var data, i, k, l, ref, ui8a; data = atob(this.toDataURL().slice(22)); l = data.length; @@ -2532,7 +2534,8 @@ return cb(new Blob([ui8a], { type: 'image/png' })); - }); + }; + return $.globalEval("HTMLCanvasElement.prototype.toBlob = (" + HTMLCanvasElement.prototype.toBlob + ");"); } }; @@ -7087,6 +7090,9 @@ QR.setCustomCooldown(enabled); return $.set('customCooldownEnabled', enabled); }, + oekakiDraw: function() { + return $.globalEval('Tegaki.open({\n onDone: function() {\n Tegaki.flatten().toBlob(function (blob) {\n var detail = {file: blob, name: \'tegaki.png\'};\n var event = new CustomEvent(\'QRSetFile\', {bubbles: true, detail: detail});\n document.dispatchEvent(event);\n });\n },\n onCancel: function() {},\n width: +document.querySelector(\'#qr [name=oekaki-width]\').value,\n height: +document.querySelector(\'#qr [name=oekaki-height]\').value\n});'); + }, error: function(err, focusOverride) { var el, notice, notif; QR.open(); @@ -7410,7 +7416,7 @@ var dialog, event, i, items, m, match_max, match_min, name, node, nodes, ref, rules, save, scriptData, setNode; QR.nodes = nodes = { el: dialog = UI.dialog('qr', 'top: 50px; right: 0px;', { - innerHTML: "
×
+
No selected file
" + innerHTML: "
×
+
No selected file
" }) }; setNode = function(name, query) { @@ -7443,6 +7449,8 @@ setNode('status', '[type=submit]'); setNode('fileInput', '[type=file]'); setNode('customCooldown', '#custom-cooldown-button'); + setNode('flashTag', '[name=filetag]'); + setNode('drawButton', '#qr-draw-button'); rules = $('ul.rules').textContent.trim(); match_min = rules.match(/.+smaller than (\d+)x(\d+).+/); match_max = rules.match(/.+greater than (\d+)x(\d+).+/); @@ -7486,16 +7494,6 @@ return $.sync('customCooldownEnabled', QR.setCustomCooldown); }); } - if (g.BOARD.ID === 'f') { - nodes.flashTag = $.el('select', { - name: 'filetag' - }); - $.extend(nodes.flashTag, { - innerHTML: "" - }); - nodes.flashTag.dataset["default"] = '4'; - $.add(nodes.form, nodes.flashTag); - } $.on(nodes.fileButton, 'click', QR.openFileInput); $.on(nodes.noFile, 'click', QR.openFileInput); $.on(nodes.filename, 'focus', function() { @@ -7525,6 +7523,7 @@ $.on(nodes.fileInput, 'change', QR.handleFiles); $.on(nodes.sjisToggle, 'click', QR.toggleSJIS); $.on(nodes.customCooldown, 'click', QR.toggleCustomCooldown); + $.on(nodes.drawButton, 'click', QR.oekakiDraw); window.addEventListener('focus', QR.focus, true); window.addEventListener('blur', QR.focus, true); $.on(d, 'click', QR.focus); @@ -19577,7 +19576,9 @@ "#qr.forced-anon input[data-name=\"name\"]:not(.force-show),\n" + "#qr.forced-anon input[data-name=\"sub\"]:not(.force-show),\n" + "#qr.reply-to-thread input[data-name=\"sub\"]:not(.force-show),\n" + +"body:not(.board_f) #qr select[name=\"filetag\"],\n" + "#qr.reply-to-thread select[name=\"filetag\"],\n" + +"body:not(.board_i) .oekaki,\n" + "body:not(.board_jp) #sjis-toggle {\n" + " display: none;\n" + "}\n" + @@ -19678,8 +19679,8 @@ ".goog-bubble-content iframe {\n" + " position: static !important;\n" + "}\n" + -"/* File Input, Submit Button */\n" + -"#file-n-submit {\n" + +"/* File Input, Submit Button, Oekaki */\n" + +"#file-n-submit, .oekaki {\n" + " display: -webkit-flex;\n" + " display: flex;\n" + " -webkit-align-items: stretch;\n" + @@ -19687,13 +19688,13 @@ " height: 25px;\n" + " margin-top: 1px;\n" + "}\n" + -"#file-n-submit > input {\n" + +"#file-n-submit > input, #qr-draw-button {\n" + " background: linear-gradient(to bottom, #F8F8F8, #DCDCDC) no-repeat;\n" + " border: 1px solid #BBB;\n" + " border-radius: 2px;\n" + " height: 100%;\n" + "}\n" + -"#qr-file-button {\n" + +"#qr-file-button, #qr-draw-button {\n" + " width: 15%;\n" + "}\n" + "#file-n-submit input[type=\"submit\"] {\n" + @@ -19733,12 +19734,31 @@ "#qr-no-file {\n" + " color: #AAA;\n" + "}\n" + +".oekaki > label {\n" + +" -webkit-flex: 1 1 auto;\n" + +" flex: 1 1 auto;\n" + +" width: 0;\n" + +" display: -webkit-flex;\n" + +" display: flex;\n" + +" -webkit-align-items: center;\n" + +" align-items: center;\n" + +" height: 100%;\n" + +"}\n" + +".oekaki > label > span {\n" + +" margin: 0 3px;\n" + +"}\n" + +".oekaki > label > input {\n" + +" -webkit-flex: 1 1 auto;\n" + +" flex: 1 1 auto;\n" + +" width: 0;\n" + +" height: 100%;\n" + +"}\n" + "#qr input[type=\"file\"] {\n" + " visibility: hidden;\n" + " position: absolute;\n" + "}\n" + "/* Spoiler Checkbox, QR Icons */\n" + -"#qr-spoiler-label, #qr-filename-container > a {\n" + +"#qr-filename-container > label, #qr-filename-container > a {\n" + " -webkit-flex: none;\n" + " flex: none;\n" + " margin: 0;\n" + @@ -19750,9 +19770,26 @@ "#file-n-submit:not(.custom-cooldown) #custom-cooldown-button {\n" + " display: none;\n" + "}\n" + -"#qr-file-spoiler {\n" + +"#qr-filename-container > label {\n" + +" position: relative;\n" + +"}\n" + +"#qr-filename-container input[type=\"checkbox\"] {\n" + " margin: 0;\n" + "}\n" + +".checkbox-letter {\n" + +" pointer-events: none;\n" + +" position: absolute;\n" + +" top: 2px;\n" + +" left: 0;\n" + +" right: 0;\n" + +" text-align: center;\n" + +" font-size: 11px;\n" + +" font-weight: bold;\n" + +" color: rgba(0,0,0,.6);\n" + +"}\n" + +"input[type=\"checkbox\"]:checked ~ .checkbox-letter {\n" + +" display: none;\n" + +"}\n" + "#paste-area, #url-button, #custom-cooldown-button, #dump-button {\n" + " opacity: 0.6;\n" + "}\n" + @@ -20711,7 +20748,8 @@ " background: rgb(26, 27, 29);\n" + "}\n" + ":root.tomorrow #qr select,\n" + -":root.tomorrow #file-n-submit > input {\n" + +":root.tomorrow #file-n-submit > input,\n" + +":root.tomorrow #qr-draw-button {\n" + " border-color: rgb(40, 41, 42);\n" + "}\n" + ":root.tomorrow #qr-filename {\n" + diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx index 4e3c16010..8020021be 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 83d0d5735..0575372a9 100644 --- a/builds/4chan-X.meta.js +++ b/builds/4chan-X.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.11.13.2 +// @version 1.11.13.3 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index 54ec0eec3..b45115f52 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.11.13.2 +// @version 1.11.13.3 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -300,7 +300,7 @@ name: "# Filter any namefags:\n#/^(?!Anonymous$)/", uniqueID: "# Filter a specific ID:\n#/Txhvk1Tl/", tripcode: "# Filter any tripfag\n#/^!/", - capcode: "# Set a custom class for mods:\n#/Mod$/;highlight:mod;op:yes\n# Set a custom class for moot:\n#/Admin$/;highlight:moot;op:yes", + capcode: "# Set a custom class for mods:\n#/Mod$/;highlight:mod;op:yes\n# Set a custom class for admins:\n#/Admin$/;highlight:admin;op:yes", subject: "# Filter Generals on /v/:\n#/general/i;boards:v;op:only", comment: "# Filter Stallman copypasta on /g/:\n#/what you\'re refer+ing to as linux/i;boards:g\n# Filter posts with 20 or more quote links:\n#/(?:>>\\d(?:(?!>>\\d)[^])*){20}/\n# Filter posts like T H I S / H / I / S:\n#/^>?\\s?\\w\\s?(\\w)\\s?(\\w)\\s?(\\w).*$[\\s>]+\\1[\\s>]+\\2[\\s>]+\\3/im", flag: '', @@ -415,7 +415,7 @@ doc = d.documentElement; g = { - VERSION: '1.11.13.2', + VERSION: '1.11.13.3', NAMESPACE: '4chan X.', boards: {} }; @@ -2520,8 +2520,10 @@ return this.toBlob(); }, toBlob: function() { - var base1; - return (base1 = HTMLCanvasElement.prototype).toBlob || (base1.toBlob = function(cb) { + if (HTMLCanvasElement.prototype.toBlob) { + return; + } + HTMLCanvasElement.prototype.toBlob = function(cb) { var data, i, k, l, ref, ui8a; data = atob(this.toDataURL().slice(22)); l = data.length; @@ -2532,7 +2534,8 @@ return cb(new Blob([ui8a], { type: 'image/png' })); - }); + }; + return $.globalEval("HTMLCanvasElement.prototype.toBlob = (" + HTMLCanvasElement.prototype.toBlob + ");"); } }; @@ -7087,6 +7090,9 @@ QR.setCustomCooldown(enabled); return $.set('customCooldownEnabled', enabled); }, + oekakiDraw: function() { + return $.globalEval('Tegaki.open({\n onDone: function() {\n Tegaki.flatten().toBlob(function (blob) {\n var detail = {file: blob, name: \'tegaki.png\'};\n var event = new CustomEvent(\'QRSetFile\', {bubbles: true, detail: detail});\n document.dispatchEvent(event);\n });\n },\n onCancel: function() {},\n width: +document.querySelector(\'#qr [name=oekaki-width]\').value,\n height: +document.querySelector(\'#qr [name=oekaki-height]\').value\n});'); + }, error: function(err, focusOverride) { var el, notice, notif; QR.open(); @@ -7410,7 +7416,7 @@ var dialog, event, i, items, m, match_max, match_min, name, node, nodes, ref, rules, save, scriptData, setNode; QR.nodes = nodes = { el: dialog = UI.dialog('qr', 'top: 50px; right: 0px;', { - innerHTML: "
×
+
No selected file
" + innerHTML: "
×
+
No selected file
" }) }; setNode = function(name, query) { @@ -7443,6 +7449,8 @@ setNode('status', '[type=submit]'); setNode('fileInput', '[type=file]'); setNode('customCooldown', '#custom-cooldown-button'); + setNode('flashTag', '[name=filetag]'); + setNode('drawButton', '#qr-draw-button'); rules = $('ul.rules').textContent.trim(); match_min = rules.match(/.+smaller than (\d+)x(\d+).+/); match_max = rules.match(/.+greater than (\d+)x(\d+).+/); @@ -7486,16 +7494,6 @@ return $.sync('customCooldownEnabled', QR.setCustomCooldown); }); } - if (g.BOARD.ID === 'f') { - nodes.flashTag = $.el('select', { - name: 'filetag' - }); - $.extend(nodes.flashTag, { - innerHTML: "" - }); - nodes.flashTag.dataset["default"] = '4'; - $.add(nodes.form, nodes.flashTag); - } $.on(nodes.fileButton, 'click', QR.openFileInput); $.on(nodes.noFile, 'click', QR.openFileInput); $.on(nodes.filename, 'focus', function() { @@ -7525,6 +7523,7 @@ $.on(nodes.fileInput, 'change', QR.handleFiles); $.on(nodes.sjisToggle, 'click', QR.toggleSJIS); $.on(nodes.customCooldown, 'click', QR.toggleCustomCooldown); + $.on(nodes.drawButton, 'click', QR.oekakiDraw); window.addEventListener('focus', QR.focus, true); window.addEventListener('blur', QR.focus, true); $.on(d, 'click', QR.focus); @@ -19577,7 +19576,9 @@ "#qr.forced-anon input[data-name=\"name\"]:not(.force-show),\n" + "#qr.forced-anon input[data-name=\"sub\"]:not(.force-show),\n" + "#qr.reply-to-thread input[data-name=\"sub\"]:not(.force-show),\n" + +"body:not(.board_f) #qr select[name=\"filetag\"],\n" + "#qr.reply-to-thread select[name=\"filetag\"],\n" + +"body:not(.board_i) .oekaki,\n" + "body:not(.board_jp) #sjis-toggle {\n" + " display: none;\n" + "}\n" + @@ -19678,8 +19679,8 @@ ".goog-bubble-content iframe {\n" + " position: static !important;\n" + "}\n" + -"/* File Input, Submit Button */\n" + -"#file-n-submit {\n" + +"/* File Input, Submit Button, Oekaki */\n" + +"#file-n-submit, .oekaki {\n" + " display: -webkit-flex;\n" + " display: flex;\n" + " -webkit-align-items: stretch;\n" + @@ -19687,13 +19688,13 @@ " height: 25px;\n" + " margin-top: 1px;\n" + "}\n" + -"#file-n-submit > input {\n" + +"#file-n-submit > input, #qr-draw-button {\n" + " background: linear-gradient(to bottom, #F8F8F8, #DCDCDC) no-repeat;\n" + " border: 1px solid #BBB;\n" + " border-radius: 2px;\n" + " height: 100%;\n" + "}\n" + -"#qr-file-button {\n" + +"#qr-file-button, #qr-draw-button {\n" + " width: 15%;\n" + "}\n" + "#file-n-submit input[type=\"submit\"] {\n" + @@ -19733,12 +19734,31 @@ "#qr-no-file {\n" + " color: #AAA;\n" + "}\n" + +".oekaki > label {\n" + +" -webkit-flex: 1 1 auto;\n" + +" flex: 1 1 auto;\n" + +" width: 0;\n" + +" display: -webkit-flex;\n" + +" display: flex;\n" + +" -webkit-align-items: center;\n" + +" align-items: center;\n" + +" height: 100%;\n" + +"}\n" + +".oekaki > label > span {\n" + +" margin: 0 3px;\n" + +"}\n" + +".oekaki > label > input {\n" + +" -webkit-flex: 1 1 auto;\n" + +" flex: 1 1 auto;\n" + +" width: 0;\n" + +" height: 100%;\n" + +"}\n" + "#qr input[type=\"file\"] {\n" + " visibility: hidden;\n" + " position: absolute;\n" + "}\n" + "/* Spoiler Checkbox, QR Icons */\n" + -"#qr-spoiler-label, #qr-filename-container > a {\n" + +"#qr-filename-container > label, #qr-filename-container > a {\n" + " -webkit-flex: none;\n" + " flex: none;\n" + " margin: 0;\n" + @@ -19750,9 +19770,26 @@ "#file-n-submit:not(.custom-cooldown) #custom-cooldown-button {\n" + " display: none;\n" + "}\n" + -"#qr-file-spoiler {\n" + +"#qr-filename-container > label {\n" + +" position: relative;\n" + +"}\n" + +"#qr-filename-container input[type=\"checkbox\"] {\n" + " margin: 0;\n" + "}\n" + +".checkbox-letter {\n" + +" pointer-events: none;\n" + +" position: absolute;\n" + +" top: 2px;\n" + +" left: 0;\n" + +" right: 0;\n" + +" text-align: center;\n" + +" font-size: 11px;\n" + +" font-weight: bold;\n" + +" color: rgba(0,0,0,.6);\n" + +"}\n" + +"input[type=\"checkbox\"]:checked ~ .checkbox-letter {\n" + +" display: none;\n" + +"}\n" + "#paste-area, #url-button, #custom-cooldown-button, #dump-button {\n" + " opacity: 0.6;\n" + "}\n" + @@ -20711,7 +20748,8 @@ " background: rgb(26, 27, 29);\n" + "}\n" + ":root.tomorrow #qr select,\n" + -":root.tomorrow #file-n-submit > input {\n" + +":root.tomorrow #file-n-submit > input,\n" + +":root.tomorrow #qr-draw-button {\n" + " border-color: rgb(40, 41, 42);\n" + "}\n" + ":root.tomorrow #qr-filename {\n" + diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip index 7c0c8a45e..dbde8956a 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 7efe3bdf0..1dc29a91d 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 88d3372b6..20c60586d 100644 --- a/builds/updates.xml +++ b/builds/updates.xml @@ -1,7 +1,7 @@ - + diff --git a/package.json b/package.json index 8686e15fc..a05941099 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,8 @@ "meta": { "name": "4chan X", "fork": "ccd0", - "version": "1.11.13.2", - "date": "2015-10-18T07:48:28.182Z", + "version": "1.11.13.3", + "date": "2015-10-19T00:22:53.625Z", "page": "https://www.4chan-x.net/", "downloads": "https://www.4chan-x.net/builds/", "oldVersions": "https://raw.githubusercontent.com/ccd0/4chan-x/",