From b54376aa2acda9451d684a1565772503beaff631 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 7 Jun 2016 21:49:06 +0100 Subject: [PATCH 1/6] Add singleton object to hold SDK configuration --- src/SdkConfig.js | 45 +++++++++++++++++++++++++ src/components/structures/MatrixChat.js | 2 ++ 2 files changed, 47 insertions(+) create mode 100644 src/SdkConfig.js diff --git a/src/SdkConfig.js b/src/SdkConfig.js new file mode 100644 index 0000000000..1452aaa64b --- /dev/null +++ b/src/SdkConfig.js @@ -0,0 +1,45 @@ +/* +Copyright 2016 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 DEFAULTS = { + // URL to a page we show in an iframe to configure integrations + integrations_ui_url: "https://scalar.vector.im/", + // Base URL to the REST interface of the integrations server + integrations_rest_url: "https://scalar.vector.im/api", +}; + +class SdkConfig { + + static get() { + return global.mxReactSdkConfig; + } + + static put(cfg) { + var defaultKeys = Object.keys(DEFAULTS); + for (var i = 0; i < defaultKeys.length; ++i) { + if (cfg[defaultKeys[i]] === undefined) { + cfg[defaultKeys[i]] = DEFAULTS[defaultKeys[i]]; + } + } + global.mxReactSdkConfig = cfg; + } + + static unset() { + global.mxReactSdkConfig = undefined; + } +} + +module.exports = SdkConfig; diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index f708a3e0fb..9aad4e72de 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -19,6 +19,7 @@ var url = require('url'); var Favico = require('favico.js'); var MatrixClientPeg = require("../../MatrixClientPeg"); +var SdkConfig = require("../../SdkConfig"); var Notifier = require("../../Notifier"); var ContextualMenu = require("../../ContextualMenu"); var RoomListSorter = require("../../RoomListSorter"); @@ -123,6 +124,7 @@ module.exports = React.createClass({ }, componentWillMount: function() { + SdkConfig.put(this.props.config); this.favicon = new Favico({animation: 'none'}); }, From 33251e65666c4619c8551c515d85ca28d161a112 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 7 Jun 2016 22:03:31 +0100 Subject: [PATCH 2/6] Remove default options that shouldn't be part of this PR --- src/SdkConfig.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/SdkConfig.js b/src/SdkConfig.js index 1452aaa64b..ca0b7455d8 100644 --- a/src/SdkConfig.js +++ b/src/SdkConfig.js @@ -15,10 +15,6 @@ limitations under the License. */ var DEFAULTS = { - // URL to a page we show in an iframe to configure integrations - integrations_ui_url: "https://scalar.vector.im/", - // Base URL to the REST interface of the integrations server - integrations_rest_url: "https://scalar.vector.im/api", }; class SdkConfig { From d063735c9669a8bdffeeeabff763d66a80aa5c6c Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 7 Jun 2016 22:07:23 +0100 Subject: [PATCH 3/6] Use variable for key name --- src/SdkConfig.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/SdkConfig.js b/src/SdkConfig.js index ca0b7455d8..9eb1baf8c2 100644 --- a/src/SdkConfig.js +++ b/src/SdkConfig.js @@ -26,8 +26,9 @@ class SdkConfig { static put(cfg) { var defaultKeys = Object.keys(DEFAULTS); for (var i = 0; i < defaultKeys.length; ++i) { - if (cfg[defaultKeys[i]] === undefined) { - cfg[defaultKeys[i]] = DEFAULTS[defaultKeys[i]]; + var key = defaultKeys[i]; + if (cfg[key] === undefined) { + cfg[key] = DEFAULTS[key]; } } global.mxReactSdkConfig = cfg; From 12816c5e1f05d1848b823d46f454a05c7b3f466a Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 7 Jun 2016 22:14:56 +0100 Subject: [PATCH 4/6] Explanatory comment --- src/SdkConfig.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/SdkConfig.js b/src/SdkConfig.js index 9eb1baf8c2..11c1dd5858 100644 --- a/src/SdkConfig.js +++ b/src/SdkConfig.js @@ -17,6 +17,12 @@ limitations under the License. var DEFAULTS = { }; +/** + * Class that stores an instance of the SDK config dictionary + * as a singleton such that it can be accessed from SDK + * components without having to be passed deep though + * multiple levels of React components. + */ class SdkConfig { static get() { From 7e8c8dd336f7d83307584f14bd90794961f859cc Mon Sep 17 00:00:00 2001 From: David Baker Date: Wed, 8 Jun 2016 14:54:34 +0100 Subject: [PATCH 5/6] Remove SdkConfig just take a config in MatrixChat, pass the individual things down through the chain. This may become unwieldy: let's see how it goes. --- src/SdkConfig.js | 48 ----------------------- src/components/structures/MatrixChat.js | 4 +- src/components/structures/UserSettings.js | 6 ++- 3 files changed, 5 insertions(+), 53 deletions(-) delete mode 100644 src/SdkConfig.js diff --git a/src/SdkConfig.js b/src/SdkConfig.js deleted file mode 100644 index 11c1dd5858..0000000000 --- a/src/SdkConfig.js +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright 2016 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 DEFAULTS = { -}; - -/** - * Class that stores an instance of the SDK config dictionary - * as a singleton such that it can be accessed from SDK - * components without having to be passed deep though - * multiple levels of React components. - */ -class SdkConfig { - - static get() { - return global.mxReactSdkConfig; - } - - static put(cfg) { - var defaultKeys = Object.keys(DEFAULTS); - for (var i = 0; i < defaultKeys.length; ++i) { - var key = defaultKeys[i]; - if (cfg[key] === undefined) { - cfg[key] = DEFAULTS[key]; - } - } - global.mxReactSdkConfig = cfg; - } - - static unset() { - global.mxReactSdkConfig = undefined; - } -} - -module.exports = SdkConfig; diff --git a/src/components/structures/MatrixChat.js b/src/components/structures/MatrixChat.js index 9aad4e72de..7f7bf034b8 100644 --- a/src/components/structures/MatrixChat.js +++ b/src/components/structures/MatrixChat.js @@ -19,7 +19,6 @@ var url = require('url'); var Favico = require('favico.js'); var MatrixClientPeg = require("../../MatrixClientPeg"); -var SdkConfig = require("../../SdkConfig"); var Notifier = require("../../Notifier"); var ContextualMenu = require("../../ContextualMenu"); var RoomListSorter = require("../../RoomListSorter"); @@ -124,7 +123,6 @@ module.exports = React.createClass({ }, componentWillMount: function() { - SdkConfig.put(this.props.config); this.favicon = new Favico({animation: 'none'}); }, @@ -1094,7 +1092,7 @@ module.exports = React.createClass({ right_panel = break; case this.PageTypes.UserSettings: - page_element = + page_element = right_panel = break; case this.PageTypes.CreateRoom: diff --git a/src/components/structures/UserSettings.js b/src/components/structures/UserSettings.js index e56e5d9d87..3face4649c 100644 --- a/src/components/structures/UserSettings.js +++ b/src/components/structures/UserSettings.js @@ -31,7 +31,9 @@ module.exports = React.createClass({ propTypes: { version: React.PropTypes.string, - onClose: React.PropTypes.func + onClose: React.PropTypes.func, + // The brand string given when creating email pushers + brand: React.PropTypes.string, }, getDefaultProps: function() { @@ -333,7 +335,7 @@ module.exports = React.createClass({

Notifications

- +
); } From cab24bb14c528dbe09b56bbc92544710f3164b4c Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Wed, 8 Jun 2016 21:33:38 +0100 Subject: [PATCH 6/6] Switch matrix-js-sdk back to develop --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f5972473dd..4f1fcbb20c 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "highlight.js": "^8.9.1", "linkifyjs": "^2.0.0-beta.4", "marked": "^0.3.5", - "matrix-js-sdk": "^0.5.4", + "matrix-js-sdk": "matrix-org/matrix-js-sdk#develop", "optimist": "^0.6.1", "q": "^1.4.1", "react": "^15.0.1",