@@ -31,7 +54,9 @@ class ReadAllNotificationsButton {
this.defaults = {
settings: {
- includeMuted: {value:false, description:"Include muted Servers (means more API-Requests):"}
+ includeGuilds: {value:true, description:"unread Servers"},
+ includeMuted: {value:false, description:"muted unread Servers"},
+ includeDMs: {value:false, description:"unread DMs"}
}
};
}
@@ -40,14 +65,22 @@ class ReadAllNotificationsButton {
if (!global.BDFDB || typeof BDFDB != "object" || !BDFDB.loaded || !this.started) return;
var settings = BDFDB.getAllData(this, "settings");
var settingshtml = `
${this.name}
`;
+ settingshtml += `
When left clicking the button mark following elements as unread:
`;
for (let key in settings) {
- settingshtml += `
`;
+ settingshtml += `
`;
}
+ settingshtml += `
`;
settingshtml += `
`;
let settingspanel = BDFDB.htmlToElement(settingshtml);
BDFDB.initElements(settingspanel, this);
+
+ let mutedinput = settingspanel.querySelector(".settings-switch[value='settings includeMuted']").parentElement.parentElement;
+ BDFDB.toggleEles(mutedinput, settings.includeGuilds);
+ BDFDB.addEventListener(this, settingspanel, "click", ".settings-switch[value='settings includeGuilds']", e => {
+ BDFDB.toggleEles(mutedinput, e.currentTarget.checked);
+ });
return settingspanel;
}
@@ -95,6 +128,12 @@ class ReadAllNotificationsButton {
// begin of own functions
+ changeLanguageStrings () {
+ this.RANcontextMenuMarkup = this.RANcontextMenuMarkup.replace("REPLACE_context_guilds_text", this.labels.context_guilds_text);
+ this.RANcontextMenuMarkup = this.RANcontextMenuMarkup.replace("REPLACE_context_mutedguilds_text", this.labels.context_mutedguilds_text);
+ this.RANcontextMenuMarkup = this.RANcontextMenuMarkup.replace("REPLACE_context_dms_text", this.labels.context_dms_text);
+ }
+
processGuilds (instance, wrapper) {
BDFDB.removeEles(".RANbutton-frame");
let guildseparator = wrapper.querySelector(BDFDB.dotCN.guildseparator);
@@ -102,7 +141,25 @@ class ReadAllNotificationsButton {
let ranbutton = BDFDB.htmlToElement(this.RANbuttonMarkup);
guildseparator.parentElement.insertBefore(ranbutton, guildseparator);
ranbutton.addEventListener("click", () => {
- BDFDB.clearReadNotifications(BDFDB.getData("includeMuted", this, "settings") ? BDFDB.readServerList() : BDFDB.readUnreadServerList());
+ let settings = BDFDB.getAllData(this, "settings");
+ if (settings.includeGuilds) BDFDB.markGuildAsRead(settings.includeMuted ? BDFDB.readServerList() : BDFDB.readUnreadServerList());
+ if (settings.includeDMs) BDFDB.markChannelAsRead(BDFDB.readDmList());
+ });
+ ranbutton.addEventListener("contextmenu", e => {
+ let RANcontextMenu = BDFDB.htmlToElement(this.RANcontextMenuMarkup);
+ RANcontextMenu.querySelector(".readguilds-item").addEventListener("click", () => {
+ BDFDB.removeEles(RANcontextMenu);
+ BDFDB.markGuildAsRead(BDFDB.readUnreadServerList());
+ });
+ RANcontextMenu.querySelector(".readmutedguilds-item").addEventListener("click", () => {
+ BDFDB.removeEles(RANcontextMenu);
+ BDFDB.markGuildAsRead(BDFDB.readServerList());
+ });
+ RANcontextMenu.querySelector(".readdms-item").addEventListener("click", () => {
+ BDFDB.removeEles(RANcontextMenu);
+ BDFDB.markChannelAsRead(BDFDB.readDmList());
+ });
+ BDFDB.appendContextMenu(RANcontextMenu, e);
});
BDFDB.addClass(wrapper, "RAN-added");
}
@@ -128,5 +185,134 @@ class ReadAllNotificationsButton {
instance.loadMore();
setTimeout(() => {this.clearMentions(instance, wrapper);},3000);
}
+ }setLabelsByLanguage () {
+ switch (BDFDB.getDiscordLanguage().id) {
+ case "hr": //croatian
+ return {
+ context_guilds_text: "Poslužitelji",
+ context_mutedguilds_text: "Prigušeni Poslužitelji",
+ context_dms_text: "Prikvacene Izravne"
+ };
+ case "da": //danish
+ return {
+ context_guilds_text: "Servere",
+ context_mutedguilds_text: "Dćmpede Servere",
+ context_dms_text: "Privat Beskeder"
+ };
+ case "de": //german
+ return {
+ context_guilds_text: "Server",
+ context_mutedguilds_text: "Stummgeschaltete Server",
+ context_dms_text: "Direktnachrichten"
+ };
+ case "es": //spanish
+ return {
+ context_guilds_text: "Servidores",
+ context_mutedguilds_text: "Servidores silenciados",
+ context_dms_text: "Mensajes directos"
+ };
+ case "fr": //french
+ return {
+ context_guilds_text: "Serveurs",
+ context_mutedguilds_text: "Serveurs en sourdine",
+ context_dms_text: "Messages prives"
+ };
+ case "it": //italian
+ return {
+ context_guilds_text: "Server",
+ context_mutedguilds_text: "Server disattivati",
+ context_dms_text: "Messaggi diretti"
+ };
+ case "nl": //dutch
+ return {
+ context_guilds_text: "Servers",
+ context_mutedguilds_text: "Gedempte Servers",
+ context_dms_text: "Persoonluke Berichten"
+ };
+ case "no": //norwegian
+ return {
+ context_guilds_text: "Servere",
+ context_mutedguilds_text: "Dempet Servere",
+ context_dms_text: "Direktemeldinger"
+ };
+ case "pl": //polish
+ return {
+ context_guilds_text: "Serwery",
+ context_mutedguilds_text: "Wyciszone Serwery",
+ context_dms_text: "Prywatne Wiadomosci"
+ };
+ case "pt-BR": //portuguese (brazil)
+ return {
+ context_guilds_text: "Servidores",
+ context_mutedguilds_text: "Servidores Silenciosos",
+ context_dms_text: "Mensagens Diretas"
+ };
+ case "fi": //finnish
+ return {
+ context_guilds_text: "Palvelimet",
+ context_mutedguilds_text: "Mykistetyt Palvelimet",
+ context_dms_text: "Yksityisviestit"
+ };
+ case "sv": //swedish
+ return {
+ context_guilds_text: "Servrar",
+ context_mutedguilds_text: "Dämpade Servrar",
+ context_dms_text: "Direktmeddelanden"
+ };
+ case "tr": //turkish
+ return {
+ context_guilds_text: "Sunucular",
+ context_mutedguilds_text: "Sessiz Sunucular",
+ context_dms_text: "Direkt Mesajlar"
+ };
+ case "cs": //czech
+ return {
+ context_guilds_text: "Servery",
+ context_mutedguilds_text: "Tlumené Servery",
+ context_dms_text: "Prímá Zpráva"
+ };
+ case "bg": //bulgarian
+ return {
+ context_guilds_text: "C??????",
+ context_mutedguilds_text: "?????????? C??????",
+ context_dms_text: "???????? C????????"
+ };
+ case "ru": //russian
+ return {
+ context_guilds_text: "C??????",
+ context_mutedguilds_text: "O?????????? C??????",
+ context_dms_text: "?????? ?????????"
+ };
+ case "uk": //ukrainian
+ return {
+ context_guilds_text: "C??????",
+ context_mutedguilds_text: "?????????? C??????",
+ context_dms_text: "???????? ????????????"
+ };
+ case "ja": //japanese
+ return {
+ context_guilds_text: "????",
+ context_mutedguilds_text: "????????",
+ context_dms_text: "??????????"
+ };
+ case "zh-TW": //chinese (traditional)
+ return {
+ context_guilds_text: "???",
+ context_mutedguilds_text: "?????",
+ context_dms_text: "????"
+ };
+ case "ko": //korean
+ return {
+ context_guilds_text: "??",
+ context_mutedguilds_text: "??? ? ??",
+ context_dms_text: "?? ???"
+ };
+ default: //default: english
+ return {
+ context_guilds_text: "Servers",
+ context_mutedguilds_text: "Muted Servers",
+ context_dms_text: "Direct Messages"
+ };
+ }
}
}