diff --git a/config.json b/config.json index 923d23ab..9834209a 100644 --- a/config.json +++ b/config.json @@ -1,4 +1,4 @@ { - "default_hs_url": "https://matrix.org", + "default_hs_url": "http://localhost:8008", "default_is_url": "https://vector.im" } diff --git a/src/components/structures/RoomDirectory.js b/src/components/structures/RoomDirectory.js index 0f90a0ac..ea2a7237 100644 --- a/src/components/structures/RoomDirectory.js +++ b/src/components/structures/RoomDirectory.js @@ -56,17 +56,27 @@ module.exports = React.createClass({ }); }, - joinRoom: function(roomId) { + joinRoom: function(roomId, shouldPeek) { var self = this; self.setState({ loading: true }); - // XXX: check that JS SDK suppresses duplicate attempts to join the same room - MatrixClientPeg.get().joinRoom(roomId).done(function() { + + var joinOrPeekPromise; + + if (shouldPeek) { + joinOrPeekPromise = MatrixClientPeg.get().peekInRoom(roomId); + } + else { + joinOrPeekPromise = MatrixClientPeg.get().joinRoom(roomId); + } + + joinOrPeekPromise.done(function() { dis.dispatch({ action: 'view_room', room_id: roomId }); }, function(err) { console.error("Failed to join room: %s", JSON.stringify(err)); + console.error(err); var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); Modal.createDialog(ErrorDialog, { title: "Failed to join room", @@ -87,13 +97,34 @@ module.exports = React.createClass({ }); var rows = []; var self = this; + var guestRead, guestJoin; for (var i = 0; i < rooms.length; i++) { var name = rooms[i].name || rooms[i].aliases[0]; + guestRead = null; + guestJoin = null; + var shouldPeek = false; + + if (rooms[i].world_readable) { + guestRead = ( + World Readable + ); + if (MatrixClientPeg.get().isGuest() && !rooms[i].guest_can_join) { + shouldPeek = true; + } + } + if (rooms[i].guest_can_join) { + guestJoin = ( + Guests can join + ); + } + // rows.unshift( - - { name } + + { name } {guestRead} {guestJoin} { rooms[i].aliases[0] } { rooms[i].num_joined_members } diff --git a/src/skins/vector/css/matrix-react-sdk/structures/RoomView.css b/src/skins/vector/css/matrix-react-sdk/structures/RoomView.css index db68f441..b4cd2c0c 100644 --- a/src/skins/vector/css/matrix-react-sdk/structures/RoomView.css +++ b/src/skins/vector/css/matrix-react-sdk/structures/RoomView.css @@ -164,9 +164,17 @@ limitations under the License. margin-bottom: 12px; } +li.mx_RoomView_myReadMarker_container { + height: 0px; + margin: 0px; + padding: 0px; + border: 0px; +} + hr.mx_RoomView_myReadMarker { border-top: solid 1px #76cfa6; - border-bottom: none; + border-bottom: solid 1px #76cfa6; + margin-top: 0px; } .mx_RoomView_statusArea { diff --git a/src/skins/vector/css/matrix-react-sdk/structures/login/Login.css b/src/skins/vector/css/matrix-react-sdk/structures/login/Login.css index 80e5171b..5ee58004 100644 --- a/src/skins/vector/css/matrix-react-sdk/structures/login/Login.css +++ b/src/skins/vector/css/matrix-react-sdk/structures/login/Login.css @@ -105,6 +105,15 @@ limitations under the License. color: #4a4a4a; } +.mx_Login_forgot { + font-size: 13px; + opacity: 0.8; +} + +.mx_Login_forgot:link { + color: #4a4a4a; +} + .mx_Login_loader { position: absolute; left: 50%; diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/EventTile.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/EventTile.css index 440fd4ad..8ea76364 100644 --- a/src/skins/vector/css/matrix-react-sdk/views/rooms/EventTile.css +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/EventTile.css @@ -135,8 +135,8 @@ limitations under the License. z-index: 1; position: relative; width: 90px; + height: 1px; /* Hack to stop the height of this pushing the messages apart. Replaces marigin-top: -6px. This interacts better with a read marker being in between. Content overflows. */ margin-right: 10px; - margin-top: -6px; } .mx_EventTile .mx_MessageTimestamp { diff --git a/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomPreviewBar.css b/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomPreviewBar.css new file mode 100644 index 00000000..f68d7085 --- /dev/null +++ b/src/skins/vector/css/matrix-react-sdk/views/rooms/RoomPreviewBar.css @@ -0,0 +1,32 @@ +/* +Copyright 2015, 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. +*/ + +.mx_RoomPreviewBar { + text-align: center; +} + +.mx_RoomPreviewBar_preview_text { + color: #a4a4a4; +} + +.mx_RoomPreviewBar_join_text { + color: #ff0064; +} + +.mx_RoomPreviewBar_join_text a { + text-decoration: underline; + cursor: pointer; +} diff --git a/src/vector/index.js b/src/vector/index.js index 0ab5054b..9585f686 100644 --- a/src/vector/index.js +++ b/src/vector/index.js @@ -155,7 +155,8 @@ function loadApp() { registrationUrl={makeRegistrationUrl()} ConferenceHandler={VectorConferenceHandler} config={configJson} - startingQueryParams={parseQsFromFragment(window.location)} />, + startingQueryParams={parseQsFromFragment(window.location)} + enableGuest={true} />, document.getElementById('matrixchat') ); }