Add checks for a couple JSPREF edge cases
This commit is contained in:
parent
5321996c64
commit
ee8cf35cdf
|
|
@ -168,6 +168,16 @@ var NO_WEBSOCKETS = USEROPTS.altsocket;
|
||||||
var NO_VIMEO = Boolean(location.host.match("cytu.be"));
|
var NO_VIMEO = Boolean(location.host.match("cytu.be"));
|
||||||
|
|
||||||
var JSPREF = getOpt("channel_js_pref") || {};
|
var JSPREF = getOpt("channel_js_pref") || {};
|
||||||
|
// Dunno why this happens
|
||||||
|
if (typeof JSPREF !== "object" || JSPREF === null) {
|
||||||
|
try {
|
||||||
|
JSPREF = JSON.parse(JSPREF);
|
||||||
|
} catch (e) {
|
||||||
|
console.error("JSPREF is bugged: " + e + " (" + JSPREF + ")");
|
||||||
|
JSPREF = {};
|
||||||
|
setOpt("channel_js_pref", JSPREF);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var Rank = {
|
var Rank = {
|
||||||
Guest: 0,
|
Guest: 0,
|
||||||
|
|
|
||||||
|
|
@ -2826,15 +2826,30 @@ function formatScriptAccessPrefs() {
|
||||||
|
|
||||||
var channels = Object.keys(JSPREF).sort();
|
var channels = Object.keys(JSPREF).sort();
|
||||||
channels.forEach(function (channel) {
|
channels.forEach(function (channel) {
|
||||||
var parts = channel.split("_");
|
var idx = String(channel).lastIndexOf("_");
|
||||||
if (!parts[1].match(/^(external|embedded)$/)) {
|
if (idx < 0) {
|
||||||
|
// Invalid
|
||||||
|
console.error("Channel JS pref: invalid key '" + channel + "', deleting it");
|
||||||
|
delete JSPREF[channel];
|
||||||
|
setOpt("channel_js_pref", JSPREF);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var channelName = channel.substring(0, idx);
|
||||||
|
var prefType = channel.substring(idx + 1);
|
||||||
|
console.log(channelName, prefType);
|
||||||
|
if (prefType !== "external" && prefType !== "embedded") {
|
||||||
|
// Invalid
|
||||||
|
console.error("Channel JS pref: invalid key '" + channel + "', deleting it");
|
||||||
|
delete JSPREF[channel];
|
||||||
|
setOpt("channel_js_pref", JSPREF);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var pref = JSPREF[channel];
|
var pref = JSPREF[channel];
|
||||||
var tr = $("<tr/>").appendTo(tbl);
|
var tr = $("<tr/>").appendTo(tbl);
|
||||||
$("<td/>").text(parts[0]).appendTo(tr);
|
$("<td/>").text(channelName).appendTo(tr);
|
||||||
$("<td/>").text(parts[1]).appendTo(tr);
|
$("<td/>").text(prefType).appendTo(tr);
|
||||||
|
|
||||||
var pref_td = $("<td/>").appendTo(tr);
|
var pref_td = $("<td/>").appendTo(tr);
|
||||||
var allow_label = $("<label/>").addClass("radio-inline")
|
var allow_label = $("<label/>").addClass("radio-inline")
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue