diff options
author | Paul "LeoNerd" Evans <paul@matrix.org> | 2014-11-17 16:59:24 +0000 |
---|---|---|
committer | Paul "LeoNerd" Evans <paul@matrix.org> | 2014-11-17 16:59:24 +0000 |
commit | 31a049eb692d37387a2db972da754f7ec56218c7 (patch) | |
tree | 9e5f47abad904d30c08d2f340b543a631e436894 /syweb/webclient/home | |
parent | Include room membership in room initialSync (diff) | |
parent | SYN-148: Add the alias after creating the room (diff) | |
download | synapse-31a049eb692d37387a2db972da754f7ec56218c7.tar.xz |
Merge branch 'develop' into room-initial-sync
Conflicts: synapse/handlers/message.py
Diffstat (limited to 'syweb/webclient/home')
-rw-r--r-- | syweb/webclient/home/home-controller.js | 200 | ||||
-rw-r--r-- | syweb/webclient/home/home.html | 78 |
2 files changed, 0 insertions, 278 deletions
diff --git a/syweb/webclient/home/home-controller.js b/syweb/webclient/home/home-controller.js deleted file mode 100644 index 3a48e64ab4..0000000000 --- a/syweb/webclient/home/home-controller.js +++ /dev/null @@ -1,200 +0,0 @@ -/* -Copyright 2014 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'; - -angular.module('HomeController', ['matrixService', 'eventHandlerService', 'RecentsController']) -.controller('HomeController', ['$scope', '$location', 'matrixService', 'eventHandlerService', - function($scope, $location, matrixService, eventHandlerService) { - - $scope.config = matrixService.config(); - $scope.public_rooms = []; - $scope.newRoomId = ""; - $scope.feedback = ""; - - $scope.newRoom = { - room_id: "", - private: false - }; - - $scope.goToRoom = { - room_id: "" - }; - - $scope.joinAlias = { - room_alias: "" - }; - - $scope.profile = { - displayName: "", - avatarUrl: "" - }; - - $scope.newChat = { - user: "" - }; - - var refresh = function() { - - matrixService.publicRooms().then( - function(response) { - $scope.public_rooms = response.data.chunk; - for (var i = 0; i < $scope.public_rooms.length; i++) { - var room = $scope.public_rooms[i]; - - // Add room_alias & room_display_name members - angular.extend(room, matrixService.getRoomAliasAndDisplayName(room)); - - } - } - ); - }; - - $scope.createNewRoom = function(room_alias, isPrivate) { - - var visibility = "public"; - if (isPrivate) { - visibility = "private"; - } - - matrixService.create(room_alias, visibility).then( - function(response) { - // This room has been created. Refresh the rooms list - console.log("Created room " + response.data.room_alias + " with id: "+ - response.data.room_id); - matrixService.createRoomIdToAliasMapping( - response.data.room_id, response.data.room_alias); - }, - function(error) { - $scope.feedback = "Failure: " + JSON.stringify(error.data); - }); - }; - - // Go to a room - $scope.goToRoom = function(room_id) { - matrixService.join(room_id).then( - function(response) { - var final_room_id = room_id; - if (response.data.hasOwnProperty("room_id")) { - final_room_id = response.data.room_id; - } - - // TODO: factor out the common housekeeping whenever we try to join a room or alias - matrixService.roomState(final_room_id).then( - function(response) { - eventHandlerService.handleEvents(response.data, false, true); - }, - function(error) { - $scope.feedback = "Failed to get room state for: " + final_room_id; - } - ); - - $location.url("room/" + final_room_id); - }, - function(error) { - $scope.feedback = "Can't join room: " + JSON.stringify(error.data); - } - ); - }; - - $scope.joinAlias = function(room_alias) { - matrixService.joinAlias(room_alias).then( - function(response) { - // TODO: factor out the common housekeeping whenever we try to join a room or alias - matrixService.roomState(response.room_id).then( - function(response) { - eventHandlerService.handleEvents(response.data, false, true); - }, - function(error) { - $scope.feedback = "Failed to get room state for: " + response.room_id; - } - ); - // Go to this room - $location.url("room/" + room_alias); - }, - function(error) { - $scope.feedback = "Can't join room: " + JSON.stringify(error.data); - } - ); - }; - - // FIXME: factor this out between user-controller and home-controller etc. - $scope.messageUser = function() { - - // FIXME: create a new room every time, for now - - matrixService.create(null, 'private').then( - function(response) { - // This room has been created. Refresh the rooms list - var room_id = response.data.room_id; - console.log("Created room with id: "+ room_id); - - matrixService.invite(room_id, $scope.newChat.user).then( - function() { - $scope.feedback = "Invite sent successfully"; - $scope.$parent.goToPage("/room/" + room_id); - }, - function(reason) { - $scope.feedback = "Failure: " + JSON.stringify(reason); - }); - }, - function(error) { - $scope.feedback = "Failure: " + JSON.stringify(error.data); - }); - }; - - - $scope.onInit = function() { - // Load profile data - // Display name - matrixService.getDisplayName($scope.config.user_id).then( - function(response) { - $scope.profile.displayName = response.data.displayname; - var config = matrixService.config(); - config.display_name = response.data.displayname; - matrixService.setConfig(config); - matrixService.saveConfig(); - }, - function(error) { - $scope.feedback = "Can't load display name"; - } - ); - // Avatar - matrixService.getProfilePictureUrl($scope.config.user_id).then( - function(response) { - $scope.profile.avatarUrl = response.data.avatar_url; - }, - function(error) { - $scope.feedback = "Can't load avatar URL"; - } - ); - - // Listen to room creation event in order to update the public rooms list - $scope.$on(eventHandlerService.ROOM_CREATE_EVENT, function(ngEvent, event, isLive) { - if (isLive) { - // As we do not know if this room is public, do a full list refresh - refresh(); - } - }); - - refresh(); - }; - - // Clean data when user logs out - $scope.$on(eventHandlerService.RESET_EVENT, function() { - $scope.public_rooms = []; - }); -}]); diff --git a/syweb/webclient/home/home.html b/syweb/webclient/home/home.html deleted file mode 100644 index 0af382916e..0000000000 --- a/syweb/webclient/home/home.html +++ /dev/null @@ -1,78 +0,0 @@ -<div ng-controller="HomeController" data-ng-init="onInit()"> - - <div id="wrapper"> - - <div id="genericHeading"> - <a href ng-click="goToPage('/')"><img src="img/logo-small.png" width="100" height="43" alt="[matrix]"/></a> - </div> - - <h1>Welcome to homeserver {{ config.homeserver }}</h1> - - <div> - <div class="profile-avatar"> - <img ng-src="{{ (null !== profile.avatarUrl) ? profile.avatarUrl : 'img/default-profile.png' }}"/> - </div> - <div id="user-ids"> - <div id="user-displayname">{{ profile.displayName }}</div> - <div>{{ config.user_id }}</div> - </div> - </div> - - <h3>Recent conversations</h3> - <div ng-include="'recents/recents.html'"></div> - <br/> - - <h3>Public rooms</h3> - - <table class="publicTable"> - <tbody ng-repeat="room in public_rooms | orderBy:'room_display_name'" - class="publicRoomEntry" - ng-class="room.room_display_name.toLowerCase().indexOf('#matrix:') === 0 ? 'roomHighlight' : ''"> - <tr> - <td class="publicRoomEntry"> - <a href="#/room/{{ room.room_alias ? room.room_alias : room.room_id }}" > - {{ room.room_display_name }} - </a> - </td> - <td> - <div class="publicRoomJoinedUsers" - ng-show="room.num_joined_members"> - {{ room.num_joined_members }} {{ room.num_joined_members == 1 ? 'user' : 'users' }} - </div> - </td> - </tr> - <tr> - <td colspan="2" class="publicRoomTopic"> - {{ room.topic }} - </td> - </tr> - </tbody> - </table> - <br/> - - <div> - <form> - <input size="40" ng-model="newRoom.room_alias" ng-enter="createNewRoom(newRoom.room_alias, newRoom.private)" placeholder="(e.g. foo)"/> - <input type="checkbox" ng-model="newRoom.private">private - <button ng-disabled="!newRoom.room_alias" ng-click="createNewRoom(newRoom.room_alias, newRoom.private)">Create room</button> - </form> - </div> - <div> - <form> - <input size="40" ng-model="joinAlias.room_alias" ng-enter="joinAlias(joinAlias.room_alias)" placeholder="(e.g. #foo:example.org)"/> - <button ng-disabled="!joinAlias.room_alias" ng-click="joinAlias(joinAlias.room_alias)">Join room</button> - </form> - </div> - <div> - <form> - <input size="40" ng-model="newChat.user" ng-enter="messageUser()" placeholder="e.g. @user:domain.com"/> - <button ng-disabled="!newChat.user" ng-click="messageUser()">Message user</button> - </form> - </div> - - <br/> - - {{ feedback }} - - </div> -</div> |