From f96e7a0dc825eada59f263e7c66299af328cf19b Mon Sep 17 00:00:00 2001 From: Kegan Dougal Date: Mon, 30 Nov 2015 15:52:41 +0000 Subject: [PATCH] Add UserSettings structure --- src/components/structures/UserSettings.js | 162 ++++++++++++++++++++++ src/controllers/organisms/UserSettings.js | 54 -------- 2 files changed, 162 insertions(+), 54 deletions(-) create mode 100644 src/components/structures/UserSettings.js delete mode 100644 src/controllers/organisms/UserSettings.js diff --git a/src/components/structures/UserSettings.js b/src/components/structures/UserSettings.js new file mode 100644 index 0000000000..59187bb69f --- /dev/null +++ b/src/components/structures/UserSettings.js @@ -0,0 +1,162 @@ +/* +Copyright 2015 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. +*/ +var React = require('react'); +var sdk = require('../../index'); +var MatrixClientPeg = require("../../MatrixClientPeg"); +var Modal = require('../../Modal'); +var q = require('q'); +var version = require('../../../package.json').version; + +module.exports = React.createClass({ + displayName: 'UserSettings', + Phases: { + Loading: "loading", + Display: "display", + }, + + getInitialState: function() { + return { + avatarUrl: null, + threePids: [], + clientVersion: version, + phase: this.Phases.Loading, + }; + }, + + componentWillMount: function() { + var self = this; + var cli = MatrixClientPeg.get(); + + var profile_d = cli.getProfileInfo(cli.credentials.userId); + var threepid_d = cli.getThreePids(); + + q.all([profile_d, threepid_d]).then( + function(resps) { + self.setState({ + avatarUrl: resps[0].avatar_url, + threepids: resps[1].threepids, + phase: self.Phases.Display, + }); + }, + function(err) { console.err(err); } + ); + }, + + editAvatar: function() { + var url = MatrixClientPeg.get().mxcUrlToHttp(this.state.avatarUrl); + var ChangeAvatar = sdk.getComponent('settings.ChangeAvatar'); + var avatarDialog = ( +
+ +
+ +
+
+ ); + this.avatarDialog = Modal.createDialogWithElement(avatarDialog); + }, + + addEmail: function() { + + }, + + editDisplayName: function() { + this.refs.displayname.edit(); + }, + + changePassword: function() { + var ChangePassword = sdk.getComponent('settings.ChangePassword'); + Modal.createDialog(ChangePassword); + }, + + onLogoutClicked: function(ev) { + var LogoutPrompt = sdk.getComponent('dialogs.LogoutPrompt'); + this.logoutModal = Modal.createDialog(LogoutPrompt, {onCancel: this.onLogoutPromptCancel}); + }, + + onLogoutPromptCancel: function() { + this.logoutModal.closeDialog(); + }, + + onAvatarDialogCancel: function() { + this.avatarDialog.close(); + }, + + render: function() { + var Loader = sdk.getComponent("elements.Spinner"); + if (this.state.phase === this.Phases.Loading) { + return + } + else if (this.state.phase === this.Phases.Display) { + var ChangeDisplayName = sdk.getComponent('settings.ChangeDisplayName'); + var EnableNotificationsButton = sdk.getComponent('settings.EnableNotificationsButton'); + return ( +
+
+

User Settings

+
+
+
+
+ Profile Photo +
+
+ Edit +
+
+ +
+ +
+ Edit +
+
+ +
+ {this.state.threepids.map(function(val) { + return
{val.address}
; + })} +
+ +
+ Add email +
+
+
+ +
+

Global Settings

+
+
+
+ Change Password +
+
+ Version {this.state.clientVersion} +
+
+ +
+
+ +
+
+
+
+ ); + } + } +}); diff --git a/src/controllers/organisms/UserSettings.js b/src/controllers/organisms/UserSettings.js deleted file mode 100644 index d7bb8d391a..0000000000 --- a/src/controllers/organisms/UserSettings.js +++ /dev/null @@ -1,54 +0,0 @@ -/* -Copyright 2015 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. -*/ - -var MatrixClientPeg = require("../../MatrixClientPeg"); -var q = require('q'); -var version = require('../../../package.json').version; - -module.exports = { - Phases: { - Loading: "loading", - Display: "display", - }, - - getInitialState: function() { - return { - avatarUrl: null, - threePids: [], - clientVersion: version, - phase: this.Phases.Loading, - }; - }, - - componentWillMount: function() { - var self = this; - var cli = MatrixClientPeg.get(); - - var profile_d = cli.getProfileInfo(cli.credentials.userId); - var threepid_d = cli.getThreePids(); - - q.all([profile_d, threepid_d]).then( - function(resps) { - self.setState({ - avatarUrl: resps[0].avatar_url, - threepids: resps[1].threepids, - phase: self.Phases.Display, - }); - }, - function(err) { console.err(err); } - ); - } -}