experiments with display (+ link with id) and input (+ default expression)
This commit is contained in:
parent
bbeaa6a4e0
commit
7456271782
4 changed files with 22 additions and 10 deletions
|
@ -103,18 +103,27 @@ function getSid(): string {
|
||||||
//localStorage.setItem('api.sessionid', '')
|
//localStorage.setItem('api.sessionid', '')
|
||||||
|
|
||||||
async function dopoll(app: typeof appdata) {
|
async function dopoll(app: typeof appdata) {
|
||||||
|
const wait_time = 10000
|
||||||
while (true) {
|
while (true) {
|
||||||
try {
|
try {
|
||||||
let res = await fetch(app.conf.pollurl)
|
let res = await fetch(app.conf.pollurl)
|
||||||
let msg = await res.json()
|
let msg = await res.json()
|
||||||
console.log(msg)
|
console.log(msg)
|
||||||
if (msg.status === 'data') {
|
switch (msg.status) {
|
||||||
app.handle(msg)
|
case 'idle':
|
||||||
|
break
|
||||||
|
case 'data':
|
||||||
|
app.handle(msg)
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
console.log('poll response: ', msg)
|
||||||
|
await sleep(wait_time)
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(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))
|
||||||
|
|
|
@ -16,15 +16,15 @@ cyberscopes example site - use petite-vue in Hugo-generated sites.
|
||||||
|
|
||||||
{{< pv/fieldset >}}
|
{{< pv/fieldset >}}
|
||||||
|
|
||||||
{{< pv/input-textline name="firstname" attrs="autofocus" >}}
|
Id: {{< pv/input-textline name="id" defexpr="conf.itemid" >}}
|
||||||
{{< pv/input-textline name="lastname" >}}
|
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/button >}}
|
||||||
|
|
||||||
{{< pv/display expr="`${data.firstname} ${data.lastname}`.trim() || '???'" >}}
|
{{< pv/display expr="`${data.firstname} ${data.lastname}`.trim() || '???'" >}}
|
||||||
|
|
||||||
<!--{{< pv/input-textline type="hidden"
|
{{< pv/display name="id" linkto="data.id" >}}
|
||||||
name="email" default="hm@cy55.de" >}}-->
|
|
||||||
{{< pv/display name="email" >}}
|
|
||||||
|
|
||||||
{{< /pv/fieldset >}}
|
{{< /pv/fieldset >}}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
{{- $name := .Get "name" | default "textline" -}}
|
{{- $name := .Get "name" | default "textline" -}}
|
||||||
{{- $expr := .Get "expr" | default (printf "data.%s" $name) -}}
|
{{- $expr := .Get "expr" | default (printf "data.%s" $name) -}}
|
||||||
{{- $default := .Get "default" | default "" -}}
|
{{- $linkto := .Get "linkto" -}}
|
||||||
<div>
|
<div>
|
||||||
|
{{- if $linkto }}<a :href="'?id=' + {{ $linkto }}">{{ end -}}
|
||||||
<pre v-text="{{ $expr }}"></pre>
|
<pre v-text="{{ $expr }}"></pre>
|
||||||
|
{{- if $linkto }}</a>{{ end -}}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
{{- $type := .Get "type" | default "text" -}}
|
{{- $type := .Get "type" | default "text" -}}
|
||||||
{{- $name := .Get "name" | default "textline" -}}
|
{{- $name := .Get "name" | default "textline" -}}
|
||||||
{{- $default := .Get "default" | default "" -}}
|
{{- $default := .Get "default" | default "" -}}
|
||||||
|
{{- $defexpr := .Get "defexpr" | default (printf "'%s'" $default) -}}
|
||||||
<div>
|
<div>
|
||||||
<input type="{{ $type }}" name="{{ $name }}"
|
<input type="{{ $type }}" name="{{ $name }}"
|
||||||
{{- with .Get "attrs" }} {{ . }}{{ end }}
|
{{- with .Get "attrs" }} {{ . }}{{ end }}
|
||||||
v-model="data.{{ $name }}"
|
v-model="data.{{ $name }}"
|
||||||
@vue:mounted="data.{{ $name }} = '{{ $default }}'"
|
@vue:mounted="data.{{ $name }} = {{ $defexpr }}"
|
||||||
{{- with .Get "onchange" }} @change="{{ . }}"{{ end }} />
|
{{- with .Get "onchange" }} @change="{{ . }}"{{ end }} />
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Reference in a new issue