diff options
author | Kegan Dougal <kegan@matrix.org> | 2014-10-30 17:01:17 +0000 |
---|---|---|
committer | Kegan Dougal <kegan@matrix.org> | 2014-10-30 17:01:17 +0000 |
commit | f618f99ecea1c200b10e11de7b6fc64fcd1b7e78 (patch) | |
tree | b5db8e1d970eff7716dca92dcce733c0f0be08a4 | |
parent | SYWEB-12: Allow edited state events to be submitted. (diff) | |
download | synapse-f618f99ecea1c200b10e11de7b6fc64fcd1b7e78.tar.xz |
SYWEB-12: Add ability to add new state events.
-rw-r--r-- | webclient/room/room-controller.js | 9 | ||||
-rw-r--r-- | webclient/room/room.html | 14 |
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"> |