-
Notifications
You must be signed in to change notification settings - Fork 5.2k
/
login_buttons.html
85 lines (80 loc) · 2.82 KB
/
login_buttons.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<template name="loginButtons">
<div id="login-buttons" class="login-buttons-dropdown-align-{{align}}">
{{#if currentUser}}
{{#if loggingInOrOut}}
{{! We aren't actually logged in/out yet; we're just setting Meteor.userId
optimistically during an at-startup login-with-token. We expose this
state so other UIs can treat it specially, but we'll just treat it
as logged out. }}
{{#if dropdown}}
{{> _loginButtonsLoggingIn }}
{{else}}
<div class="login-buttons-with-only-one-button">
{{> _loginButtonsLoggingInSingleLoginButton }}
</div>
{{/if}}
{{else}}
{{> _loginButtonsLoggedIn}}
{{/if}}
{{else}}
{{> _loginButtonsLoggedOut}}
{{/if}}
</div>
</template>
<template name="_loginButtonsLoggedIn">
{{#if dropdown}}
{{> _loginButtonsLoggedInDropdown}}
{{else}}
<div class="login-buttons-with-only-one-button">
{{> _loginButtonsLoggedInSingleLogoutButton}}
</div>
{{/if}}
</template>
<template name="_loginButtonsLoggedOut">
{{#if services}} {{! if at least one service is configured }}
{{#if configurationLoaded}}
{{#if dropdown}} {{! if more than one service configured, or password is configured}}
{{> _loginButtonsLoggedOutDropdown}}
{{else}}
{{#with singleService}} {{! at this point there must be only one configured services }}
<div class="login-buttons-with-only-one-button">
{{#if loggingIn}}
{{> _loginButtonsLoggingInSingleLoginButton}}
{{else}}
{{> _loginButtonsLoggedOutSingleLoginButton}}
{{/if}}
</div>
{{/with}}
{{/if}}
{{/if}}
{{else}}
<div class="no-services">No login services configured</div>
{{/if}}
</template>
<!-- used in various places to display messages to user -->
<template name="_loginButtonsMessages">
{{#if errorMessage}}
<div class="message error-message">{{errorMessage}}</div>
{{/if}}
{{#if infoMessage}}
<div class="message info-message">{{infoMessage}}</div>
{{/if}}
</template>
<template name="_loginButtonsLoggingIn">
{{> _loginButtonsLoggingInPadding}}
<div class="loading"> </div>
{{> _loginButtonsLoggingInPadding}}
</template>
<template name="_loginButtonsLoggingInPadding">
{{#unless dropdown}}
{{! invisible div used for correct height of surrounding div. this ensures
that the _loginButtons template is always the same height
and the rest of the page doesn't move up and down }}
<div class="login-buttons-padding">
<div class="login-button single-login-button" style="visibility: hidden;" id="login-buttons-logout"> </div>
</div>
{{else}}
{{! just add some padding }}
<div class="login-buttons-padding"></div>
{{/unless}}
</template>