1
0
mirror of https://github.com/hrfee/jfa-go.git synced 2024-12-22 17:10:10 +00:00

Accounts: Fix cog on telegram when no discord linked

Also, disable telegram & discord if an auth/initialization error occurs.
This commit is contained in:
Harvey Tindall 2021-05-23 14:48:36 +01:00
parent 519a5615cc
commit b8e3fc636c
Signed by: hrfee
GPG Key ID: BBC65952848FB1A2
3 changed files with 14 additions and 11 deletions

View File

@ -570,6 +570,7 @@ func start(asDaemon, firstCall bool) {
app.telegram, err = newTelegramDaemon(app) app.telegram, err = newTelegramDaemon(app)
if err != nil { if err != nil {
app.err.Printf("Failed to authenticate with Telegram: %v", err) app.err.Printf("Failed to authenticate with Telegram: %v", err)
telegramEnabled = false
} else { } else {
go app.telegram.run() go app.telegram.run()
defer app.telegram.Shutdown() defer app.telegram.Shutdown()
@ -579,6 +580,7 @@ func start(asDaemon, firstCall bool) {
app.discord, err = newDiscordDaemon(app) app.discord, err = newDiscordDaemon(app)
if err != nil { if err != nil {
app.err.Printf("Failed to authenticate with Discord: %v", err) app.err.Printf("Failed to authenticate with Discord: %v", err)
discordEnabled = false
} else { } else {
go app.discord.run() go app.discord.run()
defer app.discord.Shutdown() defer app.discord.Shutdown()

View File

@ -83,6 +83,7 @@ func (t *TelegramDaemon) run() {
updates, err := t.bot.GetUpdatesChan(u) updates, err := t.bot.GetUpdatesChan(u)
if err != nil { if err != nil {
t.app.err.Printf("Failed to start Telegram daemon: %v", err) t.app.err.Printf("Failed to start Telegram daemon: %v", err)
telegramEnabled = false
return return
} }
for { for {

View File

@ -103,7 +103,7 @@ class user implements User {
email.checked = s; email.checked = s;
} }
} }
if (window.discordEnabled && this._discordUsername != "") { if (window.discordEnabled && this._discordUsername) {
const email = this._discord.getElementsByClassName("accounts-contact-email")[0] as HTMLInputElement; const email = this._discord.getElementsByClassName("accounts-contact-email")[0] as HTMLInputElement;
email.checked = s; email.checked = s;
} }
@ -118,11 +118,11 @@ class user implements User {
(this._telegram.querySelector("span") as HTMLSpanElement).onclick = this._addTelegram; (this._telegram.querySelector("span") as HTMLSpanElement).onclick = this._addTelegram;
} else { } else {
let innerHTML = ` let innerHTML = `
<div class="table-inline">
<a href="https://t.me/${u}" target="_blank">@${u}</a> <a href="https://t.me/${u}" target="_blank">@${u}</a>
`; `;
if (!window.discordEnabled || this._discordUsername == "") { if (!window.discordEnabled || !this._discordUsername) {
innerHTML += ` innerHTML += `
<div class="table-inline">
<i class="icon ri-settings-2-line ml-half dropdown-button"></i> <i class="icon ri-settings-2-line ml-half dropdown-button"></i>
<div class="dropdown manual"> <div class="dropdown manual">
<div class="dropdown-display lg"> <div class="dropdown-display lg">
@ -139,11 +139,11 @@ class user implements User {
</div> </div>
</div> </div>
</div> </div>
</div>
`; `;
} }
innerHTML += "</div>";
this._telegram.innerHTML = innerHTML; this._telegram.innerHTML = innerHTML;
if (!window.discordEnabled || this._discordUsername == "") { if (!window.discordEnabled || !this._discordUsername) {
// Javascript is necessary as including the button inside the dropdown would make it too wide to display next to the username. // Javascript is necessary as including the button inside the dropdown would make it too wide to display next to the username.
const button = this._telegram.querySelector("i"); const button = this._telegram.querySelector("i");
const dropdown = this._telegram.querySelector("div.dropdown") as HTMLDivElement; const dropdown = this._telegram.querySelector("div.dropdown") as HTMLDivElement;
@ -174,7 +174,7 @@ class user implements User {
if (telegram) { if (telegram) {
telegram.checked = s; telegram.checked = s;
} }
if (window.discordEnabled && this._discordUsername != "") { if (window.discordEnabled && this._discordUsername) {
const telegram = this._discord.getElementsByClassName("accounts-contact-telegram")[0] as HTMLInputElement; const telegram = this._discord.getElementsByClassName("accounts-contact-telegram")[0] as HTMLInputElement;
telegram.checked = s; telegram.checked = s;
} }
@ -189,11 +189,11 @@ class user implements User {
id: this.id, id: this.id,
email: email.checked email: email.checked
} }
if (window.telegramEnabled && this._telegramUsername != "") { if (window.telegramEnabled && this._telegramUsername) {
const telegram = el.getElementsByClassName("accounts-contact-telegram")[0] as HTMLInputElement; const telegram = el.getElementsByClassName("accounts-contact-telegram")[0] as HTMLInputElement;
send["telegram"] = telegram.checked; send["telegram"] = telegram.checked;
} }
if (window.discordEnabled && this._discordUsername != "") { if (window.discordEnabled && this._discordUsername) {
const discord = el.getElementsByClassName("accounts-contact-discord")[0] as HTMLInputElement; const discord = el.getElementsByClassName("accounts-contact-discord")[0] as HTMLInputElement;
send["discord"] = discord.checked; send["discord"] = discord.checked;
} }
@ -458,14 +458,14 @@ class user implements User {
this.id = user.id; this.id = user.id;
this.name = user.name; this.name = user.name;
this.email = user.email || ""; this.email = user.email || "";
this.telegram = user.telegram;
this.discord = user.discord; this.discord = user.discord;
this.telegram = user.telegram;
this.last_active = user.last_active; this.last_active = user.last_active;
this.admin = user.admin; this.admin = user.admin;
this.disabled = user.disabled; this.disabled = user.disabled;
this.expiry = user.expiry; this.expiry = user.expiry;
this.notify_telegram = user.notify_telegram;
this.notify_discord = user.notify_discord; this.notify_discord = user.notify_discord;
this.notify_telegram = user.notify_telegram;
this.notify_email = user.notify_email; this.notify_email = user.notify_email;
this.discord_id = user.discord_id; this.discord_id = user.discord_id;
} }