Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(183)

Side by Side Diff: appengine/swarming/elements/res/imp/common/auth-signin.html

Issue 2177353002: Add top level app element (Closed) Base URL: https://chromium.googlesource.com/external/github.com/luci/luci-py@hello-oauth
Patch Set: Address feedback and introduce new res/ layer of direction Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!-- 1 <!--
2 Copyright 2016 The LUCI Authors. All rights reserved. 2 Copyright 2016 The LUCI Authors. All rights reserved.
3 Use of this source code is governed under the Apache License, Version 2.0 3 Use of this source code is governed under the Apache License, Version 2.0
4 that can be found in the LICENSE file. 4 that can be found in the LICENSE file.
5 5
6 The `auth-signin` element displays sign-in/sign-out button, user email and 6 The `auth-signin` element displays sign-in/sign-out button, user email and
7 avatar. 7 avatar.
8 It has a google-signin/google-signin-aware element under the hood that handles 8 It has a google-signin/google-signin-aware element under the hood that handles
9 the actual OAuth logic. 9 the actual OAuth logic.
10 10
11 Usage: 11 Usage:
12 12
13 <auth-signin></auth-signin> 13 <auth-signin></auth-signin>
14 14
15 Properties: 15 Properties:
16 authHeaders: Object, Use this in iron-ajax to set oauth2 headers. 16 authHeaders: Object, Use this in iron-ajax to set oauth2 headers.
17 authResponse: Object, The raw gapi.auth2.AuthResponse object. 17 authResponse: Object, The raw gapi.auth2.AuthResponse object.
18 clientId: String, The client id to authenticate 18 clientId: String, The client id to authenticate
19 profile: Object, Read Only, The email address and imageurl of the logged in user. 19 profile: Object, Read Only, The email address and imageurl of the logged in user.
20 signedIn: Boolean, Read Only, if the user is logged in. 20 signedIn: Boolean, Read Only, if the user is logged in.
21 21
22 Methods: 22 Methods:
23 signIn(): Signs the user in by popping up the authorization dialog. 23 signIn(): Signs the user in by popping up the authorization dialog.
24 signOut(): Signs the user out. 24 signOut(): Signs the user out.
25 25
26 Events: 26 Events:
27 auth-signin: Fired when the oauth handshake has completed and a user has log ged in. 27 auth-signin: Fired when the oauth handshake has completed and a user has log ged in.
28 --> 28 -->
29 29
30 <link rel="import" href="../../bower_components/google-signin/google-signin-awar e.html"> 30 <link rel="import" href="/res/imp/bower_components/google-signin/google-signin-a ware.html">
31 <link rel="import" href="../../bower_components/polymer/polymer.html"> 31 <link rel="import" href="/res/imp/bower_components/polymer/polymer.html">
32 32
33 33
34 <dom-module id="auth-signin"> 34 <dom-module id="auth-signin">
35 <template> 35 <template>
36 <style> 36 <style>
37 #avatar { 37 #avatar {
38 border-radius: 5px; 38 border-radius: 5px;
39 } 39 }
40 #signinContainer { 40 a {
41 margin-top: 14px; 41 color: white;
42 }
43 .center {
44 vertical-align: middle;
42 } 45 }
43 </style> 46 </style>
44 47
45 <google-signin-aware id="aware" 48 <google-signin-aware id="aware"
46 client-id="[[clientId]]" 49 client-id="[[clientId]]"
47 scopes="email" 50 scopes="email"
48 on-google-signin-aware-success="_onSignin" 51 on-google-signin-aware-success="_onSignin"
49 on-google-signin-aware-signed-out="_onSignout"> 52 on-google-signin-aware-signed-out="_onSignout">
50 </google-signin-aware> 53 </google-signin-aware>
51 54
52 <template is="dom-if" if="[[!signedIn]]"> 55 <template is="dom-if" if="[[!signedIn]]">
53 <div id="signinContainer"> 56 <div id="signinContainer">
54 <a on-tap="signIn" href="#">Sign in</a> 57 <a on-tap="signIn" href="#">Sign in</a>
55 </div> 58 </div>
56 </template> 59 </template>
57 60
58 <template is="dom-if" if="[[signedIn]]"> 61 <template is="dom-if" if="[[signedIn]]">
59 <img id="avatar" src="[[profile.imageUrl]]" width="30" height="30"> 62 <img class="center" id="avatar" src="[[profile.imageUrl]]" width="30" heig ht="30">
60 <span>[[profile.email]]</span> 63 <span class="center" >[[profile.email]]</span>
61 <span>|</span> 64 <span class="center" >|</span>
62 <a on-tap="signOut" href="#">Sign out</a> 65 <a class="center" on-tap="signOut" href="#">Sign out</a>
63 </template> 66 </template>
64 </template> 67 </template>
65 <script> 68 <script>
66 'use strict'; 69 'use strict';
67 Polymer({ 70 Polymer({
68 is: 'auth-signin', 71 is: 'auth-signin',
69 properties: { 72 properties: {
70 authHeaders: { 73 authHeaders: {
71 type: Object, 74 type: Object,
72 computed: "_makeHeader(authResponse)", 75 computed: "_makeHeader(authResponse)",
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 signIn: function() { 122 signIn: function() {
120 this.$.aware.signIn(); 123 this.$.aware.signIn();
121 }, 124 },
122 125
123 signOut: function() { 126 signOut: function() {
124 this.$.aware.signOut(); 127 this.$.aware.signOut();
125 } 128 }
126 }); 129 });
127 </script> 130 </script>
128 </dom-module> 131 </dom-module>
OLDNEW
« no previous file with comments | « appengine/swarming/elements/index.html ('k') | appengine/swarming/elements/res/imp/common/swarming-app.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698