From f1b16eab9ac513abc1690e1bb0296127d8e18424 Mon Sep 17 00:00:00 2001
From: chylex <contact@chylex.com>
Date: Thu, 9 Nov 2017 18:15:58 +0100
Subject: [PATCH] Add a global function (including one for plugins) to reload
 columns

---
 Core/FormBrowser.cs                         |  4 ++++
 Core/TweetDeckBrowser.cs                    |  4 ++++
 Resources/Plugins/timeline-polls/browser.js | 16 ++++++----------
 Resources/Scripts/code.js                   |  7 +++++++
 Resources/Scripts/plugins.browser.js        |  1 +
 5 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/Core/FormBrowser.cs b/Core/FormBrowser.cs
index 04d03739..7be865c6 100644
--- a/Core/FormBrowser.cs
+++ b/Core/FormBrowser.cs
@@ -350,6 +350,10 @@ public void TriggerTweetScreenshot(){
             browser.TriggerTweetScreenshot();
         }
 
+        public void ReloadColumns(){
+            browser.ReloadColumns();
+        }
+
         public void ApplyROT13(){
             browser.ApplyROT13();
         }
diff --git a/Core/TweetDeckBrowser.cs b/Core/TweetDeckBrowser.cs
index 639d04a2..919d7bdc 100644
--- a/Core/TweetDeckBrowser.cs
+++ b/Core/TweetDeckBrowser.cs
@@ -231,6 +231,10 @@ public void TriggerTweetScreenshot(){
             browser.ExecuteScriptAsync("TDGF_triggerScreenshot()");
         }
 
+        public void ReloadColumns(){
+            browser.ExecuteScriptAsync("TDGF_reloadColumns()");
+        }
+
         public void ApplyROT13(){
             browser.ExecuteScriptAsync("TDGF_applyROT13()");
         }
diff --git a/Resources/Plugins/timeline-polls/browser.js b/Resources/Plugins/timeline-polls/browser.js
index dbd3102d..6eef2976 100644
--- a/Resources/Plugins/timeline-polls/browser.js
+++ b/Resources/Plugins/timeline-polls/browser.js
@@ -1,8 +1,4 @@
 enabled(){
-  this.reloadColumns = () => {
-    Object.values(TD.controller.columnManager.getAll()).forEach(column => column.reloadTweets());
-  };
-  
   // styles
   
   this.css = window.TDPF_createCustomStyle(this);
@@ -10,17 +6,17 @@ enabled(){
   
   // utility functions
   
-  var hasPoll = function(tweet){
+  const hasPoll = function(tweet){
     return tweet.hasPoll && tweet.hasPoll();
   };
   
-  var renderTweetPoll = function(tweet){
+  const renderTweetPoll = function(tweet){
     return `<div class='td-timeline-poll'>${TD.ui.template.render("status/poll", $.extend({}, tweet, {
       chirp: tweet
     }))}</div>`;
   };
   
-  var renderPollHook = function(tweet, html){
+  const renderPollHook = function(tweet, html){
     let ele = null;
     
     if (hasPoll(tweet)){
@@ -67,7 +63,7 @@ enabled(){
   };
   
   this.prevRenderFuncs = funcs;
-  this.reloadColumns();
+  window.TDPF_reloadColumns();
 }
 
 disabled(){
@@ -76,5 +72,5 @@ disabled(){
   TD.components.TweetDetailView.prototype._renderChirp = this.prevRenderFuncs.TweetDetailView;
   
   this.css.remove();
-  this.reloadColumns();
-}
\ No newline at end of file
+  window.TDPF_reloadColumns();
+}
diff --git a/Resources/Scripts/code.js b/Resources/Scripts/code.js
index 71cb53f8..99020a0e 100644
--- a/Resources/Scripts/code.js
+++ b/Resources/Scripts/code.js
@@ -1116,6 +1116,13 @@
     });
   });
   
+  //
+  // Block: Setup global function to refresh all columns.
+  //
+  window.TDGF_reloadColumns = function(){
+    Object.values(TD.controller.columnManager.getAll()).forEach(column => column.reloadTweets());
+  };
+  
   //
   // Block: Allow applying ROT13 to input selection.
   //
diff --git a/Resources/Scripts/plugins.browser.js b/Resources/Scripts/plugins.browser.js
index e43658a7..56aa7690 100644
--- a/Resources/Scripts/plugins.browser.js
+++ b/Resources/Scripts/plugins.browser.js
@@ -107,5 +107,6 @@
   // Block: Setup bridges to global functions.
   //
   window.TDPF_playVideo = window.TDGF_playVideo;
+  window.TDPF_reloadColumns = window.TDGF_reloadColumns;
   window.TDPF_prioritizeNewestEvent = window.TDGF_prioritizeNewestEvent;
 })();