You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.3 KiB
36 lines
1.3 KiB
import { Component } from '../../lib/vues6/vues6.js'
|
|
import { auth_api } from '../service/AuthApi.service.js'
|
|
import { action_service } from '../service/Action.service.js'
|
|
|
|
const template = `
|
|
<div class="coreid-auth-page col-lg-6 col-md-8 col-sm-10 col-xs-12 offset-lg-3 offset-md-2 offset-sm-1 offset-xs-0 text-left">
|
|
<div class="coreid-auth-page-inner">
|
|
<div class="coreid-header font-weight-light">{{ app_name }}</div>
|
|
<div class="coreid-message" v-html="message"></div>
|
|
<div class="buttons text-right pad-top">
|
|
<button
|
|
type="button"
|
|
class="btn btn-primary"
|
|
v-for="(action, index) in actions"
|
|
:key="index"
|
|
@click="action_click(index)"
|
|
>{{ action.text }}</button>
|
|
</div>
|
|
<div class="coreid-loading-spinner" v-if="loading"><div class="inner"></div></div>
|
|
</div>
|
|
</div>
|
|
`
|
|
|
|
export default class AuthPage extends Component {
|
|
static get selector() { return 'coreid-auth-page' }
|
|
static get props() { return ['app_name', 'message', 'actions'] }
|
|
static get template() { return template }
|
|
|
|
loading = false
|
|
|
|
async action_click(index) {
|
|
this.loading = true
|
|
await action_service.perform(this.actions[index])
|
|
}
|
|
}
|