diff --git a/assets/css/pages/settings/sections/customEmojis.css b/assets/css/pages/settings/sections/customEmojis.css new file mode 100644 index 00000000..920af32f --- /dev/null +++ b/assets/css/pages/settings/sections/customEmojis.css @@ -0,0 +1,15 @@ +/** + * Custom emojis settings + * + * @author Pierre Hubert + */ + +.box-emojis-settings td { + height: 69px; + text-align: center; + vertical-align: middle !important; +} + +.box-emojis-settings img.e { + height: 2em; +} \ No newline at end of file diff --git a/assets/js/common/shorcuts.js b/assets/js/common/shorcuts.js index 8d64e181..77002012 100644 --- a/assets/js/common/shorcuts.js +++ b/assets/js/common/shorcuts.js @@ -186,14 +186,14 @@ function getUserInfo(usersID, afterGetUserInfo, forceRequest){ * * @param {Number} userID Target user ID */ -function userInfo(userID) { +function userInfo(userID, force = false) { return new Promise((res, err) => { getUserInfo(userID, (data) => { if(data.error) err(data.error) else res(data) - }, false); + }, force); }); } diff --git a/assets/js/pages/settings/navigationPane.js b/assets/js/pages/settings/navigationPane.js index 16a9d022..b7aa77d9 100644 --- a/assets/js/pages/settings/navigationPane.js +++ b/assets/js/pages/settings/navigationPane.js @@ -78,6 +78,20 @@ ComunicWeb.pages.settings.navigationPane = { openPage("settings/language"); }; + // Custom emojies + const sectionEmojies = createElem2({ + appendTo: elemList, + type: "li", + }); + var sectionEmojiesLink = createElem2({ + appendTo: sectionEmojies, + type: "a", + innerHTML: " Custom emojis" + }); + sectionEmojiesLink.onclick = function(){ + openPage("settings/emojies"); + }; + //Account security var sectionSecurity = createElem2({ appendTo: elemList, diff --git a/assets/js/pages/settings/sections/emojis.js b/assets/js/pages/settings/sections/emojis.js new file mode 100644 index 00000000..77bec95f --- /dev/null +++ b/assets/js/pages/settings/sections/emojis.js @@ -0,0 +1,87 @@ +/** + * Emojies settings sections + * + * @author Pierre Hubert + */ + +class EmojiesSection { + + + static Open(args, target) { + + //Create a box + const box = createElem2({ + appendTo: target, + type: "div", + class: "box box-primary box-emojis-settings" + }); + + //Add box header + const boxHead = createElem2({ + appendTo: box, + type: "div", + class: "box-header", + }); + const boxTitle = createElem2({ + appendTo: boxHead, + type: "h3", + class: "box-title", + innerHTML: "Custom emojis settings" + }); + + //Create box body + const boxBody = createElem2({ + appendTo: box, + type: "div", + class: "box-body" + }); + + const emojiesList = createElem2({ + appendTo: boxBody, + type: "table", + class: "table table-hover", + innerHTML: "
" + }) + + this.RefreshList(emojiesList.querySelector("tbody")) + } + + /** + * @param {HTMLElement} target + */ + static async RefreshList(target) { + try { + target.innerHTML = ""; + + const emojies = (await userInfo(userID(), true)).customEmojis; + + if(emojies.length == 0) { + target.innerHTML = "There is no custom emojis yet
" + } + + for(const e of emojies) { + + const line = createElem2({ + type: "tr", + appendTo: target, + }) + + + line.innerHTML += "