Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Commit

Permalink
Add sign in to top left menu for guests
Browse files Browse the repository at this point in the history
  • Loading branch information
jryans committed Feb 13, 2019
1 parent 4227500 commit 22789ad
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 7 deletions.
4 changes: 4 additions & 0 deletions res/css/views/context_menus/_TopLeftMenu.scss
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ limitations under the License.
mask-image: url('$(res)/img/feather-icons/settings.svg');
}

li.mx_TopLeftMenu_icon_signin::after {
mask-image: url('$(res)/img/feather-icons/sign-in.svg');
}

li.mx_TopLeftMenu_icon_signout::after {
mask-image: url('$(res)/img/feather-icons/sign-out.svg');
}
Expand Down
7 changes: 7 additions & 0 deletions res/img/feather-icons/sign-in.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 21 additions & 3 deletions src/components/views/context_menus/TopLeftMenu.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,13 @@ import { _t } from '../../../languageHandler';
import LogoutDialog from "../dialogs/LogoutDialog";
import Modal from "../../../Modal";
import SdkConfig from '../../../SdkConfig';
import MatrixClientPeg from '../../../MatrixClientPeg';

export class TopLeftMenu extends React.Component {
constructor() {
super();
this.openSettings = this.openSettings.bind(this);
this.signIn = this.signIn.bind(this);
this.signOut = this.signOut.bind(this);
}

Expand All @@ -41,21 +43,32 @@ export class TopLeftMenu extends React.Component {
}

render() {
const isGuest = MatrixClientPeg.get().isGuest();

let homePageSection = null;
if (this.hasHomePage()) {
homePageSection = <ul className="mx_TopLeftMenu_section">
<li className="mx_TopLeftMenu_icon_home" onClick={this.viewHomePage}>{_t("Home")}</li>
</ul>;
}

let signInOutSection;
if (isGuest) {
signInOutSection = <ul className="mx_TopLeftMenu_section">
<li className="mx_TopLeftMenu_icon_signin" onClick={this.signIn}>{_t("Sign in")}</li>
</ul>;
} else {
signInOutSection = <ul className="mx_TopLeftMenu_section">
<li className="mx_TopLeftMenu_icon_signout" onClick={this.signOut}>{_t("Sign out")}</li>
</ul>;
}

return <div className="mx_TopLeftMenu">
{homePageSection}
<ul className="mx_TopLeftMenu_section">
<li className="mx_TopLeftMenu_icon_settings" onClick={this.openSettings}>{_t("Settings")}</li>
</ul>
<ul className="mx_TopLeftMenu_section">
<li className="mx_TopLeftMenu_icon_signout" onClick={this.signOut}>{_t("Sign out")}</li>
</ul>
{signInOutSection}
</div>;
}

Expand All @@ -69,6 +82,11 @@ export class TopLeftMenu extends React.Component {
this.closeMenu();
}

signIn() {
dis.dispatch({action: 'start_login'});
this.closeMenu();
}

signOut() {
Modal.createTrackedDialog('Logout E2E Export', '', LogoutDialog);
this.closeMenu();
Expand Down
6 changes: 2 additions & 4 deletions src/i18n/strings/en_EN.json
Original file line number Diff line number Diff line change
Expand Up @@ -1051,7 +1051,6 @@
"Continue With Encryption Disabled": "Continue With Encryption Disabled",
"Unknown error": "Unknown error",
"Incorrect password": "Incorrect password",
"Deactivate Account": "Deactivate Account",
"This will make your account permanently unusable. You will not be able to log in, and no one will be able to re-register the same user ID. This will cause your account to leave all rooms it is participating in, and it will remove your account details from your identity server. <b>This action is irreversible.</b>": "This will make your account permanently unusable. You will not be able to log in, and no one will be able to re-register the same user ID. This will cause your account to leave all rooms it is participating in, and it will remove your account details from your identity server. <b>This action is irreversible.</b>",
"Deactivating your account <b>does not by default cause us to forget messages you have sent.</b> If you would like us to forget your messages, please tick the box below.": "Deactivating your account <b>does not by default cause us to forget messages you have sent.</b> If you would like us to forget your messages, please tick the box below.",
"Message visibility in Matrix is similar to email. Our forgetting your messages means that messages you have sent will not be shared with any new or unregistered users, but registered users who already have access to these messages will still have access to their copy.": "Message visibility in Matrix is similar to email. Our forgetting your messages means that messages you have sent will not be shared with any new or unregistered users, but registered users who already have access to these messages will still have access to their copy.",
Expand Down Expand Up @@ -1203,6 +1202,7 @@
"Quote": "Quote",
"Source URL": "Source URL",
"Collapse Reply Thread": "Collapse Reply Thread",
"End-to-end encryption information": "End-to-end encryption information",
"Failed to set Direct Message status of room": "Failed to set Direct Message status of room",
"unknown error code": "unknown error code",
"Failed to forget room %(errCode)s": "Failed to forget room %(errCode)s",
Expand All @@ -1220,6 +1220,7 @@
"Set a new status...": "Set a new status...",
"View Community": "View Community",
"Hide": "Hide",
"Sign in": "Sign in",
"Login": "Login",
"powered by Matrix": "powered by Matrix",
"Robot check is currently unavailable on desktop - please use a <a>web browser</a>": "Robot check is currently unavailable on desktop - please use a <a>web browser</a>",
Expand Down Expand Up @@ -1250,7 +1251,6 @@
"Username": "Username",
"Mobile phone number": "Mobile phone number",
"Not sure of your password? <a>Set a new one</a>": "Not sure of your password? <a>Set a new one</a>",
"Sign in": "Sign in",
"Sign in to %(serverName)s": "Sign in to %(serverName)s",
"Change": "Change",
"Sign in with": "Sign in with",
Expand Down Expand Up @@ -1473,7 +1473,6 @@
"unencrypted": "unencrypted",
"Decryption error": "Decryption error",
"Session ID": "Session ID",
"End-to-end encryption information": "End-to-end encryption information",
"Event information": "Event information",
"Sender device information": "Sender device information",
"Passphrases must match": "Passphrases must match",
Expand Down Expand Up @@ -1534,7 +1533,6 @@
"If you didn't set the new recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.": "If you didn't set the new recovery method, an attacker may be trying to access your account. Change your account password and set a new recovery method immediately in Settings.",
"This device is encrypting history using the new recovery method.": "This device is encrypting history using the new recovery method.",
"Go to Settings": "Go to Settings",
"Setting up Secure Messages on this device will re-encrypt this device's message history with the new recovery method.": "Setting up Secure Messages on this device will re-encrypt this device's message history with the new recovery method.",
"Set up Secure Messages": "Set up Secure Messages",
"Recovery Method Removed": "Recovery Method Removed",
"This device has detected that your recovery passphrase and key for Secure Messages have been removed.": "This device has detected that your recovery passphrase and key for Secure Messages have been removed.",
Expand Down

0 comments on commit 22789ad

Please sign in to comment.