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 = (
+
+ );
+ if (MatrixClientPeg.get().isGuest() && !rooms[i].guest_can_join) {
+ shouldPeek = true;
+ }
+ }
+ if (rooms[i].guest_can_join) {
+ guestJoin = (
+
+ );
+ }
+
//
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')
);
}