[mod] wsl

This commit is contained in:
Andy Bunce 2025-11-11 15:36:33 +00:00
parent b741dc5952
commit ddd772f563
69 changed files with 26660 additions and 25940 deletions

View file

@ -1,21 +1,21 @@
<!DOCTYPE HTML5>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout.htm}">
<head>
<title>dev</title>
</head>
<body>
<div layout:fragment="content">
<sl-breadcrumb>
<sl-breadcrumb-item href="/app/dev">DEV</sl-breadcrumb-item>
<sl-breadcrumb-item>dba</sl-breadcrumb-item>
</sl-breadcrumb>
<iframe src="/dba/logs?input=%2Fapp%2F|£" allowScripts="true"
style="width:100%;height:80vh;overflow:clip;"></iframe>
</div>
</body>
<!DOCTYPE HTML5>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout.htm}">
<head>
<title>dev</title>
</head>
<body>
<div layout:fragment="content">
<sl-breadcrumb>
<sl-breadcrumb-item href="/app/dev">DEV</sl-breadcrumb-item>
<sl-breadcrumb-item>dba</sl-breadcrumb-item>
</sl-breadcrumb>
<iframe src="/dba/logs?input=%2Fapp%2F|£" allowScripts="true"
style="width:100%;height:80vh;overflow:clip;"></iframe>
</div>
</body>
</html>

View file

@ -1,40 +1,40 @@
<!DOCTYPE HTML5>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout.htm}">
<head>
<title>Dev home</title>
</head>
<body>
<div layout:fragment="content">
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Dev</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a href="/app/dev/dba" class="nav-link" >dba</a>
</li>
<li class="nav-item">
<a href="/app/dev/jobs" class="nav-link" >jobs</a>
</li>
<li class="nav-item">
<a href="/dba/logs?input=%2Fapp%2F|£" target="_blank" class="nav-link" >DBA <sl-icon name="box-arrow-up-right"></sl-icon></a>
</li>
<li class="nav-item">
<a href="/app/api" target="_blank" class="nav-link" >wadl <sl-icon name="box-arrow-up-right"></sl-icon></a>
</li>
</ul>
</div>
</div>
</nav>
list tasks etc
</div>
</body>
<!DOCTYPE HTML5>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout.htm}">
<head>
<title>Dev home</title>
</head>
<body>
<div layout:fragment="content">
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container-fluid">
<a class="navbar-brand" href="#">Dev</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a href="/app/dev/dba" class="nav-link" >dba</a>
</li>
<li class="nav-item">
<a href="/app/dev/jobs" class="nav-link" >jobs</a>
</li>
<li class="nav-item">
<a href="/dba/logs?input=%2Fapp%2F|£" target="_blank" class="nav-link" >DBA <sl-icon name="box-arrow-up-right"></sl-icon></a>
</li>
<li class="nav-item">
<a href="/app/api" target="_blank" class="nav-link" >wadl <sl-icon name="box-arrow-up-right"></sl-icon></a>
</li>
</ul>
</div>
</div>
</nav>
list tasks etc
</div>
</body>
</html>

View file

@ -1,28 +1,28 @@
<!DOCTYPE HTML5>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout.htm}">
<head>
<title>Jobs</title>
</head>
<body>
<div layout:fragment="content" class="container-fluid">
<div class="d-flex ">
<sl-breadcrumb class="flex-grow-1" >
<sl-breadcrumb-item href="/app/jobs">Jobs home</sl-breadcrumb-item>
<sl-breadcrumb-item>jobs <span class="badge bg-secondary">4</span></sl-breadcrumb-item>
</sl-breadcrumb>
<sl-switch id="job-refresh" checked="checked" >Refresh</sl-switch>
</div>
<h2>Jobs</h2>
<hr />
<div hx-get="/app/jobs/table" hx-trigger="every 1s [htmx.find('#job-refresh').checked]" >
Nothing Yet!
</div>
</div>
</body>
<!DOCTYPE HTML5>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout.htm}">
<head>
<title>Jobs</title>
</head>
<body>
<div layout:fragment="content" class="container-fluid">
<div class="d-flex ">
<sl-breadcrumb class="flex-grow-1" >
<sl-breadcrumb-item href="/app/jobs">Jobs home</sl-breadcrumb-item>
<sl-breadcrumb-item>jobs <span class="badge bg-secondary">4</span></sl-breadcrumb-item>
</sl-breadcrumb>
<sl-switch id="job-refresh" checked="checked" >Refresh</sl-switch>
</div>
<h2>Jobs</h2>
<hr />
<div hx-get="/app/jobs/table" hx-trigger="every 1s [htmx.find('#job-refresh').checked]" >
Nothing Yet!
</div>
</div>
</body>
</html>

