mirror of
https://github.com/GCMatters/hermes.git
synced 2026-02-04 13:40:13 +01:00
feat: make sorting by date work
This commit is contained in:
@@ -19,12 +19,28 @@ namespace WebApp.Endpoints
|
|||||||
// GET /events
|
// GET /events
|
||||||
group.MapGet("/",
|
group.MapGet("/",
|
||||||
async (ApplicationDbContext dbContext, HttpContext httpContext) =>
|
async (ApplicationDbContext dbContext, HttpContext httpContext) =>
|
||||||
await dbContext.Events
|
{
|
||||||
.Include(Eve => Eve.Organisation)
|
|
||||||
.OrderByDescending(Eve => Eve.EventId)
|
var sort = httpContext.Request.Query["sort"].ToString();
|
||||||
|
IOrderedQueryable<Event> res;
|
||||||
|
var r = dbContext.Events
|
||||||
|
.Include(Eve => Eve.Organisation);
|
||||||
|
|
||||||
|
if (sort is not null && sort.ToUpper() == "ASC")
|
||||||
|
{
|
||||||
|
res = r.OrderBy(Eve => Eve.EventId);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
res = r.OrderByDescending(Eve => Eve.EventId);
|
||||||
|
}
|
||||||
|
|
||||||
|
return await res
|
||||||
.Select(Eve => Eve.ToEventSummaryDto()) //EventSummaryDto
|
.Select(Eve => Eve.ToEventSummaryDto()) //EventSummaryDto
|
||||||
.AsNoTracking()
|
.AsNoTracking()
|
||||||
.ToListAsync());
|
.ToListAsync();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// GET /events/1
|
// GET /events/1
|
||||||
group.MapGet("/{id}",
|
group.MapGet("/{id}",
|
||||||
|
|||||||
@@ -1,9 +1,16 @@
|
|||||||
document.addEventListener("DOMContentLoaded", async () => {
|
var isAscending: boolean = false;
|
||||||
|
|
||||||
|
function toggleListSortOrder() {
|
||||||
|
isAscending = !isAscending;
|
||||||
|
loadEvents();
|
||||||
|
}
|
||||||
|
|
||||||
|
async function loadEvents() {
|
||||||
const container = document.getElementById("eventList");
|
const container = document.getElementById("eventList");
|
||||||
if (!container) return;
|
if (!container) return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const res = await fetch("/api/events");
|
const res = await fetch("/api/events" + (isAscending ? "?sort=asc" : ""));
|
||||||
if (!res.ok) throw new Error("Błąd pobierania wydarzeń");
|
if (!res.ok) throw new Error("Błąd pobierania wydarzeń");
|
||||||
|
|
||||||
const events = await res.json();
|
const events = await res.json();
|
||||||
@@ -31,4 +38,13 @@
|
|||||||
container.innerHTML = `<p class="text-danger">Błąd ładowania danych.</p>`;
|
container.innerHTML = `<p class="text-danger">Błąd ładowania danych.</p>`;
|
||||||
console.error(err);
|
console.error(err);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener("DOMContentLoaded", async () => {
|
||||||
|
loadEvents();
|
||||||
|
// listen for clicks
|
||||||
|
const listSortToggleButton = document.getElementById("list-sort-btn");
|
||||||
|
if (listSortToggleButton) {
|
||||||
|
listSortToggleButton.addEventListener("click", toggleListSortOrder);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
@@ -71,7 +71,7 @@
|
|||||||
<button class="btn btn-link" onclick="">
|
<button class="btn btn-link" onclick="">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" height="30px" viewBox="0 -960 960 960" width="30px" fill="#2898BD"><path d="M440-120v-240h80v80h320v80H520v80h-80Zm-320-80v-80h240v80H120Zm160-160v-80H120v-80h160v-80h80v240h-80Zm160-80v-80h400v80H440Zm160-160v-240h80v80h160v80H680v80h-80Zm-480-80v-80h400v80H120Z" /></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" height="30px" viewBox="0 -960 960 960" width="30px" fill="#2898BD"><path d="M440-120v-240h80v80h320v80H520v80h-80Zm-320-80v-80h240v80H120Zm160-160v-80H120v-80h160v-80h80v240h-80Zm160-80v-80h400v80H440Zm160-160v-240h80v80h160v80H680v80h-80Zm-480-80v-80h400v80H120Z" /></svg>
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-link" onclick=""><svg xmlns="http://www.w3.org/2000/svg" height="30px" viewBox="0 -960 960 960" width="30px" fill="#2898BD"><path d="M320-440v-287L217-624l-57-56 200-200 200 200-57 56-103-103v287h-80ZM600-80 400-280l57-56 103 103v-287h80v287l103-103 57 56L600-80Z" /></svg></button>
|
<button class="btn btn-link" id="list-sort-btn" onclick=""><svg xmlns="http://www.w3.org/2000/svg" height="30px" viewBox="0 -960 960 960" width="30px" fill="#2898BD"><path d="M320-440v-287L217-624l-57-56 200-200 200 200-57 56-103-103v287h-80ZM600-80 400-280l57-56 103 103v-287h80v287l103-103 57 56L600-80Z" /></svg></button>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -8,12 +8,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
document.addEventListener("DOMContentLoaded", () => __awaiter(void 0, void 0, void 0, function* () {
|
var isAscending = false;
|
||||||
|
function toggleListSortOrder() {
|
||||||
|
isAscending = !isAscending;
|
||||||
|
loadEvents();
|
||||||
|
}
|
||||||
|
function loadEvents() {
|
||||||
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const container = document.getElementById("eventList");
|
const container = document.getElementById("eventList");
|
||||||
if (!container)
|
if (!container)
|
||||||
return;
|
return;
|
||||||
try {
|
try {
|
||||||
const res = yield fetch("/api/events");
|
const res = yield fetch("/api/events" + (isAscending ? "?sort=asc" : ""));
|
||||||
if (!res.ok)
|
if (!res.ok)
|
||||||
throw new Error("Błąd pobierania wydarzeń");
|
throw new Error("Błąd pobierania wydarzeń");
|
||||||
const events = yield res.json();
|
const events = yield res.json();
|
||||||
@@ -39,4 +45,13 @@ document.addEventListener("DOMContentLoaded", () => __awaiter(void 0, void 0, vo
|
|||||||
container.innerHTML = `<p class="text-danger">Błąd ładowania danych.</p>`;
|
container.innerHTML = `<p class="text-danger">Błąd ładowania danych.</p>`;
|
||||||
console.error(err);
|
console.error(err);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
document.addEventListener("DOMContentLoaded", () => __awaiter(void 0, void 0, void 0, function* () {
|
||||||
|
loadEvents();
|
||||||
|
// listen for clicks
|
||||||
|
const listSortToggleButton = document.getElementById("list-sort-btn");
|
||||||
|
if (listSortToggleButton) {
|
||||||
|
listSortToggleButton.addEventListener("click", toggleListSortOrder);
|
||||||
|
}
|
||||||
}));
|
}));
|
||||||
|
|||||||
Reference in New Issue
Block a user