From 894886e808cb8957e83c05921d2452421f1defd4 Mon Sep 17 00:00:00 2001
From: KillyMXI
Date: Sat, 17 Jun 2017 20:46:19 +0300
Subject: juick-www: incoming reply format and photo
---
juick-www/src/main/static/scripts.js | 97 +++++++++++++-----------------------
1 file changed, 35 insertions(+), 62 deletions(-)
(limited to 'juick-www/src/main/static/scripts.js')
diff --git a/juick-www/src/main/static/scripts.js b/juick-www/src/main/static/scripts.js
index e3d2445a..22731671 100644
--- a/juick-www/src/main/static/scripts.js
+++ b/juick-www/src/main/static/scripts.js
@@ -85,79 +85,52 @@ function isTreeMode() {
}
function wsIncomingReply(msg) {
- var li = document.createElement('li');
+ const unsetProto = (url) => url.replace(/^(https?:)?(?=\/\/)/i, '');
+ let msgNum = '/' + msg.rid;
+ if (msg.replyto > 0) {
+ msgNum += ` в ответ на /${msg.replyto}`;
+ }
+ let photoDiv = (msg.photo === undefined) ? '' : `
+
`;
+ let msgContHtml = `
+
+
+
${killy.format(msg.body, msg.mid, false)}
${photoDiv}
+
+
+
`;
+
+ let li = document.createElement('li');
li.setAttribute('class', 'msg reply-new');
li.setAttribute('id', msg.rid);
+ li.innerHTML = msgContHtml;
li.addEventListener('click', newReply);
li.addEventListener('mouseover', newReply);
- var msgAvatar = document.createElement('div');
- msgAvatar.setAttribute('class', 'msg-avatar');
- var msgAvatarLink = document.createElement('a');
- msgAvatarLink.setAttribute('href', '/' + msg.user.uname + '/');
- var msgAvatarImg = document.createElement('img');
- msgAvatarImg.setAttribute('src', '//i.juick.com/a/' + msg.user.uid + '.png');
- msgAvatarLink.appendChild(msgAvatarImg);
- msgAvatar.appendChild(msgAvatarLink);
-
- var msgCont = document.createElement('div');
- msgCont.setAttribute('class', 'msg-cont');
- var msgMenu = document.createElement('div');
- msgMenu.setAttribute('class', 'msg-menu');
- msgCont.appendChild(msgMenu);
- var msgMenuLink = document.createElement('a');
- msgMenuLink.setAttribute('href', '#');
- msgMenuLink.addEventListener('click', function (e) {
+ li.querySelector('.msg-menu > a').addEventListener('click', function (e) {
showMessageLinksDialog(msg.mid, msg.rid);
e.preventDefault();
});
- msgMenu.appendChild(msgMenuLink);
- var msgHeader = document.createElement('div');
- msgHeader.setAttribute('class', 'msg-header');
- var msgHeaderLink = document.createElement('a');
- msgHeaderLink.setAttribute('href', '/' + msg.user.uname + '/');
- msgHeaderLink.textContent = '@' + msg.user.uname + ':';
- msgHeader.appendChild(msgHeaderLink);
- var msgTimestamp = document.createElement('div');
- msgTimestamp.setAttribute('class', 'msg-ts');
- var msgTimestampLink = document.createElement('a');
- msgTimestampLink.setAttribute('href', '/' + msg.mid + '#' + msg.rid);
- msgTimestampLink.setAttribute('title', msg.timestamp + ' GMT');
- msgTimestampLink.textContent = msg.timestamp;
- msgTimestamp.appendChild(msgTimestampLink);
- var msgTxt = document.createElement('div');
- msgTxt.setAttribute('class', 'msg-txt');
- var msgLinks = document.createElement('div');
- msgLinks.setAttribute('class', 'msg-links');
- var msgNum = '/' + msg.rid;
- if (msg.replyto > 0) {
- msgNum += ' в ответ на /' + msg.replyto + '';
- }
- msgLinks.innerHTML = msgNum + ' · ';
- var msgLinksLink = document.createElement('a');
- msgLinksLink.setAttribute('href', '#');
- msgLinksLink.textContent = 'Ответить';
- msgLinksLink.addEventListener('click', function (e) {
+ li.querySelector('a.msg-reply-link').addEventListener('click', function (e) {
showCommentForm(msg.mid, msg.rid);
e.preventDefault();
});
- msgLinks.appendChild(msgLinksLink);
- var msgComment = document.createElement('div');
- msgComment.setAttribute('class', 'msg-comment');
- msgComment.style.display = 'none';
- msgHeader.appendChild(msgAvatar);
- msgHeader.appendChild(msgMenu);
- msgHeader.appendChild(msgTimestamp);
- msgCont.appendChild(msgHeader);
- msgCont.appendChild(msgTxt);
- msgCont.appendChild(msgLinks);
- msgCont.appendChild(msgComment);
- li.appendChild(msgCont);
-
- li.querySelector('.msg-txt').textContent = msg.body;
+
+ killy.embedLinksToX(li.querySelector('.msg-cont'), '.msg-links', '.msg-txt a');
if (isTreeMode() && (msg.replyto > 0)) {
- var p = document.getElementById(msg.replyto);
- var m = parseInt(p.style.marginLeft) + 20;
+ let p = document.getElementById(msg.replyto);
+ let m = parseInt(p.style.marginLeft) + 20;
while (p.nextElementSibling && (parseInt(p.nextElementSibling.style.marginLeft) >= m)) { p = p.nextElementSibling; }
li.style.marginLeft = m + 'px';
p.parentNode.insertBefore(li, p.nextSibling);
@@ -748,5 +721,5 @@ ready(function () {
window.addEventListener('pagehide', wsShutdown);
- killy.embed();
+ killy.embedAll();
});
--
cgit v1.2.3