mirror of https://github.com/vector-im/riot-web
Merge pull request #3426 from vector-im/dbkr/msisdn_signin_2
Support for phone number registration/signin, mk2pull/3530/head
commit
8e3a68dbdc
|
@ -22,9 +22,11 @@
|
||||||
@import "./matrix-react-sdk/views/elements/_AddressSelector.scss";
|
@import "./matrix-react-sdk/views/elements/_AddressSelector.scss";
|
||||||
@import "./matrix-react-sdk/views/elements/_AddressTile.scss";
|
@import "./matrix-react-sdk/views/elements/_AddressTile.scss";
|
||||||
@import "./matrix-react-sdk/views/elements/_DirectorySearchBox.scss";
|
@import "./matrix-react-sdk/views/elements/_DirectorySearchBox.scss";
|
||||||
|
@import "./matrix-react-sdk/views/elements/_Dropdown.scss";
|
||||||
@import "./matrix-react-sdk/views/elements/_MemberEventListSummary.scss";
|
@import "./matrix-react-sdk/views/elements/_MemberEventListSummary.scss";
|
||||||
@import "./matrix-react-sdk/views/elements/_ProgressBar.scss";
|
@import "./matrix-react-sdk/views/elements/_ProgressBar.scss";
|
||||||
@import "./matrix-react-sdk/views/elements/_RichText.scss";
|
@import "./matrix-react-sdk/views/elements/_RichText.scss";
|
||||||
|
@import "./matrix-react-sdk/views/login/_InteractiveAuthEntryComponents.scss";
|
||||||
@import "./matrix-react-sdk/views/login/_ServerConfig.scss";
|
@import "./matrix-react-sdk/views/login/_ServerConfig.scss";
|
||||||
@import "./matrix-react-sdk/views/messages/_MImageBody.scss";
|
@import "./matrix-react-sdk/views/messages/_MImageBody.scss";
|
||||||
@import "./matrix-react-sdk/views/messages/_MNoticeBody.scss";
|
@import "./matrix-react-sdk/views/messages/_MNoticeBody.scss";
|
||||||
|
|
|
@ -66,6 +66,10 @@ limitations under the License.
|
||||||
margin-bottom: 14px;
|
margin-bottom: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mx_Login_username {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
.mx_Login_fieldLabel {
|
.mx_Login_fieldLabel {
|
||||||
margin-top: -10px;
|
margin-top: -10px;
|
||||||
margin-left: 8px;
|
margin-left: 8px;
|
||||||
|
@ -163,3 +167,16 @@ limitations under the License.
|
||||||
margin-bottom: 12px;
|
margin-bottom: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mx_Login_phoneSection {
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_Login_phoneCountry {
|
||||||
|
display: table-cell;
|
||||||
|
width: 70px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_Login_phoneNumberField {
|
||||||
|
width: 210px;
|
||||||
|
margin-left: 3px;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,93 @@
|
||||||
|
/*
|
||||||
|
Copyright 2017 OpenMarket Ltd
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.mx_Dropdown {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_Dropdown_input {
|
||||||
|
position: relative;
|
||||||
|
border-radius: 3px;
|
||||||
|
border: 1px solid $strong-input-border-color;
|
||||||
|
font-weight: 300;
|
||||||
|
font-size: 13px;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_Dropdown_arrow {
|
||||||
|
border-color: $primary-fg-color transparent transparent;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 5px 5px 0;
|
||||||
|
display: block;
|
||||||
|
height: 0;
|
||||||
|
position: absolute;
|
||||||
|
right: 10px;
|
||||||
|
top: 14px;
|
||||||
|
width: 0
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_Dropdown_option {
|
||||||
|
height: 35px;
|
||||||
|
line-height: 35px;
|
||||||
|
padding-left: 8px;
|
||||||
|
padding-right: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_Dropdown_option img {
|
||||||
|
margin: 5px;
|
||||||
|
width: 25px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
input.mx_Dropdown_option, input.mx_Dropdown_option:focus {
|
||||||
|
border: 0;
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
// XXX: hack to prevent text box being too big and pushing
|
||||||
|
// its parent out / overlapping the dropdown arrow. Only really
|
||||||
|
// works in the Country dropdown.
|
||||||
|
width: 60%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_Dropdown_menu {
|
||||||
|
position: absolute;
|
||||||
|
left: -1px;
|
||||||
|
right: -1px;
|
||||||
|
top: 100%;
|
||||||
|
z-index: 2;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0px;
|
||||||
|
border-radius: 3px;
|
||||||
|
border: 1px solid $accent-color;
|
||||||
|
background-color: $primary-bg-color;
|
||||||
|
max-height: 200px;
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_Dropdown_menu .mx_Dropdown_option_highlight {
|
||||||
|
background-color: $focus-bg-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_Dropdown_menu {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_Dropdown_searchPrompt {
|
||||||
|
font-weight: normal;
|
||||||
|
margin-left: 5px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
/*
|
||||||
|
Copyright 2017 Vector Creations Ltd
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.mx_InteractiveAuthEntryComponents_msisdnWrapper {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_InteractiveAuthEntryComponents_msisdnEntry {
|
||||||
|
font-size: 200%;
|
||||||
|
font-weight: bold;
|
||||||
|
border: 1px solid $strong-input-border-color;
|
||||||
|
border-radius: 3px;
|
||||||
|
width: 6em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_InteractiveAuthEntryComponents_msisdnEntry:focus {
|
||||||
|
border: 1px solid $accent-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx_InteractiveAuthEntryComponents_msisdnSubmit {
|
||||||
|
margin-top: 4px;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
// XXX: This should be a common button class
|
||||||
|
.mx_InteractiveAuthEntryComponents_msisdnSubmit:disabled {
|
||||||
|
background-color: $light-fg-color;
|
||||||
|
cursor: default;
|
||||||
|
}
|
|
@ -188,15 +188,17 @@ describe('loading:', function () {
|
||||||
let login = ReactTestUtils.findRenderedComponentWithType(
|
let login = ReactTestUtils.findRenderedComponentWithType(
|
||||||
matrixChat, sdk.getComponent('structures.login.Login'));
|
matrixChat, sdk.getComponent('structures.login.Login'));
|
||||||
httpBackend.when('POST', '/login').check(function(req) {
|
httpBackend.when('POST', '/login').check(function(req) {
|
||||||
|
console.log(req);
|
||||||
expect(req.data.type).toEqual('m.login.password');
|
expect(req.data.type).toEqual('m.login.password');
|
||||||
expect(req.data.user).toEqual('user');
|
expect(req.data.identifier.type).toEqual('m.id.user');
|
||||||
|
expect(req.data.identifier.user).toEqual('user');
|
||||||
expect(req.data.password).toEqual('pass');
|
expect(req.data.password).toEqual('pass');
|
||||||
}).respond(200, {
|
}).respond(200, {
|
||||||
user_id: '@user:id',
|
user_id: '@user:id',
|
||||||
device_id: 'DEVICE_ID',
|
device_id: 'DEVICE_ID',
|
||||||
access_token: 'access_token',
|
access_token: 'access_token',
|
||||||
});
|
});
|
||||||
login.onPasswordLogin("user", "pass")
|
login.onPasswordLogin("user", undefined, undefined, "pass")
|
||||||
return httpBackend.flush();
|
return httpBackend.flush();
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
// Wait for another trip around the event loop for the UI to update
|
// Wait for another trip around the event loop for the UI to update
|
||||||
|
|
Loading…
Reference in New Issue