Merge remote-tracking branch 'origin/develop' into develop
						commit
						d45397d2e7
					
				| 
						 | 
				
			
			@ -480,7 +480,7 @@ function getMembershipCount(event, roomId) {
 | 
			
		|||
        sendError(event, _t('This room is not recognised.'));
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    const count = room.getJoinedMemberCount();
 | 
			
		||||
    const count = room.getJoinedMembers().length;
 | 
			
		||||
    sendResponse(event, count);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -497,11 +497,12 @@ function canSendEvent(event, roomId) {
 | 
			
		|||
        sendError(event, _t('This room is not recognised.'));
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    if (room.getMyMembership() !== "join") {
 | 
			
		||||
    const me = client.credentials.userId;
 | 
			
		||||
    const member = room.getMember(me);
 | 
			
		||||
    if (!member || member.membership !== "join") {
 | 
			
		||||
        sendError(event, _t('You are not in this room.'));
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    const me = client.credentials.userId;
 | 
			
		||||
 | 
			
		||||
    let canSend = false;
 | 
			
		||||
    if (isState) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -72,7 +72,7 @@ ConferenceCall.prototype._getConferenceUserRoom = function() {
 | 
			
		|||
    for (var i = 0; i < rooms.length; i++) {
 | 
			
		||||
        var confUser = rooms[i].getMember(this.confUserId);
 | 
			
		||||
        if (confUser && confUser.membership === "join" &&
 | 
			
		||||
                rooms[i].getJoinedMemberCount() === 2) {
 | 
			
		||||
                rooms[i].getJoinedMembers().length === 2) {
 | 
			
		||||
            confRoom = rooms[i];
 | 
			
		||||
            break;
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -280,7 +280,7 @@ module.exports = React.createClass({
 | 
			
		|||
            const room = cli.getRoom(this.props.roomId);
 | 
			
		||||
            let isUserInRoom;
 | 
			
		||||
            if (room) {
 | 
			
		||||
                const numMembers = room.getJoinedMemberCount();
 | 
			
		||||
                const numMembers = room.getJoinedMembers().length;
 | 
			
		||||
                membersTitle = _t('%(count)s Members', { count: numMembers });
 | 
			
		||||
                membersBadge = <div title={membersTitle}>{ formatCount(numMembers) }</div>;
 | 
			
		||||
                isUserInRoom = room.hasMembershipState(this.context.matrixClient.credentials.userId, 'join');
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -310,7 +310,7 @@ module.exports = React.createClass({
 | 
			
		|||
                });
 | 
			
		||||
            } else if (room) {
 | 
			
		||||
                //viewing a previously joined room, try to lazy load members
 | 
			
		||||
 | 
			
		||||
                
 | 
			
		||||
                // Stop peeking because we have joined this room previously
 | 
			
		||||
                MatrixClientPeg.get().stopPeeking();
 | 
			
		||||
                this.setState({isPeeking: false});
 | 
			
		||||
| 
						 | 
				
			
			@ -363,7 +363,7 @@ module.exports = React.createClass({
 | 
			
		|||
        // XXX: EVIL HACK to autofocus inviting on empty rooms.
 | 
			
		||||
        // We use the setTimeout to avoid racing with focus_composer.
 | 
			
		||||
        if (this.state.room &&
 | 
			
		||||
            this.state.room.getJoinedMemberCount() == 1 &&
 | 
			
		||||
            this.state.room.getJoinedMembers().length == 1 &&
 | 
			
		||||
            this.state.room.getLiveTimeline() &&
 | 
			
		||||
            this.state.room.getLiveTimeline().getEvents() &&
 | 
			
		||||
            this.state.room.getLiveTimeline().getEvents().length <= 6) {
 | 
			
		||||
| 
						 | 
				
			
			@ -1507,8 +1507,9 @@ module.exports = React.createClass({
 | 
			
		|||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const myMembership = this.state.room.getMyMembership();
 | 
			
		||||
        if (myMembership == 'invite') {
 | 
			
		||||
        const myUserId = MatrixClientPeg.get().credentials.userId;
 | 
			
		||||
        const myMember = this.state.room.getMember(myUserId);
 | 
			
		||||
        if (myMember && myMember.membership == 'invite') {
 | 
			
		||||
            if (this.state.joining || this.state.rejecting) {
 | 
			
		||||
                return (
 | 
			
		||||
                    <div className="mx_RoomView">
 | 
			
		||||
| 
						 | 
				
			
			@ -1516,8 +1517,6 @@ module.exports = React.createClass({
 | 
			
		|||
                    </div>
 | 
			
		||||
                );
 | 
			
		||||
            } else {
 | 
			
		||||
                const myUserId = MatrixClientPeg.get().credentials.userId;
 | 
			
		||||
                const myMember = this.state.room.getMember(myUserId);
 | 
			
		||||
                const inviteEvent = myMember.events.member;
 | 
			
		||||
                var inviterName = inviteEvent.sender ? inviteEvent.sender.name : inviteEvent.getSender();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1601,7 +1600,7 @@ module.exports = React.createClass({
 | 
			
		|||
        } else if (this.state.showingPinned) {
 | 
			
		||||
            hideCancel = true; // has own cancel
 | 
			
		||||
            aux = <PinnedEventsPanel room={this.state.room} onCancelClick={this.onPinnedClick} />;
 | 
			
		||||
        } else if (myMembership !== "join") {
 | 
			
		||||
        } else if (!myMember || myMember.membership !== "join") {
 | 
			
		||||
            // We do have a room object for this room, but we're not currently in it.
 | 
			
		||||
            // We may have a 3rd party invite to it.
 | 
			
		||||
            var inviterName = undefined;
 | 
			
		||||
| 
						 | 
				
			
			@ -1643,7 +1642,7 @@ module.exports = React.createClass({
 | 
			
		|||
        let messageComposer, searchInfo;
 | 
			
		||||
        const canSpeak = (
 | 
			
		||||
            // joined and not showing search results
 | 
			
		||||
            myMembership == 'join' && !this.state.searchResults
 | 
			
		||||
            myMember && (myMember.membership == 'join') && !this.state.searchResults
 | 
			
		||||
        );
 | 
			
		||||
        if (canSpeak) {
 | 
			
		||||
            messageComposer =
 | 
			
		||||
| 
						 | 
				
			
			@ -1778,15 +1777,15 @@ module.exports = React.createClass({
 | 
			
		|||
                    oobData={this.props.oobData}
 | 
			
		||||
                    editing={this.state.editingRoomSettings}
 | 
			
		||||
                    saving={this.state.uploadingRoomSettings}
 | 
			
		||||
                    inRoom={myMembership === 'join'}
 | 
			
		||||
                    inRoom={myMember && myMember.membership === 'join'}
 | 
			
		||||
                    collapsedRhs={this.props.collapsedRhs}
 | 
			
		||||
                    onSearchClick={this.onSearchClick}
 | 
			
		||||
                    onSettingsClick={this.onSettingsClick}
 | 
			
		||||
                    onPinnedClick={this.onPinnedClick}
 | 
			
		||||
                    onSaveClick={this.onSettingsSaveClick}
 | 
			
		||||
                    onCancelClick={(aux && !hideCancel) ? this.onCancelClick : null}
 | 
			
		||||
                    onForgetClick={(myMembership === "leave") ? this.onForgetClick : null}
 | 
			
		||||
                    onLeaveClick={(myMembership === "join") ? this.onLeaveClick : null}
 | 
			
		||||
                    onForgetClick={(myMember && myMember.membership === "leave") ? this.onForgetClick : null}
 | 
			
		||||
                    onLeaveClick={(myMember && myMember.membership === "join") ? this.onLeaveClick : null}
 | 
			
		||||
                />
 | 
			
		||||
                { auxPanel }
 | 
			
		||||
                <div className={fadableSectionClasses}>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -346,18 +346,20 @@ module.exports = React.createClass({
 | 
			
		|||
    },
 | 
			
		||||
 | 
			
		||||
    render: function() {
 | 
			
		||||
        const myMembership = this.props.room.getMyMembership();
 | 
			
		||||
        const myMember = this.props.room.getMember(
 | 
			
		||||
            MatrixClientPeg.get().credentials.userId,
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        // Can't set notif level or tags on non-join rooms
 | 
			
		||||
        if (myMembership !== 'join') {
 | 
			
		||||
            return this._renderLeaveMenu(myMembership);
 | 
			
		||||
        if (myMember.membership !== 'join') {
 | 
			
		||||
            return this._renderLeaveMenu(myMember.membership);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return (
 | 
			
		||||
            <div>
 | 
			
		||||
                { this._renderNotifMenu() }
 | 
			
		||||
                <hr className="mx_RoomTileContextMenu_separator" />
 | 
			
		||||
                { this._renderLeaveMenu(myMembership) }
 | 
			
		||||
                { this._renderLeaveMenu(myMember.membership) }
 | 
			
		||||
                <hr className="mx_RoomTileContextMenu_separator" />
 | 
			
		||||
                { this._renderRoomTagMenu() }
 | 
			
		||||
            </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -794,15 +794,15 @@ module.exports = React.createClass({
 | 
			
		|||
        }
 | 
			
		||||
 | 
			
		||||
        let leaveButton = null;
 | 
			
		||||
        const myMemberShip = this.props.room.getMyMembership();
 | 
			
		||||
        if (myMemberShip) {
 | 
			
		||||
            if (myMemberShip === "join") {
 | 
			
		||||
        const myMember = this.props.room.getMember(myUserId);
 | 
			
		||||
        if (myMember) {
 | 
			
		||||
            if (myMember.membership === "join") {
 | 
			
		||||
                leaveButton = (
 | 
			
		||||
                    <AccessibleButton className="mx_RoomSettings_leaveButton" onClick={this.onLeaveClick}>
 | 
			
		||||
                        { _t('Leave room') }
 | 
			
		||||
                    </AccessibleButton>
 | 
			
		||||
                );
 | 
			
		||||
            } else if (myMemberShip === "leave") {
 | 
			
		||||
            } else if (myMember.membership === "leave") {
 | 
			
		||||
                leaveButton = (
 | 
			
		||||
                    <AccessibleButton className="mx_RoomSettings_leaveButton" onClick={this.onForgetClick}>
 | 
			
		||||
                        { _t('Forget room') }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -256,7 +256,6 @@ export function mkStubRoom(roomId = null) {
 | 
			
		|||
        getAccountData: () => null,
 | 
			
		||||
        hasMembershipState: () => null,
 | 
			
		||||
        getVersion: () => '1',
 | 
			
		||||
        getMyMembership: () => "join",
 | 
			
		||||
        currentState: {
 | 
			
		||||
            getStateEvents: sinon.stub(),
 | 
			
		||||
            mayClientSendStateEvent: sinon.stub().returns(true),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue