Some threads progress

This commit is contained in:
Denis Zheleztsov 2018-01-03 17:49:54 +03:00
parent 25b4dfc426
commit 5bb140abef
3 changed files with 158 additions and 50 deletions

View File

@ -28,3 +28,88 @@ function checkViewMode() {
return false
}
}
// Make message HTML
function makeMessageHTML(msgItem, total) {
var t = new Date(msgItem['date'] * 1000);
var t_formatted = t.getFullYear() + "/" + (t.getMonth() + 1) + "/" + t.getDate() + " " + t.getHours() + ":" + t.getMinutes() + ":" + t.getSeconds();
var msg = msgItem['message'].replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(new RegExp("\n",'g'), "<br>\n");
var html = '<div class="msg">'
+ '<p align="left"><i class="fa fa-hourglass-half"></i> ' + t_formatted + '<i class="fa fa-angle-right"></i> <!--/p-->'
// Author to receiver
+ '<a name="' + msgItem["msgid"] + '" style="text-decoration:underline; text-decoration-style:dotted;" title="' + msgItem["address"] + '" "href="javascript:void(0)" onclick="requestAuthorMessages(\'' + msgItem['author'] + '\');">' + msgItem['author'] + '</a>'
+ ' <i class="fa fa-mail-forward"></i> ';
if (msgItem['repto'] != "" ) {
html += '<a href="#' + msgItem['repto'] + '">' + msgItem['to'] + '</a></p>';
} else {
html += msgItem['to'] + '</p>';
}
// Header
html += ' <p style="color:#0099cc;font: 1.5em Open Sans, sans-serif;">'
+ '<a class="headerLink" href="/?j=' + msgItem['msgid'] + '">'
+ msgItem['subg'] + '</a>'
+ ' <i class="fa fa-at"></i> <i><a class="headerLink" href="javascript:void(0)" onclick="requestTmpEcho(\'' + msgItem['echo'] + '\')">' + msgItem['echo']
+ '</a></i></p></p>'
+ '<p>' + msg.autoLink()
+ '</p><p align="right">'
// Msgid
+ '<a href="?' + msgItem['msgid'] +'" onclick="requestMessage(\'' + msgItem['msgid'] + '\');"><i class="fa fa-link"></i>' + msgItem['msgid'] + '</a>';
// End message <div> block
html += '</p></div>';
return html
}
function makeThreadMessage(msgItem, total) {
var t = new Date(msgItem['date'] * 1000);
var t_formatted = t.getFullYear() + "/" + (t.getMonth() + 1) + "/" + t.getDate() + " " + t.getHours() + ":" + t.getMinutes() + ":" + t.getSeconds();
console.log(total);
if (hash.matched && msgItem['msgid'] == hash.hash) {
html += '<div class="hsMessage">';
}
msg = msgItem['message'].replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(new RegExp("\n",'g'), "<br>\n");
var to =
html += '<div class="msg">'
+ '<p align="left"><i class="fa fa-hourglass-half"></i> ' + t_formatted + '<i class="fa fa-angle-right"></i> <!--/p-->'
// Author to receiver
+ '<a style="text-decoration:underline; text-decoration-style:dotted;" title="' + msgItem["address"] + '" "href="javascript:void(0)" onclick="requestAuthorMessages(\'' + msgItem['author'] + '\');">' + msgItem['author'] + '</a>'
+ ' <i class="fa fa-mail-forward"></i> ';
if (msgItem['repto'] != "" ) {
html += '<a href="/?' + msgItem['repto'] + '">' + msgItem['to'] + '</a></p>';
} else {
html += msgItem['to'] + '</p>';
}
// Header
html += ' <p style="color:#0099cc;font: 1.5em Open Sans, sans-serif;">'
+ '<a class="headerLink" href="/?j=' + msgItem['msgid'] + '">'
+ msgItem['subg'] + '</a>'
+ ' <i class="fa fa-at"></i> <i><a class="headerLink" href="javascript:void(0)" onclick="requestTmpEcho(\'' + msgItem['echo'] + '\')">' + msgItem['echo']
+ '</a></i></p></p>'
+ '<p>' + msg.autoLink()
+ '</p><p>';
// Answers
html += '<a style="align:left !important; left: 13%; position: absolute;" href="?j=' + msgItem['msgid'] +'"">[' + total + ']</a>';
// Msgid
html += '<a style="align:right !important; right: 13%; position: absolute;" href="?' + msgItem['msgid'] +'" onclick="requestMessage(\'' + msgItem['msgid'] + '\');"><i class="fa fa-link"></i>' + msgItem['msgid'] + '</a>';
// End message <div> block
html += '</p></div>';
return html;
}

