diff --git a/src/controllers/organisms/RoomView.js b/src/controllers/organisms/RoomView.js
index 28b15a261e..b60941c2c2 100644
--- a/src/controllers/organisms/RoomView.js
+++ b/src/controllers/organisms/RoomView.js
@@ -350,8 +350,12 @@ module.exports = {
self.setState({
upload: undefined
});
- }).done(undefined, function() {
- // TODO: display error message
+ }).done(undefined, function(error) {
+ var ErrorDialog = sdk.getComponent("organisms.ErrorDialog");
+ Modal.createDialog(ErrorDialog, {
+ title: "Failed to upload file",
+ description: error.toString()
+ });
});
},
@@ -377,6 +381,7 @@ module.exports = {
room_events: {
search_term: term,
filter: filter,
+ order_by: "recent",
event_context: {
before_limit: 1,
after_limit: 1,
@@ -390,7 +395,11 @@ module.exports = {
searchResults: data,
});
}, function(error) {
- // TODO: show dialog or something
+ var ErrorDialog = sdk.getComponent("organisms.ErrorDialog");
+ Modal.createDialog(ErrorDialog, {
+ title: "Search failed",
+ description: error.toString()
+ });
});
},
@@ -408,7 +417,7 @@ module.exports = {
var eventIds = Object.keys(results);
// XXX: todo: merge overlapping results somehow?
// XXX: why doesn't searching on name work?
- var resultList = eventIds.map(function(key) { return results[key]; }).sort(function(a, b) { b.rank - a.rank });
+ var resultList = eventIds.map(function(key) { return results[key]; }); // .sort(function(a, b) { b.rank - a.rank });
for (var i = 0; i < resultList.length; i++) {
var ts1 = resultList[i].result.origin_server_ts;
ret.push(
); // Rank: {resultList[i].rank}
diff --git a/src/skins/vector/css/atoms/MemberAvatar.css b/src/skins/vector/css/atoms/MemberAvatar.css
index fc5fd60d2f..97dae35f7c 100644
--- a/src/skins/vector/css/atoms/MemberAvatar.css
+++ b/src/skins/vector/css/atoms/MemberAvatar.css
@@ -19,3 +19,12 @@ limitations under the License.
border-radius: 20px;
}
+.mx_MemberAvatar_initial {
+ position: absolute;
+ color: #fff;
+ text-align: center;
+}
+
+.mx_MemberAvatar_wrapper {
+ position: relative;
+}
\ No newline at end of file
diff --git a/src/skins/vector/css/atoms/RoomAvatar.css b/src/skins/vector/css/atoms/RoomAvatar.css
new file mode 100644
index 0000000000..f54a93eeec
--- /dev/null
+++ b/src/skins/vector/css/atoms/RoomAvatar.css
@@ -0,0 +1,25 @@
+/*
+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.
+*/
+
+.mx_RoomAvatar {
+}
+
+.mx_RoomAvatar_initial {
+ position: absolute;
+ color: #fff;
+ text-align: center;
+ font-weight: normal ! important;
+}
\ No newline at end of file
diff --git a/src/skins/vector/css/molecules/MatrixToolbar.css b/src/skins/vector/css/molecules/MatrixToolbar.css
index 99c2824082..b545b1ad3a 100644
--- a/src/skins/vector/css/molecules/MatrixToolbar.css
+++ b/src/skins/vector/css/molecules/MatrixToolbar.css
@@ -15,20 +15,40 @@ limitations under the License.
*/
.mx_MatrixToolbar {
- text-align: center;
- background-color: #ff0064;
+ background-color: #76cfa6;
color: #fff;
- font-weight: bold;
- padding: 6px;
+
+ display: -webkit-box;
+ display: -moz-box;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-align-items: center;
+ align-items: center;
}
-.mx_MatrixToolbar button {
- margin-left: 12px;
+.mx_MatrixToolbar_warning {
+ margin-left: 16px;
+ margin-right: 8px;
+ margin-top: -2px;
+}
+
+.mx_MatrixToolbar_link
+{
+ color: #fff ! important;
+ text-decoration: underline ! important;
+ cursor: pointer;
}
.mx_MatrixToolbar_close {
- float: right;
- margin-top: 3px;
- margin-right: 12px;
+ -webkit-flex: 1;
+ flex: 1;
cursor: pointer;
-}
\ No newline at end of file
+ text-align: right;
+}
+
+.mx_MatrixToolbar_close img {
+ display: block;
+ float: right;
+ margin-right: 10px;
+}
diff --git a/src/skins/vector/css/pages/MatrixChat.css b/src/skins/vector/css/pages/MatrixChat.css
index 0970abf459..e6d7d30b3e 100644
--- a/src/skins/vector/css/pages/MatrixChat.css
+++ b/src/skins/vector/css/pages/MatrixChat.css
@@ -35,7 +35,7 @@ limitations under the License.
-webkit-order: 1;
order: 1;
- height: 21px;
+ height: 40px;
}
.mx_MatrixChat_toolbarShowing {
diff --git a/src/skins/vector/img/cancel-black2.png b/src/skins/vector/img/cancel-black2.png
new file mode 100644
index 0000000000..a928c61b09
Binary files /dev/null and b/src/skins/vector/img/cancel-black2.png differ
diff --git a/src/skins/vector/img/warning.png b/src/skins/vector/img/warning.png
new file mode 100644
index 0000000000..c5553530a8
Binary files /dev/null and b/src/skins/vector/img/warning.png differ
diff --git a/src/skins/vector/views/atoms/MemberAvatar.js b/src/skins/vector/views/atoms/MemberAvatar.js
index 69652e1a2a..c4153b85c3 100644
--- a/src/skins/vector/views/atoms/MemberAvatar.js
+++ b/src/skins/vector/views/atoms/MemberAvatar.js
@@ -40,6 +40,25 @@ module.exports = React.createClass({
},
render: function() {
+ // XXX: recalculates default avatar url constantly
+ if (this.state.imageUrl === this.defaultAvatarUrl(this.props.member)) {
+ var initial;
+ if (this.props.member.name[0])
+ initial = this.props.member.name[0].toUpperCase();
+ if (initial === '@' && this.props.member.name[1])
+ initial = this.props.member.name[1].toUpperCase();
+
+ return (
+
+ { initial }
+
+
+ );
+ }
return (
- );
+
+ // XXX: recalculates fallback avatar constantly
+ if (this.state.imageUrl === this.getFallbackAvatar()) {
+ var initial;
+ if (this.props.room.name[0])
+ initial = this.props.room.name[0].toUpperCase();
+ if ((initial === '@' || initial === '#') && this.props.room.name[1])
+ initial = this.props.room.name[1].toUpperCase();
+
+ return (
+
+ { initial }
+
+
+ );
+ }
+ else {
+ return
+ }
+
}
});
diff --git a/src/skins/vector/views/molecules/MatrixToolbar.js b/src/skins/vector/views/molecules/MatrixToolbar.js
index 4a299f1415..361e39d6f0 100644
--- a/src/skins/vector/views/molecules/MatrixToolbar.js
+++ b/src/skins/vector/views/molecules/MatrixToolbar.js
@@ -28,12 +28,20 @@ module.exports = React.createClass({
Notifier.setToolbarHidden(true);
},
+ onClick: function() {
+ var Notifier = sdk.getComponent('organisms.Notifier');
+ Notifier.setEnabled(true);
+ },
+
render: function() {
var EnableNotificationsButton = sdk.getComponent("atoms.EnableNotificationsButton");
return (
- You are not receiving desktop notifications.
-
+
+
+
);
}