View file

@ -1,27 +1,27 @@
<!DOCTYPE HTML5>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout.htm}">
<head>
<title>Error</title>
</head>
<body>
<div layout:fragment="content" class="container">
<h2 >Error: <span th:text="${code}" class="btn btn-danger"></span></h2>
<dl>
<dt>Description</dt>
<dd th:text="${description}"></dd>
<dt>Value</dt>
<dd th:text="${value}"></dd>
<dt>Module</dt>
<dd ><span th:text="${module}"/>[<span th:text="${line-number}"/>,<span th:text="${column-number}"/>]</dd>
<dt>Additional</dt>
<dd>
<pre th:text="${additional}"></pre>
</dd>
</dl>
</div>
</body>
<!DOCTYPE HTML5>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout.htm}">
<head>
<title>Error</title>
</head>
<body>
<div layout:fragment="content" class="container">
<h2 >Error: <span th:text="${code}" class="btn btn-danger"></span></h2>
<dl>
<dt>Description</dt>
<dd th:text="${description}"></dd>
<dt>Value</dt>
<dd th:text="${value}"></dd>
<dt>Module</dt>
<dd ><span th:text="${module}"/>[<span th:text="${line-number}"/>,<span th:text="${column-number}"/>]</dd>
<dt>Additional</dt>
<dd>
<pre th:text="${additional}"></pre>
</dd>
</dl>
</div>
</body>
</html>

View file

@ -1,64 +1,64 @@
<!DOCTYPE html>
<html layout:decorate="~{layout.htm}"
xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
<title>Home</title>
</head>
<body>
<div layout:fragment="content" class="container">
<!-- have a button POST a click via AJAX -->
<div style="display:inline-flex">
<p th:text="${version}">ver</p>
<sl-button hx-get="http://v2.jokeapi.dev/joke/Any?format=txt&amp;safe-mode&amp;type=single" hx-target="#joke-container" variant="default" hx-confirm="Do you want a Joke?">
<sl-icon slot="prefix" name="emoji-laughing"></sl-icon>Joke
</sl-button>
<p id="joke-container" style="flex-grow:4"> </p>
</div>
<hr />
<form hx-put="/pdf3/api/contact/1" hx-target="this" hx-swap="outerHTML">
<div>
<label>First Name</label>
<input type="text" name="firstName" value="Joe"/>
</div>
<div class="form-group">
<label>Last Name</label>
<input type="text" name="lastName" value="Blow"/>
</div>
<div class="form-group">
<label>Email Address</label>
<input type="email" name="email" value="joe@blow.com"/>
</div>
<button class="btn">Submit</button>
<button class="btn" hx-get="/contact/1">Cancel</button>
</form>
<hr />
<h2>Contacts</h2>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th></th>
</tr>
</thead>
<tbody id="contacts-table" hx-get="/pdf3/api/contacts/table" hx-trigger="newContact from:body">
</tbody>
</table>
<h2>Add A Contact</h2>
<form hx-post="/pdf3/api/contacts">
<label>
Name
<input name="name" type="text"/>
</label>
<label>
Email
<input name="email" type="email"/>
</label>
</form>
<hr />
</div>
</body>
<!DOCTYPE html>
<html layout:decorate="~{layout.htm}"
xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
<title>Home</title>
</head>
<body>
<div layout:fragment="content" class="container">
<!-- have a button POST a click via AJAX -->
<div style="display:inline-flex">
<p th:text="${version}">ver</p>
<sl-button hx-get="http://v2.jokeapi.dev/joke/Any?format=txt&amp;safe-mode&amp;type=single" hx-target="#joke-container" variant="default" hx-confirm="Do you want a Joke?">
<sl-icon slot="prefix" name="emoji-laughing"></sl-icon>Joke
</sl-button>
<p id="joke-container" style="flex-grow:4"> </p>
</div>
<hr />
<form hx-put="/pdf3/api/contact/1" hx-target="this" hx-swap="outerHTML">
<div>
<label>First Name</label>
<input type="text" name="firstName" value="Joe"/>
</div>
<div class="form-group">
<label>Last Name</label>
<input type="text" name="lastName" value="Blow"/>
</div>
<div class="form-group">
<label>Email Address</label>
<input type="email" name="email" value="joe@blow.com"/>
</div>
<button class="btn">Submit</button>
<button class="btn" hx-get="/contact/1">Cancel</button>
</form>
<hr />
<h2>Contacts</h2>
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th></th>
</tr>
</thead>
<tbody id="contacts-table" hx-get="/pdf3/api/contacts/table" hx-trigger="newContact from:body">
</tbody>
</table>
<h2>Add A Contact</h2>
<form hx-post="/pdf3/api/contacts">
<label>
Name
<input name="name" type="text"/>
</label>
<label>
Email
<input name="email" type="email"/>
</label>
</form>
<hr />
</div>
</body>
</html>

