diff --git a/lib/channel/channel.js b/lib/channel/channel.js
index 843b4261..da9b6028 100644
--- a/lib/channel/channel.js
+++ b/lib/channel/channel.js
@@ -163,10 +163,7 @@ Channel.prototype.loadState = function () {
var errorLoad = function (msg) {
if (self.modules.customization) {
self.modules.customization.load({
- motd: {
- motd: msg,
- html: msg
- }
+ motd: msg
});
}
diff --git a/lib/channel/customization.js b/lib/channel/customization.js
index 1ed7df8c..5bbfdd97 100644
--- a/lib/channel/customization.js
+++ b/lib/channel/customization.js
@@ -17,10 +17,7 @@ function CustomizationModule(channel) {
ChannelModule.apply(this, arguments);
this.css = "";
this.js = "";
- this.motd = {
- motd: "",
- html: ""
- };
+ this.motd = "";
}
CustomizationModule.prototype = Object.create(ChannelModule.prototype);
@@ -35,12 +32,15 @@ CustomizationModule.prototype.load = function (data) {
}
if ("motd" in data) {
- this.motd = {
- motd: data.motd.motd || ""
- };
-
- this.motd.motd = XSS.sanitizeHTML(this.motd.motd);
- this.motd.html = this.motd.motd.replace(/\n/g, "
");
+ if (typeof data.motd === "object" && data.motd.motd) {
+ // Old style MOTD, convert to new
+ this.motd = XSS.sanitizeHTML(data.motd.motd).replace(
+ /\n/g, "
\n");
+ } else if (typeof data.motd === "string") {
+ // The MOTD is filtered before it is saved, however it is also
+ // re-filtered on load in case the filtering rules change
+ this.motd = XSS.sanitizeHTML(data.motd);
+ }
}
};
@@ -51,12 +51,7 @@ CustomizationModule.prototype.save = function (data) {
};
CustomizationModule.prototype.setMotd = function (motd) {
- motd = XSS.sanitizeHTML(motd);
- var html = motd.replace(/\n/g, "
");
- this.motd = {
- motd: motd,
- html: html
- };
+ this.motd = XSS.sanitizeHTML(motd);
this.sendMotd(this.channel.users);
};
diff --git a/www/js/callbacks.js b/www/js/callbacks.js
index ef52d164..f3f7f4fa 100644
--- a/www/js/callbacks.js
+++ b/www/js/callbacks.js
@@ -175,11 +175,10 @@ Callbacks = {
}
},
- setMotd: function(data) {
- CHANNEL.motd = data.html;
- CHANNEL.motd_text = data.motd;
- $("#motd").html(CHANNEL.motd);
- $("#cs-motdtext").val(CHANNEL.motd_text);
+ setMotd: function(motd) {
+ CHANNEL.motd = motd;
+ $("#motd").html(motd);
+ $("#cs-motdtext").val(motd);
if (data.motd != "") {
$("#motdwrap").show();
$("#motd").show();
diff --git a/www/js/data.js b/www/js/data.js
index 6fef78d5..7f29ddd0 100644
--- a/www/js/data.js
+++ b/www/js/data.js
@@ -19,7 +19,6 @@ var CHANNEL = {
css: "",
js: "",
motd: "",
- motd_text: "",
name: false,
usercount: 0,
emotes: []
diff --git a/www/js/util.js b/www/js/util.js
index 450cb9b1..2f0c9119 100644
--- a/www/js/util.js
+++ b/www/js/util.js
@@ -900,7 +900,7 @@ function handleModPermissions() {
})();
$("#cs-csstext").val(CHANNEL.css);
$("#cs-jstext").val(CHANNEL.js);
- $("#cs-motdtext").val(CHANNEL.motd_text);
+ $("#cs-motdtext").val(CHANNEL.motd);
setParentVisible("a[href='#cs-motdeditor']", hasPermission("motdedit"));
setParentVisible("a[href='#cs-permedit']", CLIENT.rank >= 3);
setParentVisible("a[href='#cs-banlist']", hasPermission("ban"));