diff --git a/builds/appchan-x.user.js b/builds/appchan-x.user.js
index 8623ee1fb..e6fb2e4bb 100644
--- a/builds/appchan-x.user.js
+++ b/builds/appchan-x.user.js
@@ -11675,11 +11675,12 @@
ThemeTools = {
init: function(key) {
- var colorInput, div, fileInput, header, input, item, layout, nodes, themeContent, _i, _j, _len, _len1, _ref;
+ var colorInput, div, fileInput, header, input, item, layout, theme, themeContent, _i, _j, _len, _len1, _ref;
Conf['editMode'] = "theme";
- if (key) {
- editTheme = JSON.parse(JSON.stringify(Themes[key]));
+ theme = Themes[key];
+ if (theme) {
+ editTheme = JSON.parse(JSON.stringify(theme));
editTheme["Theme"] = Conf['userThemes'][key] ? key : key += " [custom]";
} else {
editTheme = JSON.parse(JSON.stringify(Themes['Yotsuba B']));
@@ -11694,7 +11695,7 @@
innerHTML: "
"
});
header = $.el("div", {
- innerHTML: " by"
+ innerHTML: " by\n\n"
});
_ref = $$("input", header);
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
@@ -11703,9 +11704,8 @@
return editTheme[this.name] = this.value;
});
}
- $.add($("#themebar", ThemeTools.dialog), header);
- themeContent = $("#themecontent", ThemeTools.dialog);
- nodes = [];
+ $.add($('#themebar', ThemeTools.dialog), header);
+ themeContent = $('#themecontent', ThemeTools.dialog);
for (_j = 0, _len1 = layout.length; _j < _len1; _j++) {
item = layout[_j];
if (!editTheme[item]) {
@@ -11785,7 +11785,7 @@
editTheme[this.name] = this.value;
return Style.addStyle(editTheme);
});
- nodes.push(div);
+ $.add(themeContent, div);
}
Style.addStyle(editTheme);
if (!editTheme["Custom CSS"]) {
@@ -11799,12 +11799,11 @@
editTheme["Custom CSS"] = this.value;
return Style.themeCSS.textContent = Style.theme(editTheme);
});
- nodes.push(div);
+ $.add(themeContent, div);
$.on($('#save > a', ThemeTools.dialog), 'click', function() {
return ThemeTools.save(editTheme);
});
$.on($('#close > a', ThemeTools.dialog), 'click', ThemeTools.close);
- $.add(themeContent, nodes);
$.add(d.body, ThemeTools.dialog);
return Style.themeCSS.textContent = Style.theme(editTheme);
},
diff --git a/builds/crx/script.js b/builds/crx/script.js
index e30a07dc5..bd021fae5 100644
--- a/builds/crx/script.js
+++ b/builds/crx/script.js
@@ -11664,11 +11664,12 @@
ThemeTools = {
init: function(key) {
- var colorInput, div, fileInput, header, input, item, layout, nodes, themeContent, _i, _j, _len, _len1, _ref;
+ var colorInput, div, fileInput, header, input, item, layout, theme, themeContent, _i, _j, _len, _len1, _ref;
Conf['editMode'] = "theme";
- if (key) {
- editTheme = JSON.parse(JSON.stringify(Themes[key]));
+ theme = Themes[key];
+ if (theme) {
+ editTheme = JSON.parse(JSON.stringify(theme));
editTheme["Theme"] = Conf['userThemes'][key] ? key : key += " [custom]";
} else {
editTheme = JSON.parse(JSON.stringify(Themes['Yotsuba B']));
@@ -11683,7 +11684,7 @@
innerHTML: "
"
});
header = $.el("div", {
- innerHTML: " by"
+ innerHTML: " by\n\n"
});
_ref = $$("input", header);
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
@@ -11692,9 +11693,8 @@
return editTheme[this.name] = this.value;
});
}
- $.add($("#themebar", ThemeTools.dialog), header);
- themeContent = $("#themecontent", ThemeTools.dialog);
- nodes = [];
+ $.add($('#themebar', ThemeTools.dialog), header);
+ themeContent = $('#themecontent', ThemeTools.dialog);
for (_j = 0, _len1 = layout.length; _j < _len1; _j++) {
item = layout[_j];
if (!editTheme[item]) {
@@ -11774,7 +11774,7 @@
editTheme[this.name] = this.value;
return Style.addStyle(editTheme);
});
- nodes.push(div);
+ $.add(themeContent, div);
}
Style.addStyle(editTheme);
if (!editTheme["Custom CSS"]) {
@@ -11788,12 +11788,11 @@
editTheme["Custom CSS"] = this.value;
return Style.themeCSS.textContent = Style.theme(editTheme);
});
- nodes.push(div);
+ $.add(themeContent, div);
$.on($('#save > a', ThemeTools.dialog), 'click', function() {
return ThemeTools.save(editTheme);
});
$.on($('#close > a', ThemeTools.dialog), 'click', ThemeTools.close);
- $.add(themeContent, nodes);
$.add(d.body, ThemeTools.dialog);
return Style.themeCSS.textContent = Style.theme(editTheme);
},
diff --git a/src/Theming/Themes.coffee b/src/Theming/Themes.coffee
index e36854b1f..f579562d7 100644
--- a/src/Theming/Themes.coffee
+++ b/src/Theming/Themes.coffee
@@ -5,22 +5,21 @@
ThemeTools =
init: (key) ->
Conf['editMode'] = "theme"
+ theme = Themes[key]
- if key
- editTheme = JSON.parse(JSON.stringify(Themes[key]))
+ if theme
+ editTheme = JSON.parse JSON.stringify theme
editTheme["Theme"] = if Conf['userThemes'][key]
key
else
key += " [custom]"
else
- editTheme = JSON.parse(JSON.stringify(Themes['Yotsuba B']))
- editTheme["Theme"] = "Untitled"
- editTheme["Author"] = "Author"
+ editTheme = JSON.parse JSON.stringify Themes['Yotsuba B']
+ editTheme["Theme"] = "Untitled"
+ editTheme["Author"] = "Author"
editTheme["Author Tripcode"] = "Unknown"
- # Objects are not guaranteed to have any type of arrangement, so we use a presorted
- # array to generate the layout of of the theme editor.
- # (Themes aren't even guaranteed to have any of these values, actually)
+ # Manual Sort
layout = [
"Background Image"
"Background Attachment"
@@ -90,19 +89,18 @@ ThemeTools =
"
header = $.el "div",
- innerHTML: "
+ innerHTML: """
by
-"
+
+"""
# Setup inputs that are not generated from the layout variable.
for input in $$("input", header)
$.on input, 'blur', ->
editTheme[@name] = @value
- $.add $("#themebar", ThemeTools.dialog), header
- themeContent = $("#themecontent", ThemeTools.dialog)
-
- nodes = []
+ $.add $('#themebar', ThemeTools.dialog), header
+ themeContent = $ '#themecontent', ThemeTools.dialog
for item in layout
unless editTheme[item]
@@ -173,7 +171,7 @@ ThemeTools =
editTheme[@name] = @value
Style.addStyle(editTheme)
- nodes.push div
+ $.add themeContent, div
Style.addStyle(editTheme)
@@ -188,15 +186,13 @@ ThemeTools =
editTheme["Custom CSS"] = @value
Style.themeCSS.textContent = Style.theme editTheme
- nodes.push div
+ $.add themeContent, div
$.on $('#save > a', ThemeTools.dialog), 'click', ->
ThemeTools.save editTheme
$.on $('#close > a', ThemeTools.dialog), 'click', ThemeTools.close
- $.add themeContent, nodes
-
$.add d.body, ThemeTools.dialog
Style.themeCSS.textContent = Style.theme editTheme