// Copyright 2016-2017 Sudnitsyna Anna lessmore.pw
// Copyright 2017 Denis Zheleztsov lessmore.pw
// Licensed under GPLv3
var html = '';
var options = '';
var checks = '';
var echo = '';
var author = '';
var this_page = 1;
var show_rows = 5;
var from = 0;
//var date = new Date(new Date().getTime() + 60 * 1000);
var date = new Date;
date.setDate(date.getDate() + 7);
var echo = document.cookie;
hash = parseLocationHash();
if (hash.matched) {
console.log("We are here");
requestMessage(hash.hash);
}
$(function() {
//extentions
$.ajax({
url:"https://dynamic.lessmore.pw/idec/x/features",
success:function(data) {
$("#extentions").html("" + data.replace("\n","
") + "");
}
})
//initial load
if (echo != '') {
requestEcho();
} else {
requestEmptyEcho();
}
//create echoes list
$.ajax({
url: "https://dynamic.lessmore.pw/search",
type: "POST",
data: '{"sort": [{ "date": { "order": "desc" }}, { "_score": { "order": "desc" }}],"aggs": {"my_fields": { "terms": { "field": "echo","size": 1000}}}}}',
success:function(messages) {
for (i in messages['aggregations']['my_fields']['buckets']) {
var msg = messages['aggregations']['my_fields']['buckets'][i]['key'];
var doc_count = messages['aggregations']['my_fields']['buckets'][i]['doc_count'];
msg_test = msg + " ";
echo_test = echo + " ";
if((echo_test).indexOf(msg_test) > -1 && echo != '') {
options += '";
checks += ' ('+ doc_count
+ ')
';
} else {
options += '";
checks += ' ('+ doc_count
+ ')
';}
}
$('#echoSelected').html("Выбранные эхи: " + document.cookie);
$('#echoSelector').html(options);
$('#echoCheckBox').html(checks);}
})
$('.echoes:checked').each(function() {
echo = '';
echo += $(this).val()[i] + " ";
});
var boxes = $("input[type=checkbox]");
$("#echoCheckBox").on('change', function() {
echo = '';
for (var i=0; i<$("input[type=checkbox]:checked").length; i++) {
echo += $("input[type=checkbox]:checked")[i]["defaultValue"] + " ";}
document.cookie = echo +"; path=/; expires=" + date.toUTCString();
$('#echoSelected').html("Выбранные эхи: " + echo);
});
$('#echoSelector').on('change', function() {
echo = '';
html = '';
for (i in $(this).val()) {
echo += $(this).val()[i] + " ";
}
document.cookie = echo +"; path=/; expires=" + date.toUTCString();
requestEcho();
$('#echoSelected').html("Выбранные эхи: " + echo)
if (echo == "") requestEmptyEcho();
});
$('#searchInput').on('change', function() {
text = $(this).val();
simpleTextSearch(text);
})
//scroll to show more messages
$(window).scroll(function() {
hash = parseLocationHash();
// console.log($(document).height() - $(window).height()-$(window).scrollTop());
if ($(document).height() - $(window).height() - $(window).scrollTop() < 1.5 && hash.matched != true) {
showMore();
//console.log($(document).height() - $(window).height() - $(window).scrollTop());
}
});
}) //end of .ready() method
// Main AJAX function
function ajaxRequest(data) {
$.ajax({
url:"https://dynamic.lessmore.pw/search",
type:"POST",
data: data,
success:function(messages){
callback(messages);
$("#mes").html(html);
}
})
}
// Cleanup AJAX function
function ajaxCleanupRequest(data) {
$.ajax({
url:"https://dynamic.lessmore.pw/search",
type:"POST",
data: data,
success:function(messages){
cleanupCallback(messages);
$("#mes").html(html);
}
})
}
function requestEmptyEcho() {
var data = '{"sort": [{"date": {"order": "desc"}}, {"_score": {"order": "desc" }}], "size": 5}';
ajaxRequest(data);
}
function requestEcho() {
var data = '{"sort": [{"date": {"order": "desc"}}, {"_score": { "order": "desc" }}], "query": {"query_string" : {"fields": ["echo"], "query": "' + echo + '"}}, "size":' + 5 + '}';
ajaxRequest(data);
}
function requestTmpEcho(e) {
echo = e;
html = '';
var data = '{"sort": [{"date": {"order": "desc"}}, {"_score": { "order": "desc" }}], "query": {"query_string" : {"fields": ["echo"], "query": "' + echo + '"}}, "size":' + 5 + '}';
ajaxRequest(data);
}
function requestEmptyEchoOffset() {
var data = '{"sort": [ { "date": { "order": "desc" }}, { "_score": { "order": "desc" }}],"size":'+ show_rows + ', "from":'+ from + '}';
ajaxRequest(data);
}
function requestEchoOffset() {
var data = '{"sort": [ { "date": { "order": "desc" }}, { "_score": { "order": "desc" }}], "query": {"query_string" : {"fields" : ["echo"], "query" :"' + echo + '"}}, "size":'+ show_rows + ', "from":'+ from + '}';
ajaxRequest(data);
}
function requestAuthorOffset() {
var data = '{"sort": [ { "date": { "order": "desc" }}, { "_score": { "order": "desc" }}], "query": {"query_string" : {"fields" : ["author"], "query" :"' + author + '"}}, "size":'+ show_rows + ', "from":'+ from + '}';
echo = '';
console.log("Author offset");
ajaxRequest(data);
}
function requestAuthorMessages(_author) {
author = _author;
var data = '{"sort": [ { "date": { "order": "desc" }}, { "_score": { "order": "desc" }}], "query": {"query_string" : {"fields" : ["author"], "query" :"' + author + '"}}, "size": 5 }';
html = '';
echo = '';
console.log(author);
console.log(data);
ajaxRequest(data);
}
function requestMessage(msgid) {
var data = '{"sort": [ { "date": { "order": "desc" }}, { "_score": { "order": "desc" }}], "query": {"query_string" : {"fields" : ["msgid"], "query" :"' + msgid + '"}}, "size": 5 }';
console.log("Link to message: " + msgid);
html = '';
echo = '';
author = '';
ajaxRequest(data);
}
// Search functions
// ----------------
function simpleTextSearch(text) {
var data = '{"sort": [ { "date": { "order": "desc" }}, { "_score": { "order": "desc" }}], "query": {"query_string" : {"query" :"' + text + '"}}, "size": 25 }';
console.log(text);
html = '';
echo = '';
author = '';
ajaxRequest(data);
}
//show messages
function callback(messages) {
var msgArray = messages["hits"]["hits"];
console.log(msgArray);
if (msgArray.length == 1) {
console.log(msgArray.length);
html += '
' + t_formatted + ' ' // Author to receiver + '' + msgItem['author'] + '' + ' ' + '' + msgItem['to'] + '
' // Header + '' + msgItem['subg'] + ' ' + msgItem['echo'] + '
' + '' + msg.autoLink() + '
' // Msgid + '#' + msgItem['msgid'] + '
' + t_formatted + '
' + msgItem['subg'] + '
Echo: '
+ msgItem['echo'] + '
Author: ' + '' + msgItem['author'] + ''
+ '
To: ' + msgItem['to']
+ '
' + msg + '
' + msgItem['msgid'] + '' + '