@things-factory/auth-ui 7.0.1-alpha.10 → 7.0.1-alpha.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/auth-style-sign.ts +29 -18
- package/client/bootstrap.ts +6 -10
- package/client/components/abstract-auth-page.ts +41 -22
- package/client/components/abstract-password-reset.ts +11 -9
- package/client/components/abstract-sign.ts +138 -0
- package/client/components/change-password.ts +3 -3
- package/client/components/contact-us.ts +19 -23
- package/client/components/create-domain-popup.ts +12 -8
- package/client/components/create-role.ts +8 -20
- package/client/components/create-user.ts +8 -16
- package/client/components/credential-manager.ts +64 -0
- package/client/components/delete-user-popup.ts +1 -1
- package/client/components/domain-switch.ts +7 -4
- package/client/components/invite-customer.ts +7 -14
- package/client/components/invite-user.ts +2 -7
- package/client/components/my-login-history.ts +1 -1
- package/client/components/ownership-transfer-popup.ts +4 -4
- package/client/components/partner-role-editor.ts +11 -17
- package/client/components/profile-component.ts +127 -8
- package/client/components/role-privilege-editor.ts +10 -17
- package/client/components/user-role-editor.ts +27 -38
- package/client/entries/auth/activate.ts +17 -17
- package/client/entries/auth/checkin.ts +15 -19
- package/client/entries/auth/forgot-password.ts +8 -6
- package/client/entries/auth/result.ts +13 -12
- package/client/entries/auth/signup.ts +20 -24
- package/client/entries/oauth2/oauth2-decision-error-page.ts +2 -2
- package/client/entries/oauth2/oauth2-decision-page.ts +60 -55
- package/client/entries/public/home.ts +49 -25
- package/client/index.ts +93 -66
- package/client/pages/app-binding/app-binding.ts +4 -2
- package/client/pages/app-binding/app-bindings.ts +3 -3
- package/client/pages/appliance/appliance.ts +4 -2
- package/client/pages/appliance/home.ts +2 -2
- package/client/pages/appliance/register.ts +2 -2
- package/client/pages/application/application.ts +30 -51
- package/client/pages/application/applications.ts +6 -10
- package/client/pages/application/register.ts +2 -2
- package/client/pages/attribute/attribute-set-item-list.ts +8 -22
- package/client/pages/attribute/attribute-set-management.ts +14 -20
- package/client/pages/auth-provider/auth-provider-management.ts +10 -16
- package/client/pages/domain/domain-management.ts +4 -9
- package/client/pages/partner/partner-management.ts +1 -1
- package/client/pages/profile.ts +1 -1
- package/client/pages/role/role-management.ts +4 -5
- package/client/pages/user/user-management.ts +5 -3
- package/client/themes/auth-theme.css +1 -1
- package/dist-client/auth-style-sign.js +29 -18
- package/dist-client/auth-style-sign.js.map +1 -1
- package/dist-client/bootstrap.d.ts +1 -1
- package/dist-client/bootstrap.js +5 -5
- package/dist-client/bootstrap.js.map +1 -1
- package/dist-client/components/abstract-auth-page.d.ts +4 -4
- package/dist-client/components/abstract-auth-page.js +40 -22
- package/dist-client/components/abstract-auth-page.js.map +1 -1
- package/dist-client/components/abstract-password-reset.d.ts +3 -2
- package/dist-client/components/abstract-password-reset.js +10 -9
- package/dist-client/components/abstract-password-reset.js.map +1 -1
- package/dist-client/components/abstract-sign.d.ts +3 -0
- package/dist-client/components/abstract-sign.js +110 -0
- package/dist-client/components/abstract-sign.js.map +1 -1
- package/dist-client/components/change-password.js +3 -3
- package/dist-client/components/change-password.js.map +1 -1
- package/dist-client/components/contact-us.d.ts +4 -4
- package/dist-client/components/contact-us.js +18 -23
- package/dist-client/components/contact-us.js.map +1 -1
- package/dist-client/components/create-domain-popup.d.ts +1 -1
- package/dist-client/components/create-domain-popup.js +12 -8
- package/dist-client/components/create-domain-popup.js.map +1 -1
- package/dist-client/components/create-role.d.ts +1 -1
- package/dist-client/components/create-role.js +7 -19
- package/dist-client/components/create-role.js.map +1 -1
- package/dist-client/components/create-user.js +6 -14
- package/dist-client/components/create-user.js.map +1 -1
- package/dist-client/components/credential-manager.d.ts +11 -0
- package/dist-client/components/credential-manager.js +64 -0
- package/dist-client/components/credential-manager.js.map +1 -0
- package/dist-client/components/delete-user-popup.js +1 -1
- package/dist-client/components/delete-user-popup.js.map +1 -1
- package/dist-client/components/domain-switch.d.ts +2 -0
- package/dist-client/components/domain-switch.js +9 -4
- package/dist-client/components/domain-switch.js.map +1 -1
- package/dist-client/components/invite-customer.d.ts +1 -1
- package/dist-client/components/invite-customer.js +5 -8
- package/dist-client/components/invite-customer.js.map +1 -1
- package/dist-client/components/invite-user.js +2 -7
- package/dist-client/components/invite-user.js.map +1 -1
- package/dist-client/components/my-login-history.js +1 -1
- package/dist-client/components/my-login-history.js.map +1 -1
- package/dist-client/components/ownership-transfer-popup.d.ts +1 -1
- package/dist-client/components/ownership-transfer-popup.js +4 -4
- package/dist-client/components/ownership-transfer-popup.js.map +1 -1
- package/dist-client/components/partner-role-editor.d.ts +2 -2
- package/dist-client/components/partner-role-editor.js +11 -17
- package/dist-client/components/partner-role-editor.js.map +1 -1
- package/dist-client/components/profile-component.d.ts +7 -0
- package/dist-client/components/profile-component.js +117 -8
- package/dist-client/components/profile-component.js.map +1 -1
- package/dist-client/components/role-privilege-editor.js +10 -17
- package/dist-client/components/role-privilege-editor.js.map +1 -1
- package/dist-client/components/user-role-editor.d.ts +2 -0
- package/dist-client/components/user-role-editor.js +26 -37
- package/dist-client/components/user-role-editor.js.map +1 -1
- package/dist-client/entries/auth/activate.d.ts +2 -1
- package/dist-client/entries/auth/activate.js +16 -17
- package/dist-client/entries/auth/activate.js.map +1 -1
- package/dist-client/entries/auth/checkin.d.ts +2 -2
- package/dist-client/entries/auth/checkin.js +13 -16
- package/dist-client/entries/auth/checkin.js.map +1 -1
- package/dist-client/entries/auth/forgot-password.d.ts +2 -1
- package/dist-client/entries/auth/forgot-password.js +7 -6
- package/dist-client/entries/auth/forgot-password.js.map +1 -1
- package/dist-client/entries/auth/result.d.ts +2 -2
- package/dist-client/entries/auth/result.js +12 -12
- package/dist-client/entries/auth/result.js.map +1 -1
- package/dist-client/entries/auth/signup.js +19 -24
- package/dist-client/entries/auth/signup.js.map +1 -1
- package/dist-client/entries/oauth2/oauth2-decision-error-page.d.ts +1 -1
- package/dist-client/entries/oauth2/oauth2-decision-error-page.js +2 -2
- package/dist-client/entries/oauth2/oauth2-decision-error-page.js.map +1 -1
- package/dist-client/entries/oauth2/oauth2-decision-page.d.ts +1 -1
- package/dist-client/entries/oauth2/oauth2-decision-page.js +59 -54
- package/dist-client/entries/oauth2/oauth2-decision-page.js.map +1 -1
- package/dist-client/entries/public/home.d.ts +3 -2
- package/dist-client/entries/public/home.js +49 -25
- package/dist-client/entries/public/home.js.map +1 -1
- package/dist-client/index.d.ts +11 -2
- package/dist-client/index.js +74 -66
- package/dist-client/index.js.map +1 -1
- package/dist-client/pages/app-binding/app-binding.d.ts +1 -1
- package/dist-client/pages/app-binding/app-binding.js +3 -2
- package/dist-client/pages/app-binding/app-binding.js.map +1 -1
- package/dist-client/pages/app-binding/app-bindings.js +3 -3
- package/dist-client/pages/app-binding/app-bindings.js.map +1 -1
- package/dist-client/pages/appliance/appliance.d.ts +1 -1
- package/dist-client/pages/appliance/appliance.js +3 -2
- package/dist-client/pages/appliance/appliance.js.map +1 -1
- package/dist-client/pages/appliance/home.js +2 -2
- package/dist-client/pages/appliance/home.js.map +1 -1
- package/dist-client/pages/appliance/register.js +2 -2
- package/dist-client/pages/appliance/register.js.map +1 -1
- package/dist-client/pages/application/application.d.ts +1 -1
- package/dist-client/pages/application/application.js +29 -51
- package/dist-client/pages/application/application.js.map +1 -1
- package/dist-client/pages/application/applications.js +6 -10
- package/dist-client/pages/application/applications.js.map +1 -1
- package/dist-client/pages/application/register.js +2 -2
- package/dist-client/pages/application/register.js.map +1 -1
- package/dist-client/pages/attribute/attribute-set-item-list.d.ts +1 -1
- package/dist-client/pages/attribute/attribute-set-item-list.js +6 -22
- package/dist-client/pages/attribute/attribute-set-item-list.js.map +1 -1
- package/dist-client/pages/attribute/attribute-set-management.d.ts +11 -2
- package/dist-client/pages/attribute/attribute-set-management.js +7 -11
- package/dist-client/pages/attribute/attribute-set-management.js.map +1 -1
- package/dist-client/pages/auth-provider/auth-provider-management.d.ts +11 -2
- package/dist-client/pages/auth-provider/auth-provider-management.js +8 -11
- package/dist-client/pages/auth-provider/auth-provider-management.js.map +1 -1
- package/dist-client/pages/domain/domain-management.d.ts +1 -0
- package/dist-client/pages/domain/domain-management.js +3 -7
- package/dist-client/pages/domain/domain-management.js.map +1 -1
- package/dist-client/pages/partner/partner-management.js +1 -1
- package/dist-client/pages/partner/partner-management.js.map +1 -1
- package/dist-client/pages/profile.js +1 -1
- package/dist-client/pages/profile.js.map +1 -1
- package/dist-client/pages/role/role-management.js +3 -3
- package/dist-client/pages/role/role-management.js.map +1 -1
- package/dist-client/pages/user/user-management.d.ts +1 -0
- package/dist-client/pages/user/user-management.js +4 -3
- package/dist-client/pages/user/user-management.js.map +1 -1
- package/dist-client/themes/auth-theme.css +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -12
- package/translations/en.json +1 -0
- package/translations/ja.json +1 -0
- package/translations/ko.json +1 -0
- package/translations/ms.json +1 -0
- package/translations/zh.json +1 -0
- package/views/auth-page.html +3 -2
- package/views/oauth2-page.html +3 -2
|
@@ -11,7 +11,7 @@ class ApplicationRegister extends connect(store)(PageView) {
|
|
|
11
11
|
static styles = [
|
|
12
12
|
css`
|
|
13
13
|
:host {
|
|
14
|
-
background-color: var(--
|
|
14
|
+
background-color: var(--md-sys-color-background);
|
|
15
15
|
padding: var(--padding-wide);
|
|
16
16
|
|
|
17
17
|
position: relative;
|
|
@@ -165,7 +165,7 @@ class ApplicationRegister extends connect(store)(PageView) {
|
|
|
165
165
|
<input id="email" type="text" name="email" />
|
|
166
166
|
</div>
|
|
167
167
|
|
|
168
|
-
<
|
|
168
|
+
<md-elevated-button grid-span @click=${this.createApplication.bind(this)}>register</md-elevated-button>
|
|
169
169
|
</div>
|
|
170
170
|
</form>
|
|
171
171
|
</div>
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import '@material/web/icon/icon.js'
|
|
2
|
+
|
|
1
3
|
import gql from 'graphql-tag'
|
|
2
4
|
|
|
3
5
|
import { css, html, LitElement } from 'lit'
|
|
@@ -7,6 +9,7 @@ import { client } from '@operato/graphql'
|
|
|
7
9
|
import { i18next, localize } from '@operato/i18n'
|
|
8
10
|
import { isMobileDevice } from '@operato/utils'
|
|
9
11
|
import { ColumnConfig, DataGrist, FetchOption, SortersControl } from '@operato/data-grist'
|
|
12
|
+
import { ButtonContainerStyles } from '@operato/styles'
|
|
10
13
|
|
|
11
14
|
@customElement('attribute-set-item-list')
|
|
12
15
|
class AttributeSetItemList extends localize(i18next)(LitElement) {
|
|
@@ -16,6 +19,7 @@ class AttributeSetItemList extends localize(i18next)(LitElement) {
|
|
|
16
19
|
|
|
17
20
|
static styles = [
|
|
18
21
|
css`
|
|
22
|
+
ButtonContainerStyles,
|
|
19
23
|
:host {
|
|
20
24
|
display: flex;
|
|
21
25
|
flex-direction: column;
|
|
@@ -26,19 +30,6 @@ class AttributeSetItemList extends localize(i18next)(LitElement) {
|
|
|
26
30
|
ox-grist {
|
|
27
31
|
flex: 1;
|
|
28
32
|
}
|
|
29
|
-
|
|
30
|
-
.button-container {
|
|
31
|
-
display: flex;
|
|
32
|
-
margin-left: auto;
|
|
33
|
-
padding: var(--padding-default);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
[danger] {
|
|
37
|
-
--mdc-theme-primary: var(--mdc-danger-button-primary-color);
|
|
38
|
-
}
|
|
39
|
-
mwc-button {
|
|
40
|
-
margin-left: var(--margin-default);
|
|
41
|
-
}
|
|
42
33
|
`
|
|
43
34
|
]
|
|
44
35
|
|
|
@@ -46,16 +37,11 @@ class AttributeSetItemList extends localize(i18next)(LitElement) {
|
|
|
46
37
|
|
|
47
38
|
render() {
|
|
48
39
|
return html`
|
|
49
|
-
<ox-grist
|
|
50
|
-
|
|
51
|
-
.config=${this.gristConfig}
|
|
52
|
-
.fetchHandler=${this.fetchHandler.bind(this)}
|
|
53
|
-
></ox-grist>
|
|
40
|
+
<ox-grist .mode=${isMobileDevice() ? 'LIST' : 'GRID'} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}></ox-grist>
|
|
41
|
+
|
|
54
42
|
<div class="button-container">
|
|
55
|
-
<
|
|
56
|
-
|
|
57
|
-
>
|
|
58
|
-
<mwc-button raised @click=${this.updateAttributeSetItems.bind(this)}>${i18next.t('button.save')}</mwc-button>
|
|
43
|
+
<button danger @click=${this.deleteAttributeSetItems.bind(this)}><md-icon>delete_forever</md-icon>${i18next.t('button.delete')}</button>
|
|
44
|
+
<button @click=${this.updateAttributeSetItems.bind(this)}><md-icon>save</md-icon>${i18next.t('button.save')}</button>
|
|
59
45
|
</div>
|
|
60
46
|
`
|
|
61
47
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import '@material/web/icon/icon.js'
|
|
2
|
+
|
|
1
3
|
import '@operato/data-grist'
|
|
2
4
|
import '@operato/context/ox-context-page-toolbar.js'
|
|
3
5
|
import './attribute-set-item-list.js'
|
|
@@ -67,7 +69,10 @@ export class AttributeSetManagementPage extends connect(store)(localize(i18next)
|
|
|
67
69
|
{
|
|
68
70
|
title: i18next.t('button.delete'),
|
|
69
71
|
action: this.deleteAttributeSet.bind(this),
|
|
70
|
-
icon: 'delete'
|
|
72
|
+
icon: 'delete',
|
|
73
|
+
emphasis: {
|
|
74
|
+
danger: true
|
|
75
|
+
}
|
|
71
76
|
}
|
|
72
77
|
],
|
|
73
78
|
toolbar: false
|
|
@@ -78,17 +83,9 @@ export class AttributeSetManagementPage extends connect(store)(localize(i18next)
|
|
|
78
83
|
const mode = this.mode || (isMobileDevice() ? 'CARD' : 'GRID')
|
|
79
84
|
|
|
80
85
|
return html`
|
|
81
|
-
<ox-grist
|
|
82
|
-
.mode=${mode}
|
|
83
|
-
.config=${this.gristConfig}
|
|
84
|
-
.fetchHandler=${this.fetchHandler.bind(this)}
|
|
85
|
-
?url-params-sensitive=${this.active}
|
|
86
|
-
>
|
|
86
|
+
<ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)} ?url-params-sensitive=${this.active}>
|
|
87
87
|
<div slot="headroom" class="header">
|
|
88
|
-
<div class="title">
|
|
89
|
-
<mwc-icon>summarize</mwc-icon>
|
|
90
|
-
${i18next.t('title.attributes')}
|
|
91
|
-
</div>
|
|
88
|
+
<div class="title">${i18next.t('title.attributes')}</div>
|
|
92
89
|
|
|
93
90
|
<ox-context-page-toolbar class="actions" .context=${this.context}> </ox-context-page-toolbar>
|
|
94
91
|
</div>
|
|
@@ -112,15 +109,12 @@ export class AttributeSetManagementPage extends connect(store)(localize(i18next)
|
|
|
112
109
|
handlers: {
|
|
113
110
|
click: (columns, data, column, record, rowIndex) => {
|
|
114
111
|
if (!record.id) return
|
|
115
|
-
const popup = openPopup(
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
title: i18next.t('title.attribute-item list')
|
|
122
|
-
}
|
|
123
|
-
)
|
|
112
|
+
const popup = openPopup(html` <attribute-set-item-list .attribute=${record}></attribute-set-item-list> `, {
|
|
113
|
+
backdrop: true,
|
|
114
|
+
help: 'attribute/ui/attribute-set-item-list',
|
|
115
|
+
size: 'large',
|
|
116
|
+
title: i18next.t('title.attribute-item list')
|
|
117
|
+
})
|
|
124
118
|
popup.onclosed = () => {
|
|
125
119
|
this.grist.fetch()
|
|
126
120
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import '@material/web/icon/icon.js'
|
|
2
|
+
|
|
1
3
|
import '@operato/data-grist'
|
|
2
4
|
import '@operato/context/ox-context-page-toolbar.js'
|
|
3
5
|
|
|
@@ -68,7 +70,10 @@ export class AuthProviderManagementPage extends connect(store)(localize(i18next)
|
|
|
68
70
|
{
|
|
69
71
|
title: i18next.t('button.delete'),
|
|
70
72
|
action: this.deleteAuthProvider.bind(this),
|
|
71
|
-
icon: 'delete'
|
|
73
|
+
icon: 'delete',
|
|
74
|
+
emphasis: {
|
|
75
|
+
danger: true
|
|
76
|
+
}
|
|
72
77
|
}
|
|
73
78
|
],
|
|
74
79
|
toolbar: false
|
|
@@ -79,17 +84,9 @@ export class AuthProviderManagementPage extends connect(store)(localize(i18next)
|
|
|
79
84
|
const mode = this.mode || (isMobileDevice() ? 'CARD' : 'GRID')
|
|
80
85
|
|
|
81
86
|
return html`
|
|
82
|
-
<ox-grist
|
|
83
|
-
.mode=${mode}
|
|
84
|
-
.config=${this.gristConfig}
|
|
85
|
-
.fetchHandler=${this.fetchHandler.bind(this)}
|
|
86
|
-
?url-params-sensitive=${this.active}
|
|
87
|
-
>
|
|
87
|
+
<ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)} ?url-params-sensitive=${this.active}>
|
|
88
88
|
<div slot="headroom" class="header">
|
|
89
|
-
<div class="title">
|
|
90
|
-
<mwc-icon>summarize</mwc-icon>
|
|
91
|
-
${i18next.t('title.auth-provider')}
|
|
92
|
-
</div>
|
|
89
|
+
<div class="title">${i18next.t('title.auth-provider')}</div>
|
|
93
90
|
|
|
94
91
|
<ox-filters-form autofocus without-search class="filters"></ox-filters-form>
|
|
95
92
|
|
|
@@ -184,11 +181,7 @@ export class AuthProviderManagementPage extends connect(store)(localize(i18next)
|
|
|
184
181
|
record: {
|
|
185
182
|
editable: true,
|
|
186
183
|
options: async (value, column, record, row, field) => {
|
|
187
|
-
const {
|
|
188
|
-
description,
|
|
189
|
-
help,
|
|
190
|
-
parameterSpec: spec
|
|
191
|
-
} = record.type ? this.authProviderTypes[record.type] : ({} as any)
|
|
184
|
+
const { description, help, parameterSpec: spec } = record.type ? this.authProviderTypes[record.type] : ({} as any)
|
|
192
185
|
const context = this.grist
|
|
193
186
|
|
|
194
187
|
return { description, help, spec, context }
|
|
@@ -236,6 +229,7 @@ export class AuthProviderManagementPage extends connect(store)(localize(i18next)
|
|
|
236
229
|
name
|
|
237
230
|
placeholder
|
|
238
231
|
property
|
|
232
|
+
styles
|
|
239
233
|
}
|
|
240
234
|
}
|
|
241
235
|
total
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import '@material/web/icon/icon.js'
|
|
2
|
+
|
|
1
3
|
import '@operato/data-grist/ox-grist.js'
|
|
2
4
|
import '@operato/data-grist/ox-filters-form.js'
|
|
3
5
|
import '@operato/context/ox-context-page-toolbar.js'
|
|
@@ -7,7 +9,7 @@ import '../../components/create-domain-popup'
|
|
|
7
9
|
import gql from 'graphql-tag'
|
|
8
10
|
import { css, html } from 'lit'
|
|
9
11
|
import { customElement, property, query } from 'lit/decorators.js'
|
|
10
|
-
import moment from 'moment-timezone'
|
|
12
|
+
import moment from '@operato/moment-timezone-es'
|
|
11
13
|
import { connect } from 'pwa-helpers/connect-mixin'
|
|
12
14
|
|
|
13
15
|
import { DataGrist } from '@operato/data-grist/ox-grist.js'
|
|
@@ -81,10 +83,7 @@ export class DomainManagement extends connect(store)(localize(i18next)(PageView)
|
|
|
81
83
|
return html`
|
|
82
84
|
<ox-grist .mode=${this.mode} .config=${this.config} .fetchHandler=${this.fetchHandler.bind(this)}>
|
|
83
85
|
<div slot="headroom" class="header">
|
|
84
|
-
<div class="title">
|
|
85
|
-
<mwc-icon>summarize</mwc-icon>
|
|
86
|
-
${i18next.t('text.domain management')}
|
|
87
|
-
</div>
|
|
86
|
+
<div class="title">${i18next.t('text.domain management')}</div>
|
|
88
87
|
|
|
89
88
|
<ox-context-page-toolbar class="actions" .context=${this.context}></ox-context-page-toolbar>
|
|
90
89
|
</div>
|
|
@@ -256,10 +255,6 @@ export class DomainManagement extends connect(store)(localize(i18next)(PageView)
|
|
|
256
255
|
}
|
|
257
256
|
]
|
|
258
257
|
}
|
|
259
|
-
|
|
260
|
-
await this.updateComplete
|
|
261
|
-
|
|
262
|
-
this.grist.fetch()
|
|
263
258
|
}
|
|
264
259
|
|
|
265
260
|
async pageUpdated(changes, lifecycle) {
|
|
@@ -19,7 +19,7 @@ class PartnerManagement extends connect(store)(PageView) {
|
|
|
19
19
|
:host {
|
|
20
20
|
display: flex;
|
|
21
21
|
flex-direction: column;
|
|
22
|
-
background-color: var(--
|
|
22
|
+
background-color: var(--md-sys-color-background);
|
|
23
23
|
padding: var(--padding-wide);
|
|
24
24
|
|
|
25
25
|
overflow: auto;
|
package/client/pages/profile.ts
CHANGED
|
@@ -19,7 +19,7 @@ class RoleManagement extends connect(store)(PageView) {
|
|
|
19
19
|
:host {
|
|
20
20
|
display: flex;
|
|
21
21
|
flex-direction: column;
|
|
22
|
-
background-color: var(--
|
|
22
|
+
background-color: var(--md-sys-color-background);
|
|
23
23
|
padding: var(--padding-wide);
|
|
24
24
|
overflow: auto;
|
|
25
25
|
}
|
|
@@ -74,10 +74,9 @@ class RoleManagement extends connect(store)(PageView) {
|
|
|
74
74
|
<div id="roles-privileges">
|
|
75
75
|
<quick-find-list
|
|
76
76
|
.data="${data}"
|
|
77
|
-
.openHeaderRenderer=${role =>
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
`}
|
|
77
|
+
.openHeaderRenderer=${role => html`
|
|
78
|
+
<role-edit-form .role="${role}" @roleChanged="${e => (this.updateRoleObj = e.detail)}"></role-edit-form>
|
|
79
|
+
`}
|
|
81
80
|
.contentRenderer="${(role, _currentTabKey) => html`
|
|
82
81
|
<role-privilege-editor
|
|
83
82
|
.updateRoleObj=${this.updateRoleObj || {}}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import '@material/web/icon/icon.js'
|
|
2
|
+
|
|
1
3
|
import '@things-factory/component-ui'
|
|
2
4
|
import '../../components/invite-user'
|
|
3
5
|
import '../../components/ownership-transfer-popup'
|
|
@@ -20,7 +22,7 @@ class UserManagement extends PageView {
|
|
|
20
22
|
:host {
|
|
21
23
|
display: flex;
|
|
22
24
|
flex-direction: column;
|
|
23
|
-
background-color: var(--
|
|
25
|
+
background-color: var(--md-sys-color-background);
|
|
24
26
|
padding: var(--padding-wide);
|
|
25
27
|
overflow: auto;
|
|
26
28
|
}
|
|
@@ -99,10 +101,10 @@ class UserManagement extends PageView {
|
|
|
99
101
|
return html`
|
|
100
102
|
${!user.activated
|
|
101
103
|
? html`
|
|
102
|
-
<
|
|
104
|
+
<md-icon>do_disturb</md-icon>
|
|
103
105
|
${user.name}
|
|
104
106
|
`
|
|
105
|
-
: html` ${user.owner ? html` <
|
|
107
|
+
: html` ${user.owner ? html` <md-icon>supervisor_account</md-icon> ` : ''} ${user.name} `}
|
|
106
108
|
`
|
|
107
109
|
}}
|
|
108
110
|
.contentRenderer=${user =>
|
|
@@ -42,7 +42,7 @@ body {
|
|
|
42
42
|
--auth-special-page-padding: 250px 0 100px 0;
|
|
43
43
|
|
|
44
44
|
/* domain select page style*/
|
|
45
|
-
--checkin-background-color: var(--
|
|
45
|
+
--checkin-background-color: var(--md-sys-color-background);
|
|
46
46
|
--checkin-header-height: 45px;
|
|
47
47
|
--checkin-header-background-color: var(--primary-color);
|
|
48
48
|
--checkin-header-title-font: bold 19px var(--theme-font);
|
|
@@ -70,34 +70,45 @@ export const AUTH_STYLE_SIGN = css `
|
|
|
70
70
|
text-align: left;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
.
|
|
73
|
+
.submit-buttons-container {
|
|
74
|
+
grid-column: 1 / -1;
|
|
75
|
+
text-align: center;
|
|
76
|
+
|
|
77
|
+
display: flex;
|
|
78
|
+
align-items: center;
|
|
79
|
+
gap: 10px;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.fingerprint {
|
|
83
|
+
color: var(--md-sys-color-primary-container);
|
|
84
|
+
border: 1.5px solid var(--md-sys-color-primary-container);
|
|
85
|
+
border-radius: 20%;
|
|
86
|
+
width: 36px;
|
|
87
|
+
height: 36px;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.field md-filled-text-field {
|
|
91
|
+
grid-column: 1 / -1;
|
|
74
92
|
width: 100%;
|
|
75
|
-
--mdc-theme-primary: var(--auth-input-color);
|
|
76
|
-
--mdc-theme-error: #fdd55f;
|
|
77
|
-
--mdc-text-field-fill-color: transparent;
|
|
78
|
-
--mdc-text-field-ink-color: var(--auth-input-color);
|
|
79
|
-
--mdc-text-field-label-ink-color: var(--auth-input-color);
|
|
80
|
-
--mdc-text-field-idle-line-color: var(--auth-input-color);
|
|
81
|
-
--mdc-text-field-hover-line-color: var(--auth-input-color);
|
|
82
|
-
font: var(--auth-input-font);
|
|
83
93
|
}
|
|
84
94
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
--mdc-theme-on-primary: var(--primary-color);
|
|
88
|
-
--mdc-button-horizontal-padding: var(--padding-default);
|
|
89
|
-
--mdc-button-ink-color: var(--primary-color);
|
|
95
|
+
md-text-button,
|
|
96
|
+
md-elevated-button {
|
|
90
97
|
grid-column: 1 / -1;
|
|
98
|
+
flex: 1;
|
|
91
99
|
}
|
|
92
100
|
|
|
93
101
|
.wrap .link {
|
|
94
102
|
text-decoration: none;
|
|
95
103
|
justify-self: flex-start;
|
|
96
|
-
color: var(--auth-title-color);
|
|
97
104
|
}
|
|
98
105
|
|
|
99
|
-
.wrap .link
|
|
100
|
-
--
|
|
106
|
+
.wrap .link md-text-button {
|
|
107
|
+
--md-text-button-label-text-color: var(--md-sys-color-primary-container);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.wrap .link md-icon {
|
|
111
|
+
color: var(--md-sys-color-primary-container);
|
|
101
112
|
}
|
|
102
113
|
|
|
103
114
|
#locale-area {
|
|
@@ -110,7 +121,7 @@ export const AUTH_STYLE_SIGN = css `
|
|
|
110
121
|
display: flex;
|
|
111
122
|
align-items: center;
|
|
112
123
|
color: var(--theme-white-color);
|
|
113
|
-
--
|
|
124
|
+
--md-icon-size: 16px;
|
|
114
125
|
}
|
|
115
126
|
|
|
116
127
|
#locale-selector {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-style-sign.js","sourceRoot":"","sources":["../client/auth-style-sign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"auth-style-sign.js","sourceRoot":"","sources":["../client/auth-style-sign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4LjC,CAAA","sourcesContent":["import { css } from 'lit'\n\nexport const AUTH_STYLE_SIGN = css`\n :host {\n display: flex;\n background-color: var(--auth-background);\n }\n\n :host *:focus {\n outline: none;\n }\n\n :host * {\n box-sizing: border-box;\n }\n\n ::placeholder {\n color: var(--opacity-light-color);\n font: var(--auth-input-font);\n }\n .wrap {\n display: block;\n width: 450px;\n min-width: 350px;\n margin: 0 auto;\n padding-bottom: 100px;\n text-align: center;\n }\n .auth-brand {\n color: #fff;\n }\n .auth-brand img {\n margin: 15% auto 5px auto;\n width: 100px;\n border: 3px solid var(--theme-white-color);\n border-radius: 25px;\n box-shadow: var(--box-shadow);\n }\n .name {\n display: block;\n font: var(--auth-brand-name);\n text-shadow: var(--auth-brand-name-shadow);\n }\n .auth-brand .welcome-msg {\n font: var(--auth-brand-welcome-msg);\n }\n .auth-form {\n display: grid;\n grid-gap: var(--margin-default);\n grid-template-columns: 1fr 1fr;\n }\n\n form {\n grid-column: 1 / -1;\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: var(--margin-default);\n align-items: center;\n }\n\n h3 {\n grid-column: 1 / -1;\n margin: 50px 0 0 0;\n font: var(--auth-title-font);\n color: var(--auth-title-color);\n text-transform: uppercase;\n }\n\n .field {\n grid-column: 1 / -1;\n text-align: left;\n }\n\n .submit-buttons-container {\n grid-column: 1 / -1;\n text-align: center;\n\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .fingerprint {\n color: var(--md-sys-color-primary-container);\n border: 1.5px solid var(--md-sys-color-primary-container);\n border-radius: 20%;\n width: 36px;\n height: 36px;\n }\n\n .field md-filled-text-field {\n grid-column: 1 / -1;\n width: 100%;\n }\n\n md-text-button,\n md-elevated-button {\n grid-column: 1 / -1;\n flex: 1;\n }\n\n .wrap .link {\n text-decoration: none;\n justify-self: flex-start;\n }\n\n .wrap .link md-text-button {\n --md-text-button-label-text-color: var(--md-sys-color-primary-container);\n }\n\n .wrap .link md-icon {\n color: var(--md-sys-color-primary-container);\n }\n\n #locale-area {\n display: flex;\n grid-column: 1 / -1;\n padding: 0 var(--padding-default);\n }\n\n #locale-area > label {\n display: flex;\n align-items: center;\n color: var(--theme-white-color);\n --md-icon-size: 16px;\n }\n\n #locale-selector {\n font-size: 16px;\n width: 100%;\n }\n\n #locale-selector {\n --i18n-selector-field-border: none;\n --i18n-selector-field-background-color: none;\n --i18n-selector-field-font-size: 14px;\n --i18n-selector-field-color: var(--theme-white-color);\n }\n\n .lottie-container {\n width: 100%;\n height: 300px;\n position: absolute;\n left: 0;\n bottom: 0;\n pointer-events: none;\n }\n .lottie-container lottie-player {\n position: absolute;\n bottom: -6%;\n width: 100%;\n height: auto;\n }\n\n @media (max-width: 450px) {\n .wrap {\n width: 85%;\n min-width: 320px;\n }\n .auth-form {\n grid-template-columns: 1fr;\n }\n .auth-brand img {\n margin: 12% auto 5px auto;\n width: 75px;\n }\n h3 {\n margin: 15px 0 0 0;\n }\n .lottie-container {\n overflow: hidden;\n height: 200px;\n pointer-events: none;\n }\n .lottie-container lottie-player {\n width: 1200px;\n left: -30%;\n }\n }\n\n @media screen and (min-width: 1400px) {\n .wrap {\n padding-bottom: 150px;\n }\n }\n @media screen and (min-width: 2500px) {\n .wrap {\n padding-bottom: 280px;\n }\n }\n`\n"]}
|
package/dist-client/bootstrap.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import '@material/
|
|
1
|
+
import '@material/web/icon/icon.js';
|
|
2
2
|
import '@operato/i18n/ox-i18n.js';
|
|
3
3
|
import '@operato/attribute/grist-editor'; /* for register data-grist editor type 'attributes' */
|
|
4
4
|
import { html } from 'lit-html';
|
|
@@ -6,8 +6,8 @@ import { navigate, store } from '@operato/shell';
|
|
|
6
6
|
import { TOOL_POSITION } from '@operato/layout';
|
|
7
7
|
import { OxGristEditorPrivilege } from '@operato/app/grist-editor/ox-grist-editor-privilege.js';
|
|
8
8
|
import { registerEditor as registerGristEditor, registerRenderer as registerGristRenderer, OxGristRendererJson5 } from '@operato/data-grist';
|
|
9
|
-
import { auth } from '@things-factory/auth-base/dist-client';
|
|
10
|
-
import { ADD_MORENDA } from '@things-factory/more-base';
|
|
9
|
+
import { auth } from '@things-factory/auth-base/dist-client/auth.js';
|
|
10
|
+
import { ADD_MORENDA } from '@things-factory/more-base/client';
|
|
11
11
|
export default function bootstrap() {
|
|
12
12
|
registerGristEditor('privilege', OxGristEditorPrivilege);
|
|
13
13
|
registerGristRenderer('privilege', OxGristRendererJson5);
|
|
@@ -15,7 +15,7 @@ export default function bootstrap() {
|
|
|
15
15
|
store.dispatch({
|
|
16
16
|
type: ADD_MORENDA,
|
|
17
17
|
morenda: {
|
|
18
|
-
icon: html ` <
|
|
18
|
+
icon: html ` <md-icon>account_circle</md-icon> `,
|
|
19
19
|
name: html ` <ox-i18n msgid="text.auth profile"></ox-i18n> `,
|
|
20
20
|
position: TOOL_POSITION.FRONT_END,
|
|
21
21
|
action: () => {
|
|
@@ -27,7 +27,7 @@ export default function bootstrap() {
|
|
|
27
27
|
store.dispatch({
|
|
28
28
|
type: ADD_MORENDA,
|
|
29
29
|
morenda: {
|
|
30
|
-
icon: html ` <
|
|
30
|
+
icon: html ` <md-icon>exit_to_app</md-icon> `,
|
|
31
31
|
name: html ` <ox-i18n msgid="field.sign out"></ox-i18n> `,
|
|
32
32
|
position: TOOL_POSITION.FRONT_END,
|
|
33
33
|
action: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,4BAA4B,CAAA;AACnC,OAAO,0BAA0B,CAAA;AACjC,OAAO,iCAAiC,CAAA,CAAC,sDAAsD;AAE/F,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAE/B,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wDAAwD,CAAA;AAC/F,OAAO,EAAE,cAAc,IAAI,mBAAmB,EAAE,gBAAgB,IAAI,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE5I,OAAO,EAAE,IAAI,EAAE,MAAM,+CAA+C,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAE9D,MAAM,CAAC,OAAO,UAAU,SAAS;IAC/B,mBAAmB,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAA;IACxD,qBAAqB,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAA;IAExD,8BAA8B;IAC9B,KAAK,CAAC,QAAQ,CAAC;QACb,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACP,IAAI,EAAE,IAAI,CAAA,qCAAqC;YAC/C,IAAI,EAAE,IAAI,CAAA,iDAAiD;YAC3D,QAAQ,EAAE,aAAa,CAAC,SAAS;YACjC,MAAM,EAAE,GAAG,EAAE;gBACX,QAAQ,CAAC,SAAS,CAAC,CAAA;YACrB,CAAC;SACF;KACF,CAAC,CAAA;IAEF,0BAA0B;IAC1B,KAAK,CAAC,QAAQ,CAAC;QACb,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE;YACP,IAAI,EAAE,IAAI,CAAA,kCAAkC;YAC5C,IAAI,EAAE,IAAI,CAAA,8CAA8C;YACxD,QAAQ,EAAE,aAAa,CAAC,SAAS;YACjC,MAAM,EAAE,GAAG,EAAE;gBACX,IAAI,CAAC,OAAO,EAAE,CAAA;YAChB,CAAC;SACF;KACF,CAAC,CAAA;IAEF;;;;MAIE;IACF,IAAI,CAAC,OAAO,EAAE,CAAA;AAChB,CAAC","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/i18n/ox-i18n.js'\nimport '@operato/attribute/grist-editor' /* for register data-grist editor type 'attributes' */\n\nimport { html } from 'lit-html'\n\nimport { navigate, store } from '@operato/shell'\nimport { TOOL_POSITION } from '@operato/layout'\nimport { OxGristEditorPrivilege } from '@operato/app/grist-editor/ox-grist-editor-privilege.js'\nimport { registerEditor as registerGristEditor, registerRenderer as registerGristRenderer, OxGristRendererJson5 } from '@operato/data-grist'\n\nimport { auth } from '@things-factory/auth-base/dist-client/auth.js'\nimport { ADD_MORENDA } from '@things-factory/more-base/client'\n\nexport default function bootstrap() {\n registerGristEditor('privilege', OxGristEditorPrivilege)\n registerGristRenderer('privilege', OxGristRendererJson5)\n\n /* add user profile morenda */\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html` <md-icon>account_circle</md-icon> `,\n name: html` <ox-i18n msgid=\"text.auth profile\"></ox-i18n> `,\n position: TOOL_POSITION.FRONT_END,\n action: () => {\n navigate('profile')\n }\n }\n })\n\n /* add sign-out morenda */\n store.dispatch({\n type: ADD_MORENDA,\n morenda: {\n icon: html` <md-icon>exit_to_app</md-icon> `,\n name: html` <ox-i18n msgid=\"field.sign out\"></ox-i18n> `,\n position: TOOL_POSITION.FRONT_END,\n action: () => {\n auth.signout()\n }\n }\n })\n\n /* \n Get user profile information from server. \n As soon as response received, auth.on('profile', ...) handlers start to work.\n It's very important point to build UI for the user.\n */\n auth.profile()\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import '@material/
|
|
2
|
-
import '@material/
|
|
3
|
-
import '@material/
|
|
4
|
-
import '@material/
|
|
1
|
+
import '@material/web/icon/icon.js';
|
|
2
|
+
import '@material/web/button/elevated-button.js';
|
|
3
|
+
import '@material/web/button/text-button.js';
|
|
4
|
+
import '@material/web/textfield/filled-text-field.js';
|
|
5
5
|
import '@operato/lottie-player';
|
|
6
6
|
import '@operato/i18n/ox-i18n.js';
|
|
7
7
|
import '@operato/i18n/ox-i18n-selector.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import '@material/
|
|
3
|
-
import '@material/
|
|
4
|
-
import '@material/
|
|
5
|
-
import '@material/
|
|
2
|
+
import '@material/web/icon/icon.js';
|
|
3
|
+
import '@material/web/button/elevated-button.js';
|
|
4
|
+
import '@material/web/button/text-button.js';
|
|
5
|
+
import '@material/web/textfield/filled-text-field.js';
|
|
6
6
|
import '@operato/lottie-player';
|
|
7
7
|
import '@operato/i18n/ox-i18n.js';
|
|
8
8
|
import '@operato/i18n/ox-i18n-selector.js';
|
|
@@ -18,7 +18,7 @@ export class AbstractAuthPage extends localize(i18next)(LitElement) {
|
|
|
18
18
|
const { disableUserFavoredLanguage, languages } = this.data || {};
|
|
19
19
|
var { icon, title, description } = this.applicationMeta;
|
|
20
20
|
return html `
|
|
21
|
-
<div class="content">
|
|
21
|
+
<div class="content md-typescale-display-medium">
|
|
22
22
|
<div class="wrap">
|
|
23
23
|
<div class="auth-brand">
|
|
24
24
|
<img src=${icon} />
|
|
@@ -43,7 +43,7 @@ export class AbstractAuthPage extends localize(i18next)(LitElement) {
|
|
|
43
43
|
${this.links}
|
|
44
44
|
${!disableUserFavoredLanguage
|
|
45
45
|
? html ` <div id="locale-area">
|
|
46
|
-
<label for="locale-selector"><
|
|
46
|
+
<label for="locale-selector"><md-icon>language</md-icon></label>
|
|
47
47
|
<ox-i18n-selector
|
|
48
48
|
id="locale-selector"
|
|
49
49
|
value=${i18next.language || 'en-US'}
|
|
@@ -60,7 +60,9 @@ export class AbstractAuthPage extends localize(i18next)(LitElement) {
|
|
|
60
60
|
</div>
|
|
61
61
|
</div>
|
|
62
62
|
|
|
63
|
-
<
|
|
63
|
+
<md-icon-button class="home" @click=${e => (window.location.href = '/')}
|
|
64
|
+
><md-icon>home</md-icon></md-icon-button
|
|
65
|
+
>
|
|
64
66
|
<ox-snack-bar id="snackbar" level="error" .message=${this.message}></ox-snack-bar>
|
|
65
67
|
|
|
66
68
|
${isSafari()
|
|
@@ -76,7 +78,7 @@ export class AbstractAuthPage extends localize(i18next)(LitElement) {
|
|
|
76
78
|
firstUpdated() {
|
|
77
79
|
setTimeout(() => {
|
|
78
80
|
;
|
|
79
|
-
this.renderRoot.querySelector('
|
|
81
|
+
this.renderRoot.querySelector('md-filled-text-field').focus();
|
|
80
82
|
}, 100);
|
|
81
83
|
this.formEl.reset = () => {
|
|
82
84
|
this.formElements.filter(el => !(el.hidden || el.type == 'hidden')).forEach(el => (el.value = ''));
|
|
@@ -94,34 +96,36 @@ export class AbstractAuthPage extends localize(i18next)(LitElement) {
|
|
|
94
96
|
get formfields() {
|
|
95
97
|
var _a;
|
|
96
98
|
const email = ((_a = this.data) === null || _a === void 0 ? void 0 : _a.email) || '';
|
|
99
|
+
// .validationMessage=${String(i18next.t('text.invalid-email'))}
|
|
97
100
|
return html `
|
|
98
101
|
<input id="redirectTo" type="hidden" name="redirectTo" .value=${this.redirectTo || '/'} />
|
|
99
102
|
|
|
100
103
|
<div class="field">
|
|
101
|
-
<
|
|
104
|
+
<md-filled-text-field
|
|
102
105
|
name="email"
|
|
103
106
|
type="email"
|
|
104
107
|
label=${String(i18next.t('field.email'))}
|
|
105
108
|
required
|
|
106
109
|
.value=${email}
|
|
107
|
-
.validationMessage=${String(i18next.t('text.invalid-email'))}
|
|
108
110
|
autocomplete="username"
|
|
109
111
|
autocapitalize="off"
|
|
110
|
-
|
|
112
|
+
><md-icon slot="leading-icon">mail</md-icon></md-filled-text-field
|
|
113
|
+
>
|
|
111
114
|
</div>
|
|
112
115
|
<div class="field">
|
|
113
|
-
<
|
|
116
|
+
<md-filled-text-field
|
|
114
117
|
name="password"
|
|
115
118
|
type="password"
|
|
116
119
|
label=${String(i18next.t('field.password'))}
|
|
117
120
|
autocomplete="current-password"
|
|
118
121
|
required
|
|
119
|
-
|
|
122
|
+
><md-icon slot="leading-icon">vpn_key</md-icon></md-filled-text-field
|
|
123
|
+
>
|
|
120
124
|
</div>
|
|
121
125
|
|
|
122
|
-
<
|
|
126
|
+
<md-elevated-button class="ui" type="submit" raised @click=${e => this._onSubmit(e)}>
|
|
123
127
|
<ox-i18n msgid="field.${this.pageName}"> </ox-i18n>
|
|
124
|
-
</
|
|
128
|
+
</md-elevated-button>
|
|
125
129
|
`;
|
|
126
130
|
}
|
|
127
131
|
get links() {
|
|
@@ -130,16 +134,25 @@ export class AbstractAuthPage extends localize(i18next)(LitElement) {
|
|
|
130
134
|
${!disableUserSignupProcess
|
|
131
135
|
? html `
|
|
132
136
|
<a class="link" href="/auth/signup">
|
|
133
|
-
<
|
|
137
|
+
<md-text-button>
|
|
138
|
+
<md-icon slot="icon">add_task</md-icon>
|
|
139
|
+
<ox-i18n msgid="field.sign up"></ox-i18n>
|
|
140
|
+
</md-text-button>
|
|
134
141
|
</a>
|
|
135
142
|
<a class="link" href="/auth/forgot-password">
|
|
136
|
-
<
|
|
143
|
+
<md-text-button>
|
|
144
|
+
<md-icon slot="icon">lock_open</md-icon>
|
|
145
|
+
<ox-i18n msgid="field.forgot-password"></ox-i18n>
|
|
146
|
+
</md-text-button>
|
|
137
147
|
</a>
|
|
138
148
|
`
|
|
139
149
|
: nothing}
|
|
140
150
|
${ssoLinks.map(sso => html `
|
|
141
151
|
<a class="link" href=${sso.link}>
|
|
142
|
-
<
|
|
152
|
+
<md-text-button>
|
|
153
|
+
<md-icon slot="icon">badge</md-icon>
|
|
154
|
+
${i18next.t('label.signin with', { title: sso.title })}
|
|
155
|
+
</md-text-button>
|
|
143
156
|
</a>
|
|
144
157
|
`)}
|
|
145
158
|
`;
|
|
@@ -196,17 +209,22 @@ AbstractAuthPage.styles = [
|
|
|
196
209
|
height: 100vh;
|
|
197
210
|
height: 100dvh;
|
|
198
211
|
}
|
|
212
|
+
|
|
199
213
|
.content {
|
|
200
214
|
flex: 1;
|
|
201
215
|
overflow: auto;
|
|
202
216
|
}
|
|
203
217
|
|
|
204
|
-
|
|
218
|
+
.home {
|
|
205
219
|
position: absolute;
|
|
220
|
+
padding: var(--padding-dufault, 9px);
|
|
221
|
+
left: 20px;
|
|
206
222
|
top: 10px;
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
223
|
+
color: var(--theme-white-color);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
div.field {
|
|
227
|
+
margin-bottom: var(--margin-default);
|
|
210
228
|
}
|
|
211
229
|
|
|
212
230
|
[hidden] {
|