summary refs log tree commit diff
path: root/webclient/room
diff options
context:
space:
mode:
authorKegan Dougal <kegan@matrix.org>2014-09-08 18:40:34 -0700
committerKegan Dougal <kegan@matrix.org>2014-09-08 18:40:34 -0700
commit6bdb23449a7b4f5ca0426ec6c942332b245eec30 (patch)
tree223c9c950c8dd91b288315df50023a79ddbeac4c /webclient/room
parentFixed bug which displayed an older room topic because it was being returned f... (diff)
downloadsynapse-6bdb23449a7b4f5ca0426ec6c942332b245eec30.tar.xz
Add ability to set topic by double-clicking on the topic text then hitting enter.
Diffstat (limited to 'webclient/room')
-rw-r--r--webclient/room/room-controller.js25
-rw-r--r--webclient/room/room.html10
2 files changed, 34 insertions, 1 deletions
diff --git a/webclient/room/room-controller.js b/webclient/room/room-controller.js
index c8ca771b25..10ff12a96b 100644
--- a/webclient/room/room-controller.js
+++ b/webclient/room/room-controller.js
@@ -42,6 +42,31 @@ angular.module('RoomController', ['ngSanitize', 'matrixFilter', 'mFileInput'])
     $scope.imageURLToSend = "";
     $scope.userIDToInvite = "";
     
+    // vars and functions for updating the topic
+    $scope.topic = {
+        isEditing: false,
+        newTopicText: "",
+        editTopic: function() {
+            if ($scope.topic.isEditing) {
+                console.log("Warning: Already editing topic.");
+                return;
+            }
+            $scope.topic.newTopicText = $rootScope.events.rooms[$scope.room_id]['m.room.topic'].content.topic;
+            $scope.topic.isEditing = true;
+        },
+        updateTopic: function() {
+            console.log("Updating topic to "+$scope.topic.newTopicText);
+            matrixService.setTopic($scope.room_id, $scope.topic.newTopicText);
+            $scope.topic.isEditing = false;
+        },
+        cancelEdit: function() {
+            $scope.topic.isEditing = false;
+        }
+    };
+    
+    
+    
+    
     var scrollToBottom = function(force) {
         console.log("Scrolling to bottom");
         
diff --git a/webclient/room/room.html b/webclient/room/room.html
index 4be2482f96..0fe45499e0 100644
--- a/webclient/room/room.html
+++ b/webclient/room/room.html
@@ -7,7 +7,15 @@
                 {{ room_id  | mRoomName }}
             </div>
             <div id="roomTopic" ng-show="events.rooms[room_id]['m.room.topic'].content.topic">
-                {{ events.rooms[room_id]['m.room.topic'].content.topic }}
+                <div ng-hide="topic.isEditing" ng-dblclick="topic.editTopic()">
+                    {{ events.rooms[room_id]['m.room.topic'].content.topic | limitTo: 200}}
+                </div>
+                
+                <form ng-submit="topic.updateTopic()" ng-show="topic.isEditing" class="roomTopicForm">
+                    <input ng-model="topic.newTopicText" ng-blur="topic.cancelEdit()" class="roomTopicInput" 
+                    autofocus />
+                </form>
+                
             </div>
         </div>
     </div>