mirror of
https://github.com/SchildiChat/element-web.git
synced 2024-10-01 01:26:12 -04:00
Add topic changes to timeline by adding a tile that just uses TextForEvent
This commit is contained in:
parent
b60a3b61bb
commit
5c7bef3107
38
skins/base/views/molecules/EventAsTextTile.js
Normal file
38
skins/base/views/molecules/EventAsTextTile.js
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var React = require('react');
|
||||||
|
|
||||||
|
var EventAsTextTileController = require("../../../../src/controllers/molecules/EventAsTextTile");
|
||||||
|
|
||||||
|
var TextForEvent = require("../../../../src/TextForEvent");
|
||||||
|
|
||||||
|
module.exports = React.createClass({
|
||||||
|
displayName: 'EventAsTextTile',
|
||||||
|
mixins: [EventAsTextTileController],
|
||||||
|
|
||||||
|
render: function() {
|
||||||
|
var text = TextForEvent.textForEvent(this.props.mxEvent);
|
||||||
|
return (
|
||||||
|
<span ref="content" className="mx_EventAsTextTile mx_MessageTile_content">
|
||||||
|
{TextForEvent.textForEvent(this.props.mxEvent)}
|
||||||
|
</span>
|
||||||
|
);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
@ -106,6 +106,7 @@ require('../skins/base/views/molecules/voip/IncomingCallBox');
|
|||||||
require('../skins/base/views/molecules/voip/MCallInviteTile');
|
require('../skins/base/views/molecules/voip/MCallInviteTile');
|
||||||
require('../skins/base/views/molecules/voip/MCallAnswerTile');
|
require('../skins/base/views/molecules/voip/MCallAnswerTile');
|
||||||
require('../skins/base/views/molecules/voip/MCallHangupTile');
|
require('../skins/base/views/molecules/voip/MCallHangupTile');
|
||||||
|
require('../skins/base/views/molecules/EventAsTextTile');
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -49,6 +49,12 @@ function textForMemberEvent(ev) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function textForTopicEvent(ev) {
|
||||||
|
var senderDisplayName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
|
||||||
|
|
||||||
|
return senderDisplayName + ' changed the topic to, "' + ev.getContent().topic + '"';
|
||||||
|
};
|
||||||
|
|
||||||
function textForMessageEvent(ev) {
|
function textForMessageEvent(ev) {
|
||||||
var senderDisplayName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
|
var senderDisplayName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
|
||||||
|
|
||||||
@ -63,6 +69,7 @@ function textForMessageEvent(ev) {
|
|||||||
|
|
||||||
var handlers = {
|
var handlers = {
|
||||||
'm.room.message': textForMessageEvent,
|
'm.room.message': textForMessageEvent,
|
||||||
|
'm.room.topic': textForTopicEvent,
|
||||||
'm.room.member': textForMemberEvent
|
'm.room.member': textForMemberEvent
|
||||||
};
|
};
|
||||||
|
|
||||||
|
21
src/controllers/molecules/EventAsTextTile.js
Normal file
21
src/controllers/molecules/EventAsTextTile.js
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
};
|
||||||
|
|
@ -33,7 +33,8 @@ var tileTypes = {
|
|||||||
'm.room.member': ComponentBroker.get('molecules/MRoomMemberTile'),
|
'm.room.member': ComponentBroker.get('molecules/MRoomMemberTile'),
|
||||||
'm.call.invite': ComponentBroker.get('molecules/voip/MCallInviteTile'),
|
'm.call.invite': ComponentBroker.get('molecules/voip/MCallInviteTile'),
|
||||||
'm.call.answer': ComponentBroker.get('molecules/voip/MCallAnswerTile'),
|
'm.call.answer': ComponentBroker.get('molecules/voip/MCallAnswerTile'),
|
||||||
'm.call.hangup': ComponentBroker.get('molecules/voip/MCallHangupTile')
|
'm.call.hangup': ComponentBroker.get('molecules/voip/MCallHangupTile'),
|
||||||
|
'm.room.topic': ComponentBroker.get('molecules/EventAsTextTile'),
|
||||||
};
|
};
|
||||||
|
|
||||||
var DateSeparator = ComponentBroker.get('molecules/DateSeparator');
|
var DateSeparator = ComponentBroker.get('molecules/DateSeparator');
|
||||||
|
Loading…
Reference in New Issue
Block a user