summary refs log tree commit diff
diff options
context:
space:
mode:
authorKegan Dougal <kegan@matrix.org>2014-10-30 17:01:17 +0000
committerKegan Dougal <kegan@matrix.org>2014-10-30 17:01:17 +0000
commitf618f99ecea1c200b10e11de7b6fc64fcd1b7e78 (patch)
treeb5db8e1d970eff7716dca92dcce733c0f0be08a4
parentSYWEB-12: Allow edited state events to be submitted. (diff)
downloadsynapse-f618f99ecea1c200b10e11de7b6fc64fcd1b7e78.tar.xz
SYWEB-12: Add ability to add new state events.
-rw-r--r--webclient/room/room-controller.js9
-rw-r--r--webclient/room/room.html14
2 files changed, 21 insertions, 2 deletions
diff --git a/webclient/room/room-controller.js b/webclient/room/room-controller.js
index df93ccf5b8..59274baccb 100644
--- a/webclient/room/room-controller.js
+++ b/webclient/room/room-controller.js
@@ -1018,13 +1018,20 @@ angular.module('RoomController', ['ngSanitize', 'matrixFilter', 'mFileInput'])
     };
 
     $scope.openRoomInfo = function() {
+        $scope.roomInfo = {};
+        $scope.roomInfo.newEvent = {
+            content: {},
+            type: "",
+            state_key: ""
+        };
+
         var stateFilter = $filter("stateEventsFilter");
         var stateEvents = stateFilter($scope.events.rooms[$scope.room_id]);
         // The modal dialog will 2-way bind this field, so we MUST make a deep
         // copy of the state events else we will be *actually adjusing our view
         // of the world* when fiddling with the JSON!! Apparently parse/stringify
         // is faster than jQuery's extend when doing deep copies.
-        $scope.roomInfoStateEvents = JSON.parse(JSON.stringify(stateEvents));
+        $scope.roomInfo.stateEvents = JSON.parse(JSON.stringify(stateEvents));
         var modalInstance = $modal.open({
             templateUrl: 'roomInfoTemplate.html',
             controller: 'RoomInfoController',
diff --git a/webclient/room/room.html b/webclient/room/room.html
index 16c35c032c..6c0db6d7d3 100644
--- a/webclient/room/room.html
+++ b/webclient/room/room.html
@@ -16,7 +16,7 @@
     <script type="text/ng-template" id="roomInfoTemplate.html">
         <div class="modal-body">
             <table class="room-info">
-            <tr ng-repeat="(key, event) in roomInfoStateEvents" class="room-info-event">
+            <tr ng-repeat="(key, event) in roomInfo.stateEvents" class="room-info-event">
                 <td class="room-info-event-meta" width="30%">
                     <span class="monospace">{{ key }}</span>
                     <br/>
@@ -32,6 +32,18 @@
                     <textarea class="room-info-textarea-content" msd-elastic ng-model="event.content" asjson></textarea> 
                 </td>
             </tr>
+            <tr>
+                <td class="room-info-event-meta" width="30%">
+                    <input ng-model="roomInfo.newEvent.type" placeholder="your.event.type" />
+                    <br/>
+                    <button ng-click="submit(roomInfo.newEvent)" type="button" class="btn btn-success" ng-disabled="!roomInfo.newEvent.content">
+                        Submit
+                    </button>
+                </td>
+                <td class="room-info-event-content" width="70%">
+                    <textarea class="room-info-textarea-content" msd-elastic ng-model="roomInfo.newEvent.content" asjson></textarea>
+                </td>
+            </tr>
             </table>
         </div>
         <div class="modal-footer">