Redesign database and implement voting
This commit is contained in:
parent
a0b65c7d5b
commit
80e9bc1bde
16 changed files with 376 additions and 41 deletions
|
@ -15,13 +15,21 @@ function getRequests(count,allRequests) {
|
|||
|
||||
function buildTable(requests,allRequests) {
|
||||
var requestsDivHTML = '<table><tr><th class="request-url">URL</th><th class="request-requester">Requester</th><th class="request-score">Score</th>';
|
||||
if (allRequests) requestsDivHTML += `<th class="request-state">State</td></tr>`;
|
||||
if (allRequests) requestsDivHTML += `<th class="request-state">State</td>`;
|
||||
if (window.loggedIn) requestsDivHTML += `<th class="request-vote">Vote</td>`;
|
||||
requestsDivHTML += "</tr>";
|
||||
for (request of requests) {
|
||||
requestsDivHTML += `<tr><td class="request-url"><a href="${request.url}">${request.url}</a></td>\
|
||||
<td class="request-requester">${request.requester}</td>\
|
||||
<td class="request-score">${request.score}</td>`;
|
||||
if (allRequests) requestsDivHTML += `<td class="request-state">${request.state}</td></tr>`;
|
||||
if (allRequests) requestsDivHTML += `<td class="request-state">${request.state}</td>`;
|
||||
if (window.loggedIn) {
|
||||
if (request.voted) {
|
||||
requestsDivHTML += `<td class="request-vote"><button onclick="deleteVote('${request.url}')">Unvote</button></td>`;
|
||||
} else {
|
||||
requestsDivHTML += `<td class="request-vote"><button onclick="addVote('${request.url}')">Vote</button></td>`;
|
||||
}
|
||||
}
|
||||
requestsDivHTML += "</tr>";
|
||||
}
|
||||
requestsDivHTML += "</table>";
|
||||
|
@ -84,15 +92,41 @@ function validateAndSubmitRequest() {
|
|||
}
|
||||
fetch("/api/addRequest", { method: 'POST', body: new URLSearchParams({
|
||||
url: url
|
||||
})})
|
||||
.then(response => {
|
||||
updateTable();
|
||||
document.getElementById("addRequestUrl").value = "";
|
||||
response.text().then((message) => {
|
||||
closeAddRequestModal();
|
||||
showMessage(message);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function addVote(url) {
|
||||
fetch("/api/addVote", { method: 'POST', body: new URLSearchParams({
|
||||
url: url
|
||||
})})
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
response.text().then(addRequestErr);
|
||||
return;
|
||||
}
|
||||
updateTable();
|
||||
response.text().then(showMessage);
|
||||
});
|
||||
}
|
||||
|
||||
function deleteVote(url) {
|
||||
fetch("/api/deleteVote", { method: 'POST', body: new URLSearchParams({
|
||||
url: url
|
||||
})})
|
||||
.then(response => {
|
||||
if (!response.ok) {
|
||||
response.text().then(addRequestErr);
|
||||
return;
|
||||
}
|
||||
closeAddRequestModal();
|
||||
updateTable();
|
||||
document.getElementById("addRequestUrl").value = "";
|
||||
response.text().then(showMessage);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -142,3 +142,7 @@ div#nav-userpic {
|
|||
.modalClose a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.request-vote > button {
|
||||
width: 100%;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue