parent
da183c453c
commit
51b18823ae
@ -1,19 +0,0 @@ |
|||||||
<script> |
|
||||||
let Rows = new GetJson("/api/admin/table/") |
|
||||||
console.log("Rows", Rows) |
|
||||||
</script> |
|
||||||
|
|
||||||
<blockstart> |
|
||||||
<h1>Admin Rows</h1> |
|
||||||
|
|
||||||
<block x-data="Rows"> |
|
||||||
<ul> |
|
||||||
<template x-for="item in theData"> |
|
||||||
<li><a x-bind:href="'/admin/table/' + item + '/'"> |
|
||||||
<span x-text="item"></span> |
|
||||||
</a></li> |
|
||||||
</template> |
|
||||||
</ul> |
|
||||||
</block> |
|
||||||
|
|
||||||
</blockstart> |
|
@ -1,20 +1,46 @@ |
|||||||
class GetJson { |
class PaginateTable { |
||||||
constructor(url) { |
constructor(url) { |
||||||
this.url = url; |
this.page = 0; |
||||||
this.items = []; |
this.items = []; |
||||||
this.item = undefined; |
this.url = url; |
||||||
|
this.headers = []; |
||||||
} |
} |
||||||
|
|
||||||
async theData() { |
async contents() { |
||||||
const resp = await fetch(this.url); |
if(this.page < 0) this.page = 0; |
||||||
|
|
||||||
|
const resp = await fetch(`${this.url}?page=${this.page}`); |
||||||
console.assert(resp.status == 200, "failed to get it"); |
console.assert(resp.status == 200, "failed to get it"); |
||||||
|
|
||||||
this.items = await resp.json(); |
this.items = await resp.json(); |
||||||
|
|
||||||
|
this.headers = Object.keys(this.items[0]); |
||||||
|
|
||||||
return this.items; |
return this.items; |
||||||
} |
} |
||||||
|
} |
||||||
|
|
||||||
|
class GetJson { |
||||||
|
constructor(url) { |
||||||
|
this.item; |
||||||
|
this.url = url; |
||||||
|
} |
||||||
|
|
||||||
async oneThing() { |
async item() { |
||||||
this.item = await this.theData(); |
const resp = await fetch(`${this.url}`); |
||||||
console.log("ITEMS", this.items); |
console.assert(resp.status == 200, "failed to get it"); |
||||||
|
|
||||||
|
this.item = await resp.json(); |
||||||
return this.item; |
return this.item; |
||||||
} |
} |
||||||
} |
} |
||||||
|
|
||||||
|
const ConfirmDelete = async (table, obj_id) => { |
||||||
|
if(confirm("Are you sure?")) { |
||||||
|
await fetch("/api/admin/table/" + table + "/" + obj_id + "/", |
||||||
|
{ method: "DELETE" }); |
||||||
|
window.location = "/admin/table/" + table + "/"; |
||||||
|
} else { |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
||||||
|
@ -1,17 +1,20 @@ |
|||||||
<blockstart> |
<script> |
||||||
|
let Data = new PaginateTable("/api/admin/table/") |
||||||
<h1>{{ .TableName }} </h1> |
</script> |
||||||
|
|
||||||
<block> |
<blockstart> |
||||||
<table> |
<h1>Admin Rows</h1> |
||||||
<tr><th>ID</th></tr> |
|
||||||
|
|
||||||
{{ range $index, $row := .Table }} |
<block x-data="Data"> |
||||||
<tr> |
<ul> |
||||||
<td>{{ $row }}</td> |
<template x-for="item in contents"> |
||||||
</tr> |
<li> |
||||||
{{ end }} |
<a x-bind:href="`/admin/table/${item}`"> |
||||||
</table> |
<span x-text="item"></span> |
||||||
|
</a> |
||||||
|
</li> |
||||||
|
</template> |
||||||
|
</ul> |
||||||
</block> |
</block> |
||||||
|
|
||||||
</blockstart> |
</blockstart> |
||||||
|
Loading…
Reference in new issue