From 88c5a5e07450d8ad2350856cb7790aee4e0073c0 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Tue, 17 Nov 2015 02:14:06 +0000 Subject: [PATCH 001/114] missing copyright --- src/Resend.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/Resend.js b/src/Resend.js index 52b7c936..5d7d7815 100644 --- a/src/Resend.js +++ b/src/Resend.js @@ -1,3 +1,19 @@ +/* +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('matrix-react-sdk/lib/MatrixClientPeg'); var dis = require('matrix-react-sdk/lib/dispatcher'); From 7b3eea0b5845501237b0d8028401eb89170dfb4e Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Tue, 17 Nov 2015 02:15:55 +0000 Subject: [PATCH 002/114] experiment with trying to turn UserSettings into a controller-less 'wiring component' which wires together a series of smaller components (in this case, so small they're mainly --- src/skins/vector/css/molecules/RoomHeader.css | 9 + .../vector/css/organisms/UserSettings.css | 98 +++++++ .../vector/views/molecules/RoomHeader.js | 5 + .../vector/views/organisms/UserSettings.js | 271 ++++++++++++++---- src/skins/vector/views/pages/MatrixChat.js | 2 +- 5 files changed, 334 insertions(+), 51 deletions(-) diff --git a/src/skins/vector/css/molecules/RoomHeader.css b/src/skins/vector/css/molecules/RoomHeader.css index 5519c14d..e033d735 100644 --- a/src/skins/vector/css/molecules/RoomHeader.css +++ b/src/skins/vector/css/molecules/RoomHeader.css @@ -94,7 +94,16 @@ limitations under the License. font-size: 24px; font-weight: bold; overflow: hidden; + margin-left: 63px; text-overflow: ellipsis; + width: 100%; +} + +.mx_RoomHeader_simpleHeaderCancel { + float: right; + margin-top: 8px; + padding: 24px; + cursor: pointer; } .mx_RoomHeader_name { diff --git a/src/skins/vector/css/organisms/UserSettings.css b/src/skins/vector/css/organisms/UserSettings.css index 2b0aca3d..6511439c 100644 --- a/src/skins/vector/css/organisms/UserSettings.css +++ b/src/skins/vector/css/organisms/UserSettings.css @@ -19,3 +19,101 @@ limitations under the License. margin-left: auto; margin-right: auto; } + +.mx_UserSettings_spinner { + display: inline-block; + vertical-align: middle; + margin-right: 12px; + width: 32px; + height: 32px; +} + +.mx_UserSettings_button { + display: inline; + vertical-align: middle; + border: 0px; + height: 36px; + border-radius: 36px; + font-weight: 400; + font-size: 16px; + color: #fff; + background-color: #76cfa6; + width: auto; + margin: auto; + padding: 7px; + padding-left: 1.5em; + padding-right: 1.5em; + cursor: pointer; +} + +.mx_UserSettings h2 { + clear: both; + margin-top: 32px; + margin-bottom: 8px; + margin-left: 63px; + padding-bottom: 6px; + border-bottom: 1px solid #eee; +} + +.mx_UserSettings_section { + margin-left: 63px; + margin-top: 28px; + margin-bottom: 28px; +} + +.mx_UserSettings_profileTable, +.mx_UserSettings_notifTable +{ + display: table; +} + +.mx_UserSettings_profileTableRow, +.mx_UserSettings_notifTableRow +{ + display: table-row; +} + +.mx_UserSettings_profileLabelCell +{ + padding-bottom: 21px; + display: table-cell; + font-weight: bold; + padding-right: 24px; +} + +.mx_UserSettings_profileInputCell { + display: table-cell; + padding-bottom: 21px; + width: 240px; +} + +.mx_UserSettings_profileInputCell input { + border: 0px; + border-bottom: 1px solid rgba(151, 151, 151, 0.5); + padding: 0px; + width: 240px; + color: rgba(74, 74, 74, 0.9); + font-family: 'Myriad Pro', Helvetica, Arial, Sans-Serif; + font-size: 16px; +} + +.mx_UserSettings_notifInputCell { + display: table-cell; + padding-bottom: 21px; + padding-right: 8px; + width: 16px; +} + +.mx_UserSettings_notifLabelCell +{ + padding-bottom: 21px; + width: 270px; + display: table-cell; +} + +.mx_UserSettings_logout, +.mx_UserSettings_save { + float: right; + margin-right: 24px; + margin-bottom: 24px; +} \ No newline at end of file diff --git a/src/skins/vector/views/molecules/RoomHeader.js b/src/skins/vector/views/molecules/RoomHeader.js index cc43b1cd..47ac9cbe 100644 --- a/src/skins/vector/views/molecules/RoomHeader.js +++ b/src/skins/vector/views/molecules/RoomHeader.js @@ -48,10 +48,15 @@ module.exports = React.createClass({ var header; if (this.props.simpleHeader) { + var cancel; + if (this.props.onCancelClick) { + cancel = Close + } header =
{ this.props.simpleHeader } + { cancel }
} diff --git a/src/skins/vector/views/organisms/UserSettings.js b/src/skins/vector/views/organisms/UserSettings.js index ab376ea4..5e1574f1 100644 --- a/src/skins/vector/views/organisms/UserSettings.js +++ b/src/skins/vector/views/organisms/UserSettings.js @@ -15,15 +15,142 @@ limitations under the License. var React = require('react'); var sdk = require('matrix-react-sdk') +var dis = require('matrix-react-sdk/lib/dispatcher') var MatrixClientPeg = require('matrix-react-sdk/lib/MatrixClientPeg'); +var q = require('q'); -var UserSettingsController = require('matrix-react-sdk/lib/controllers/organisms/UserSettings') +var version = require('../../../../../package.json').version; var Modal = require('matrix-react-sdk/lib/Modal'); +var UserSettingsStore = require('matrix-react-sdk/lib/UserSettingsStore'); module.exports = React.createClass({ displayName: 'UserSettings', - mixins: [UserSettingsController], + + Phases: { + Loading: "loading", + Saving: "saving", + Display: "display", + }, + + getInitialState: function() { + return { + avatarUrl: null, + displayName: null, + threePids: [], + clientVersion: version, + phase: this.Phases.Loading, + }; + }, + + componentWillMount: function() { + var self = this; + + var profilePromise = UserSettingsStore.loadProfileInfo(); + var threepidPromise = UserSettingsStore.loadThreePids(); + + q.all([profilePromise, threepidPromise]).then( + function(resps) { + self.setState({ + avatarUrl: resps[0].avatar_url, + displayName: resps[0].displayname, + threepids: resps[1].threepids, + phase: self.Phases.Display, + }); + + // keep a copy of the original state in order to track changes + self.setState({ + originalState: self.state + }); + }, + function(error) { + var ErrorDialog = sdk.getComponent("organisms.ErrorDialog"); + Modal.createDialog(ErrorDialog, { + title: "Can't load user settings", + description: error.toString() + }); + } + ); + }, + + componentDidMount: function() { + this.dispatcherRef = dis.register(this.onAction); + }, + + componentWillUnmount: function() { + dis.unregister(this.dispatcherRef); + }, + + onSaveClicked: function(ev) { + var self = this; + var savePromises = []; + + // XXX: this is managed in ChangeAvatar.js, although could be moved out here in order + // to allow for the change to be staged alongside the rest of the form. + // + // if (this.state.originalState.avatarUrl !== this.state.avatarUrl) { + // savePromises.push( UserSettingsStore.saveAvatarUrl(this.state.avatarUrl) ); + // } + + if (this.state.originalState.displayName !== this.state.displayName) { + savePromises.push( UserSettingsStore.saveDisplayName(this.state.displayName) ); + } + + if (this.state.originalState.threepids.length !== this.state.threepids.length || + this.state.originalState.threepids.every(function(element, index) { + return element === this.state.threepids[index]; + })) + { + savePromises.push( UserSettingsStore.saveThreePids(this.state.threepids) ); + } + + self.setState({ + phase: self.Phases.Saving, + }); + + q.all(savePromises).then( + function(resps) { + self.setState({ + phase: self.Phases.Display, + }); + self.onClose(); + }, + function(error) { + self.setState({ + phase: self.Phases.Display, + }); + var ErrorDialog = sdk.getComponent("organisms.ErrorDialog"); + Modal.createDialog(ErrorDialog, { + title: "Can't save user settings", + description: error.toString() + }); + } + ); + }, + + onClose: function(ev) { + // XXX: use browser history instead to find the previous room? + if (this.props.roomId) { + dis.dispatch({ + action: 'view_room', + room_id: this.props.roomId, + }); + } + else { + dis.dispatch({ + action: 'view_indexed_room', + roomIndex: 0, + }); + } + }, + + onAction: function(payload) { + if (payload.action === "notifier_enabled") { + this.setState({ + enableNotifications : UserSettingsStore.getEnableNotifications() + }); + } + }, editAvatar: function() { var url = MatrixClientPeg.get().mxcUrlToHttp(this.state.avatarUrl); @@ -39,20 +166,11 @@ module.exports = React.createClass({ this.avatarDialog = Modal.createDialogWithElement(avatarDialog); }, - addEmail: function() { - + onAvatarDialogCancel: function() { + this.avatarDialog.close(); }, - editDisplayName: function() { - this.refs.displayname.edit(); - }, - - changePassword: function() { - var ChangePassword = sdk.getComponent('molecules.ChangePassword'); - Modal.createDialog(ChangePassword); - }, - - onLogoutClicked: function(ev) { + onLogoutClicked: function(event) { var LogoutPrompt = sdk.getComponent('organisms.LogoutPrompt'); this.logoutModal = Modal.createDialog(LogoutPrompt, {onCancel: this.onLogoutPromptCancel}); }, @@ -61,62 +179,115 @@ module.exports = React.createClass({ this.logoutModal.closeDialog(); }, - onAvatarDialogCancel: function() { - this.avatarDialog.close(); + onDisplayNameChange: function(event) { + this.setState({ displayName: event.target.value }); + }, + + onEnableNotificationsChange: function(event) { + // don't bother waiting for Save to be clicked, as that'd be silly + UserSettingsStore.setEnableNotifications( this.refs.enableNotifications.value ); + + this.setState({ + enableNotifications : UserSettingsStore.getEnableNotifications() + }); }, render: function() { - var Loader = sdk.getComponent("atoms.Spinner"); + var Loader = sdk.getComponent("atoms.Spinner"); + var saving; switch (this.state.phase) { case this.Phases.Loading: return + case this.Phases.Saving: + saving = case this.Phases.Display: - var ChangeDisplayName = sdk.getComponent('molecules.ChangeDisplayName'); - var EnableNotificationsButton = sdk.getComponent('atoms.EnableNotificationsButton'); + var RoomHeader = sdk.getComponent('molecules.RoomHeader'); return (
-
-

User Settings

-
-
-
-
Profile Photo
-
Edit
+ + +

Profile

+ +
+
+
+
+ +
+
+ +
-
- -
Edit
+ {this.state.threepids.map(function(val) { + var id = "email-" + val.address; + return ( +
+
+ +
+
+ +
+
+ ); + })} + +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
-
- {this.state.threepids.map(function(val) { - return
{val.address}
; - })} -
+
-
Add email
+
+
-
-

Global Settings

-
-
-
- Change Password -
-
- Version {this.state.clientVersion} -
-
- -
-
- +
+
Log out
+
+ +

Notifications

+ +
+
+
+
+ +
+
+ +
+ +

Advanced

+ +
+
+ Version {this.state.clientVersion} +
+
+ +
+
{ saving }
+
Save and close
+
); } diff --git a/src/skins/vector/views/pages/MatrixChat.js b/src/skins/vector/views/pages/MatrixChat.js index 0553c25a..8083902c 100644 --- a/src/skins/vector/views/pages/MatrixChat.js +++ b/src/skins/vector/views/pages/MatrixChat.js @@ -111,7 +111,7 @@ module.exports = React.createClass({ right_panel = break; case this.PageTypes.UserSettings: - page_element = + page_element = right_panel = break; case this.PageTypes.CreateRoom: From 79e39429b7efe9475a9c887ec7bdb7e0dc24baea Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Tue, 17 Nov 2015 02:40:19 +0000 Subject: [PATCH 003/114] add todo --- src/skins/vector/views/organisms/UserSettings.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/skins/vector/views/organisms/UserSettings.js b/src/skins/vector/views/organisms/UserSettings.js index 5e1574f1..ea38c1bc 100644 --- a/src/skins/vector/views/organisms/UserSettings.js +++ b/src/skins/vector/views/organisms/UserSettings.js @@ -104,6 +104,8 @@ module.exports = React.createClass({ savePromises.push( UserSettingsStore.saveThreePids(this.state.threepids) ); } + // TODO: do the password check + self.setState({ phase: self.Phases.Saving, }); From d3938220cf4cf2e7d0e96aadf61881b135d58f7f Mon Sep 17 00:00:00 2001 From: Kegan Dougal Date: Wed, 23 Dec 2015 14:13:24 +0000 Subject: [PATCH 004/114] Duplicate css for applying to mx_EditableText classes so it works with ChangeDisplayName --- src/skins/vector/css/organisms/UserSettings.css | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/skins/vector/css/organisms/UserSettings.css b/src/skins/vector/css/organisms/UserSettings.css index 6511439c..1b760be2 100644 --- a/src/skins/vector/css/organisms/UserSettings.css +++ b/src/skins/vector/css/organisms/UserSettings.css @@ -97,6 +97,16 @@ limitations under the License. font-size: 16px; } +.mx_UserSettings_profileInputCell .mx_EditableText { + border: 0px; + border-bottom: 1px solid rgba(151, 151, 151, 0.5); + padding: 0px; + width: 240px; + color: rgba(74, 74, 74, 0.9); + font-family: 'Myriad Pro', Helvetica, Arial, Sans-Serif; + font-size: 16px; +} + .mx_UserSettings_notifInputCell { display: table-cell; padding-bottom: 21px; From f9f85ec5428b6f6b8e5cbf4f50dd840e5fb41779 Mon Sep 17 00:00:00 2001 From: Kegan Dougal Date: Wed, 23 Dec 2015 16:53:19 +0000 Subject: [PATCH 005/114] More user settings CSS --- .../vector/css/organisms/UserSettings.css | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/skins/vector/css/organisms/UserSettings.css b/src/skins/vector/css/organisms/UserSettings.css index 1b760be2..322f1eea 100644 --- a/src/skins/vector/css/organisms/UserSettings.css +++ b/src/skins/vector/css/organisms/UserSettings.css @@ -18,6 +18,7 @@ limitations under the License. width: 960px; margin-left: auto; margin-right: auto; + overflow-y: auto; } .mx_UserSettings_spinner { @@ -121,9 +122,21 @@ limitations under the License. display: table-cell; } -.mx_UserSettings_logout, -.mx_UserSettings_save { - float: right; +.mx_UserSettings_logout { margin-right: 24px; margin-bottom: 24px; + margin-left: 63px; +} + +.mx_UserSettings_avatarPicker { + width: 320px; +} + +.mx_UserSettings_avatarPicker_edit { + margin: auto; + width: 60%; +} + +.mx_UserSettings_avatarPicker_edit > input{ + display: none; } \ No newline at end of file From 94609db3a6c40a7f25f61af003603a72efd98656 Mon Sep 17 00:00:00 2001 From: Kegan Dougal Date: Thu, 24 Dec 2015 09:21:02 +0000 Subject: [PATCH 006/114] Wrangle CSS to get avatar on UserSettings in the right place --- .../vector/css/organisms/UserSettings.css | 29 +++++++++++++++++-- vector/img | 1 - 2 files changed, 26 insertions(+), 4 deletions(-) delete mode 120000 vector/img diff --git a/src/skins/vector/css/organisms/UserSettings.css b/src/skins/vector/css/organisms/UserSettings.css index 322f1eea..7d1557e9 100644 --- a/src/skins/vector/css/organisms/UserSettings.css +++ b/src/skins/vector/css/organisms/UserSettings.css @@ -62,12 +62,18 @@ limitations under the License. margin-bottom: 28px; } -.mx_UserSettings_profileTable, +.mx_UserSettings_accountTable .mx_UserSettings_notifTable { display: table; } +.mx_UserSettings_profileTable +{ + display: table; + float: left; +} + .mx_UserSettings_profileTableRow, .mx_UserSettings_notifTableRow { @@ -130,13 +136,30 @@ limitations under the License. .mx_UserSettings_avatarPicker { width: 320px; + float: right; } .mx_UserSettings_avatarPicker_edit { - margin: auto; - width: 60%; + position: relative; + left: 50%; + display: inline-block; + margin-top: 10px; } .mx_UserSettings_avatarPicker_edit > input{ display: none; +} + +.mx_UserSettings_avatarPicker_edit > label { + cursor: pointer; +} + +.mx_UserSettings_avatarPicker_img { + margin: 0 auto; + width: 75%; +} + +.mx_UserSettings_avatarPicker_img > img { + display: block; + margin: 0 auto; } \ No newline at end of file diff --git a/vector/img b/vector/img deleted file mode 120000 index 8f1382c0..00000000 --- a/vector/img +++ /dev/null @@ -1 +0,0 @@ -../src/skins/vector/img \ No newline at end of file From 0ab8466a3bdc631c8bf9a0452b6489265144850e Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Thu, 24 Dec 2015 15:12:24 +0000 Subject: [PATCH 007/114] make tabcomplete items clickable --- src/skins/vector/css/molecules/TabCompleteBar.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/skins/vector/css/molecules/TabCompleteBar.css b/src/skins/vector/css/molecules/TabCompleteBar.css index 51ac4198..0c3d42fb 100644 --- a/src/skins/vector/css/molecules/TabCompleteBar.css +++ b/src/skins/vector/css/molecules/TabCompleteBar.css @@ -21,6 +21,7 @@ limitations under the License. .mx_TabCompleteBar_item { display: inline-block; margin-right: 15px; + cursor: pointer; } .mx_TabCompleteBar_item img { From 647c01fe2a0ad1831bd00c90e501e666213519ca Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Mon, 28 Dec 2015 01:34:28 +0000 Subject: [PATCH 008/114] where did this img symlink go? all iamges break without it... --- vector/img | 1 + 1 file changed, 1 insertion(+) create mode 120000 vector/img diff --git a/vector/img b/vector/img new file mode 120000 index 00000000..855fa973 --- /dev/null +++ b/vector/img @@ -0,0 +1 @@ +../src/skins/vector/img/ \ No newline at end of file From 388eb1ff4cd88bd857922a73663510db42112179 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Mon, 28 Dec 2015 01:38:14 +0000 Subject: [PATCH 009/114] use Open Sans, and fix duplication --- src/skins/vector/css/organisms/UserSettings.css | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/skins/vector/css/organisms/UserSettings.css b/src/skins/vector/css/organisms/UserSettings.css index 7d1557e9..d4f94add 100644 --- a/src/skins/vector/css/organisms/UserSettings.css +++ b/src/skins/vector/css/organisms/UserSettings.css @@ -94,23 +94,15 @@ limitations under the License. width: 240px; } -.mx_UserSettings_profileInputCell input { - border: 0px; - border-bottom: 1px solid rgba(151, 151, 151, 0.5); - padding: 0px; - width: 240px; - color: rgba(74, 74, 74, 0.9); - font-family: 'Myriad Pro', Helvetica, Arial, Sans-Serif; - font-size: 16px; -} - +.mx_UserSettings_profileInputCell input, .mx_UserSettings_profileInputCell .mx_EditableText { +{ border: 0px; border-bottom: 1px solid rgba(151, 151, 151, 0.5); padding: 0px; width: 240px; color: rgba(74, 74, 74, 0.9); - font-family: 'Myriad Pro', Helvetica, Arial, Sans-Serif; + font-family: 'Open Sans', Helvetica, Arial, Sans-Serif; font-size: 16px; } @@ -162,4 +154,4 @@ limitations under the License. .mx_UserSettings_avatarPicker_img > img { display: block; margin: 0 auto; -} \ No newline at end of file +} From e9db7b1dccc0d2158c97376030820b6f3077dcf9 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Mon, 28 Dec 2015 01:41:51 +0000 Subject: [PATCH 010/114] doh --- src/skins/vector/css/organisms/UserSettings.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skins/vector/css/organisms/UserSettings.css b/src/skins/vector/css/organisms/UserSettings.css index d4f94add..7f433c4b 100644 --- a/src/skins/vector/css/organisms/UserSettings.css +++ b/src/skins/vector/css/organisms/UserSettings.css @@ -95,7 +95,7 @@ limitations under the License. } .mx_UserSettings_profileInputCell input, -.mx_UserSettings_profileInputCell .mx_EditableText { +.mx_UserSettings_profileInputCell .mx_EditableText { border: 0px; border-bottom: 1px solid rgba(151, 151, 151, 0.5); From 8dd90980d8bf86f5e8472abfb90573d2db0e00dc Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Mon, 28 Dec 2015 02:15:23 +0000 Subject: [PATCH 011/114] add cancel button for lightbox and pare down pointer-events stuff a bit --- src/components/views/elements/ImageView.js | 1 + src/skins/vector/css/atoms/ImageView.css | 16 +++++++++++----- src/skins/vector/img/cancel-white.svg | 10 ++++++++++ 3 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 src/skins/vector/img/cancel-white.svg diff --git a/src/components/views/elements/ImageView.js b/src/components/views/elements/ImageView.js index 741524be..ee51ee26 100644 --- a/src/components/views/elements/ImageView.js +++ b/src/components/views/elements/ImageView.js @@ -118,6 +118,7 @@ module.exports = React.createClass({
+ Close
diff --git a/src/skins/vector/css/atoms/ImageView.css b/src/skins/vector/css/atoms/ImageView.css index 9dd34f80..438d13a7 100644 --- a/src/skins/vector/css/atoms/ImageView.css +++ b/src/skins/vector/css/atoms/ImageView.css @@ -60,9 +60,10 @@ limitations under the License. max-width: 100%; /* XXX: max-height interacts badly with flex on Chrome and doesn't relayout properly until you refresh */ max-height: 100%; - /* object-fit hack needed for Chrome due to Chrome not relaying out until you refresh */ + /* object-fit hack needed for Chrome due to Chrome not re-laying-out until you refresh */ object-fit: contain; /* background-image: url('img/trans.png'); */ + pointer-events: all; } .mx_ImageView_labelWrapper { @@ -70,6 +71,7 @@ limitations under the License. top: 0px; height: 100%; overflow: auto; + pointer-events: all; } .mx_ImageView_label { @@ -86,20 +88,25 @@ limitations under the License. color: #fff; } +.mx_ImageView_cancel { + position: absolute; + top: 0px; + right: 0px; + padding: 35px; + cursor: pointer; +} + .mx_ImageView_name { font-size: 18px; margin-bottom: 6px; - pointer-events: all; } .mx_ImageView_metadata { font-size: 15px; opacity: 0.5; - pointer-events: all; } .mx_ImageView_download { - pointer-events: all; display: table; margin-top: 24px; margin-bottom: 6px; @@ -120,7 +127,6 @@ limitations under the License. } .mx_ImageView_button { - pointer-events: all; font-size: 15px; opacity: 0.5; margin-top: 18px; diff --git a/src/skins/vector/img/cancel-white.svg b/src/skins/vector/img/cancel-white.svg new file mode 100644 index 00000000..65e14c2f --- /dev/null +++ b/src/skins/vector/img/cancel-white.svg @@ -0,0 +1,10 @@ + + + + Slice 1 + Created with Sketch. + + + + + \ No newline at end of file From fa4bd09f0ce560d643e6701301ae4d0f6610e218 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Mon, 28 Dec 2015 02:27:47 +0000 Subject: [PATCH 012/114] fix room header height --- src/skins/vector/css/molecules/RoomHeader.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/skins/vector/css/molecules/RoomHeader.css b/src/skins/vector/css/molecules/RoomHeader.css index 1fc8f8b0..04436841 100644 --- a/src/skins/vector/css/molecules/RoomHeader.css +++ b/src/skins/vector/css/molecules/RoomHeader.css @@ -109,7 +109,7 @@ limitations under the License. .mx_RoomHeader_name { cursor: pointer; vertical-align: middle; - height: 28px; + height: 30px; overflow: hidden; color: #454545; font-weight: bold; From 10e481a8d564dd5b37a07820ba30649427a45409 Mon Sep 17 00:00:00 2001 From: Matthew Hodgson Date: Mon, 28 Dec 2015 03:25:26 +0000 Subject: [PATCH 013/114] noscript --- vector/index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/vector/index.html b/vector/index.html index f926cea5..f8197472 100644 --- a/vector/index.html +++ b/vector/index.html @@ -29,6 +29,7 @@
+