From 008ff4b055705d0dde4f495bb8bedcc96264dbe8 Mon Sep 17 00:00:00 2001 From: chylex <contact@chylex.com> Date: Wed, 31 May 2017 18:33:21 +0200 Subject: [PATCH] Fix edit-design plugin resetting TweetDeck settings on first run --- Resources/Plugins/edit-design/browser.js | 63 ++++++++++++++---------- 1 file changed, 36 insertions(+), 27 deletions(-) diff --git a/Resources/Plugins/edit-design/browser.js b/Resources/Plugins/edit-design/browser.js index 1418293d..fe10cef2 100644 --- a/Resources/Plugins/edit-design/browser.js +++ b/Resources/Plugins/edit-design/browser.js @@ -23,6 +23,8 @@ enabled(){ avatarRadius: 10 }; + this.firstTimeLoad = null; + // modal dialog loading $TDP.readFileRoot(this.$token, "modal.html").then(contents => { this.htmlModal = contents; @@ -32,30 +34,52 @@ enabled(){ // configuration const configFile = "config.json"; + this.tmpConfig = null; + this.currentStage = 0; - var loadConfigObject = obj => { - this.tmpConfig = obj || {}; - - if (TD.ready){ - this.onAppReady(); + this.onStageReady = () => { + if (this.currentStage === 0){ + this.currentStage = 1; } - - this.injectDeciderReplyHook(this.tmpConfig.revertReplies); - }; - - this.onAppReady = () => { - if (this.tmpConfig !== null){ + else if (this.tmpConfig !== null){ this.config = $.extend(this.defaultConfig, this.tmpConfig); this.tmpConfig = null; this.reinjectAll(); + + if (this.firstTimeLoad){ + $TDP.writeFile(this.$token, configFile, JSON.stringify(this.config)); + } } }; + var loadConfigObject = obj => { + this.tmpConfig = obj || {}; + this.firstTimeLoad = obj === null; + + this.onStageReady(); + this.injectDeciderReplyHook(this.tmpConfig.revertReplies); + }; + + $(document).one("dataSettingsValues", () => { + switch(TD.settings.getColumnWidth()){ + case "wide": this.defaultConfig.columnWidth = "350px"; break; + case "narrow": this.defaultConfig.columnWidth = "270px"; break; + } + + switch(TD.settings.getFontSize()){ + case "small": this.defaultConfig.fontSize = "13px"; break; + case "medium": this.defaultConfig.fontSize = "14px"; break; + case "large": this.defaultConfig.fontSize = "15px"; break; + case "largest": this.defaultConfig.fontSize = "16px"; break; + } + + this.onStageReady(); + }); + $TDP.checkFileExists(this.$token, configFile).then(exists => { if (!exists){ loadConfigObject(null); - $TDP.writeFile(this.$token, configFile, JSON.stringify(this.defaultConfig)); } else{ $TDP.readFile(this.$token, configFile, true).then(contents => { @@ -416,21 +440,6 @@ enabled(){ } ready(){ - // configuration - switch(TD.settings.getColumnWidth()){ - case "wide": this.defaultConfig.columnWidth = "350px"; break; - case "narrow": this.defaultConfig.columnWidth = "270px"; break; - } - - switch(TD.settings.getFontSize()){ - case "small": this.defaultConfig.fontSize = "13px"; break; - case "medium": this.defaultConfig.fontSize = "14px"; break; - case "large": this.defaultConfig.fontSize = "15px"; break; - case "largest": this.defaultConfig.fontSize = "16px"; break; - } - - this.onAppReady(); - // optimization events $(window).on("focus", this.onWindowFocusEvent); $(window).on("blur", this.onWindowBlurEvent);