diff --git a/src/routes/_components/Nav.html b/src/routes/_components/Nav.html
index 2099ba8b..5b0cc576 100644
--- a/src/routes/_components/Nav.html
+++ b/src/routes/_components/Nav.html
@@ -19,7 +19,8 @@
diff --git a/src/routes/_components/profile/AccountDisplayName.html b/src/routes/_components/profile/AccountDisplayName.html
index fe976496..62f09cac 100644
--- a/src/routes/_components/profile/AccountDisplayName.html
+++ b/src/routes/_components/profile/AccountDisplayName.html
@@ -25,8 +25,10 @@
}
}
- window.fediloveFunctions.emojifyText = emojifyText;
- window.fediloveEvents.onGotEmojifyTextFunction();
+ if (window.fediloveFunctions !== undefined) {
+ window.fediloveFunctions.emojifyText = emojifyText;
+ window.fediloveEvents.onGotEmojifyTextFunction();
+ }
return emojifyText(accountName, emojis, $autoplayGifs)
}
}
diff --git a/src/scss/themes/ozark.scss b/src/scss/themes/ozark.scss
index 7bd7b8a8..35d9f172 100644
--- a/src/scss/themes/ozark.scss
+++ b/src/scss/themes/ozark.scss
@@ -67,6 +67,7 @@ div#chat-party-global {
max-width: 60em;
margin: auto;
padding: .2em 1em;
+ padding-right: 0;
div#image {
display: flex;
@@ -82,9 +83,15 @@ div#chat-party-global {
display: flex;
width: 100%;
padding-left: 1em;
- span {
+ a {
font-weight: bold;
margin: auto 0;
+ color: #000;
+ }
+ span {
+ margin: auto 0;
+ margin-left: .5em;
+ color: #8a8a8a;
}
}
diff --git a/static/fedilove-no-react.js b/static/fedilove-no-react.js
index b00c922b..b769e89f 100644
--- a/static/fedilove-no-react.js
+++ b/static/fedilove-no-react.js
@@ -45,7 +45,7 @@ function api_status_fav(dom, status_id) {
function api_send_message() {
// the message is composed from the current chat Acct (@user@domain) + the compose textarea value
- const text = fediloveData.chatCurrentAcct + ' ' + $('div#chat-compose-global textarea').val();
+ const text = fediloveData.chatAvatarCache.acct + ' ' + $('div#chat-compose-global textarea').val();
//async function postStatus(realm, text, inReplyToId, mediaIds, sensitive, spoilerText, visibility, mediaDescriptions, inReplyToUuid, poll, mediaFocalPoints)
const lastStatus = fediloveApi.getChatLastMessageId(true);
@@ -72,20 +72,28 @@ var fediloveUI = {
}
}, 150);
},
- paintChatAvatarAndName: function(avatar, name) {
+ paintChatAvatarAndName: function(accid, acct, avatar, name) {
+ accid = accid || null;
+ acct = acct || null;
avatar = avatar || null;
name = name || null;
- if (avatar === null || name === null) {
+ if ((accid+acct+avatar+name) === 0) {
+ accid = 0;
avatar = '/missing.png';
name = '...';
} else {
- fediloveData.chatAvatarCache = { avatar: avatar, name: name };
+ fediloveData.chatAvatarCache = {
+ id: accid, acct: acct,
+ avatar: avatar, name: name
+ };
}
- // to-do: check is it XSS safe to add it like this :) !!
+ // to-do: check is it XSS safe to add it like this :) ??
$('div#chat-party-global > div#image > img').attr('src', avatar);
- $('div#chat-party-global > div#name > span').html(name);
+ $('div#chat-party-global > div#name > a').html(name);
+ $('div#chat-party-global > div#name > span').text(acct);
+ if (accid != 0) $('div#chat-party-global > div#name > a').attr('href', `/accounts/${accid}`);
}
};
@@ -97,7 +105,7 @@ var fediloveApi = {
},
getChatLastMessageId: function(andUuid) {
andUuid = andUuid || false;
- const lastUuid = $('div.the-list article.status-article.partymsg').last().attr('id');
+ const lastUuid = $('div.the-list article.status-article').last().attr('id');
if (lastUuid === undefined) {
return undefined;
}
@@ -115,7 +123,6 @@ var fediloveApi = {
var fediloveFunctions = {};
var fediloveData = {
chatAvatarCache: undefined,
- chatCurrentAcct: undefined,
gotEmojifyTextFunction: false
};
var fediloveEvents = {
@@ -126,10 +133,8 @@ var fediloveEvents = {
// dont do anything if avatar and name is cached
if (fediloveData.chatAvatarCache !== undefined) return;
- fediloveData.chatCurrentAcct = `@${data.account.acct}`;
-
// waits for the React code to call the "onGotEmojifyTextFunction" so we can use it
- var waitForEmojifyAndDo = function(avatar, dname, emojis) {
+ var waitForEmojifyAndDo = function(accid, acct, avatar, dname, emojis) {
var count = 0;
var _this = setInterval(function() {
if (count > 100) {
@@ -137,7 +142,7 @@ var fediloveEvents = {
return;
}
if (fediloveData.gotEmojifyTextFunction) {
- fediloveUI.paintChatAvatarAndName(avatar, fediloveFunctions.emojifyText(dname, emojis));
+ fediloveUI.paintChatAvatarAndName(accid, acct, avatar, fediloveFunctions.emojifyText(dname, emojis));
clearInterval(_this);
}
count++;
@@ -147,15 +152,21 @@ var fediloveEvents = {
// if the message is mine, search which account is doing it for,
// and do the same with the party's data
if (localStorage.store_userAccountId === data.account.id) {
- mastodon_get(`/api/v1/accounts/${data.in_reply_to_account_id}`, {}, function(newData) {
+ var account_id = data.in_reply_to_account_id;
+ if (account_id === null && data.mentions.length > 0) {
+ account_id = data.mentions[0].id;
+ }
+ if (account_id === null || account_id === undefined) return;
+ mastodon_get(`/api/v1/accounts/${account_id}`, {}, function(newData) {
var json = JSON.parse(newData);
if (json !== undefined) {
- waitForEmojifyAndDo( json.avatar, json.display_name, json.emojis );
+ waitForEmojifyAndDo( account_id, `@${json.acct}`, json.avatar, json.display_name, json.emojis );
}
});
} else {
// this means the message we are loading is from the other party, so we continue as normal
- waitForEmojifyAndDo( data.account.avatar, data.account.display_name, data.account.emojis );
+ waitForEmojifyAndDo( data.account.id, `@${data.account.acct}`, data.account.avatar,
+ data.account.display_name, data.account.emojis );
}
}
},
@@ -169,7 +180,7 @@ var fediloveEvents = {
if (window.location.pathname.startsWith('/statuses/')) {
if (fediloveFunctions.updateStatusAndThread !== undefined) {
fediloveFunctions.updateStatusAndThread( fediloveApi.getCurrentInstance(), fediloveApi.getAccessToken(),
- window.location.pathname, fediloveApi.getChatStatusId() );
+ window.location.pathname, fediloveApi.getChatMessageId() );
fediloveUI.scrollChatToLastItem();
}
}
@@ -197,7 +208,8 @@ function fedilove_customization() {
// *******
// load cached avatars or paint it empty (automated process after this will fill it)
if (fediloveData.chatAvatarCache !== undefined) {
- fediloveUI.paintChatAvatarAndName( chatAvatarData.avatar, chatAvataData.name );
+ fediloveUI.paintChatAvatarAndName( fediloveData.chatAvatarCache.id, fediloveData.chatAvatarCache.acct,
+ fediloveData.chatAvatarCache.avatar, fediloveData.chatAvatarCache.name );
} else {
fediloveUI.paintChatAvatarAndName();
}