View file

@ -1,68 +1,68 @@
<!DOCTYPE HTML5>
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta
name="htmx-config"
content='{
"responseHandling":[
{"code":"204", "swap": false},
{"code":"[23]..", "swap": true},
{"code":"404", "swap": true},
{"code":"[45]..", "swap": false, "error":true},
{"code":"...", "swap": true}
],
"selfRequestsOnly": false
}'
/>
<title>LSP manager</title>
<link rel="icon" href="/app/static/favicon.png" />
<link rel="stylesheet" href="https://unpkg.com/missing.css@1.2.0" />
<link rel="stylesheet" href="/app/static/styles.css" />
<script defer="defer" src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script src="https://cdn.jsdelivr.net/npm/htmx.org@2.0.7/dist/htmx.js" integrity="sha384-yWakaGAFicqusuwOYEmoRjLNOC+6OFsdmwC2lbGQaRELtuVEqNzt11c2J711DeCZ" crossorigin="anonymous"></script>
<script defer="defer" src="/app/static/script.js"></script>
</head>
<body hx-boost="true" hx-indicator="#indicator" data-bs-theme="light" >
<div class='App'>
<header id="header" class="navbar">
<nav >
<ul role="list">
<li >
<a class="active" aria-current="page" href="/app/home">Home</a>
</li>
<li >
<a href="/app/socket">connections </a>
</li>
</ul>
</nav>
</header>
<main id="main" class="App-main">
<p layout:fragment="content">MAIN</p>
</main>
<footer id="footer">
<button onclick="toast('Hi. '+new Date())">toast</button>
LoggedIn: ??
<button type="button" class="btn btn-primary" id="liveToastBtn">Show live toast</button>
</footer>
</div>
</body>
<!DOCTYPE HTML5>
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta
name="htmx-config"
content='{
"responseHandling":[
{"code":"204", "swap": false},
{"code":"[23]..", "swap": true},
{"code":"404", "swap": true},
{"code":"[45]..", "swap": false, "error":true},
{"code":"...", "swap": true}
],
"selfRequestsOnly": false
}'
/>
<title>LSP manager</title>
<link rel="icon" href="/app/static/favicon.png" />
<link rel="stylesheet" href="https://unpkg.com/missing.css@1.2.0" />
<link rel="stylesheet" href="/app/static/styles.css" />
<script defer="defer" src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script src="https://cdn.jsdelivr.net/npm/htmx.org@2.0.7/dist/htmx.js" integrity="sha384-yWakaGAFicqusuwOYEmoRjLNOC+6OFsdmwC2lbGQaRELtuVEqNzt11c2J711DeCZ" crossorigin="anonymous"></script>
<script defer="defer" src="/app/static/script.js"></script>
</head>
<body hx-boost="true" hx-indicator="#indicator" data-bs-theme="light" >
<div class='App'>
<header id="header" class="navbar">
<nav >
<ul role="list">
<li >
<a class="active" aria-current="page" href="/app/home">Home</a>
</li>
<li >
<a href="/app/socket">connections </a>
</li>
</ul>
</nav>
</header>
<main id="main" class="App-main">
<p layout:fragment="content">MAIN</p>
</main>
<footer id="footer">
<button onclick="toast('Hi. '+new Date())">toast</button>
LoggedIn: ??
<button type="button" class="btn btn-primary" id="liveToastBtn">Show live toast</button>
</footer>
</div>
</body>
</html>

View file

