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 = ` +
+
+ @${msg.user.uname}: +
+ ${msg.user.uname} +
+
+ +
+
${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