experiments with display (+ link with id) and input (+ default expression)

This commit is contained in:
Helmut Merz 2023-03-06 16:10:35 +01:00
parent bbeaa6a4e0
commit 7456271782
4 changed files with 22 additions and 10 deletions

View file

@ -103,18 +103,27 @@ function getSid(): string {
//localStorage.setItem('api.sessionid', '')
async function dopoll(app: typeof appdata) {
const wait_time = 10000
while (true) {
try {
let res = await fetch(app.conf.pollurl)
let msg = await res.json()
console.log(msg)
if (msg.status === 'data') {
app.handle(msg)
switch (msg.status) {
case 'idle':
break
case 'data':
app.handle(msg)
break
default:
console.log('poll response: ', msg)
await sleep(wait_time)
}
} catch (error) {
console.log(error)
await new Promise(r => setTimeout(r, 10000))
await sleep(wait_time)
}
}
}
const sleep = (delay: number) => new Promise(r => setTimeout(r, delay))

View file

@ -16,15 +16,15 @@ cyberscopes example site - use petite-vue in Hugo-generated sites.
{{< pv/fieldset >}}
{{< pv/input-textline name="firstname" attrs="autofocus" >}}
{{< pv/input-textline name="lastname" >}}
Id: {{< pv/input-textline name="id" defexpr="conf.itemid" >}}
First Name: {{< pv/input-textline name="firstname" attrs="autofocus" >}}
Last Name: {{< pv/input-textline name="lastname" >}}
Email: {{< pv/input-textline name="email" default="hm@cy55.de" >}}
{{< pv/button >}}
{{< pv/display expr="`${data.firstname} ${data.lastname}`.trim() || '???'" >}}
<!--{{< pv/input-textline type="hidden"
name="email" default="hm@cy55.de" >}}-->
{{< pv/display name="email" >}}
{{< pv/display name="id" linkto="data.id" >}}
{{< /pv/fieldset >}}

View file

@ -1,6 +1,8 @@
{{- $name := .Get "name" | default "textline" -}}
{{- $expr := .Get "expr" | default (printf "data.%s" $name) -}}
{{- $default := .Get "default" | default "" -}}
{{- $linkto := .Get "linkto" -}}
<div>
{{- if $linkto }}<a :href="'?id=' + {{ $linkto }}">{{ end -}}
<pre v-text="{{ $expr }}"></pre>
{{- if $linkto }}</a>{{ end -}}
</div>

View file

@ -1,10 +1,11 @@
{{- $type := .Get "type" | default "text" -}}
{{- $name := .Get "name" | default "textline" -}}
{{- $default := .Get "default" | default "" -}}
{{- $defexpr := .Get "defexpr" | default (printf "'%s'" $default) -}}
<div>
<input type="{{ $type }}" name="{{ $name }}"
{{- with .Get "attrs" }} {{ . }}{{ end }}
v-model="data.{{ $name }}"
@vue:mounted="data.{{ $name }} = '{{ $default }}'"
@vue:mounted="data.{{ $name }} = {{ $defexpr }}"
{{- with .Get "onchange" }} @change="{{ . }}"{{ end }} />
</div>