💄 Stabilize home template rendering

This commit is contained in:
Maxim Lebedev 2024-05-08 15:44:13 +05:00
parent ff40be5057
commit 04b7135f7e
Signed by: toby3d
GPG Key ID: 1F14E25B7C119FC5
14 changed files with 724 additions and 736 deletions

View File

@ -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 %}

View File

@ -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
}

View File

@ -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 %}

View File

@ -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
}

View File

@ -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 %}

View File

@ -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
}

View File

@ -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 %}

View File

@ -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
}

View File

@ -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 %}

View File

@ -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
}

View File

@ -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 %}

View File

@ -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
}

View File

@ -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 %}

View File

@ -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
}