mirror of
https://github.com/TitanEmbeds/Titan.git
synced 2025-06-17 20:05:23 +02:00
Add user cards and badges, Closes #25
This commit is contained in:
@ -679,6 +679,73 @@ p.mentioned span.chatmessage {
|
||||
top: -5px;
|
||||
}
|
||||
|
||||
#usercard .identity {
|
||||
display: inline;
|
||||
vertical-align: sub;
|
||||
}
|
||||
|
||||
#usercard .identity .hash, #usercard .identity .discriminator {
|
||||
font-size: 1.30rem;
|
||||
}
|
||||
|
||||
#usercard .bottag {
|
||||
background-color: #5DADE2;
|
||||
padding: 5px;
|
||||
border-radius: 10px;
|
||||
font-weight: bold;
|
||||
margin-left: 7px;
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
#usercard .role .bubble {
|
||||
color: #cacbce;
|
||||
border: 1px solid;
|
||||
border-color: inherit;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
#usercard .role .text, #usercard .role .color {
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
#usercard .role .color {
|
||||
display: inline-block;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
background-color: #cacbce;
|
||||
margin-right: 0;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
#usercard .role .text {
|
||||
color: lightgray;
|
||||
}
|
||||
|
||||
#usercard .game {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#usercard .game .text {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#usercard .badges .star {
|
||||
color: yellow;
|
||||
}
|
||||
|
||||
#usercard .badges .supporter {
|
||||
color: limegreen;
|
||||
}
|
||||
|
||||
#usercard .badges .administrator {
|
||||
color: hotpink;
|
||||
}
|
||||
|
||||
#usercard .badges .partner {
|
||||
color: orange;
|
||||
}
|
||||
|
||||
#google-recaptcha {
|
||||
margin: 0 auto;
|
||||
width: 302px;
|
||||
|
@ -1,13 +1,13 @@
|
||||
/* global $, Materialize, location */
|
||||
|
||||
function postForm(user_id, css, css_limit, guest_icon) {
|
||||
function postForm(user_id, css, css_limit, guest_icon, badges) {
|
||||
if (css_limit == "") {
|
||||
css_limit = 0;
|
||||
}
|
||||
var funct = $.ajax({
|
||||
dataType: "json",
|
||||
method: "POST",
|
||||
data: {"user_id": user_id, "css": css, "css_limit": css_limit, "guest_icon": guest_icon}
|
||||
data: {"user_id": user_id, "css": css, "css_limit": css_limit, "guest_icon": guest_icon, "badges": badges}
|
||||
});
|
||||
return funct.promise();
|
||||
}
|
||||
@ -32,6 +32,7 @@ function patchForm(user_id, param) {
|
||||
}
|
||||
|
||||
$(function() {
|
||||
$('select').material_select();
|
||||
$("#new_submit").click(function () {
|
||||
var user_id = $("#new_user_id").val();
|
||||
if (user_id.length < 1) {
|
||||
@ -41,7 +42,8 @@ $(function() {
|
||||
var css_checked = $("#new_css_switch").is(':checked');
|
||||
var css_limit = $("#new_css_limit").val();
|
||||
var guest_icon_checked = $("#new_guest_icon_switch").is(':checked');
|
||||
var formPost = postForm(user_id, css_checked, css_limit, guest_icon_checked);
|
||||
var badges = $("#new_badges > option:selected").map(function(){ return this.value }).get().join();
|
||||
var formPost = postForm(user_id, css_checked, css_limit, guest_icon_checked, badges);
|
||||
formPost.done(function (data) {
|
||||
location.reload();
|
||||
});
|
||||
@ -114,4 +116,19 @@ function update_guest_icon_switch(user_id, element) {
|
||||
Materialize.toast('Oh no! Something has failed changing the guest icon toggle!', 10000);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function update_badges(user_id, element) {
|
||||
var badges = $(element).val().join();
|
||||
var formPatch = patchForm(user_id, {"badges": badges});
|
||||
formPatch.done(function (data) {
|
||||
Materialize.toast('Badges updated!', 10000);
|
||||
});
|
||||
formPatch.fail(function (data) {
|
||||
if (data.status == 409) {
|
||||
Materialize.toast('This user id does not exists!', 10000);
|
||||
} else {
|
||||
Materialize.toast('Oh no! Something has failed changing the badges!', 10000);
|
||||
}
|
||||
});
|
||||
}
|
@ -19,6 +19,7 @@
|
||||
|
||||
(function () {
|
||||
const theme_options = ["DiscordDark", "BetterTitan"]; // All the avaliable theming names
|
||||
const badges_options = ["administrator", "partner", "supporter", "star"]; // All badges avaliable
|
||||
|
||||
var user_def_css; // Saves the user defined css
|
||||
var has_already_been_initially_resized = false; // keep track if the embed initially been resized
|
||||
@ -134,6 +135,14 @@
|
||||
return funct.promise();
|
||||
}
|
||||
|
||||
function api_badges(user_id) {
|
||||
var funct = $.ajax({
|
||||
dataType: "json",
|
||||
url: "/api/badges/" + user_id,
|
||||
});
|
||||
return funct.promise();
|
||||
}
|
||||
|
||||
$(function() {
|
||||
if ($("#user-defined-css").length > 0) {
|
||||
user_def_css = $("#user-defined-css").text();
|
||||
@ -165,6 +174,9 @@
|
||||
inDuration: 400,
|
||||
outDuration: 400,
|
||||
});
|
||||
$("#usercard").modal({
|
||||
opacity: .5,
|
||||
});
|
||||
|
||||
$("#nameplate").click(function () {
|
||||
$("#userembedmodal").modal("open");
|
||||
@ -607,7 +619,7 @@
|
||||
var rendered_user = Mustache.render(template_user, {"id": member.id.toString() + "d", "username": member_name, "avatar": member.avatar_url});
|
||||
$("#discord-members").append(rendered_user);
|
||||
$( "#discorduser-" + member.id.toString() + "d").click({"member_id": member.id.toString()}, function(event) {
|
||||
mention_member(event.data.member_id);
|
||||
openUserCard(event.data.member_id);
|
||||
});
|
||||
if (member.color) {
|
||||
$( "#discorduser-" + member.id.toString() + "d").css("color", "#" + member.color);
|
||||
@ -631,7 +643,7 @@
|
||||
var rendered = Mustache.render(template, {"id": member.id.toString() + "a", "username": username, "avatar": member.avatar_url});
|
||||
$("#embed-discord-members").append(rendered);
|
||||
$( "#discorduser-" + member.id.toString() + "a").click({"member_id": member.id.toString()}, function(event) {
|
||||
mention_member(event.data.member_id);
|
||||
openUserCard(event.data.member_id);
|
||||
});
|
||||
}
|
||||
authenticated_users_list = users;
|
||||
@ -679,6 +691,60 @@
|
||||
}, 5000);
|
||||
}
|
||||
|
||||
function openUserCard(user_id) {
|
||||
var bgs = api_badges(user_id);
|
||||
bgs.done(function (data) {
|
||||
for (var i = 0; i < badges_options.length; i++) {
|
||||
var badge = badges_options[i];
|
||||
if (data.indexOf(badge) != -1) {
|
||||
$(`#usercard .badges .${badge}`).show();
|
||||
} else {
|
||||
$(`#usercard .badges .${badge}`).hide();
|
||||
}
|
||||
}
|
||||
});
|
||||
for (var i = 0; i < discord_users_list.length; i++) {
|
||||
var usr = discord_users_list[i];
|
||||
if (usr.id == user_id) {
|
||||
$("#usercard .avatar").attr("src", usr.avatar_url);
|
||||
$("#usercard .identity .username").text(usr.username);
|
||||
$("#usercard .identity .discriminator").text(usr.discriminator);
|
||||
if (usr.bot) {
|
||||
$("#usercard .bottag").show();
|
||||
} else {
|
||||
$("#usercard .bottag").hide();
|
||||
}
|
||||
if (usr.status == "offline") {
|
||||
$("#usercard .offline-text").show();
|
||||
} else {
|
||||
$("#usercard .offline-text").hide();
|
||||
}
|
||||
if (usr["hoist-role"]) {
|
||||
$("#usercard .role").show();
|
||||
$("#usercard .role .text").text(usr["hoist-role"].name);
|
||||
if (usr.color) {
|
||||
$("#usercard .role .bubble").css("color", "#" + usr.color);
|
||||
$("#usercard .role .color").css("background-color", "#" + usr.color);
|
||||
}
|
||||
} else {
|
||||
$("#usercard .role").hide();
|
||||
}
|
||||
if (usr.game) {
|
||||
$("#usercard .game").show();
|
||||
$("#usercard .game .text").text(usr.game.name);
|
||||
} else {
|
||||
$("#usercard .game").hide();
|
||||
}
|
||||
$("#usercard-mention-btn").off("click");
|
||||
$("#usercard-mention-btn").click(function () {
|
||||
mention_member(user_id);
|
||||
$("#usercard").modal('close');
|
||||
});
|
||||
}
|
||||
}
|
||||
$("#usercard").modal('open');
|
||||
}
|
||||
|
||||
function flashElement(element) {
|
||||
var opacity = element.css("opacity");
|
||||
for (var i = 0; i < 3; i++) {
|
||||
@ -966,7 +1032,7 @@
|
||||
$("#chatcontent .chatusername").last().click(function () {
|
||||
var discordid = $(this).parent().attr("discord_userid");
|
||||
if (discordid) {
|
||||
mention_member(discordid);
|
||||
openUserCard(discordid);
|
||||
}
|
||||
});
|
||||
$("#chatcontent p:last-child").find(".channellink").click(function () {
|
||||
|
Reference in New Issue
Block a user