: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
self.sourceToDelete = args;
heading = heading.replace("#", self.sourceToDelete.username);
description : description,
customButtons : customButtons
* Confirm Dialog Box Actions
confirmDialogAction : function(){
switch (self.dialogBox.type) {
self.deleteSource(self.sourceToDelete);
self.deleteAccount(true);
* Display Feed Sources Settings
* @param {int} sourceIndex
displayFeedSettings: function(source, sourceIndex) {
this.expandedFeedID = sourceIndex + 1;
* Hide Feed Sources Settings
* @param {int} sourceIndex
hideFeedSettings: function() {
this.expandedFeedID = null;
copyToClipBoard : function(value){
const el = document.createElement('textarea');
el.className = 'ctf-fb-cp-clpboard';
document.body.appendChild(el);
document.execCommand('copy');
document.body.removeChild(el);
self.notificationElement = {
text : this.genericText.copiedClipboard,
self.notificationElement.shown = "hidden";
viewSourceInstances : function(source){
self.viewsActive.instanceSourceActive = source;
* Return Page/Group Avatar
returnAccountAvatar : function(source){
if (typeof source.local_avatar_url !== "undefined" && source.local_avatar_url !== '') {
return source.local_avatar_url;
if (typeof source.avatar_url !== "undefined" && source.avatar_url !== '') {
return source.avatar_url;
checkManualEmpty : function(){
return self.checkNotEmpty(self.appCredentials.access_token) && self.checkNotEmpty(self.appCredentials.access_token_secret);
closeConnectAccountPopup : function(){
self.viewsActive.connectAccountPopup = false;
checkNewAccount : function(){
if( self.newAccountData !== undefined ){
if( self.newAccountData['error'] !== undefined ){
self.accountDetails = self.newAccountData;
checkAccountDetails : function(){
return self.accountDetails !== undefined &&
self?.accountDetails?.access_token !== undefined &&
self?.accountDetails?.access_token_secret !== undefined &&
self.checkNotEmpty(self?.accountDetails?.access_token) &&
self.checkNotEmpty(self?.accountDetails?.access_token_secret);
checkAppData : function(){
return self?.accountDetails?.app_name !== undefined &&
self?.accountDetails?.consumer_key !== undefined &&
self?.accountDetails?.consumer_secret !== undefined &&
self.checkNotEmpty(self?.accountDetails?.app_name) &&
self.checkNotEmpty(self?.accountDetails?.consumer_key) &&
self.checkNotEmpty(self?.accountDetails?.consumer_secret);
deleteAccount : function(deleteApp = false){
action : 'ctf_feed_saver_manager_delete_account',
self.ajaxPost(deleteData, function(_ref){
self.accountDetails = data;
self.loadingAjax = false;
connectAccountLink : function(){
window.location = this.appOAUTH;
* Connect Twitter Account Manually
connectManualAccount : function(){
if( self.checkManualEmpty() ){
var connectManualAccountData = {
action : 'ctf_feed_saver_manager_connect_manual_account',
app_name : self.appCredentials.app_name,
consumer_key : self.appCredentials.consumer_key,
consumer_secret : self.appCredentials.consumer_secret,
access_token : self.appCredentials.access_token,
access_token_secret : self.appCredentials.access_token_secret
self.ajaxPost(connectManualAccountData, function(_ref){
if(data['error'] === undefined){
self.accountDetails = data;
self.manualAccountResp = 'success';
self.viewsActive['connectAccountPopup'] = false;
self.manualAccountResp = false;
self.manualAccountResp = 'error';
self.manualAccountResp = false;
self.loadingAjax = false;