Brought over most of the changes from go-web-starter-kit.

This commit is contained in:
Zed A. Shaw 2025-08-31 11:23:12 -04:00
parent 01fcb964be
commit 8d70b57299
11 changed files with 143 additions and 57 deletions

View file

@ -4,7 +4,7 @@ class PaginateTable {
this.items = [];
this.url = url;
this.headers = [];
this.search_query=""
this.search_query="";
}
async contents() {
@ -31,19 +31,43 @@ class PaginateTable {
}
}
class GetJson {
class ForeverScroll {
constructor(url) {
this.item;
this.page = 0;
this.items = [];
this.url = url;
this.end = false;
}
async item() {
const resp = await fetch(`${this.url}`);
async init() {
const resp = await fetch(this.url);
console.assert(resp.status == 200, "failed to get it");
this.item = await resp.json();
return this.item;
const items = await resp.json();
if(items) this.items = items;
}
async load() {
this.page += 1
let url = `${this.url}?page=${this.page}`;
const resp = await fetch(url);
console.assert(resp.status == 200, "failed to get it");
const items = await resp.json();
if(items) {
this.items.push(...items);
} else {
this.end = true;
}
}
}
const GetJson = async (url) => {
const resp = await fetch(url);
console.assert(resp.status == 200, "failed to get it");
return await resp.json();
}
const ConfirmDelete = async (table, obj_id) => {
@ -55,3 +79,14 @@ const ConfirmDelete = async (table, obj_id) => {
return false;
}
}
const UrlId = () => {
let url = new URL(window.location.href);
let parts = url.pathname.split("/");
if(window.location.href.endsWith("/")) {
return parts[parts.length - 2];
} else {
return parts[parts.length - 1];
}
}