From eac300627f5bc403fd0a9ca790f13d05ffbbc5df Mon Sep 17 00:00:00 2001 From: chylex <contact@chylex.com> Date: Sun, 29 Apr 2018 13:17:00 +0200 Subject: [PATCH] Fix broken column names again and make getColumnName accessible to plugins --- Resources/Scripts/code.js | 31 ++++++++++++++-------------- Resources/Scripts/plugins.browser.js | 1 + 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Resources/Scripts/code.js b/Resources/Scripts/code.js index a3656f32..25a835b4 100644 --- a/Resources/Scripts/code.js +++ b/Resources/Scripts/code.js @@ -96,20 +96,24 @@ }; // - // Function: Attempts to retrieve the column icon class. Returns undefined on failure. + // Block: Fix columns missing any identifiable attributes to allow individual styles. // - const getColumnIconClass = function(column){ - if (ensurePropertyExists(column, "ui", "_$chirpContainer")){ - return column.ui._$chirpContainer.closest(".js-column").attr("data-td-icon"); - } - }; + $(document).on("uiColumnRendered", function(e, data){ + let icon = data.$column.find(".column-type-icon").first(); + return if icon.length !== 1; + + let name = Array.prototype.find.call(icon[0].classList, cls => cls.startsWith("icon-")); + return if !name; + + data.$column.attr("data-td-icon", name); + data.column._tduck_icon = name; + }); // - // Function: Retrieves column name and caches it. + // Block: Setup global function to retrieve the column name. // - const getColumnName = function(column){ - let cached = column._tduck_icon || (column._tduck_icon = getColumnIconClass(column)); - return columnTitles[cached] || ""; + window.TDGF_getColumnName = function(column){ + return columnTitles[column._tduck_icon] || ""; }; // @@ -234,7 +238,7 @@ let tweetUrl = source ? source.getChirpURL() : ""; let quoteUrl = source && source.quotedTweet ? source.quotedTweet.getChirpURL() : ""; - $TD.onTweetPopup(column.model.privateState.apiid, chirpId, getColumnName(column), html.html(), duration, tweetUrl, quoteUrl); + $TD.onTweetPopup(column.model.privateState.apiid, chirpId, window.TDGF_getColumnName(column), html.html(), duration, tweetUrl, quoteUrl); } if (column.model.getHasSound()){ @@ -1324,11 +1328,6 @@ }; } - // - // Block: Fix columns missing any identifiable attributes to allow individual styles. - // - TD.mustaches["column.mustache"] = TD.mustaches["column.mustache"].replace("{{columnclass}}\"", "{{columnclass}}\" data-td-icon=\"{{columniconclass}}\""); - // // Block: Remove column mouse wheel handler, which allows smooth scrolling inside columns, and horizontally scrolling column container when holding Shift. // diff --git a/Resources/Scripts/plugins.browser.js b/Resources/Scripts/plugins.browser.js index a164278a..1d48f58d 100644 --- a/Resources/Scripts/plugins.browser.js +++ b/Resources/Scripts/plugins.browser.js @@ -117,6 +117,7 @@ // // Block: Setup bridges to global functions. // + window.TDPF_getColumnName = window.TDGF_getColumnName; window.TDPF_playVideo = window.TDGF_playVideo; window.TDPF_reloadColumns = window.TDGF_reloadColumns; window.TDPF_prioritizeNewestEvent = window.TDGF_prioritizeNewestEvent;