View File

@ -163,7 +163,7 @@ function ajaxRequest(data) {
type:"POST",
data: data,
contentType: "application/json",
success:function(messages){
success: function(messages) {
callback(messages);
$("#mes").html(html);
}
@ -283,11 +283,23 @@ function searchRequest(data) {
})
}
function answersRequest(msgid) {
$.ajax({
url:"https://dynamic.lessmore.pw/search",
type:"POST",
data: '{"sort": [ { "date": { "order": "desc" }}, { "_score": { "order": "desc" }}], "query": {"query_string" : {"fields" : ["msgid"], "query" :"' + msgid + '"}}, "size": 0 }',
contentType: "application/json",
success: function(messages){
answers[msgid] = messages["hits"]["total"];
}
})
}
//show messages
function callbackHS(messages) {
var msgArray = messages["hits"]["hits"];
// console.log(msgArray);
for (hit in msgArray) {
hash = parseLocationHash();
var msgItem = msgArray[hit]['_source'];
@ -343,11 +355,65 @@ function callbackHS(messages) {
}
}
function threadMessage(msgItem) {
$.ajax({
url:"https://dynamic.lessmore.pw/search",
type:"POST",
data: '{"sort": [ { "date": { "order": "desc" }}, { "_score": { "order": "desc" }}], "query": {"query_string" : {"fields" : ["repto"], "query": "' + msgItem["_source"]["msgid"] + '"}}, "size": 0 }',
contentType: "application/json",
success: function(answer) {
total = 0;
total = answer["hits"]["total"];
msgItem["total"] = total;
threadsCallback(false, msgItem);
$("#mes").html(html);
}
})
}
//show messages
function callback(messages) {
function threadsCallback(messages) {
var getAnswers = function(msgItem, callback) {
$.when(
$.ajax({
url:"https://dynamic.lessmore.pw/search",
type:"POST",
data: '{"sort": [ { "date": { "order": "desc" }}, { "_score": { "order": "desc" }}], "query": {"query_string" : {"fields" : ["repto"], "query": "' + msgItem["_source"]["msgid"] + '"}}, "size": 0 }',
contentType: "application/json",
success: function(answer) { callback(answer, msgItem); }
})).then(function(data) {
console.log(data);
})
};
var getTotal = function(answer, msgItem) {
var total = answer["hits"]["total"];
msg = makeThreadMessage(msgItem["_source"], total);
console.log(msgItem["_source"]["msgid"])
Cookies.set(msgItem["_source"]["msgid"], total);
};
var msgArray = messages["hits"]["hits"];
// console.log(msgArray);
for (hit in msgArray) {
getAnswers(msgArray[hit], getTotal);
}
for (hit in msgArray) {
count = Cookies.get(msgArray[hit]["_source"]["msgid"]);
msg = makeThreadMessage(msgArray[hit]["_source"], count);
html += msg;
}
}
//show messages
function callback(messages) {
var msgArray = messages["hits"]["hits"];
// if (checkViewMode() && !parseLocation().matched) {
// threadsCallback(messages);
// return;
// }
for (hit in msgArray) {
hash = parseLocationHash();
var msgItem = msgArray[hit]['_source'];
@ -383,10 +449,10 @@ function callback(messages) {
+ ' <i class="fa fa-at"></i> <i><a class="headerLink" href="javascript:void(0)" onclick="requestTmpEcho(\'' + msgItem['echo'] + '\')">' + msgItem['echo']
+ '</a></i></p></p>'
+ '<p>' + msg.autoLink()
+ '</p><p align="right">'
+ '</p><p>';
// Msgid
+ '<a href="?' + msgItem['msgid'] +'" onclick="requestMessage(\'' + msgItem['msgid'] + '\');"><i class="fa fa-link"></i>' + msgItem['msgid'] + '</a>';
html += '<a style="align:right !important; right: 13%; display:block; position: absolute;" href="?' + msgItem['msgid'] +'" onclick="requestMessage(\'' + msgItem['msgid'] + '\');"><i class="fa fa-link"></i>' + msgItem['msgid'] + '</a>';
// End message <div> block
html += '</p></div>';

View File

@ -68,15 +68,10 @@ function proccessThreadRequest(data, msgid) {
})
}
function answersRequest()
function proccessThread(msgid, callback) {
data = '{"sort": [ { "date": { "order": "asc" }}, { "_score": { "order": "desc" }}], "query": {"query_string" : {"fields" : ["repto"], "query" :"' + msgid + '"}}, "size": 100 }';
if (callback) {
for (hit in callback["hits"]["hits"]) {
if (top_id == callback["hits"]["hits"][hit]["_source"]) {
answersRequest(top_id);
}
msg = callback["hits"]["hits"][hit]["_source"];
thread_html += makeMessageHTML(callback["hits"]["hits"][0]["_source"]);
proccessThread(msg["msgid"], false);
@ -97,42 +92,4 @@ function parseLocation() {
}
}
// Make message HTML
function makeMessageHTML(msgItem) {
var t = new Date(msgItem['date'] * 1000);
// console.log(msgItem['date']);
// console.log(t);
var t_formatted = t.getFullYear() + "/" + (t.getMonth() + 1) + "/" + t.getDate() + " " + t.getHours() + ":" + t.getMinutes() + ":" + t.getSeconds();
var msg = msgItem['message'].replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(new RegExp("\n",'g'), "<br>\n");
var html = '<div class="msg">'
+ '<p align="left"><i class="fa fa-hourglass-half"></i> ' + t_formatted + '<i class="fa fa-angle-right"></i> <!--/p-->'
// Author to receiver
+ '<a name="' + msgItem["msgid"] + '" style="text-decoration:underline; text-decoration-style:dotted;" title="' + msgItem["address"] + '" "href="javascript:void(0)" onclick="requestAuthorMessages(\'' + msgItem['author'] + '\');">' + msgItem['author'] + '</a>'
+ ' <i class="fa fa-mail-forward"></i> ';
if (msgItem['repto'] != "" ) {
html += '<a href="#' + msgItem['repto'] + '">' + msgItem['to'] + '</a></p>';
} else {
html += msgItem['to'] + '</p>';
}
// Header
html += ' <p style="color:#0099cc;font: 1.5em Open Sans, sans-serif;">'
+ '<a class="headerLink" href="/?j=' + msgItem['msgid'] + '">'
+ msgItem['subg'] + '</a>'
+ ' <i class="fa fa-at"></i> <i><a class="headerLink" href="javascript:void(0)" onclick="requestTmpEcho(\'' + msgItem['echo'] + '\')">' + msgItem['echo']
+ '</a></i></p></p>'
+ '<p>' + msg.autoLink()
+ '</p><p align="right">'
// Msgid
+ '<a href="?' + msgItem['msgid'] +'" onclick="requestMessage(\'' + msgItem['msgid'] + '\');"><i class="fa fa-link"></i>' + msgItem['msgid'] + '</a>';
// End message <div> block
html += '</p></div>';
return html
}