@ -1,25 +1,25 @@
<!DOCTYPE HTML5>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout.htm}">
<head>
<title>Login</title>
</head>
<body>
<div layout:fragment="content">
<form onsubmit="${login}" action="${router.guardUrl()}">
<fieldset style="width:50%;">
<sl-input label="User name" value="${session.login}" oninput="${html.set(session, 'login')}"
clearable="clearable"></sl-input>
<sl-input value="${session.password}" oninput="${html.set(session, 'password')}" type="password"
label="Password" password-toggle="password-toggle" clearable="clearable"></sl-input>
<input type="checkbox" checked="${session.loggedIn}" />
</fieldset>
<button type="submit">Login</button>
<button onclick="${fastlogin}">Fast</button>
</form>
</div>
</body>
<!DOCTYPE HTML5>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout.htm}">
<head>
<title>Login</title>
</head>
<body>
<div layout:fragment="content">
<form onsubmit="${login}" action="${router.guardUrl()}">
<fieldset style="width:50%;">
<sl-input label="User name" value="${session.login}" oninput="${html.set(session, 'login')}"
clearable="clearable"></sl-input>
<sl-input value="${session.password}" oninput="${html.set(session, 'password')}" type="password"
label="Password" password-toggle="password-toggle" clearable="clearable"></sl-input>
<input type="checkbox" checked="${session.loggedIn}" />
</fieldset>
<button type="submit">Login</button>
<button onclick="${fastlogin}">Fast</button>
</form>
</div>
</body>
</html>

View file

@ -1,42 +1,42 @@
<!DOCTYPE HTML5>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout.htm}">
<head>
<title>test</title>
</head>
<body>
<div layout:fragment="content">
<sl-card class="card-overview">
<div slot="header">
<sl-tooltip>
<div th:text="${pdf.slug}" slot="content">path</div>
<sl-badge th:text="${pdf.index}">{pdf.index}</sl-badge>
</sl-tooltip>
<a th:href="@{/pdfs/{pdf.id}/raw}" href="/app/pdfs/{pdf.id}/details"><small>{pdf}</small></a>
<sl-button-group label="History">
<sl-icon-button name="file-earmark-pdf" label="Settings"
th:href="@{/pdfs/{pdf.id}/raw}" href="/app/pdfs/{pdf.id}/view"></sl-icon-button>
</sl-button-group>
</div>
<div style="display:flex;">
<div>
<a href="/app/pdfs/{pdf.id}/details" class="holder center">
<img src="/app/pdfs/{pdf.id}/cover" loading="{index >10?'lazy':'eager'}"
alt="A kitten sits patiently." />
</a>
</div>
<div>
slug:<br /><small th:text="${pdf.id}">{pdf.id}</small><br />
</div>
</div>
</sl-card>
</div>
</body>
<!DOCTYPE HTML5>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout.htm}">
<head>
<title>test</title>
</head>
<body>
<div layout:fragment="content">
<sl-card class="card-overview">
<div slot="header">
<sl-tooltip>
<div th:text="${pdf.slug}" slot="content">path</div>
<sl-badge th:text="${pdf.index}">{pdf.index}</sl-badge>
</sl-tooltip>
<a th:href="@{/pdfs/{pdf.id}/raw}" href="/app/pdfs/{pdf.id}/details"><small>{pdf}</small></a>
<sl-button-group label="History">
<sl-icon-button name="file-earmark-pdf" label="Settings"
th:href="@{/pdfs/{pdf.id}/raw}" href="/app/pdfs/{pdf.id}/view"></sl-icon-button>
</sl-button-group>
</div>
<div style="display:flex;">
<div>
<a href="/app/pdfs/{pdf.id}/details" class="holder center">
<img src="/app/pdfs/{pdf.id}/cover" loading="{index >10?'lazy':'eager'}"
alt="A kitten sits patiently." />
</a>
</div>
<div>
slug:<br /><small th:text="${pdf.id}">{pdf.id}</small><br />
</div>
</div>
</sl-card>
</div>
</body>
</html>

View file

@ -1,19 +1,19 @@
<!DOCTYPE HTML5>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout.htm}">
<head>
<title>404</title>
</head>
<body>
<div layout:fragment="content">
<h2>Page not found:</h2>
<ul>
<li th:text="${path}">Page: pdf2/${ path }</li>
<li>Method: ${ method }</li>
</ul>
</div>
</body>
<!DOCTYPE HTML5>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout.htm}">
<head>
<title>404</title>
</head>
<body>
<div layout:fragment="content">
<h2>Page not found:</h2>
<ul>
<li th:text="${path}">Page: pdf2/${ path }</li>
<li>Method: ${ method }</li>
</ul>
</div>
</body>
</html>