💄 Stabilize home template rendering
This commit is contained in:
parent
ff40be5057
commit
04b7135f7e
|
@ -21,6 +21,7 @@
|
|||
State string
|
||||
} %}
|
||||
|
||||
{% stripspace %}
|
||||
{% func (p *Authorize) Title() %}
|
||||
{% if p.Client.Name != "" %}
|
||||
{%= p.T("Authorize %s", p.Client.Name) %}
|
||||
|
@ -32,15 +33,15 @@
|
|||
{% func (p *Authorize) Body() %}
|
||||
<header>
|
||||
{% if p.Client.Logo != nil %}
|
||||
<img class=""
|
||||
crossorigin="anonymous"
|
||||
decoding="async"
|
||||
height="140"
|
||||
importance="high"
|
||||
loading="lazy"
|
||||
referrerpolicy="no-referrer-when-downgrade"
|
||||
src="{%s p.Client.Logo.String() %}"
|
||||
alt="{%s p.Client.Name %}"
|
||||
<img class=""{% space %}
|
||||
crossorigin="anonymous"{% space %}
|
||||
decoding="async"{% space %}
|
||||
height="140"{% space %}
|
||||
importance="high"{% space %}
|
||||
loading="lazy"{% space %}
|
||||
referrerpolicy="no-referrer-when-downgrade"{% space %}
|
||||
src="{%s p.Client.Logo.String() %}"{% space %}
|
||||
alt="{%s p.Client.Name %}"{% space %}
|
||||
width="140">
|
||||
{% endif %}
|
||||
|
||||
|
@ -63,8 +64,8 @@
|
|||
<aside>
|
||||
{% if p.CodeChallengeMethod != challenge.Und && p.CodeChallenge != "" %}
|
||||
<p class="with-icon">
|
||||
<span class="icon"
|
||||
role="img"
|
||||
<span class="icon"{% space %}
|
||||
role="img"{% space %}
|
||||
aria-label="closed lock with key">🔐</span>
|
||||
|
||||
{%= p.T(`This client uses %sPKCE%s with the %s%s%s method.`, `<abbr title="Proof of Key Code Exchange">`,
|
||||
|
@ -73,8 +74,8 @@
|
|||
{% else %}
|
||||
<details>
|
||||
<summary class="with-icon">
|
||||
<span class="icon"
|
||||
role="img"
|
||||
<span class="icon"{% space %}
|
||||
role="img"{% space %}
|
||||
aria-label="unlock">🔓</span>
|
||||
|
||||
{%= p.T(`This client does not use %sPKCE%s!`, `<abbr title="Proof of Key Code Exchange">`, `</abbr>`) %}
|
||||
|
@ -89,18 +90,18 @@
|
|||
{% endif %}
|
||||
</aside>
|
||||
|
||||
<form class=""
|
||||
accept-charset="utf-8"
|
||||
action="/authorize/verify"
|
||||
autocomplete="off"
|
||||
enctype="application/x-www-form-urlencoded"
|
||||
method="post"
|
||||
novalidate="true"
|
||||
<form class=""{% space %}
|
||||
accept-charset="utf-8"{% space %}
|
||||
action="/authorize/verify"{% space %}
|
||||
autocomplete="off"{% space %}
|
||||
enctype="application/x-www-form-urlencoded"{% space %}
|
||||
method="post"{% space %}
|
||||
novalidate="true"{% space %}
|
||||
target="_self">
|
||||
|
||||
{% if p.CSRF != nil %}
|
||||
<input type="hidden"
|
||||
name="_csrf"
|
||||
<input type="hidden"{% space %}
|
||||
name="_csrf"{% space %}
|
||||
value="{%z p.CSRF %}">
|
||||
{% endif %}
|
||||
|
||||
|
@ -110,8 +111,8 @@
|
|||
"response_type": p.ResponseType.String(),
|
||||
"state": p.State,
|
||||
} %}
|
||||
<input type="hidden"
|
||||
name="{%s key %}"
|
||||
<input type="hidden"{% space %}
|
||||
name="{%s key %}"{% space %}
|
||||
value="{%s val %}">
|
||||
{% endfor %}
|
||||
|
||||
|
@ -122,9 +123,9 @@
|
|||
{% for _, scope := range p.Scope %}
|
||||
<div>
|
||||
<label>
|
||||
<input type="checkbox"
|
||||
name="scope[]"
|
||||
value="{%s scope.String() %}"
|
||||
<input type="checkbox"{% space %}
|
||||
name="scope[]"{% space %}
|
||||
value="{%s scope.String() %}"{% space %}
|
||||
checked>
|
||||
|
||||
{%s scope.String() %}
|
||||
|
@ -143,21 +144,21 @@
|
|||
"code_challenge": p.CodeChallenge,
|
||||
"code_challenge_method": p.CodeChallengeMethod.String(),
|
||||
} %}
|
||||
<input type="hidden"
|
||||
name="{%s key %}"
|
||||
<input type="hidden"{% space %}
|
||||
name="{%s key %}"{% space %}
|
||||
value="{%s val %}">
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% if p.Me != nil %}
|
||||
<input type="hidden"
|
||||
name="me"
|
||||
<input type="hidden"{% space %}
|
||||
name="me"{% space %}
|
||||
value="{%s p.Me.String() %}">
|
||||
{% endif %}
|
||||
|
||||
{% if len(p.Providers) > 0 %}
|
||||
<select name="provider"
|
||||
autocomplete
|
||||
<select name="provider"{% space %}
|
||||
autocomplete{% space %}
|
||||
required>
|
||||
|
||||
{% for _, provider := range p.Providers %}
|
||||
|
@ -169,20 +170,20 @@
|
|||
{% endfor %}
|
||||
</select>
|
||||
{% else %}
|
||||
<input type="hidden"
|
||||
name="provider"
|
||||
<input type="hidden"{% space %}
|
||||
name="provider"{% space %}
|
||||
value="direct">
|
||||
{% endif %}
|
||||
|
||||
<button type="submit"
|
||||
name="authorize"
|
||||
<button type="submit"{% space %}
|
||||
name="authorize"{% space %}
|
||||
value="deny">
|
||||
|
||||
{%= p.T("Deny") %}
|
||||
</button>
|
||||
|
||||
<button type="submit"
|
||||
name="authorize"
|
||||
<button type="submit"{% space %}
|
||||
name="authorize"{% space %}
|
||||
value="allow">
|
||||
|
||||
{%= p.T("Allow") %}
|
||||
|
@ -194,3 +195,4 @@
|
|||
</form>
|
||||
</main>
|
||||
{% endfunc %}
|
||||
{% endstripspace %}
|
||||
|
|
|
@ -40,486 +40,446 @@ type Authorize struct {
|
|||
State string
|
||||
}
|
||||
|
||||
//line web/template/authorize.qtpl:24
|
||||
//line web/template/authorize.qtpl:25
|
||||
func (p *Authorize) StreamTitle(qw422016 *qt422016.Writer) {
|
||||
//line web/template/authorize.qtpl:24
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line web/template/authorize.qtpl:25
|
||||
if p.Client.Name != "" {
|
||||
//line web/template/authorize.qtpl:25
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line web/template/authorize.qtpl:26
|
||||
if p.Client.Name != "" {
|
||||
//line web/template/authorize.qtpl:27
|
||||
p.StreamT(qw422016, "Authorize %s", p.Client.Name)
|
||||
//line web/template/authorize.qtpl:26
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line web/template/authorize.qtpl:27
|
||||
} else {
|
||||
//line web/template/authorize.qtpl:27
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line web/template/authorize.qtpl:28
|
||||
} else {
|
||||
//line web/template/authorize.qtpl:29
|
||||
p.StreamT(qw422016, "Authorize application")
|
||||
//line web/template/authorize.qtpl:28
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line web/template/authorize.qtpl:29
|
||||
}
|
||||
//line web/template/authorize.qtpl:29
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line web/template/authorize.qtpl:30
|
||||
}
|
||||
//line web/template/authorize.qtpl:31
|
||||
}
|
||||
|
||||
//line web/template/authorize.qtpl:30
|
||||
//line web/template/authorize.qtpl:31
|
||||
func (p *Authorize) WriteTitle(qq422016 qtio422016.Writer) {
|
||||
//line web/template/authorize.qtpl:30
|
||||
//line web/template/authorize.qtpl:31
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line web/template/authorize.qtpl:30
|
||||
//line web/template/authorize.qtpl:31
|
||||
p.StreamTitle(qw422016)
|
||||
//line web/template/authorize.qtpl:30
|
||||
//line web/template/authorize.qtpl:31
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line web/template/authorize.qtpl:30
|
||||
//line web/template/authorize.qtpl:31
|
||||
}
|
||||
|
||||
//line web/template/authorize.qtpl:30
|
||||
//line web/template/authorize.qtpl:31
|
||||
func (p *Authorize) Title() string {
|
||||
//line web/template/authorize.qtpl:30
|
||||
//line web/template/authorize.qtpl:31
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line web/template/authorize.qtpl:30
|
||||
//line web/template/authorize.qtpl:31
|
||||
p.WriteTitle(qb422016)
|
||||
//line web/template/authorize.qtpl:30
|
||||
//line web/template/authorize.qtpl:31
|
||||
qs422016 := string(qb422016.B)
|
||||
//line web/template/authorize.qtpl:30
|
||||
//line web/template/authorize.qtpl:31
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line web/template/authorize.qtpl:30
|
||||
//line web/template/authorize.qtpl:31
|
||||
return qs422016
|
||||
//line web/template/authorize.qtpl:30
|
||||
//line web/template/authorize.qtpl:31
|
||||
}
|
||||
|
||||
//line web/template/authorize.qtpl:32
|
||||
//line web/template/authorize.qtpl:33
|
||||
func (p *Authorize) StreamBody(qw422016 *qt422016.Writer) {
|
||||
//line web/template/authorize.qtpl:32
|
||||
qw422016.N().S(`
|
||||
<header>
|
||||
`)
|
||||
//line web/template/authorize.qtpl:34
|
||||
//line web/template/authorize.qtpl:33
|
||||
qw422016.N().S(`<header>`)
|
||||
//line web/template/authorize.qtpl:35
|
||||
if p.Client.Logo != nil {
|
||||
//line web/template/authorize.qtpl:34
|
||||
qw422016.N().S(`
|
||||
<img class=""
|
||||
crossorigin="anonymous"
|
||||
decoding="async"
|
||||
height="140"
|
||||
importance="high"
|
||||
loading="lazy"
|
||||
referrerpolicy="no-referrer-when-downgrade"
|
||||
src="`)
|
||||
//line web/template/authorize.qtpl:35
|
||||
qw422016.N().S(`<img class=""`)
|
||||
//line web/template/authorize.qtpl:36
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:36
|
||||
qw422016.N().S(`crossorigin="anonymous"`)
|
||||
//line web/template/authorize.qtpl:37
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:37
|
||||
qw422016.N().S(`decoding="async"`)
|
||||
//line web/template/authorize.qtpl:38
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:38
|
||||
qw422016.N().S(`height="140"`)
|
||||
//line web/template/authorize.qtpl:39
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:39
|
||||
qw422016.N().S(`importance="high"`)
|
||||
//line web/template/authorize.qtpl:40
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:40
|
||||
qw422016.N().S(`loading="lazy"`)
|
||||
//line web/template/authorize.qtpl:41
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:41
|
||||
qw422016.N().S(`referrerpolicy="no-referrer-when-downgrade"`)
|
||||
//line web/template/authorize.qtpl:42
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:42
|
||||
qw422016.N().S(`src="`)
|
||||
//line web/template/authorize.qtpl:43
|
||||
qw422016.E().S(p.Client.Logo.String())
|
||||
//line web/template/authorize.qtpl:42
|
||||
qw422016.N().S(`"
|
||||
alt="`)
|
||||
//line web/template/authorize.qtpl:43
|
||||
qw422016.N().S(`"`)
|
||||
//line web/template/authorize.qtpl:43
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:43
|
||||
qw422016.N().S(`alt="`)
|
||||
//line web/template/authorize.qtpl:44
|
||||
qw422016.E().S(p.Client.Name)
|
||||
//line web/template/authorize.qtpl:43
|
||||
qw422016.N().S(`"
|
||||
width="140">
|
||||
`)
|
||||
//line web/template/authorize.qtpl:45
|
||||
//line web/template/authorize.qtpl:44
|
||||
qw422016.N().S(`"`)
|
||||
//line web/template/authorize.qtpl:44
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:44
|
||||
qw422016.N().S(`width="140">`)
|
||||
//line web/template/authorize.qtpl:46
|
||||
}
|
||||
//line web/template/authorize.qtpl:45
|
||||
qw422016.N().S(`
|
||||
|
||||
<h2>
|
||||
`)
|
||||
//line web/template/authorize.qtpl:48
|
||||
if p.Client.URL != nil {
|
||||
//line web/template/authorize.qtpl:48
|
||||
qw422016.N().S(`
|
||||
<a href="`)
|
||||
//line web/template/authorize.qtpl:46
|
||||
qw422016.N().S(`<h2>`)
|
||||
//line web/template/authorize.qtpl:49
|
||||
if p.Client.URL != nil {
|
||||
//line web/template/authorize.qtpl:49
|
||||
qw422016.N().S(`<a href="`)
|
||||
//line web/template/authorize.qtpl:50
|
||||
qw422016.E().S(p.Client.URL.String())
|
||||
//line web/template/authorize.qtpl:49
|
||||
qw422016.N().S(`">
|
||||
`)
|
||||
//line web/template/authorize.qtpl:50
|
||||
}
|
||||
//line web/template/authorize.qtpl:50
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
qw422016.N().S(`">`)
|
||||
//line web/template/authorize.qtpl:51
|
||||
}
|
||||
//line web/template/authorize.qtpl:52
|
||||
if p.Client.Name != "" {
|
||||
//line web/template/authorize.qtpl:51
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line web/template/authorize.qtpl:52
|
||||
//line web/template/authorize.qtpl:53
|
||||
qw422016.E().S(p.Client.Name)
|
||||
//line web/template/authorize.qtpl:52
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line web/template/authorize.qtpl:53
|
||||
//line web/template/authorize.qtpl:54
|
||||
} else {
|
||||
//line web/template/authorize.qtpl:53
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line web/template/authorize.qtpl:54
|
||||
//line web/template/authorize.qtpl:55
|
||||
qw422016.E().S(p.Client.ID.String())
|
||||
//line web/template/authorize.qtpl:54
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line web/template/authorize.qtpl:55
|
||||
}
|
||||
//line web/template/authorize.qtpl:55
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line web/template/authorize.qtpl:56
|
||||
}
|
||||
//line web/template/authorize.qtpl:57
|
||||
if p.Client.URL != nil {
|
||||
//line web/template/authorize.qtpl:56
|
||||
qw422016.N().S(`
|
||||
</a>
|
||||
`)
|
||||
//line web/template/authorize.qtpl:58
|
||||
//line web/template/authorize.qtpl:57
|
||||
qw422016.N().S(`</a>`)
|
||||
//line web/template/authorize.qtpl:59
|
||||
}
|
||||
//line web/template/authorize.qtpl:58
|
||||
qw422016.N().S(`
|
||||
</h2>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<aside>
|
||||
`)
|
||||
//line web/template/authorize.qtpl:64
|
||||
//line web/template/authorize.qtpl:59
|
||||
qw422016.N().S(`</h2></header><main><aside>`)
|
||||
//line web/template/authorize.qtpl:65
|
||||
if p.CodeChallengeMethod != challenge.Und && p.CodeChallenge != "" {
|
||||
//line web/template/authorize.qtpl:64
|
||||
qw422016.N().S(`
|
||||
<p class="with-icon">
|
||||
<span class="icon"
|
||||
role="img"
|
||||
aria-label="closed lock with key">🔐</span>
|
||||
|
||||
`)
|
||||
//line web/template/authorize.qtpl:70
|
||||
//line web/template/authorize.qtpl:65
|
||||
qw422016.N().S(`<p class="with-icon"><span class="icon"`)
|
||||
//line web/template/authorize.qtpl:67
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:67
|
||||
qw422016.N().S(`role="img"`)
|
||||
//line web/template/authorize.qtpl:68
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:68
|
||||
qw422016.N().S(`aria-label="closed lock with key">🔐</span>`)
|
||||
//line web/template/authorize.qtpl:71
|
||||
p.StreamT(qw422016, `This client uses %sPKCE%s with the %s%s%s method.`, `<abbr title="Proof of Key Code Exchange">`,
|
||||
`</abbr>`, `<code>`, p.CodeChallengeMethod, `</code>`)
|
||||
//line web/template/authorize.qtpl:71
|
||||
qw422016.N().S(`
|
||||
</p>
|
||||
`)
|
||||
//line web/template/authorize.qtpl:73
|
||||
//line web/template/authorize.qtpl:72
|
||||
qw422016.N().S(`</p>`)
|
||||
//line web/template/authorize.qtpl:74
|
||||
} else {
|
||||
//line web/template/authorize.qtpl:73
|
||||
qw422016.N().S(`
|
||||
<details>
|
||||
<summary class="with-icon">
|
||||
<span class="icon"
|
||||
role="img"
|
||||
aria-label="unlock">🔓</span>
|
||||
|
||||
`)
|
||||
//line web/template/authorize.qtpl:80
|
||||
//line web/template/authorize.qtpl:74
|
||||
qw422016.N().S(`<details><summary class="with-icon"><span class="icon"`)
|
||||
//line web/template/authorize.qtpl:77
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:77
|
||||
qw422016.N().S(`role="img"`)
|
||||
//line web/template/authorize.qtpl:78
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:78
|
||||
qw422016.N().S(`aria-label="unlock">🔓</span>`)
|
||||
//line web/template/authorize.qtpl:81
|
||||
p.StreamT(qw422016, `This client does not use %sPKCE%s!`, `<abbr title="Proof of Key Code Exchange">`, `</abbr>`)
|
||||
//line web/template/authorize.qtpl:80
|
||||
qw422016.N().S(`
|
||||
</summary>
|
||||
<p>
|
||||
`)
|
||||
//line web/template/authorize.qtpl:83
|
||||
//line web/template/authorize.qtpl:81
|
||||
qw422016.N().S(`</summary><p>`)
|
||||
//line web/template/authorize.qtpl:84
|
||||
p.StreamT(qw422016, `%sProof of Key Code Exchange%s is a mechanism that protects against attackers in the middle hijacking `+
|
||||
`your application's authentication process. You can still authorize this application without this protection, `+
|
||||
`but you must independently verify the security of this connection. If you have any doubts - stop the process `+
|
||||
` and contact the developers.`, `<dfn id="PKCE">`, `</dfn>`)
|
||||
//line web/template/authorize.qtpl:86
|
||||
qw422016.N().S(`
|
||||
</p>
|
||||
</details>
|
||||
`)
|
||||
//line web/template/authorize.qtpl:89
|
||||
//line web/template/authorize.qtpl:87
|
||||
qw422016.N().S(`</p></details>`)
|
||||
//line web/template/authorize.qtpl:90
|
||||
}
|
||||
//line web/template/authorize.qtpl:89
|
||||
qw422016.N().S(`
|
||||
</aside>
|
||||
|
||||
<form class=""
|
||||
accept-charset="utf-8"
|
||||
action="/authorize/verify"
|
||||
autocomplete="off"
|
||||
enctype="application/x-www-form-urlencoded"
|
||||
method="post"
|
||||
novalidate="true"
|
||||
target="_self">
|
||||
|
||||
`)
|
||||
//line web/template/authorize.qtpl:101
|
||||
//line web/template/authorize.qtpl:90
|
||||
qw422016.N().S(`</aside><form class=""`)
|
||||
//line web/template/authorize.qtpl:93
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:93
|
||||
qw422016.N().S(`accept-charset="utf-8"`)
|
||||
//line web/template/authorize.qtpl:94
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:94
|
||||
qw422016.N().S(`action="/authorize/verify"`)
|
||||
//line web/template/authorize.qtpl:95
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:95
|
||||
qw422016.N().S(`autocomplete="off"`)
|
||||
//line web/template/authorize.qtpl:96
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:96
|
||||
qw422016.N().S(`enctype="application/x-www-form-urlencoded"`)
|
||||
//line web/template/authorize.qtpl:97
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:97
|
||||
qw422016.N().S(`method="post"`)
|
||||
//line web/template/authorize.qtpl:98
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:98
|
||||
qw422016.N().S(`novalidate="true"`)
|
||||
//line web/template/authorize.qtpl:99
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:99
|
||||
qw422016.N().S(`target="_self">`)
|
||||
//line web/template/authorize.qtpl:102
|
||||
if p.CSRF != nil {
|
||||
//line web/template/authorize.qtpl:101
|
||||
qw422016.N().S(`
|
||||
<input type="hidden"
|
||||
name="_csrf"
|
||||
value="`)
|
||||
//line web/template/authorize.qtpl:102
|
||||
qw422016.N().S(`<input type="hidden"`)
|
||||
//line web/template/authorize.qtpl:103
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:103
|
||||
qw422016.N().S(`name="_csrf"`)
|
||||
//line web/template/authorize.qtpl:104
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:104
|
||||
qw422016.N().S(`value="`)
|
||||
//line web/template/authorize.qtpl:105
|
||||
qw422016.E().Z(p.CSRF)
|
||||
//line web/template/authorize.qtpl:104
|
||||
qw422016.N().S(`">
|
||||
`)
|
||||
//line web/template/authorize.qtpl:105
|
||||
qw422016.N().S(`">`)
|
||||
//line web/template/authorize.qtpl:106
|
||||
}
|
||||
//line web/template/authorize.qtpl:105
|
||||
qw422016.N().S(`
|
||||
|
||||
`)
|
||||
//line web/template/authorize.qtpl:107
|
||||
//line web/template/authorize.qtpl:108
|
||||
for key, val := range map[string]string{
|
||||
"client_id": p.Client.ID.String(),
|
||||
"redirect_uri": p.RedirectURI.String(),
|
||||
"response_type": p.ResponseType.String(),
|
||||
"state": p.State,
|
||||
} {
|
||||
//line web/template/authorize.qtpl:112
|
||||
qw422016.N().S(`
|
||||
<input type="hidden"
|
||||
name="`)
|
||||
//line web/template/authorize.qtpl:113
|
||||
qw422016.N().S(`<input type="hidden"`)
|
||||
//line web/template/authorize.qtpl:114
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:114
|
||||
qw422016.N().S(`name="`)
|
||||
//line web/template/authorize.qtpl:115
|
||||
qw422016.E().S(key)
|
||||
//line web/template/authorize.qtpl:114
|
||||
qw422016.N().S(`"
|
||||
value="`)
|
||||
//line web/template/authorize.qtpl:115
|
||||
qw422016.N().S(`"`)
|
||||
//line web/template/authorize.qtpl:115
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:115
|
||||
qw422016.N().S(`value="`)
|
||||
//line web/template/authorize.qtpl:116
|
||||
qw422016.E().S(val)
|
||||
//line web/template/authorize.qtpl:115
|
||||
qw422016.N().S(`">
|
||||
`)
|
||||
//line web/template/authorize.qtpl:116
|
||||
qw422016.N().S(`">`)
|
||||
//line web/template/authorize.qtpl:117
|
||||
}
|
||||
//line web/template/authorize.qtpl:116
|
||||
qw422016.N().S(`
|
||||
|
||||
`)
|
||||
//line web/template/authorize.qtpl:118
|
||||
//line web/template/authorize.qtpl:119
|
||||
if len(p.Scope) > 0 {
|
||||
//line web/template/authorize.qtpl:118
|
||||
qw422016.N().S(`
|
||||
<fieldset>
|
||||
<legend>`)
|
||||
//line web/template/authorize.qtpl:120
|
||||
//line web/template/authorize.qtpl:119
|
||||
qw422016.N().S(`<fieldset><legend>`)
|
||||
//line web/template/authorize.qtpl:121
|
||||
p.StreamT(qw422016, "Scopes")
|
||||
//line web/template/authorize.qtpl:120
|
||||
qw422016.N().S(`</legend>
|
||||
|
||||
`)
|
||||
//line web/template/authorize.qtpl:122
|
||||
//line web/template/authorize.qtpl:121
|
||||
qw422016.N().S(`</legend>`)
|
||||
//line web/template/authorize.qtpl:123
|
||||
for _, scope := range p.Scope {
|
||||
//line web/template/authorize.qtpl:122
|
||||
qw422016.N().S(`
|
||||
<div>
|
||||
<label>
|
||||
<input type="checkbox"
|
||||
name="scope[]"
|
||||
value="`)
|
||||
//line web/template/authorize.qtpl:123
|
||||
qw422016.N().S(`<div><label><input type="checkbox"`)
|
||||
//line web/template/authorize.qtpl:126
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:126
|
||||
qw422016.N().S(`name="scope[]"`)
|
||||
//line web/template/authorize.qtpl:127
|
||||
qw422016.E().S(scope.String())
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:127
|
||||
qw422016.N().S(`"
|
||||
checked>
|
||||
|
||||
`)
|
||||
//line web/template/authorize.qtpl:130
|
||||
qw422016.N().S(`value="`)
|
||||
//line web/template/authorize.qtpl:128
|
||||
qw422016.E().S(scope.String())
|
||||
//line web/template/authorize.qtpl:130
|
||||
qw422016.N().S(`
|
||||
</label>
|
||||
</div>
|
||||
`)
|
||||
//line web/template/authorize.qtpl:133
|
||||
//line web/template/authorize.qtpl:128
|
||||
qw422016.N().S(`"`)
|
||||
//line web/template/authorize.qtpl:128
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:128
|
||||
qw422016.N().S(`checked>`)
|
||||
//line web/template/authorize.qtpl:131
|
||||
qw422016.E().S(scope.String())
|
||||
//line web/template/authorize.qtpl:131
|
||||
qw422016.N().S(`</label></div>`)
|
||||
//line web/template/authorize.qtpl:134
|
||||
}
|
||||
//line web/template/authorize.qtpl:133
|
||||
qw422016.N().S(`
|
||||
</fieldset>
|
||||
`)
|
||||
//line web/template/authorize.qtpl:135
|
||||
//line web/template/authorize.qtpl:134
|
||||
qw422016.N().S(`</fieldset>`)
|
||||
//line web/template/authorize.qtpl:136
|
||||
} else {
|
||||
//line web/template/authorize.qtpl:135
|
||||
qw422016.N().S(`
|
||||
<aside>
|
||||
<p>`)
|
||||
//line web/template/authorize.qtpl:137
|
||||
//line web/template/authorize.qtpl:136
|
||||
qw422016.N().S(`<aside><p>`)
|
||||
//line web/template/authorize.qtpl:138
|
||||
p.StreamT(qw422016, `No scopes is requested: the application will only get your profile URL.`)
|
||||
//line web/template/authorize.qtpl:137
|
||||
qw422016.N().S(`</p>
|
||||
</aside>
|
||||
`)
|
||||
//line web/template/authorize.qtpl:139
|
||||
//line web/template/authorize.qtpl:138
|
||||
qw422016.N().S(`</p></aside>`)
|
||||
//line web/template/authorize.qtpl:140
|
||||
}
|
||||
//line web/template/authorize.qtpl:139
|
||||
qw422016.N().S(`
|
||||
|
||||
`)
|
||||
//line web/template/authorize.qtpl:141
|
||||
if p.CodeChallenge != "" {
|
||||
//line web/template/authorize.qtpl:141
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line web/template/authorize.qtpl:142
|
||||
if p.CodeChallenge != "" {
|
||||
//line web/template/authorize.qtpl:143
|
||||
for key, val := range map[string]string{
|
||||
"code_challenge": p.CodeChallenge,
|
||||
"code_challenge_method": p.CodeChallengeMethod.String(),
|
||||
} {
|
||||
//line web/template/authorize.qtpl:145
|
||||
qw422016.N().S(`
|
||||
<input type="hidden"
|
||||
name="`)
|
||||
//line web/template/authorize.qtpl:146
|
||||
qw422016.N().S(`<input type="hidden"`)
|
||||
//line web/template/authorize.qtpl:147
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:147
|
||||
qw422016.N().S(`name="`)
|
||||
//line web/template/authorize.qtpl:148
|
||||
qw422016.E().S(key)
|
||||
//line web/template/authorize.qtpl:147
|
||||
qw422016.N().S(`"
|
||||
value="`)
|
||||
//line web/template/authorize.qtpl:148
|
||||
qw422016.N().S(`"`)
|
||||
//line web/template/authorize.qtpl:148
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:148
|
||||
qw422016.N().S(`value="`)
|
||||
//line web/template/authorize.qtpl:149
|
||||
qw422016.E().S(val)
|
||||
//line web/template/authorize.qtpl:148
|
||||
qw422016.N().S(`">
|
||||
`)
|
||||
//line web/template/authorize.qtpl:149
|
||||
qw422016.N().S(`">`)
|
||||
//line web/template/authorize.qtpl:150
|
||||
}
|
||||
//line web/template/authorize.qtpl:149
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line web/template/authorize.qtpl:150
|
||||
//line web/template/authorize.qtpl:151
|
||||
}
|
||||
//line web/template/authorize.qtpl:150
|
||||
qw422016.N().S(`
|
||||
|
||||
`)
|
||||
//line web/template/authorize.qtpl:152
|
||||
//line web/template/authorize.qtpl:153
|
||||
if p.Me != nil {
|
||||
//line web/template/authorize.qtpl:152
|
||||
qw422016.N().S(`
|
||||
<input type="hidden"
|
||||
name="me"
|
||||
value="`)
|
||||
//line web/template/authorize.qtpl:153
|
||||
qw422016.N().S(`<input type="hidden"`)
|
||||
//line web/template/authorize.qtpl:154
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:154
|
||||
qw422016.N().S(`name="me"`)
|
||||
//line web/template/authorize.qtpl:155
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:155
|
||||
qw422016.N().S(`value="`)
|
||||
//line web/template/authorize.qtpl:156
|
||||
qw422016.E().S(p.Me.String())
|
||||
//line web/template/authorize.qtpl:155
|
||||
qw422016.N().S(`">
|
||||
`)
|
||||
//line web/template/authorize.qtpl:156
|
||||
qw422016.N().S(`">`)
|
||||
//line web/template/authorize.qtpl:157
|
||||
}
|
||||
//line web/template/authorize.qtpl:156
|
||||
qw422016.N().S(`
|
||||
|
||||
`)
|
||||
//line web/template/authorize.qtpl:158
|
||||
//line web/template/authorize.qtpl:159
|
||||
if len(p.Providers) > 0 {
|
||||
//line web/template/authorize.qtpl:158
|
||||
qw422016.N().S(`
|
||||
<select name="provider"
|
||||
autocomplete
|
||||
required>
|
||||
|
||||
`)
|
||||
//line web/template/authorize.qtpl:163
|
||||
//line web/template/authorize.qtpl:159
|
||||
qw422016.N().S(`<select name="provider"`)
|
||||
//line web/template/authorize.qtpl:160
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:160
|
||||
qw422016.N().S(`autocomplete`)
|
||||
//line web/template/authorize.qtpl:161
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:161
|
||||
qw422016.N().S(`required>`)
|
||||
//line web/template/authorize.qtpl:164
|
||||
for _, provider := range p.Providers {
|
||||
//line web/template/authorize.qtpl:163
|
||||
qw422016.N().S(`
|
||||
<option value="`)
|
||||
//line web/template/authorize.qtpl:164
|
||||
qw422016.N().S(`<option value="`)
|
||||
//line web/template/authorize.qtpl:165
|
||||
qw422016.E().S(provider.UID)
|
||||
//line web/template/authorize.qtpl:164
|
||||
qw422016.N().S(`"
|
||||
`)
|
||||
//line web/template/authorize.qtpl:165
|
||||
qw422016.N().S(`"`)
|
||||
//line web/template/authorize.qtpl:166
|
||||
if provider.UID == "mastodon" {
|
||||
//line web/template/authorize.qtpl:165
|
||||
//line web/template/authorize.qtpl:166
|
||||
qw422016.N().S(`selected`)
|
||||
//line web/template/authorize.qtpl:165
|
||||
//line web/template/authorize.qtpl:166
|
||||
}
|
||||
//line web/template/authorize.qtpl:165
|
||||
qw422016.N().S(`>
|
||||
|
||||
`)
|
||||
//line web/template/authorize.qtpl:167
|
||||
//line web/template/authorize.qtpl:166
|
||||
qw422016.N().S(`>`)
|
||||
//line web/template/authorize.qtpl:168
|
||||
qw422016.E().S(provider.Name)
|
||||
//line web/template/authorize.qtpl:167
|
||||
qw422016.N().S(`
|
||||
</option>
|
||||
`)
|
||||
//line web/template/authorize.qtpl:169
|
||||
//line web/template/authorize.qtpl:168
|
||||
qw422016.N().S(`</option>`)
|
||||
//line web/template/authorize.qtpl:170
|
||||
}
|
||||
//line web/template/authorize.qtpl:169
|
||||
qw422016.N().S(`
|
||||
</select>
|
||||
`)
|
||||
//line web/template/authorize.qtpl:171
|
||||
//line web/template/authorize.qtpl:170
|
||||
qw422016.N().S(`</select>`)
|
||||
//line web/template/authorize.qtpl:172
|
||||
} else {
|
||||
//line web/template/authorize.qtpl:171
|
||||
qw422016.N().S(`
|
||||
<input type="hidden"
|
||||
name="provider"
|
||||
value="direct">
|
||||
`)
|
||||
//line web/template/authorize.qtpl:175
|
||||
//line web/template/authorize.qtpl:172
|
||||
qw422016.N().S(`<input type="hidden"`)
|
||||
//line web/template/authorize.qtpl:173
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:173
|
||||
qw422016.N().S(`name="provider"`)
|
||||
//line web/template/authorize.qtpl:174
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:174
|
||||
qw422016.N().S(`value="direct">`)
|
||||
//line web/template/authorize.qtpl:176
|
||||
}
|
||||
//line web/template/authorize.qtpl:175
|
||||
qw422016.N().S(`
|
||||
|
||||
<button type="submit"
|
||||
name="authorize"
|
||||
value="deny">
|
||||
|
||||
`)
|
||||
//line web/template/authorize.qtpl:181
|
||||
//line web/template/authorize.qtpl:176
|
||||
qw422016.N().S(`<button type="submit"`)
|
||||
//line web/template/authorize.qtpl:178
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:178
|
||||
qw422016.N().S(`name="authorize"`)
|
||||
//line web/template/authorize.qtpl:179
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:179
|
||||
qw422016.N().S(`value="deny">`)
|
||||
//line web/template/authorize.qtpl:182
|
||||
p.StreamT(qw422016, "Deny")
|
||||
//line web/template/authorize.qtpl:181
|
||||
qw422016.N().S(`
|
||||
</button>
|
||||
|
||||
<button type="submit"
|
||||
name="authorize"
|
||||
value="allow">
|
||||
|
||||
`)
|
||||
//line web/template/authorize.qtpl:188
|
||||
//line web/template/authorize.qtpl:182
|
||||
qw422016.N().S(`</button><button type="submit"`)
|
||||
//line web/template/authorize.qtpl:185
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:185
|
||||
qw422016.N().S(`name="authorize"`)
|
||||
//line web/template/authorize.qtpl:186
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/authorize.qtpl:186
|
||||
qw422016.N().S(`value="allow">`)
|
||||
//line web/template/authorize.qtpl:189
|
||||
p.StreamT(qw422016, "Allow")
|
||||
//line web/template/authorize.qtpl:188
|
||||
qw422016.N().S(`
|
||||
</button>
|
||||
|
||||
<aside>
|
||||
<p>`)
|
||||
//line web/template/authorize.qtpl:192
|
||||
//line web/template/authorize.qtpl:189
|
||||
qw422016.N().S(`</button><aside><p>`)
|
||||
//line web/template/authorize.qtpl:193
|
||||
p.StreamT(qw422016, `You will be redirected to %s%s%s`, `<code>`, p.RedirectURI, `</code>`)
|
||||
//line web/template/authorize.qtpl:192
|
||||
qw422016.N().S(`</p>
|
||||
</aside>
|
||||
</form>
|
||||
</main>
|
||||
`)
|
||||
//line web/template/authorize.qtpl:196
|
||||
//line web/template/authorize.qtpl:193
|
||||
qw422016.N().S(`</p></aside></form></main>`)
|
||||
//line web/template/authorize.qtpl:197
|
||||
}
|
||||
|
||||
//line web/template/authorize.qtpl:196
|
||||
//line web/template/authorize.qtpl:197
|
||||
func (p *Authorize) WriteBody(qq422016 qtio422016.Writer) {
|
||||
//line web/template/authorize.qtpl:196
|
||||
//line web/template/authorize.qtpl:197
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line web/template/authorize.qtpl:196
|
||||
//line web/template/authorize.qtpl:197
|
||||
p.StreamBody(qw422016)
|
||||
//line web/template/authorize.qtpl:196
|
||||
//line web/template/authorize.qtpl:197
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line web/template/authorize.qtpl:196
|
||||
//line web/template/authorize.qtpl:197
|
||||
}
|
||||
|
||||
//line web/template/authorize.qtpl:196
|
||||
//line web/template/authorize.qtpl:197
|
||||
func (p *Authorize) Body() string {
|
||||
//line web/template/authorize.qtpl:196
|
||||
//line web/template/authorize.qtpl:197
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line web/template/authorize.qtpl:196
|
||||
//line web/template/authorize.qtpl:197
|
||||
p.WriteBody(qb422016)
|
||||
//line web/template/authorize.qtpl:196
|
||||
//line web/template/authorize.qtpl:197
|
||||
qs422016 := string(qb422016.B)
|
||||
//line web/template/authorize.qtpl:196
|
||||
//line web/template/authorize.qtpl:197
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line web/template/authorize.qtpl:196
|
||||
//line web/template/authorize.qtpl:197
|
||||
return qs422016
|
||||
//line web/template/authorize.qtpl:196
|
||||
//line web/template/authorize.qtpl:197
|
||||
}
|
||||
|
|
|
@ -10,11 +10,11 @@
|
|||
Token *domain.Token
|
||||
} %}
|
||||
|
||||
{% collapsespace %}
|
||||
{% stripspace %}
|
||||
{% func (p *Callback) Body() %}
|
||||
{% if p.Token != nil %}
|
||||
<h1>{%s p.Token.Me.String() %}</h1>
|
||||
<small>{%s p.Token.AccessToken %}</small>
|
||||
{% endif %}
|
||||
{% endfunc %}
|
||||
{% endcollapsespace %}
|
||||
{% endstripspace %}
|
||||
|
|
|
@ -31,24 +31,20 @@ type Callback struct {
|
|||
|
||||
//line web/template/callback.qtpl:14
|
||||
func (p *Callback) StreamBody(qw422016 *qt422016.Writer) {
|
||||
//line web/template/callback.qtpl:14
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/callback.qtpl:15
|
||||
if p.Token != nil {
|
||||
//line web/template/callback.qtpl:15
|
||||
qw422016.N().S(` <h1>`)
|
||||
qw422016.N().S(`<h1>`)
|
||||
//line web/template/callback.qtpl:16
|
||||
qw422016.E().S(p.Token.Me.String())
|
||||
//line web/template/callback.qtpl:16
|
||||
qw422016.N().S(`</h1> <small>`)
|
||||
qw422016.N().S(`</h1><small>`)
|
||||
//line web/template/callback.qtpl:17
|
||||
qw422016.E().S(p.Token.AccessToken)
|
||||
//line web/template/callback.qtpl:17
|
||||
qw422016.N().S(`</small> `)
|
||||
qw422016.N().S(`</small>`)
|
||||
//line web/template/callback.qtpl:18
|
||||
}
|
||||
//line web/template/callback.qtpl:18
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/callback.qtpl:19
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
Error error
|
||||
} %}
|
||||
|
||||
{% collapsespace %}
|
||||
{% stripspace %}
|
||||
{% func (p *Error) Title() %}
|
||||
{%= p.T("Error") %}
|
||||
{% endfunc %}
|
||||
|
@ -41,4 +41,4 @@
|
|||
{% endif %}
|
||||
</main>
|
||||
{% endfunc %}
|
||||
{% endcollapsespace %}
|
||||
{% endstripspace %}
|
||||
|
|
|
@ -33,12 +33,8 @@ type Error struct {
|
|||
|
||||
//line web/template/error.qtpl:16
|
||||
func (p *Error) StreamTitle(qw422016 *qt422016.Writer) {
|
||||
//line web/template/error.qtpl:16
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/error.qtpl:17
|
||||
p.StreamT(qw422016, "Error")
|
||||
//line web/template/error.qtpl:17
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/error.qtpl:18
|
||||
}
|
||||
|
||||
|
@ -71,64 +67,58 @@ func (p *Error) Title() string {
|
|||
//line web/template/error.qtpl:20
|
||||
func (p *Error) StreamBody(qw422016 *qt422016.Writer) {
|
||||
//line web/template/error.qtpl:20
|
||||
qw422016.N().S(` <main> `)
|
||||
qw422016.N().S(`<main>`)
|
||||
//line web/template/error.qtpl:22
|
||||
err := new(domain.Error)
|
||||
|
||||
//line web/template/error.qtpl:22
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/error.qtpl:23
|
||||
if errors.As(p.Error, err) {
|
||||
//line web/template/error.qtpl:23
|
||||
qw422016.N().S(` <h1>`)
|
||||
qw422016.N().S(`<h1>`)
|
||||
//line web/template/error.qtpl:24
|
||||
qw422016.E().S(err.Code.String())
|
||||
//line web/template/error.qtpl:24
|
||||
qw422016.N().S(`</h1> `)
|
||||
qw422016.N().S(`</h1>`)
|
||||
//line web/template/error.qtpl:26
|
||||
if err.Description != "" {
|
||||
//line web/template/error.qtpl:26
|
||||
qw422016.N().S(` <p>`)
|
||||
qw422016.N().S(`<p>`)
|
||||
//line web/template/error.qtpl:27
|
||||
qw422016.E().S(err.Description)
|
||||
//line web/template/error.qtpl:27
|
||||
qw422016.N().S(`</p> `)
|
||||
qw422016.N().S(`</p>`)
|
||||
//line web/template/error.qtpl:28
|
||||
}
|
||||
//line web/template/error.qtpl:28
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/error.qtpl:30
|
||||
if err.URI != "" {
|
||||
//line web/template/error.qtpl:30
|
||||
qw422016.N().S(` <a rel="noreferrer noopener" href="`)
|
||||
qw422016.N().S(`<a rel="noreferrer noopener"href="`)
|
||||
//line web/template/error.qtpl:32
|
||||
qw422016.E().S(err.URI)
|
||||
//line web/template/error.qtpl:32
|
||||
qw422016.N().S(`" target="_blank"> `)
|
||||
qw422016.N().S(`"target="_blank">`)
|
||||
//line web/template/error.qtpl:35
|
||||
p.StreamT(qw422016, "How do I fix it?")
|
||||
//line web/template/error.qtpl:35
|
||||
qw422016.N().S(` </a> `)
|
||||
qw422016.N().S(`</a>`)
|
||||
//line web/template/error.qtpl:37
|
||||
}
|
||||
//line web/template/error.qtpl:37
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/error.qtpl:38
|
||||
} else {
|
||||
//line web/template/error.qtpl:38
|
||||
qw422016.N().S(` <h1>`)
|
||||
qw422016.N().S(`<h1>`)
|
||||
//line web/template/error.qtpl:39
|
||||
p.StreamT(qw422016, "Error")
|
||||
//line web/template/error.qtpl:39
|
||||
qw422016.N().S(`</h1> <p>`)
|
||||
qw422016.N().S(`</h1><p>`)
|
||||
//line web/template/error.qtpl:40
|
||||
qw422016.E().S(p.Error.Error())
|
||||
//line web/template/error.qtpl:40
|
||||
qw422016.N().S(`</p> `)
|
||||
qw422016.N().S(`</p>`)
|
||||
//line web/template/error.qtpl:41
|
||||
}
|
||||
//line web/template/error.qtpl:41
|
||||
qw422016.N().S(` </main> `)
|
||||
qw422016.N().S(`</main>`)
|
||||
//line web/template/error.qtpl:43
|
||||
}
|
||||
|
||||
|
|
|
@ -13,67 +13,60 @@
|
|||
State string
|
||||
} %}
|
||||
|
||||
{% collapsespace %}
|
||||
{% stripspace %}
|
||||
{% func (p *Home) Head() %}
|
||||
{%= p.BaseOf.Head() %}
|
||||
{% for i := range p.Client.RedirectURI %}
|
||||
<link rel="redirect_uri"
|
||||
href="{%s p.Client.RedirectURI[i].String() %}">
|
||||
<link rel="redirect_uri" href="{%s p.Client.RedirectURI[i].String() %}">
|
||||
{% endfor %}
|
||||
{% endfunc %}
|
||||
|
||||
{% func (p *Home) Body() %}
|
||||
<header class="h-app h-x-app">
|
||||
{% if p.Client.Logo != nil %}
|
||||
<img class="u-logo"
|
||||
src="{%s p.Client.Logo.String() %}"
|
||||
alt="{%s p.Client.Name %}"
|
||||
crossorigin="anonymous"
|
||||
decoding="async"
|
||||
height="140"
|
||||
importance="high"
|
||||
referrerpolicy="no-referrer-when-downgrade"
|
||||
<img class="u-logo"{% space %}
|
||||
src="{%s p.Client.Logo.String() %}"{% space %}
|
||||
alt="{%s p.Client.Name %}"{% space %}
|
||||
crossorigin="anonymous"{% space %}
|
||||
decoding="async"{% space %}
|
||||
height="140"{% space %}
|
||||
importance="high"{% space %}
|
||||
referrerpolicy="no-referrer-when-downgrade"{% space %}
|
||||
width="140">
|
||||
{% endif %}
|
||||
|
||||
<h1>
|
||||
<a class="p-name u-url"
|
||||
href="{%s p.Client.URL.String() %}">
|
||||
|
||||
{%s p.Client.Name %}
|
||||
</a>
|
||||
</h1>
|
||||
<h1><a class="p-name u-url" href="{%s p.Client.URL.String() %}">{%s p.Client.Name %}</a></h1>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<form class=""
|
||||
method="get"
|
||||
action="/authorize"
|
||||
enctype="application/x-www-form-urlencoded"
|
||||
accept-charset="utf-8"
|
||||
<form class=""{% space %}
|
||||
method="get"{% space %}
|
||||
action="/authorize"{% space %}
|
||||
enctype="application/x-www-form-urlencoded"{% space %}
|
||||
accept-charset="utf-8"{% space %}
|
||||
target="_self">
|
||||
|
||||
{% for name, value := range map[string]string{
|
||||
"client_id": p.Client.ID.String(),
|
||||
"redirect_uri": p.Client.RedirectURI[0].String(),
|
||||
"response_type": response.Code.String(),
|
||||
"scope": domain.Scopes{scope.Email, scope.Profile}.String(),
|
||||
"state": p.State,
|
||||
} %}
|
||||
<input type="hidden"
|
||||
name="{%s name %}"
|
||||
value="{%s value %}">
|
||||
{% for _, field := range [][2]string{
|
||||
{"client_id", p.Client.ID.String()},
|
||||
{"redirect_uri", p.Client.RedirectURI[0].String()},
|
||||
{"response_type", response.Code.String()},
|
||||
{"scope", domain.Scopes{scope.Email, scope.Profile}.String()},
|
||||
{"state", p.State},
|
||||
} %}
|
||||
<input type="hidden"{% space %}
|
||||
name="{%s field[0] %}"{% space %}
|
||||
value="{%s field[1] %}">
|
||||
{% endfor %}
|
||||
|
||||
<input type="url"
|
||||
name="me"
|
||||
placeholder="https://example.com/"
|
||||
inputmode="url"
|
||||
autocomplete="url"
|
||||
<input type="url"{% space %}
|
||||
name="me"{% space %}
|
||||
placeholder="https://example.com/"{% space %}
|
||||
inputmode="url"{% space %}
|
||||
autocomplete="url"{% space %}
|
||||
required>
|
||||
|
||||
<button type="submit">{%= p.T("Sign In") %}</button>
|
||||
</form>
|
||||
</main>
|
||||
{% endfunc %}
|
||||
{% endcollapsespace %}
|
||||
{% endstripspace %}
|
||||
|
|
|
@ -34,132 +34,206 @@ type Home struct {
|
|||
|
||||
//line web/template/home.qtpl:17
|
||||
func (p *Home) StreamHead(qw422016 *qt422016.Writer) {
|
||||
//line web/template/home.qtpl:17
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:18
|
||||
p.BaseOf.StreamHead(qw422016)
|
||||
//line web/template/home.qtpl:18
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:19
|
||||
for i := range p.Client.RedirectURI {
|
||||
//line web/template/home.qtpl:19
|
||||
qw422016.N().S(` <link rel="redirect_uri" href="`)
|
||||
//line web/template/home.qtpl:21
|
||||
qw422016.N().S(`<link rel="redirect_uri" href="`)
|
||||
//line web/template/home.qtpl:20
|
||||
qw422016.E().S(p.Client.RedirectURI[i].String())
|
||||
//line web/template/home.qtpl:20
|
||||
qw422016.N().S(`">`)
|
||||
//line web/template/home.qtpl:21
|
||||
qw422016.N().S(`"> `)
|
||||
//line web/template/home.qtpl:22
|
||||
}
|
||||
//line web/template/home.qtpl:22
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:23
|
||||
}
|
||||
|
||||
//line web/template/home.qtpl:23
|
||||
//line web/template/home.qtpl:22
|
||||
func (p *Home) WriteHead(qq422016 qtio422016.Writer) {
|
||||
//line web/template/home.qtpl:23
|
||||
//line web/template/home.qtpl:22
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line web/template/home.qtpl:23
|
||||
//line web/template/home.qtpl:22
|
||||
p.StreamHead(qw422016)
|
||||
//line web/template/home.qtpl:23
|
||||
//line web/template/home.qtpl:22
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line web/template/home.qtpl:23
|
||||
//line web/template/home.qtpl:22
|
||||
}
|
||||
|
||||
//line web/template/home.qtpl:23
|
||||
//line web/template/home.qtpl:22
|
||||
func (p *Home) Head() string {
|
||||
//line web/template/home.qtpl:23
|
||||
//line web/template/home.qtpl:22
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line web/template/home.qtpl:23
|
||||
//line web/template/home.qtpl:22
|
||||
p.WriteHead(qb422016)
|
||||
//line web/template/home.qtpl:23
|
||||
//line web/template/home.qtpl:22
|
||||
qs422016 := string(qb422016.B)
|
||||
//line web/template/home.qtpl:23
|
||||
//line web/template/home.qtpl:22
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line web/template/home.qtpl:23
|
||||
//line web/template/home.qtpl:22
|
||||
return qs422016
|
||||
//line web/template/home.qtpl:23
|
||||
//line web/template/home.qtpl:22
|
||||
}
|
||||
|
||||
//line web/template/home.qtpl:25
|
||||
//line web/template/home.qtpl:24
|
||||
func (p *Home) StreamBody(qw422016 *qt422016.Writer) {
|
||||
//line web/template/home.qtpl:25
|
||||
qw422016.N().S(` <header class="h-app h-x-app"> `)
|
||||
//line web/template/home.qtpl:27
|
||||
//line web/template/home.qtpl:24
|
||||
qw422016.N().S(`<header class="h-app h-x-app">`)
|
||||
//line web/template/home.qtpl:26
|
||||
if p.Client.Logo != nil {
|
||||
//line web/template/home.qtpl:26
|
||||
qw422016.N().S(`<img class="u-logo"`)
|
||||
//line web/template/home.qtpl:27
|
||||
qw422016.N().S(` <img class="u-logo" src="`)
|
||||
//line web/template/home.qtpl:29
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:27
|
||||
qw422016.N().S(`src="`)
|
||||
//line web/template/home.qtpl:28
|
||||
qw422016.E().S(p.Client.Logo.String())
|
||||
//line web/template/home.qtpl:28
|
||||
qw422016.N().S(`"`)
|
||||
//line web/template/home.qtpl:28
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:28
|
||||
qw422016.N().S(`alt="`)
|
||||
//line web/template/home.qtpl:29
|
||||
qw422016.N().S(`" alt="`)
|
||||
//line web/template/home.qtpl:30
|
||||
qw422016.E().S(p.Client.Name)
|
||||
//line web/template/home.qtpl:29
|
||||
qw422016.N().S(`"`)
|
||||
//line web/template/home.qtpl:29
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:29
|
||||
qw422016.N().S(`crossorigin="anonymous"`)
|
||||
//line web/template/home.qtpl:30
|
||||
qw422016.N().S(`" crossorigin="anonymous" decoding="async" height="140" importance="high" referrerpolicy="no-referrer-when-downgrade" width="140"> `)
|
||||
//line web/template/home.qtpl:37
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:30
|
||||
qw422016.N().S(`decoding="async"`)
|
||||
//line web/template/home.qtpl:31
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:31
|
||||
qw422016.N().S(`height="140"`)
|
||||
//line web/template/home.qtpl:32
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:32
|
||||
qw422016.N().S(`importance="high"`)
|
||||
//line web/template/home.qtpl:33
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:33
|
||||
qw422016.N().S(`referrerpolicy="no-referrer-when-downgrade"`)
|
||||
//line web/template/home.qtpl:34
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:34
|
||||
qw422016.N().S(`width="140">`)
|
||||
//line web/template/home.qtpl:36
|
||||
}
|
||||
//line web/template/home.qtpl:37
|
||||
qw422016.N().S(` <h1> <a class="p-name u-url" href="`)
|
||||
//line web/template/home.qtpl:41
|
||||
//line web/template/home.qtpl:36
|
||||
qw422016.N().S(`<h1><a class="p-name u-url" href="`)
|
||||
//line web/template/home.qtpl:38
|
||||
qw422016.E().S(p.Client.URL.String())
|
||||
//line web/template/home.qtpl:41
|
||||
qw422016.N().S(`"> `)
|
||||
//line web/template/home.qtpl:43
|
||||
//line web/template/home.qtpl:38
|
||||
qw422016.N().S(`">`)
|
||||
//line web/template/home.qtpl:38
|
||||
qw422016.E().S(p.Client.Name)
|
||||
//line web/template/home.qtpl:38
|
||||
qw422016.N().S(`</a></h1></header><main><form class=""`)
|
||||
//line web/template/home.qtpl:42
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:42
|
||||
qw422016.N().S(`method="get"`)
|
||||
//line web/template/home.qtpl:43
|
||||
qw422016.N().S(` </a> </h1> </header> <main> <form class="" method="get" action="/authorize" enctype="application/x-www-form-urlencoded" accept-charset="utf-8" target="_self"> `)
|
||||
//line web/template/home.qtpl:56
|
||||
for name, value := range map[string]string{
|
||||
"client_id": p.Client.ID.String(),
|
||||
"redirect_uri": p.Client.RedirectURI[0].String(),
|
||||
"response_type": response.Code.String(),
|
||||
"scope": domain.Scopes{scope.Email, scope.Profile}.String(),
|
||||
"state": p.State,
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:43
|
||||
qw422016.N().S(`action="/authorize"`)
|
||||
//line web/template/home.qtpl:44
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:44
|
||||
qw422016.N().S(`enctype="application/x-www-form-urlencoded"`)
|
||||
//line web/template/home.qtpl:45
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:45
|
||||
qw422016.N().S(`accept-charset="utf-8"`)
|
||||
//line web/template/home.qtpl:46
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:46
|
||||
qw422016.N().S(`target="_self">`)
|
||||
//line web/template/home.qtpl:49
|
||||
for _, field := range [][2]string{
|
||||
{"client_id", p.Client.ID.String()},
|
||||
{"redirect_uri", p.Client.RedirectURI[0].String()},
|
||||
{"response_type", response.Code.String()},
|
||||
{"scope", domain.Scopes{scope.Email, scope.Profile}.String()},
|
||||
{"state", p.State},
|
||||
} {
|
||||
//line web/template/home.qtpl:62
|
||||
qw422016.N().S(` <input type="hidden" name="`)
|
||||
//line web/template/home.qtpl:64
|
||||
qw422016.E().S(name)
|
||||
//line web/template/home.qtpl:64
|
||||
qw422016.N().S(`" value="`)
|
||||
//line web/template/home.qtpl:65
|
||||
qw422016.E().S(value)
|
||||
//line web/template/home.qtpl:65
|
||||
qw422016.N().S(`"> `)
|
||||
//line web/template/home.qtpl:66
|
||||
//line web/template/home.qtpl:55
|
||||
qw422016.N().S(`<input type="hidden"`)
|
||||
//line web/template/home.qtpl:56
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:56
|
||||
qw422016.N().S(`name="`)
|
||||
//line web/template/home.qtpl:57
|
||||
qw422016.E().S(field[0])
|
||||
//line web/template/home.qtpl:57
|
||||
qw422016.N().S(`"`)
|
||||
//line web/template/home.qtpl:57
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:57
|
||||
qw422016.N().S(`value="`)
|
||||
//line web/template/home.qtpl:58
|
||||
qw422016.E().S(field[1])
|
||||
//line web/template/home.qtpl:58
|
||||
qw422016.N().S(`">`)
|
||||
//line web/template/home.qtpl:59
|
||||
}
|
||||
//line web/template/home.qtpl:66
|
||||
qw422016.N().S(` <input type="url" name="me" placeholder="https://example.com/" inputmode="url" autocomplete="url" required> <button type="submit">`)
|
||||
//line web/template/home.qtpl:75
|
||||
//line web/template/home.qtpl:59
|
||||
qw422016.N().S(`<input type="url"`)
|
||||
//line web/template/home.qtpl:61
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:61
|
||||
qw422016.N().S(`name="me"`)
|
||||
//line web/template/home.qtpl:62
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:62
|
||||
qw422016.N().S(`placeholder="https://example.com/"`)
|
||||
//line web/template/home.qtpl:63
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:63
|
||||
qw422016.N().S(`inputmode="url"`)
|
||||
//line web/template/home.qtpl:64
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:64
|
||||
qw422016.N().S(`autocomplete="url"`)
|
||||
//line web/template/home.qtpl:65
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/home.qtpl:65
|
||||
qw422016.N().S(`required><button type="submit">`)
|
||||
//line web/template/home.qtpl:68
|
||||
p.StreamT(qw422016, "Sign In")
|
||||
//line web/template/home.qtpl:75
|
||||
qw422016.N().S(`</button> </form> </main> `)
|
||||
//line web/template/home.qtpl:78
|
||||
//line web/template/home.qtpl:68
|
||||
qw422016.N().S(`</button></form></main>`)
|
||||
//line web/template/home.qtpl:71
|
||||
}
|
||||
|
||||
//line web/template/home.qtpl:78
|
||||
//line web/template/home.qtpl:71
|
||||
func (p *Home) WriteBody(qq422016 qtio422016.Writer) {
|
||||
//line web/template/home.qtpl:78
|
||||
//line web/template/home.qtpl:71
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line web/template/home.qtpl:78
|
||||
//line web/template/home.qtpl:71
|
||||
p.StreamBody(qw422016)
|
||||
//line web/template/home.qtpl:78
|
||||
//line web/template/home.qtpl:71
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line web/template/home.qtpl:78
|
||||
//line web/template/home.qtpl:71
|
||||
}
|
||||
|
||||
//line web/template/home.qtpl:78
|
||||
//line web/template/home.qtpl:71
|
||||
func (p *Home) Body() string {
|
||||
//line web/template/home.qtpl:78
|
||||
//line web/template/home.qtpl:71
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line web/template/home.qtpl:78
|
||||
//line web/template/home.qtpl:71
|
||||
p.WriteBody(qb422016)
|
||||
//line web/template/home.qtpl:78
|
||||
//line web/template/home.qtpl:71
|
||||
qs422016 := string(qb422016.B)
|
||||
//line web/template/home.qtpl:78
|
||||
//line web/template/home.qtpl:71
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line web/template/home.qtpl:78
|
||||
//line web/template/home.qtpl:71
|
||||
return qs422016
|
||||
//line web/template/home.qtpl:78
|
||||
//line web/template/home.qtpl:71
|
||||
}
|
||||
|
|
|
@ -23,53 +23,42 @@
|
|||
|
||||
{% stripspace %}
|
||||
{% func (p *BaseOf) lang() %}
|
||||
{% if p.Language != language.Und %}
|
||||
{%s p.Language.String() %}
|
||||
{% else %}
|
||||
en
|
||||
{% endif %}
|
||||
{% if p.Language != language.Und %}
|
||||
{%s p.Language.String() %}
|
||||
{% else %}
|
||||
en
|
||||
{% endif %}
|
||||
{% endfunc %}
|
||||
{% endstripspace %}
|
||||
|
||||
{% collapsespace %}
|
||||
{% func (p *BaseOf) Title() %}
|
||||
{%s p.Config.Name %}
|
||||
{%s p.Config.Name %}
|
||||
{% endfunc %}
|
||||
|
||||
{% func (p *BaseOf) Head() %}
|
||||
{% comment %}https://evilmartians.com/chronicles/how-to-favicon-in-2021-six-files-that-fit-most-needs{% endcomment %}
|
||||
<link rel="icon"
|
||||
href="/favicon.ico"
|
||||
sizes="any">
|
||||
{% comment %}https://evilmartians.com/chronicles/how-to-favicon-in-2021-six-files-that-fit-most-needs{% endcomment %}
|
||||
<link rel="icon"{% space %}
|
||||
href="/favicon.ico"{% space %}
|
||||
sizes="any">
|
||||
|
||||
<link rel="icon"
|
||||
href="/icon.svg"
|
||||
type="image/svg+xml">
|
||||
<link rel="icon"{% space %}
|
||||
href="/icon.svg"{% space %}
|
||||
type="image/svg+xml">
|
||||
|
||||
<link rel="apple-touch-icon"
|
||||
href="/apple-touch-icon.png">
|
||||
|
||||
<link rel="manifest"
|
||||
href="/manifest.webmanifest">
|
||||
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
||||
<link rel="manifest" href="/manifest.webmanifest">
|
||||
{% endfunc %}
|
||||
|
||||
{% func (p *BaseOf) Body() %}{% endfunc %}
|
||||
|
||||
{% func Template(p Page) %}
|
||||
<!DOCTYPE html>
|
||||
<html class="page"
|
||||
lang="{%= p.lang() %}">
|
||||
|
||||
<html class="page" lang="{%= p.lang() %}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport"
|
||||
content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
{%= p.Head() %}
|
||||
|
||||
<title>{%= p.Title() %}</title>
|
||||
</head>
|
||||
|
||||
<body class="page__body body">
|
||||
{%= p.Body() %}
|
||||
{%= footer(p) %}
|
||||
|
@ -80,4 +69,4 @@ en
|
|||
{% func (p BaseOf) T(format message.Reference, args ...any) %}
|
||||
{%s= p.Printer.Sprintf(format, args...) %}
|
||||
{% endfunc %}
|
||||
{% endcollapsespace %}
|
||||
{% endstripspace %}
|
||||
|
|
|
@ -108,195 +108,199 @@ func (p *BaseOf) lang() string {
|
|||
//line web/template/layout/baseof.qtpl:31
|
||||
}
|
||||
|
||||
//line web/template/layout/baseof.qtpl:35
|
||||
//line web/template/layout/baseof.qtpl:33
|
||||
func (p *BaseOf) StreamTitle(qw422016 *qt422016.Writer) {
|
||||
//line web/template/layout/baseof.qtpl:35
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/layout/baseof.qtpl:36
|
||||
//line web/template/layout/baseof.qtpl:34
|
||||
qw422016.E().S(p.Config.Name)
|
||||
//line web/template/layout/baseof.qtpl:36
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/layout/baseof.qtpl:37
|
||||
//line web/template/layout/baseof.qtpl:35
|
||||
}
|
||||
|
||||
//line web/template/layout/baseof.qtpl:37
|
||||
//line web/template/layout/baseof.qtpl:35
|
||||
func (p *BaseOf) WriteTitle(qq422016 qtio422016.Writer) {
|
||||
//line web/template/layout/baseof.qtpl:37
|
||||
//line web/template/layout/baseof.qtpl:35
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line web/template/layout/baseof.qtpl:37
|
||||
//line web/template/layout/baseof.qtpl:35
|
||||
p.StreamTitle(qw422016)
|
||||
//line web/template/layout/baseof.qtpl:37
|
||||
//line web/template/layout/baseof.qtpl:35
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line web/template/layout/baseof.qtpl:37
|
||||
//line web/template/layout/baseof.qtpl:35
|
||||
}
|
||||
|
||||
//line web/template/layout/baseof.qtpl:37
|
||||
//line web/template/layout/baseof.qtpl:35
|
||||
func (p *BaseOf) Title() string {
|
||||
//line web/template/layout/baseof.qtpl:37
|
||||
//line web/template/layout/baseof.qtpl:35
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line web/template/layout/baseof.qtpl:37
|
||||
//line web/template/layout/baseof.qtpl:35
|
||||
p.WriteTitle(qb422016)
|
||||
//line web/template/layout/baseof.qtpl:37
|
||||
//line web/template/layout/baseof.qtpl:35
|
||||
qs422016 := string(qb422016.B)
|
||||
//line web/template/layout/baseof.qtpl:37
|
||||
//line web/template/layout/baseof.qtpl:35
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line web/template/layout/baseof.qtpl:37
|
||||
//line web/template/layout/baseof.qtpl:35
|
||||
return qs422016
|
||||
//line web/template/layout/baseof.qtpl:37
|
||||
//line web/template/layout/baseof.qtpl:35
|
||||
}
|
||||
|
||||
//line web/template/layout/baseof.qtpl:39
|
||||
//line web/template/layout/baseof.qtpl:37
|
||||
func (p *BaseOf) StreamHead(qw422016 *qt422016.Writer) {
|
||||
//line web/template/layout/baseof.qtpl:38
|
||||
qw422016.N().S(`<link rel="icon"`)
|
||||
//line web/template/layout/baseof.qtpl:39
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/layout/baseof.qtpl:39
|
||||
qw422016.N().S(`href="/favicon.ico"`)
|
||||
//line web/template/layout/baseof.qtpl:40
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/layout/baseof.qtpl:40
|
||||
qw422016.N().S(` <link rel="icon" href="/favicon.ico" sizes="any"> <link rel="icon" href="/icon.svg" type="image/svg+xml"> <link rel="apple-touch-icon" href="/apple-touch-icon.png"> <link rel="manifest" href="/manifest.webmanifest"> `)
|
||||
//line web/template/layout/baseof.qtpl:54
|
||||
qw422016.N().S(`sizes="any"><link rel="icon"`)
|
||||
//line web/template/layout/baseof.qtpl:43
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/layout/baseof.qtpl:43
|
||||
qw422016.N().S(`href="/icon.svg"`)
|
||||
//line web/template/layout/baseof.qtpl:44
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/layout/baseof.qtpl:44
|
||||
qw422016.N().S(`type="image/svg+xml"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><link rel="manifest" href="/manifest.webmanifest">`)
|
||||
//line web/template/layout/baseof.qtpl:49
|
||||
}
|
||||
|
||||
//line web/template/layout/baseof.qtpl:54
|
||||
//line web/template/layout/baseof.qtpl:49
|
||||
func (p *BaseOf) WriteHead(qq422016 qtio422016.Writer) {
|
||||
//line web/template/layout/baseof.qtpl:54
|
||||
//line web/template/layout/baseof.qtpl:49
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line web/template/layout/baseof.qtpl:54
|
||||
//line web/template/layout/baseof.qtpl:49
|
||||
p.StreamHead(qw422016)
|
||||
//line web/template/layout/baseof.qtpl:54
|
||||
//line web/template/layout/baseof.qtpl:49
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line web/template/layout/baseof.qtpl:54
|
||||
//line web/template/layout/baseof.qtpl:49
|
||||
}
|
||||
|
||||
//line web/template/layout/baseof.qtpl:54
|
||||
//line web/template/layout/baseof.qtpl:49
|
||||
func (p *BaseOf) Head() string {
|
||||
//line web/template/layout/baseof.qtpl:54
|
||||
//line web/template/layout/baseof.qtpl:49
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line web/template/layout/baseof.qtpl:54
|
||||
//line web/template/layout/baseof.qtpl:49
|
||||
p.WriteHead(qb422016)
|
||||
//line web/template/layout/baseof.qtpl:54
|
||||
//line web/template/layout/baseof.qtpl:49
|
||||
qs422016 := string(qb422016.B)
|
||||
//line web/template/layout/baseof.qtpl:54
|
||||
//line web/template/layout/baseof.qtpl:49
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line web/template/layout/baseof.qtpl:54
|
||||
//line web/template/layout/baseof.qtpl:49
|
||||
return qs422016
|
||||
//line web/template/layout/baseof.qtpl:54
|
||||
//line web/template/layout/baseof.qtpl:49
|
||||
}
|
||||
|
||||
//line web/template/layout/baseof.qtpl:56
|
||||
//line web/template/layout/baseof.qtpl:51
|
||||
func (p *BaseOf) StreamBody(qw422016 *qt422016.Writer) {
|
||||
//line web/template/layout/baseof.qtpl:56
|
||||
//line web/template/layout/baseof.qtpl:51
|
||||
}
|
||||
|
||||
//line web/template/layout/baseof.qtpl:56
|
||||
//line web/template/layout/baseof.qtpl:51
|
||||
func (p *BaseOf) WriteBody(qq422016 qtio422016.Writer) {
|
||||
//line web/template/layout/baseof.qtpl:56
|
||||
//line web/template/layout/baseof.qtpl:51
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line web/template/layout/baseof.qtpl:56
|
||||
//line web/template/layout/baseof.qtpl:51
|
||||
p.StreamBody(qw422016)
|
||||
//line web/template/layout/baseof.qtpl:56
|
||||
//line web/template/layout/baseof.qtpl:51
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line web/template/layout/baseof.qtpl:56
|
||||
//line web/template/layout/baseof.qtpl:51
|
||||
}
|
||||
|
||||
//line web/template/layout/baseof.qtpl:56
|
||||
//line web/template/layout/baseof.qtpl:51
|
||||
func (p *BaseOf) Body() string {
|
||||
//line web/template/layout/baseof.qtpl:56
|
||||
//line web/template/layout/baseof.qtpl:51
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line web/template/layout/baseof.qtpl:56
|
||||
//line web/template/layout/baseof.qtpl:51
|
||||
p.WriteBody(qb422016)
|
||||
//line web/template/layout/baseof.qtpl:56
|
||||
//line web/template/layout/baseof.qtpl:51
|
||||
qs422016 := string(qb422016.B)
|
||||
//line web/template/layout/baseof.qtpl:56
|
||||
//line web/template/layout/baseof.qtpl:51
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line web/template/layout/baseof.qtpl:56
|
||||
//line web/template/layout/baseof.qtpl:51
|
||||
return qs422016
|
||||
//line web/template/layout/baseof.qtpl:56
|
||||
//line web/template/layout/baseof.qtpl:51
|
||||
}
|
||||
|
||||
//line web/template/layout/baseof.qtpl:58
|
||||
//line web/template/layout/baseof.qtpl:53
|
||||
func StreamTemplate(qw422016 *qt422016.Writer, p Page) {
|
||||
//line web/template/layout/baseof.qtpl:58
|
||||
qw422016.N().S(` <!DOCTYPE html> <html class="page" lang="`)
|
||||
//line web/template/layout/baseof.qtpl:61
|
||||
//line web/template/layout/baseof.qtpl:53
|
||||
qw422016.N().S(`<!DOCTYPE html><html class="page" lang="`)
|
||||
//line web/template/layout/baseof.qtpl:55
|
||||
p.streamlang(qw422016)
|
||||
//line web/template/layout/baseof.qtpl:61
|
||||
qw422016.N().S(`"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> `)
|
||||
//line web/template/layout/baseof.qtpl:68
|
||||
//line web/template/layout/baseof.qtpl:55
|
||||
qw422016.N().S(`"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">`)
|
||||
//line web/template/layout/baseof.qtpl:59
|
||||
p.StreamHead(qw422016)
|
||||
//line web/template/layout/baseof.qtpl:68
|
||||
qw422016.N().S(` <title>`)
|
||||
//line web/template/layout/baseof.qtpl:70
|
||||
//line web/template/layout/baseof.qtpl:59
|
||||
qw422016.N().S(`<title>`)
|
||||
//line web/template/layout/baseof.qtpl:60
|
||||
p.StreamTitle(qw422016)
|
||||
//line web/template/layout/baseof.qtpl:70
|
||||
qw422016.N().S(`</title> </head> <body class="page__body body"> `)
|
||||
//line web/template/layout/baseof.qtpl:74
|
||||
//line web/template/layout/baseof.qtpl:60
|
||||
qw422016.N().S(`</title></head><body class="page__body body">`)
|
||||
//line web/template/layout/baseof.qtpl:63
|
||||
p.StreamBody(qw422016)
|
||||
//line web/template/layout/baseof.qtpl:74
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/layout/baseof.qtpl:75
|
||||
//line web/template/layout/baseof.qtpl:64
|
||||
streamfooter(qw422016, p)
|
||||
//line web/template/layout/baseof.qtpl:75
|
||||
qw422016.N().S(` </body> </html> `)
|
||||
//line web/template/layout/baseof.qtpl:78
|
||||
//line web/template/layout/baseof.qtpl:64
|
||||
qw422016.N().S(`</body></html>`)
|
||||
//line web/template/layout/baseof.qtpl:67
|
||||
}
|
||||
|
||||
//line web/template/layout/baseof.qtpl:78
|
||||
//line web/template/layout/baseof.qtpl:67
|
||||
func WriteTemplate(qq422016 qtio422016.Writer, p Page) {
|
||||
//line web/template/layout/baseof.qtpl:78
|
||||
//line web/template/layout/baseof.qtpl:67
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line web/template/layout/baseof.qtpl:78
|
||||
//line web/template/layout/baseof.qtpl:67
|
||||
StreamTemplate(qw422016, p)
|
||||
//line web/template/layout/baseof.qtpl:78
|
||||
//line web/template/layout/baseof.qtpl:67
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line web/template/layout/baseof.qtpl:78
|
||||
//line web/template/layout/baseof.qtpl:67
|
||||
}
|
||||
|
||||
//line web/template/layout/baseof.qtpl:78
|
||||
//line web/template/layout/baseof.qtpl:67
|
||||
func Template(p Page) string {
|
||||
//line web/template/layout/baseof.qtpl:78
|
||||
//line web/template/layout/baseof.qtpl:67
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line web/template/layout/baseof.qtpl:78
|
||||
//line web/template/layout/baseof.qtpl:67
|
||||
WriteTemplate(qb422016, p)
|
||||
//line web/template/layout/baseof.qtpl:78
|
||||
//line web/template/layout/baseof.qtpl:67
|
||||
qs422016 := string(qb422016.B)
|
||||
//line web/template/layout/baseof.qtpl:78
|
||||
//line web/template/layout/baseof.qtpl:67
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line web/template/layout/baseof.qtpl:78
|
||||
//line web/template/layout/baseof.qtpl:67
|
||||
return qs422016
|
||||
//line web/template/layout/baseof.qtpl:78
|
||||
//line web/template/layout/baseof.qtpl:67
|
||||
}
|
||||
|
||||
//line web/template/layout/baseof.qtpl:80
|
||||
//line web/template/layout/baseof.qtpl:69
|
||||
func (p BaseOf) StreamT(qw422016 *qt422016.Writer, format message.Reference, args ...any) {
|
||||
//line web/template/layout/baseof.qtpl:80
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/layout/baseof.qtpl:81
|
||||
//line web/template/layout/baseof.qtpl:70
|
||||
qw422016.N().S(p.Printer.Sprintf(format, args...))
|
||||
//line web/template/layout/baseof.qtpl:81
|
||||
qw422016.N().S(` `)
|
||||
//line web/template/layout/baseof.qtpl:82
|
||||
//line web/template/layout/baseof.qtpl:71
|
||||
}
|
||||
|
||||
//line web/template/layout/baseof.qtpl:82
|
||||
//line web/template/layout/baseof.qtpl:71
|
||||
func (p BaseOf) WriteT(qq422016 qtio422016.Writer, format message.Reference, args ...any) {
|
||||
//line web/template/layout/baseof.qtpl:82
|
||||
//line web/template/layout/baseof.qtpl:71
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line web/template/layout/baseof.qtpl:82
|
||||
//line web/template/layout/baseof.qtpl:71
|
||||
p.StreamT(qw422016, format, args...)
|
||||
//line web/template/layout/baseof.qtpl:82
|
||||
//line web/template/layout/baseof.qtpl:71
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line web/template/layout/baseof.qtpl:82
|
||||
//line web/template/layout/baseof.qtpl:71
|
||||
}
|
||||
|
||||
//line web/template/layout/baseof.qtpl:82
|
||||
//line web/template/layout/baseof.qtpl:71
|
||||
func (p BaseOf) T(format message.Reference, args ...any) string {
|
||||
//line web/template/layout/baseof.qtpl:82
|
||||
//line web/template/layout/baseof.qtpl:71
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line web/template/layout/baseof.qtpl:82
|
||||
//line web/template/layout/baseof.qtpl:71
|
||||
p.WriteT(qb422016, format, args...)
|
||||
//line web/template/layout/baseof.qtpl:82
|
||||
//line web/template/layout/baseof.qtpl:71
|
||||
qs422016 := string(qb422016.B)
|
||||
//line web/template/layout/baseof.qtpl:82
|
||||
//line web/template/layout/baseof.qtpl:71
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line web/template/layout/baseof.qtpl:82
|
||||
//line web/template/layout/baseof.qtpl:71
|
||||
return qs422016
|
||||
//line web/template/layout/baseof.qtpl:82
|
||||
//line web/template/layout/baseof.qtpl:71
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
"runtime/debug"
|
||||
) %}
|
||||
|
||||
{% stripspace %}
|
||||
{% func footer(p Page) %}
|
||||
{% code
|
||||
var path, vcsRevision string
|
||||
|
@ -25,11 +26,9 @@
|
|||
<footer>
|
||||
<small>
|
||||
{%= p.T("version") %}
|
||||
<a href="https://{%s path %}/commit/{%s vcsRevision %}"
|
||||
target="_blank">
|
||||
{%s vcsRevision[:7] -%}
|
||||
</a>
|
||||
<a href="https://{%s path %}/commit/{%s vcsRevision %}" target="_blank">{%s vcsRevision[:7] -%}</a>
|
||||
</small>
|
||||
</footer>
|
||||
{% endif %}
|
||||
{% endfunc %}
|
||||
{% endstripspace %}
|
||||
|
|
|
@ -9,25 +9,22 @@ import (
|
|||
"runtime/debug"
|
||||
)
|
||||
|
||||
//line web/template/layout/footer.qtpl:7
|
||||
//line web/template/layout/footer.qtpl:8
|
||||
import (
|
||||
qtio422016 "io"
|
||||
|
||||
qt422016 "github.com/valyala/quicktemplate"
|
||||
)
|
||||
|
||||
//line web/template/layout/footer.qtpl:7
|
||||
//line web/template/layout/footer.qtpl:8
|
||||
var (
|
||||
_ = qtio422016.Copy
|
||||
_ = qt422016.AcquireByteBuffer
|
||||
)
|
||||
|
||||
//line web/template/layout/footer.qtpl:7
|
||||
//line web/template/layout/footer.qtpl:8
|
||||
func streamfooter(qw422016 *qt422016.Writer, p Page) {
|
||||
//line web/template/layout/footer.qtpl:7
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line web/template/layout/footer.qtpl:9
|
||||
//line web/template/layout/footer.qtpl:10
|
||||
var path, vcsRevision string
|
||||
|
||||
if bi, ok := debug.ReadBuildInfo(); ok {
|
||||
|
@ -42,69 +39,53 @@ func streamfooter(qw422016 *qt422016.Writer, p Page) {
|
|||
}
|
||||
}
|
||||
|
||||
//line web/template/layout/footer.qtpl:22
|
||||
qw422016.N().S(`
|
||||
|
||||
`)
|
||||
//line web/template/layout/footer.qtpl:24
|
||||
//line web/template/layout/footer.qtpl:25
|
||||
if vcsRevision != "" {
|
||||
//line web/template/layout/footer.qtpl:24
|
||||
qw422016.N().S(`
|
||||
<footer>
|
||||
<small>
|
||||
`)
|
||||
//line web/template/layout/footer.qtpl:27
|
||||
//line web/template/layout/footer.qtpl:25
|
||||
qw422016.N().S(`<footer><small>`)
|
||||
//line web/template/layout/footer.qtpl:28
|
||||
p.StreamT(qw422016, "version")
|
||||
//line web/template/layout/footer.qtpl:27
|
||||
qw422016.N().S(`
|
||||
<a href="https://`)
|
||||
//line web/template/layout/footer.qtpl:28
|
||||
qw422016.N().S(`<a href="https://`)
|
||||
//line web/template/layout/footer.qtpl:29
|
||||
qw422016.E().S(path)
|
||||
//line web/template/layout/footer.qtpl:28
|
||||
//line web/template/layout/footer.qtpl:29
|
||||
qw422016.N().S(`/commit/`)
|
||||
//line web/template/layout/footer.qtpl:28
|
||||
//line web/template/layout/footer.qtpl:29
|
||||
qw422016.E().S(vcsRevision)
|
||||
//line web/template/layout/footer.qtpl:28
|
||||
qw422016.N().S(`"
|
||||
target="_blank">
|
||||
`)
|
||||
//line web/template/layout/footer.qtpl:30
|
||||
//line web/template/layout/footer.qtpl:29
|
||||
qw422016.N().S(`" target="_blank">`)
|
||||
//line web/template/layout/footer.qtpl:29
|
||||
qw422016.E().S(vcsRevision[:7])
|
||||
//line web/template/layout/footer.qtpl:30
|
||||
qw422016.N().S(` </a>
|
||||
</small>
|
||||
</footer>
|
||||
`)
|
||||
//line web/template/layout/footer.qtpl:34
|
||||
//line web/template/layout/footer.qtpl:29
|
||||
qw422016.N().S(`</a></small></footer>`)
|
||||
//line web/template/layout/footer.qtpl:32
|
||||
}
|
||||
//line web/template/layout/footer.qtpl:34
|
||||
qw422016.N().S(`
|
||||
`)
|
||||
//line web/template/layout/footer.qtpl:35
|
||||
//line web/template/layout/footer.qtpl:33
|
||||
}
|
||||
|
||||
//line web/template/layout/footer.qtpl:35
|
||||
//line web/template/layout/footer.qtpl:33
|
||||
func writefooter(qq422016 qtio422016.Writer, p Page) {
|
||||
//line web/template/layout/footer.qtpl:35
|
||||
//line web/template/layout/footer.qtpl:33
|
||||
qw422016 := qt422016.AcquireWriter(qq422016)
|
||||
//line web/template/layout/footer.qtpl:35
|
||||
//line web/template/layout/footer.qtpl:33
|
||||
streamfooter(qw422016, p)
|
||||
//line web/template/layout/footer.qtpl:35
|
||||
//line web/template/layout/footer.qtpl:33
|
||||
qt422016.ReleaseWriter(qw422016)
|
||||
//line web/template/layout/footer.qtpl:35
|
||||
//line web/template/layout/footer.qtpl:33
|
||||
}
|
||||
|
||||
//line web/template/layout/footer.qtpl:35
|
||||
//line web/template/layout/footer.qtpl:33
|
||||
func footer(p Page) string {
|
||||
//line web/template/layout/footer.qtpl:35
|
||||
//line web/template/layout/footer.qtpl:33
|
||||
qb422016 := qt422016.AcquireByteBuffer()
|
||||
//line web/template/layout/footer.qtpl:35
|
||||
//line web/template/layout/footer.qtpl:33
|
||||
writefooter(qb422016, p)
|
||||
//line web/template/layout/footer.qtpl:35
|
||||
//line web/template/layout/footer.qtpl:33
|
||||
qs422016 := string(qb422016.B)
|
||||
//line web/template/layout/footer.qtpl:35
|
||||
//line web/template/layout/footer.qtpl:33
|
||||
qt422016.ReleaseByteBuffer(qb422016)
|
||||
//line web/template/layout/footer.qtpl:35
|
||||
//line web/template/layout/footer.qtpl:33
|
||||
return qs422016
|
||||
//line web/template/layout/footer.qtpl:35
|
||||
//line web/template/layout/footer.qtpl:33
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
CSRF []byte
|
||||
} %}
|
||||
|
||||
{% collapsespace %}
|
||||
{% stripspace %}
|
||||
{% func (p *Ticket) Body() %}
|
||||
<header>
|
||||
<h1>{%= p.T("TicketAuth") %}</h1>
|
||||
|
@ -54,4 +54,4 @@
|
|||
</form>
|
||||
</main>
|
||||
{% endfunc %}
|
||||
{% endcollapsespace %}
|
||||
{% endstripspace %}
|
||||
|
|
|
@ -31,35 +31,35 @@ type Ticket struct {
|
|||
//line web/template/ticket.qtpl:13
|
||||
func (p *Ticket) StreamBody(qw422016 *qt422016.Writer) {
|
||||
//line web/template/ticket.qtpl:13
|
||||
qw422016.N().S(` <header> <h1>`)
|
||||
qw422016.N().S(`<header><h1>`)
|
||||
//line web/template/ticket.qtpl:15
|
||||
p.StreamT(qw422016, "TicketAuth")
|
||||
//line web/template/ticket.qtpl:15
|
||||
qw422016.N().S(`</h1> </header> <main> <form class="" accept-charset="utf-8" action="/ticket/send" autocomplete="off" enctype="application/x-www-form-urlencoded" method="post" target="_self"> `)
|
||||
qw422016.N().S(`</h1></header><main><form class=""accept-charset="utf-8"action="/ticket/send"autocomplete="off"enctype="application/x-www-form-urlencoded"method="post"target="_self">`)
|
||||
//line web/template/ticket.qtpl:27
|
||||
if p.CSRF != nil {
|
||||
//line web/template/ticket.qtpl:27
|
||||
qw422016.N().S(` <input type="hidden" name="_csrf" value="`)
|
||||
qw422016.N().S(`<input type="hidden"name="_csrf"value="`)
|
||||
//line web/template/ticket.qtpl:30
|
||||
qw422016.E().Z(p.CSRF)
|
||||
//line web/template/ticket.qtpl:30
|
||||
qw422016.N().S(`"> `)
|
||||
qw422016.N().S(`">`)
|
||||
//line web/template/ticket.qtpl:31
|
||||
}
|
||||
//line web/template/ticket.qtpl:31
|
||||
qw422016.N().S(` <div> <label for="subject">`)
|
||||
qw422016.N().S(`<div><label for="subject">`)
|
||||
//line web/template/ticket.qtpl:34
|
||||
p.StreamT(qw422016, "Recipient")
|
||||
//line web/template/ticket.qtpl:34
|
||||
qw422016.N().S(`</label> <input id="subject" type="url" name="subject" inputmode="url" placeholder="https://bob.example.org/" required> </div> <div> <label for="resource">`)
|
||||
qw422016.N().S(`</label><input id="subject"type="url"name="subject"inputmode="url"placeholder="https://bob.example.org/"required></div><div><label for="resource">`)
|
||||
//line web/template/ticket.qtpl:44
|
||||
p.StreamT(qw422016, "Resource")
|
||||
//line web/template/ticket.qtpl:44
|
||||
qw422016.N().S(`</label> <input id="resource" type="url" name="resource" inputmode="url" placeholder="https://alice.example.com/private/" required> </div> <button type="submit">`)
|
||||
qw422016.N().S(`</label><input id="resource"type="url"name="resource"inputmode="url"placeholder="https://alice.example.com/private/"required></div><button type="submit">`)
|
||||
//line web/template/ticket.qtpl:53
|
||||
p.StreamT(qw422016, "Send")
|
||||
//line web/template/ticket.qtpl:53
|
||||
qw422016.N().S(`</button> </form> </main> `)
|
||||
qw422016.N().S(`</button></form></main>`)
|
||||
//line web/template/ticket.qtpl:56
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue