1
0
Fork 0
mirror of https://github.com/FrankerFaceZ/FrankerFaceZ.git synced 2025-09-17 10:16:57 +00:00

3.5.409. Fix player positioning. Fix cheer rendering with hashtags. Add option to hide cheering with #charity notices. Fix highlight notices not appearing. Fix clicking a dashboard widget's settings balloon. Dark CSS fixes for dashboard and clips updates. Refactor CSS for chatlines to remove the need for :before. Fix debug logging never finishing when the client fails to get a logviewer token.

This commit is contained in:
SirStendec 2016-12-23 13:40:05 -05:00
parent 1b9b695bdd
commit 6b13ac3265
24 changed files with 286 additions and 344 deletions

View file

@ -96,6 +96,16 @@ FFZ.settings_info.bits_pinned_expand = {
}
FFZ.settings_info.bits_disable_charity = {
type: "boolean",
value: false,
category: "Chat Filtering",
name: "Disable Cheering with #Charity Notices",
help: "Stop displaying Twitch's notices about Cheering with #Charity."
}
// --------------------
// Initialization

View file

@ -38,7 +38,7 @@ FFZ.prototype.modify_dashboard_widget = function(component) {
ffz_init: function() {
var t = this;
this.$(".dash-widget__header").click(function(e) {
if ( ! f.settings.dash_widget_click_to_expand || e.target.tagName === 'button' || jQuery(e.target).parents('button').length )
if ( ! f.settings.dash_widget_click_to_expand || e.target.tagName === 'button' || jQuery(e.target).parents('button').length || jQuery(e.target).parents('.balloon-wrapper').length )
return;
t.actions.collapseWidget.call(t);

View file

@ -356,10 +356,9 @@ FFZ.settings_info.chat_rows = {
help: "Display alternating background colors for lines in chat.",
on_update: function(val) {
this.toggle_style('chat-background', !this.has_bttv && val);
this._toggle_chat_setup_style();
}
};
this.toggle_style('chat-background', !this.has_bttv && val);
}
};
FFZ.settings_info.chat_separators = {
@ -382,14 +381,12 @@ FFZ.settings_info.chat_separators = {
help: "Display thin lines between chat messages for further visual separation.",
on_update: function(val) {
this._toggle_chat_setup_style();
this.toggle_style('chat-separator', !this.has_bttv && val);
this.toggle_style('chat-separator-3d', !this.has_bttv && val === 2);
this.toggle_style('chat-separator-3d-inset', !this.has_bttv && val === 3);
this.toggle_style('chat-separator-wide', !this.has_bttv && val === 4);
}
};
this.toggle_style('chat-separator', !this.has_bttv && val);
this.toggle_style('chat-separator-3d', !this.has_bttv && val === 2);
this.toggle_style('chat-separator-3d-inset', !this.has_bttv && val === 3);
this.toggle_style('chat-separator-wide', !this.has_bttv && val === 4);
}
};
FFZ.settings_info.old_sub_notices = {
@ -440,7 +437,7 @@ FFZ.settings_info.chat_padding = {
help: "Reduce the amount of padding around chat messages to fit more on-screen at once.",
on_update: function(val) { this.toggle_style('chat-padding', !this.has_bttv && val); }
};
};
FFZ.settings_info.high_contrast_chat = {
@ -666,7 +663,6 @@ FFZ.prototype.setup_line = function() {
utils.toggle_cls('ffz-padded-emoticons')(!this.has_bttv && this.settings.emote_alignment === 1);
utils.toggle_cls('ffz-baseline-emoticons')(!this.has_bttv && this.settings.emote_alignment === 2);
this._toggle_chat_setup_style();
this.toggle_style('chat-padding', !this.has_bttv && this.settings.chat_padding);
this.toggle_style('chat-background', !this.has_bttv && this.settings.chat_rows);
@ -692,15 +688,6 @@ FFZ.prototype.setup_line = function() {
}
FFZ.prototype._toggle_chat_setup_style = function() {
this.toggle_style('chat-setup', !this.has_bttv && (
this.settings.chat_mod_icon_visibility > 1 ||
this.settings.chat_separators ||
this.settings.chat_rows ||
this.settings.highlight_messages_with_mod_card));
}
FFZ.prototype.save_aliases = function() {
this.log("Saving " + Object.keys(this.aliases).length + " aliases to local storage.");
localStorage.ffz_aliases = JSON.stringify(this.aliases);

View file

@ -80,7 +80,6 @@ FFZ.settings_info.highlight_messages_with_mod_card = {
help: "Highlight a user's messages in chat when their moderation card is open.",
on_update: function(val) {
this._toggle_chat_setup_style();
if ( ! this._mod_card )
return;
@ -128,7 +127,6 @@ FFZ.settings_info.chat_mod_icon_visibility = {
help: "Choose when you should see in-line moderation icons in chat.",
on_update: function(val) {
this._toggle_chat_setup_style();
var settings = utils.ember_settings();
if ( settings )
settings.set('showModIcons', val === 1);
@ -842,7 +840,7 @@ FFZ.prototype.modify_moderation_card = function(component) {
var was_at_bottom = history.scrollTop >= (history.scrollHeight - history.clientHeight),
last_line = history.querySelector('.chat-line:last-of-type'),
ll_date = last_line && last_line.getAttribute('data-date'),
date = message.date.toLocaleDateString();
date = message.date && message.date.toLocaleDateString();
if ( last_line.classList.contains('no-messages') ) {
last_line.parentElement.removeChild(last_line);
@ -1559,7 +1557,7 @@ FFZ.prototype._build_mod_card_history = function(msg, modcard, show_from, ts_cli
l_el.setAttribute('data-sender', msg.from);
l_el.setAttribute('data-id', msg.tags && msg.tags.id);
l_el.setAttribute('data-lv-id', msg.lv_id);
l_el.setAttribute('data-date', msg.date.toLocaleDateString());
l_el.setAttribute('data-date', msg.date && msg.date.toLocaleDateString());
l_el.setAttribute('data-deleted', msg.deleted || false);
l_el.innerHTML = out.join("");

View file

@ -945,7 +945,7 @@ FFZ.prototype._update_room_badge_css = function(room_id) {
output = [];
// For rooms that don't have sub badges set.
if ( ! badges.subscriber ) {
if ( badges && ! badges.subscriber ) {
var BadgeService = utils.ember_lookup('service:badges'),
global = BadgeService && BadgeService.badgeCollection && BadgeService.badgeCollection.global;
badges.subscriber = global.subscriber;
@ -2068,6 +2068,8 @@ FFZ.prototype._modify_room = function(room) {
notice_type = msg.tags && msg.tags['msg-id'],
is_whisper = msg.style === 'whisper';
if ( notice_type === 'charity' && f.settings.bits_disable_charity )
return;
// If this message is already in the room, discard the duplicate.
if ( msg_id && this.ffz_ids && this.ffz_ids[msg_id] )

View file

@ -84,7 +84,6 @@ FFZ.prototype.setup_bttv = function(delay) {
this.disconnect_extra_chat();
// Disable style blocks.
this.toggle_style('chat-setup');
this.toggle_style('chat-padding');
this.toggle_style('chat-background');

View file

@ -53,6 +53,39 @@
}
.yin-alert {
background-color: lighten(@nav-bg-color, 10%);
.yin-link {
color: #fff;
&:hover {
background-color: fade(white, 10%);
}
}
}
.ct-editable-text {
&:hover {
background-color: transparent;
&:after {
background-color: fade(white, 10%);
}
}
}
.ct-text-input {
background-color: fade(white, 10%);
color: white;
border-color: fade(white, 20%);
&:focus {
border-color: fade(white, 50%);
}
}
// Clip Center?
.ce-clip-center:not(.ce-clip-center--editing) .ce-clip-center__pre-control {
background-color: @nav-bg-color;

View file

@ -61,7 +61,7 @@ FFZ.channel_metadata = {};
// Version
var VER = FFZ.version_info = {
major: 3, minor: 5, revision: 405,
major: 3, minor: 5, revision: 409,
toString: function() {
return [VER.major, VER.minor, VER.revision].join(".") + (VER.extra || "");
}

View file

@ -7,7 +7,6 @@
.ffz-dark .badge.invert-invert,
.theatre .badge.invert-invert,
.dark .badge.invert-invert,
.force-dark .badge.invert-invert,
.badge:not(.no-invert):not(.invert-invert) {
filter: invert(75%);
}
@ -15,7 +14,6 @@
.badge.colored,
.ffz-dark .badge:not(.invert-invert),
.theatre .badge:not(.invert-invert),
.dark .badge:not(.invert-invert),
.force-dark .badge:not(.invert-invert) {
.dark .badge:not(.invert-invert) {
filter: none !important;
}

View file

@ -1,86 +1,79 @@
/* Regular Alternating Background */
.conversation-chat-lines > div:nth-child(2n+0):before,
.chat-line:nth-child(2n+0):before {
.conversation-chat-lines > div:nth-child(2n+0),
.chat-line:nth-child(2n+0) {
background-color: rgba(0,0,0, 0.1);
}
/* Dark: Alternating Background */
.ffz-dark .conversation-chat-lines > div:nth-child(2n+0):before,
.ffz-dark .chat-history .chat-line:nth-child(2n+0):before,
.ffz-dark .conversation-chat-lines > div:nth-child(2n+0),
.ffz-dark .chat-history .chat-line:nth-child(2n+0),
.theatre .conversation-chat-lines > div:nth-child(2n+0):before,
.theatre .chat-line:nth-child(2n+0):before,
.theatre .conversation-chat-lines > div:nth-child(2n+0),
.theatre .chat-line:nth-child(2n+0),
.dark .chat-line:nth-child(2n+0):before,
.force-dark .chat-line:nth-child(2n+0):before {
.dark .chat-line:nth-child(2n+0) {
background-color: rgba(255,255,255, 0.05);
}
/* DEPRECIATED: Whisper Backgrounds */
.chat-line.whisper:before {
.chat-line.whisper {
background-color: rgba(185, 163, 227, 0.2);
}
.chat-line.whisper:nth-child(2n+0):before {
.chat-line.whisper:nth-child(2n+0) {
background-color: rgba(185, 163, 227, 0.4);
}
.theatre .chat-line.whisper:before,
.dark .chat-line.whisper:before,
.force-dark .chat-line.whisper:before {
.theatre .chat-line.whisper,
.dark .chat-line.whisper {
background-color: rgba(100, 65, 165, 0.2);
}
.theatre .chat-line.whisper:nth-child(2n+0):before,
.dark .chat-line.whisper:nth-child(2n+0):before,
.force-dark .chat-line.whisper:nth-child(2n+0):before {
.theatre .chat-line.whisper:nth-child(2n+0),
.dark .chat-line.whisper:nth-child(2n+0) {
background-color: rgba(100, 65, 165, 0.4);
}
/* Chat History: Original Sender */
.chat-history .chat-line.original-sender:before {
.chat-history .chat-line.original-sender {
background-color: rgba(0,127,255, 0.2);
}
.chat-history .chat-line.original-sender:nth-child(2n+0):before {
.chat-history .chat-line.original-sender:nth-child(2n+0) {
background-color: rgba(0,127,255, 0.4);
}
.theatre .chat-history .chat-line.original-sender:before,
.dark .chat-history .chat-line.original-sender:before,
.force-dark .chat-history .chat-line.original-sender:before {
.theatre .chat-history .chat-line.original-sender,
.dark .chat-history .chat-line.original-sender {
background-color: rgba(0,63,127, 0.2);
}
.theatre .chat-history .chat-line.original-sender:nth-child(2n+0):before,
.dark .chat-history .chat-line.original-sender:nth-child(2n+0):before,
.force-dark .chat-history .chat-line.original-sender:nth-child(2n+0):before {
.theatre .chat-history .chat-line.original-sender:nth-child(2n+0),
.dark .chat-history .chat-line.original-sender:nth-child(2n+0) {
background-color: rgba(0,63,127, 0.4);
}
/* Chat History: Original Message */
.chat-history .chat-line.original-msg:before {
.chat-history .chat-line.original-msg {
background-color: rgba(0,255,127, 0.4);
}
.chat-history .chat-line.original-msg:nth-child(2n+0):before {
.chat-history .chat-line.original-msg:nth-child(2n+0) {
background-color: rgba(0,255,127, 0.8);
}
.theatre .chat-history .chat-line.original-msg:before,
.dark .chat-history .chat-line.original-msg:before,
.force-dark .chat-history .chat-line.original-msg:before {
.theatre .chat-history .chat-line.original-msg,
.dark .chat-history .chat-line.original-msg {
background-color: rgba(0,127,63, 0.4);
}
.theatre .chat-history .chat-line.original-msg:nth-child(2n+0):before,
.dark .chat-history .chat-line.original-msg:nth-child(2n+0):before,
.force-dark .chat-history .chat-line.original-msg:nth-child(2n+0):before {
.theatre .chat-history .chat-line.original-msg:nth-child(2n+0),
.dark .chat-history .chat-line.original-msg:nth-child(2n+0) {
background-color: rgba(0,127,63, 0.8);
}
@ -91,8 +84,7 @@
}
.theatre .chat-history .chat-line.original-msg span.has-color,
.dark .chat-history .chat-line.original-msg span.has-color,
.force-dark .chat-history .chat-line.original-msg span.has-color {
.dark .chat-history .chat-line.original-msg span.has-color {
color: #fff !important;
}
@ -100,34 +92,31 @@
/* DEPRECIATED: Mention Backgrounds */
.chat-line.ffz-mentioned:before {
.chat-line.ffz-mentioned {
background-color: rgba(255,127,127,0.2);
}
.chat-lines > div:nth-child(2n+0) > .chat-line.ffz-mentioned:before,
.chat-lines > div:nth-child(2n+0) > .chat-line.ffz-mentioned,
.chat-line.ffz-mentioned:nth-child(2n+0):before {
.chat-line.ffz-mentioned:nth-child(2n+0) {
background-color: rgba(255,127,127, 0.4);
}
/* DEPRECIATED: DARK THEME: Mention Backgrounds */
.ffz-dark .chat-history .chat-line.ffz-mentioned:before,
.ffz-dark .chat-history .chat-line.ffz-mentioned,
.theatre .chat-line.ffz-mentioned:before,
.dark .chat-line.ffz-mentioned:before,
.force-dark .chat-line.ffz-mentioned:before {
.theatre .chat-line.ffz-mentioned,
.dark .chat-line.ffz-mentioned {
background-color: rgba(255,0,0, 0.2) !important;
}
.theatre .chat-lines > div:nth-child(2n+0) > .chat-line.ffz-mentioned:before,
.dark .chat-lines > div:nth-child(2n+0) > .chat-line.ffz-mentioned:before,
.force-dark .chat-lines > div:nth-child(2n+0) > .chat-line.ffz-mentioned:before,
.theatre .chat-lines > div:nth-child(2n+0) > .chat-line.ffz-mentioned,
.dark .chat-lines > div:nth-child(2n+0) > .chat-line.ffz-mentioned,
.ffz-dark .chat-history .chat-line.ffz-mentioned:nth-child(2n+0):before,
.theatre .chat-line.ffz-mentioned:nth-child(2n+0):before,
.dark .chat-line.ffz-mentioned:nth-child(2n+0):before,
.force-dark .chat-line.ffz-mentioned:nth-child(2n+0):before {
.ffz-dark .chat-history .chat-line.ffz-mentioned:nth-child(2n+0),
.theatre .chat-line.ffz-mentioned:nth-child(2n+0),
.dark .chat-line.ffz-mentioned:nth-child(2n+0) {
background-color: rgba(255,0,0, 0.3) !important;
}
@ -154,16 +143,10 @@
.ffz-dark .chat-history .mentioned,
.ffz-dark .chat-history .mentioning,
.app-main.theatre .chat-container .chat-line .mentioned,
.app-main.theatre .chat-container .chat-line .mentioning,
.chat-container.dark .chat-line .mentioned,
.chat-container.dark .chat-line .mentioning,
.chat-container.force-dark .chat-line .mentioned,
.chat-container.force-dark .chat-line .mentioning,
.ember-chat-container.dark .chat-line .mentioned,
.ember-chat-container.dark .chat-line .mentioning,
.ember-chat-container.force-dark .chat-line .mentioned,
.ember-chat-container.force-dark .chat-line .mentioning {
.chat-container.dark .chat-line .mentioning,
.ember-chat-container.dark .chat-line .mentioning {
color: #8c8c8c;
background-color: rgba(16,16,16, 0.75);
}

View file

@ -15,8 +15,6 @@ body.ffz-bttv-dark .chat-interface,
.theatre .chat-container,
.theatre .ember-chat-container,
.chat-container.dark,
.chat-container.force-dark,
.ember-chat-container.dark,
.ember-chat-container.force-dark {
.ember-chat-container.dark {
background-color: #000 !important;
}

View file

@ -11,9 +11,7 @@ body.ffz-bttv .chat-line .timestamp,
.theatre .chat-container,
.theatre .ember-chat-container,
.chat-container.dark,
.chat-container.force-dark,
.ember-chat-container.dark,
.ember-chat-container.force-dark,
body.ffz-bttv-dark .chat-container,
body.ffz-bttv-dark .chat-line .message,

View file

@ -1,17 +1,19 @@
/* 3D Inset Separators */
.conversation-chat-lines > div:before,
.chat-line:before {
.conversation-chat-lines > div,
.chat-line {
border-top: 1px solid #aaa;
border-bottom-color: rgba(255,255,255, 0.5);
}
/* Dark: 3D Inset Separators */
.ffz-dark .conversation-chat-lines > div:before,
.theatre .conversation-chat-lines > div:before,
.ember-chat .chat-messages .chat-line,
.ember-chat .chat-messages .chat-line.admin { padding-top: 2px }
.theatre .chat-line:before,
.dark .chat-line:before,
.force-dark .chat-line:before {
/* Dark: 3D Inset Separators */
.ffz-dark .conversation-chat-lines > div,
.theatre .conversation-chat-lines > div,
.theatre .chat-line,
.dark .chat-line {
border-top-color: #000;
border-bottom-color: rgba(255,255,255, 0.1);
}

View file

@ -1,15 +1,17 @@
/* 3D Separators */
.conversation-chat-lines > div:before,
.chat-line:before {
.conversation-chat-lines > div,
.chat-line {
border-top: 1px solid rgba(255,255,255, 0.5);
}
/* Dark: 3D Separators */
.ffz-dark .conversation-chat-lines > div:before,
.theatre .conversation-chat-lines > div:before,
.ember-chat .chat-messages .chat-line,
.ember-chat .chat-messages .chat-line.admin { padding-top: 2px }
.theatre .chat-line:before,
.dark .chat-line:before,
.force-dark .chat-line:before {
/* Dark: 3D Separators */
.ffz-dark .conversation-chat-lines > div,
.theatre .conversation-chat-lines > div,
.theatre .chat-line,
.dark .chat-line {
border-top-color: rgba(255,255,255, 0.1);
}

View file

@ -1,15 +1,17 @@
/* Wide Separators */
.conversation-chat-lines > div:before,
.chat-line:before {
.conversation-chat-lines > div,
.chat-line {
border-top: 1px solid #aaa;
}
/* Dark: Wide Separators */
.ffz-dark .conversation-chat-lines > div:before,
.theatre .conversation-chat-lines > div:before,
.ember-chat .chat-messages .chat-line,
.ember-chat .chat-messages .chat-line.admin { padding-top: 2px }
.theatre .chat-line:before,
.dark .chat-line:before,
.force-dark .chat-line:before {
/* Dark: Wide Separators */
.ffz-dark .conversation-chat-lines > div,
.theatre .conversation-chat-lines > div,
.theatre .chat-line,
.dark .chat-line {
border-top-color: #000;
}

View file

@ -1,28 +1,30 @@
/* Simple Separators */
.conversation-chat-lines > div:before,
.chat-line:before {
.conversation-chat-lines > div,
.chat-line {
border-bottom: 1px solid #aaa;
}
/* Dark: Simple Separators */
.ffz-dark .conversation-chat-lines > div:before,
.theatre .conversation-chat-lines > div:before,
.ember-chat .chat-messages .chat-line,
.ember-chat .chat-messages .chat-line.admin { padding-bottom: 2px }
.theatre .chat-line:before,
.dark .chat-line:before,
.force-dark .chat-line:before {
/* Dark: Simple Separators */
.ffz-dark .conversation-chat-lines > div,
.theatre .conversation-chat-lines > div,
.theatre .chat-line,
.dark .chat-line {
border-bottom-color: #000;
}
/* Hide First Line */
.conversation-chat-lines > div:first-child:before,
.chat-line:first-of-type:before {
.conversation-chat-lines > div:first-child,
.chat-line:first-of-type {
border-top-color: transparent !important;
}
/* Hide Last Line */
.conversation-chat-lines > div:last-child:nth-child(odd):before,
.chat-line:last-of-type:nth-child(odd):before {
.conversation-chat-lines > div:last-child:nth-child(odd),
.chat-line:last-of-type:nth-child(odd) {
border-bottom-color: transparent !important;
}

View file

@ -1,22 +0,0 @@
.conversation-chat-lines > div,
.chat-line {
position: relative;
z-index: 1;
}
.conversation-chat-lines > div:before,
.chat-line:before {
content: "";
position: absolute;
z-index: -1;
left: 0; right: 0;
top: 0; bottom: 0;
}
.chat-line.brick--marked {
box-shadow: none;
}
.chat-line.brick--marked:before {
box-shadow: 3px 0 0 #6441a4 inset;
}

View file

@ -1,19 +1,17 @@
.chat-lines .chat-line[data-sender="{user_id}"]:before {
.chat-lines .chat-line[data-sender="{user_id}"] {
background-color: rgba(0,127,255, 0.2);
}
.chat-lines .chat-line[data-sender="{user_id}"]:nth-child(2n+0):before {
.chat-lines .chat-line[data-sender="{user_id}"]:nth-child(2n+0) {
background-color: rgba(0,127,255, 0.4);
}
.theatre .chat-lines .chat-line[data-sender="{user_id}"]:before,
.dark .chat-lines .chat-line[data-sender="{user_id}"]:before,
.force-dark .chat-lines .chat-line[data-sender="{user_id}"]:before {
.theatre .chat-lines .chat-line[data-sender="{user_id}"],
.dark .chat-lines .chat-line[data-sender="{user_id}"] {
background-color: rgba(0,63,127, 0.2);
}
.theatre .chat-lines .chat-line[data-sender="{user_id}"]:nth-child(2n+0):before,
.dark .chat-lines .chat-line[data-sender="{user_id}"]:nth-child(2n+0):before,
.force-dark .chat-lines .chat-line[data-sender="{user_id}"]:nth-child(2n+0):before {
.theatre .chat-lines .chat-line[data-sender="{user_id}"]:nth-child(2n+0),
.dark .chat-lines .chat-line[data-sender="{user_id}"]:nth-child(2n+0) {
background-color: rgba(0,63,127, 0.4);
}

View file

@ -667,8 +667,8 @@ FFZ.prototype._tokenize_bits = function(tokens) {
if ( bits_helpers && bits_helpers.tokenizeBits )
try {
return bits_helpers.tokenizeBits(tokens,
bits_tags && bits_tags.allTagNames,
bits_service && bits_service.regexes);
bits_tags && bits_tags.get('allTagNames'),
bits_service && bits_service.get('regexes'));
} catch(err) { }
return tokens;
@ -802,10 +802,15 @@ FFZ.prototype.tokenize_chat_line = function(msgObject, prevent_notification, del
// can't actually go to it is a bad thing.
if ( this._chatv && this.settings.highlight_notifications && ! this.embed_in_dash && ! document.hasFocus() && ! prevent_notification ) {
var room = this.rooms[room_id] && this.rooms[room_id].room,
controller = utils.ember_lookup('controller:chat'),
room_name;
// Make sure we have UI for this channel.
if ( (this.settings.group_tabs && (this.settings.pinned_rooms.indexOf(room_id) !== -1 || this._chatv._ffz_host )) || room.get('isGroupRoom') || room === this._chatv.get('controller.currentChannelRoom') ) {
if ( this.settings.pinned_rooms.indexOf(room_id) !== -1 ||
room_id === this._chatv._ffz_host ||
room.get('isGroupRoom') ||
(controller && room === controller.get('currentChannelRoom')) ) {
if ( room && room.get('isGroupRoom') )
room_name = room.get('tmiRoom.displayName');
else
@ -837,8 +842,7 @@ FFZ.prototype.tokenize_chat_line = function(msgObject, prevent_notification, del
(this.settings.notification_timeout*1000),
function() {
window.focus();
var cont = utils.ember_lookup('controller:chat');
room && cont && cont.focusRoom(room);
room && controller && controller.focusRoom(room);
}
);
}
@ -1067,6 +1071,10 @@ FFZ.prototype.render_token = function(render_links, warn_links, render_bits, tok
return '<span class="emoticon ffz-bit ffz-tooltip bit-prefix-' + prefix + ' bit-tier-' + tier[0] + '"' + (token.individuals ? ' data-individuals="' + utils.quote_attr(JSON.stringify(token.individuals)) + '"' : '') + ' data-prefix="' + prefix + '" data-amount="' + utils.number_commas(token.amount) + '" alt="cheer' + token.amount + '"></span>';
}
else if ( token.type === 'bits-tag' ) {
return '<span class="bits-tag mentioning">' + utils.sanitize(token.tag) + '</span>';
}
else if ( token.type === "deleted" )
return '<span class="deleted-word html-tooltip" title="' + utils.quote_san(token.text) + '" data-text="' + utils.sanitize(token.text) + '">&times;&times;&times;</span>';
//return `<span class="deleted-word html-tooltip" title="${utils.quote_attr(token.text)}" data-text="${utils.sanitize(token.text)}">&times;&times;&times;</span>`;

View file

@ -134,7 +134,18 @@ FFZ.debugging_blocks = {
ffz_room = room_id && this.rooms[room_id];
return new Promise(function(succeed, fail) {
var failed = false,
fail_timer = setTimeout(function() {
failed = true;
succeed([['Authentication', '<i>unable to get token</i>']]);
}, 500);
f.lv_get_token().then(function(token) {
if ( failed )
return;
else
clearTimeout(fail_timer);
var output = [
['Authentication', '<i>succeeded</i>'],
['Token Expires', new Date(f._lv_token.expires * 1000).toLocaleString()],