sort all tables on search page

pull/34/head
Zlatin Balevsky 2019-12-12 00:44:49 +00:00
parent 26116d313a
commit 8ab2dd7900
1 changed files with 49 additions and 20 deletions

View File

@ -33,7 +33,7 @@ class Sender {
} }
getSenderLink() { getSenderLink() {
return "<a href='#' onclick='window.refreshResultsFromSender(\"" + this.b64 + "\");return false'>" + this.name + "</a>" return "<a href='#' onclick='window.refreshResultsFromSender(\"" + this.b64 + "\",\"true\");return false'>" + this.name + "</a>"
} }
getTrustLinks() { getTrustLinks() {
@ -219,7 +219,7 @@ class Result {
} }
getNameBlock() { getNameBlock() {
return "<a href='#' onclick='window.refreshSendersForResult(\"" + this.infoHash + "\");return false;'>" + this.name + "</a>" return "<a href='#' onclick='window.refreshSendersForResult(\"" + this.infoHash + "\",\"true\");return false;'>" + this.name + "</a>"
} }
getDownloadBlock() { getDownloadBlock() {
if (this.downloading == "true") if (this.downloading == "true")
@ -377,7 +377,7 @@ class SendersForResult {
if (sendersForResultSortOrder == "descending") if (sendersForResultSortOrder == "descending")
sendersForResultSortOrder = "ascending" sendersForResultSortOrder = "ascending"
else else
sendersForResultsSortOrder = "descending" sendersForResultSortOrder = "descending"
} }
var table = new Table(["Sender", "Browse", "Trust"], "sortSendersForResultTable", sendersForResultSortKey, sendersForResultSortOrder) var table = new Table(["Sender", "Browse", "Trust"], "sortSendersForResultTable", sendersForResultSortKey, sendersForResultSortOrder)
var i var i
@ -422,6 +422,31 @@ var statusByUUID = new Map()
var refreshFunction = null var refreshFunction = null
var refreshType = null var refreshType = null
function sortSendersTable(key, order) {
sendersSortKey = key
sendersSortOrder = order
refreshSender(uuid, false)
}
function sortResultsTable(key, order) {
resultsSortKey = key
resultsSortOrder = order
refreshFile(uuid, false)
}
function sortResultsFromSenderTable(key, order) {
resultsFromSenderSortKey = key
resultsFromSenderSortOrder = order
refreshResultsFromSender(currentSender, false)
}
function sortSendersForResultTable(key, order) {
sendersForResultSortKey = key
sendersForResultSortOrder = order
refreshSendersForResult(currentResult, false)
}
function showCommentBySender(infoHash) { function showCommentBySender(infoHash) {
expandedComments.set(infoHash, true) expandedComments.set(infoHash, true)
@ -544,9 +569,9 @@ function publishTrust(host, reason, trust) {
xmlhttp.onreadystatechange = function() { xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) { if (this.readyState == 4 && this.status == 200) {
if (refreshType == "Sender") if (refreshType == "Sender")
refreshSender(uuid) refreshSender(uuid, true)
else if (refreshType == "File") else if (refreshType == "File")
refreshFile(uuid) refreshFile(uuid, true)
} }
} }
xmlhttp.open("POST","/MuWire/Trust", true) xmlhttp.open("POST","/MuWire/Trust", true)
@ -638,78 +663,82 @@ function hideCertificatesBySender(fileInfoHash, count) {
linkSpan.innerHTML = showLink linkSpan.innerHTML = showLink
} }
function refreshResultsFromSender(sender) { function refreshResultsFromSender(sender, preserveOrder) {
currentSender = sender currentSender = sender
var xmlhttp = new XMLHttpRequest() var xmlhttp = new XMLHttpRequest()
xmlhttp.onreadystatechange = function() { xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) { if (this.readyState == 4 && this.status == 200) {
resultsFromSender = new ResultsFromSender(this.responseXML) resultsFromSender = new ResultsFromSender(this.responseXML)
var tableHtml = resultsFromSender.render(true) var tableHtml = resultsFromSender.render(preserveOrder)
var bottomTableDiv = document.getElementById("bottomTable") var bottomTableDiv = document.getElementById("bottomTable")
bottomTableDiv.innerHTML = tableHtml bottomTableDiv.innerHTML = tableHtml
} }
} }
xmlhttp.open("GET", "/MuWire/Search?section=resultsFromSender&uuid=" + uuid + "&sender=" + sender) var sortParam = "&key=" + resultsFromSenderSortKey + "&order=" + resultsFromSenderSortOrder
xmlhttp.open("GET", "/MuWire/Search?section=resultsFromSender&uuid=" + uuid + "&sender=" + sender + sortParam)
xmlhttp.send() xmlhttp.send()
} }
function refreshSendersForResult(result) { function refreshSendersForResult(result, preserveOrder) {
currentResult = result currentResult = result
var xmlhttp = new XMLHttpRequest() var xmlhttp = new XMLHttpRequest()
xmlhttp.onreadystatechange = function() { xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) { if (this.readyState == 4 && this.status == 200) {
sendersForResult = new SendersForResult(this.responseXML) sendersForResult = new SendersForResult(this.responseXML)
var tableHtml = sendersForResult.render(true) var tableHtml = sendersForResult.render(preserveOrder)
var bottomTableDiv = document.getElementById("bottomTable") var bottomTableDiv = document.getElementById("bottomTable")
bottomTableDiv.innerHTML = tableHtml bottomTableDiv.innerHTML = tableHtml
} }
} }
xmlhttp.open("GET", "/MuWire/Search?section=sendersForResult&uuid=" + uuid + "&infoHash=" + currentResult) var sortParam = "&key=" + sendersForResultSortKey + "&order=" + sendersForResultSortOrder
xmlhttp.open("GET", "/MuWire/Search?section=sendersForResult&uuid=" + uuid + "&infoHash=" + currentResult + sortParam)
xmlhttp.send() xmlhttp.send()
} }
function refreshSender(searchUUID) { function refreshSender(searchUUID, preserveOrder) {
uuid = searchUUID uuid = searchUUID
var xmlhttp = new XMLHttpRequest() var xmlhttp = new XMLHttpRequest()
xmlhttp.onreadystatechange = function() { xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) { if (this.readyState == 4 && this.status == 200) {
senders = new Senders(this.responseXML) senders = new Senders(this.responseXML)
var tableHtml = senders.render(true) var tableHtml = senders.render(preserveOrder)
var topTableDiv = document.getElementById("topTable") var topTableDiv = document.getElementById("topTable")
topTableDiv.innerHTML = tableHtml topTableDiv.innerHTML = tableHtml
if (currentSender != null) if (currentSender != null)
refreshResultsFromSender(currentSender) refreshResultsFromSender(currentSender, true)
} }
} }
xmlhttp.open("GET", "/MuWire/Search?section=senders&uuid=" + uuid, true) var sortParam = "&key=" + sendersSortKey + "&order=" + sendersSortOrder
xmlhttp.open("GET", "/MuWire/Search?section=senders&uuid=" + uuid + sortParam, true)
xmlhttp.send() xmlhttp.send()
} }
function refreshFile(searchUUID) { function refreshFile(searchUUID, preserveOrder) {
uuid = searchUUID uuid = searchUUID
var xmlhttp = new XMLHttpRequest() var xmlhttp = new XMLHttpRequest()
xmlhttp.onreadystatechange = function() { xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) { if (this.readyState == 4 && this.status == 200) {
results = new Results(this.responseXML) results = new Results(this.responseXML)
var tableHtml = results.render(true) var tableHtml = results.render(preserveOrder)
var topTableDiv = document.getElementById("topTable") var topTableDiv = document.getElementById("topTable")
topTableDiv.innerHTML = tableHtml topTableDiv.innerHTML = tableHtml
if (currentResult != null) if (currentResult != null)
refreshSendersForResult(currentResult) refreshSendersForResult(currentResult, true)
} }
} }
xmlhttp.open("GET", "/MuWire/Search?section=results&uuid=" + uuid, true) var sortParam = "&key=" + resultsSortKey + "&order=" + resultsSortOrder
xmlhttp.open("GET", "/MuWire/Search?section=results&uuid=" + uuid + sortParam, true)
xmlhttp.send() xmlhttp.send()
} }
@ -755,7 +784,7 @@ function refreshStatus() {
if (uuid != null) { if (uuid != null) {
var newStatus = statusByUUID.get(uuid) var newStatus = statusByUUID.get(uuid)
if (newStatus.revision > currentSearch.revision) if (newStatus.revision > currentSearch.revision)
refreshFunction(uuid) refreshFunction(uuid, true)
} }
} }
} }