Skip to content
Snippets Groups Projects
room.html 4.31 KiB
Newer Older
  • Learn to ignore specific revisions
  • matrix.org's avatar
    matrix.org committed
    <div ng-controller="RoomController" data-ng-init="onInit()" class="room">
    
        <div class="page">
    
    matrix.org's avatar
    matrix.org committed
    
        <div class="roomName">
            {{ room_alias || room_id }}
        </div>
        
    
        <div class="usersTableWrapper">
            <table class="usersTable">
                <tr ng-repeat="(name, info) in members">
                    <td class="userAvatar">
                        <img class="userAvatarImage" ng-src="{{info.avatar_url || 'img/default-profile.jpg'}}" width="80" height="80"/>
                        <img class="userAvatarGradient" src="img/gradient.png" width="80" height="24"/>
    
                        <!-- FIXME: does allowing <wbr/> to be unescaped introduce HTML injections from user IDs and display names? -->
                        <div class="userName" ng-bind-html="info.displayname || (name.substr(0, name.indexOf(':')) + '<wbr/>' + name.substr(name.indexOf(':'))) | to_trusted"></div>
    
                    <td class="userPresence" ng-class="info.presenceState === 'online' ? 'online' : (info.presenceState === 'unavailable' ? 'unavailable' : '')" />
    
    matrix.org's avatar
    matrix.org committed
        
        <div class="messageTableWrapper">
            <table class="messageTable">
                <tr ng-repeat="msg in messages" ng-class="msg.user_id === state.user_id ? 'mine' : ''">
                    <td class="leftBlock">
                        <div class="sender" ng-hide="messages[$index - 1].user_id === msg.user_id">{{ members[msg.user_id].displayname || msg.user_id }}</div>
    
    Matthew Hodgson's avatar
    Matthew Hodgson committed
                        <div class="timestamp">{{ msg.content.hsob_ts | date:'MMM d HH:mm:ss' }}</div>
    
    matrix.org's avatar
    matrix.org committed
                    </td>
                    <td class="avatar">
                        <img ng-src="{{ members[msg.user_id].avatar_url || 'img/default-profile.jpg' }}" width="32" height="32"
                             ng-hide="messages[$index - 1].user_id === msg.user_id || msg.user_id === state.user_id"/>
                    </td>
                    <td ng-class="!msg.content.membership_target ? (msg.content.msgtype === 'm.emote' ? 'emote text' : 'text') : ''">
                        <div class="bubble">
                            {{ msg.content.msgtype === "m.emote" ? ("* " + (members[msg.user_id].displayname || msg.user_id) + " ") : "" }}
    
                            {{ msg.content.msgtype === "m.text" ? msg.content.body : "" }}
                            <img class="image" ng-hide='msg.content.msgtype !== "m.image"' src="{{ msg.content.url }}" alt="{{ msg.content.body }}"/>
    
    matrix.org's avatar
    matrix.org committed
                        </div>
                    </td>
                    <td class="rightBlock">
                        <img ng-src="{{ members[msg.user_id].avatar_url || 'img/default-profile.jpg' }}" width="32" height="32"
                             ng-hide="messages[$index - 1].user_id === msg.user_id || msg.user_id !== state.user_id"/>
                    </td>
                </tr>
            </table>
        </div>
        
    
    matrix.org's avatar
    matrix.org committed
        </div>
    
        <div class="controlPanel">
            <div class="controls">
                <table class="inputBarTable">
                    <tr>
                        <td width="1">
                            {{ state.user_id }} 
                        </td>
    
    matrix.org's avatar
    matrix.org committed
                            <input class="mainInput" ng-model="textInput" ng-enter="send()" ng-focus="true"/>
                        </td>
                        <td width="1">
                            <button ng-click="send()">Send</button>
                        </td>
                        <td width="1">
                            {{ feedback }}
                        </td>
                    </tr>
    
                    <tr>
                        <td>
                        </td>
                        <td>
                            <input class="mainInput" ng-model="imageURLToSend" ng-enter="sendImage()" placeholder="Image URL"/>
                        </td>
                        <td  width="100px">
                            <button ng-click="sendImage(imageURLToSend)">Send Image</button>
                        </td>
                        <td>
                        </td>
                    </tr>
    
    matrix.org's avatar
    matrix.org committed
                </table>
    
                <span>
                   Invite a user: 
                        <input ng-model="userIDToInvite" size="32" type="text" placeholder="User ID (ex:@user:homeserver)"/>     
                        <button ng-click="inviteUser(userIDToInvite)">Invite</button>
                </span>
                <button ng-click="leaveRoom()">Leave</button>
            </div>
        </div>
    
     </div>