forked from MirrorHub/synapse
SYWEB-12: Add a 'Room Info' button which displays all state content.
Content displayed in a modal dialog. Currently only read-only.
This commit is contained in:
parent
7d709542ca
commit
d5aa965522
3 changed files with 61 additions and 0 deletions
|
@ -76,6 +76,17 @@ angular.module('matrixWebClient')
|
|||
return filtered;
|
||||
};
|
||||
})
|
||||
.filter('stateEventsFilter', function($sce) {
|
||||
return function(events) {
|
||||
var filtered = {};
|
||||
angular.forEach(events, function(value, key) {
|
||||
if (value && typeof(value.state_key) === "string") {
|
||||
filtered[key] = value;
|
||||
}
|
||||
});
|
||||
return filtered;
|
||||
};
|
||||
})
|
||||
.filter('unsafe', ['$sce', function($sce) {
|
||||
return function(text) {
|
||||
return $sce.trustAsHtml(text);
|
||||
|
|
|
@ -1017,6 +1017,15 @@ angular.module('RoomController', ['ngSanitize', 'matrixFilter', 'mFileInput'])
|
|||
});
|
||||
};
|
||||
|
||||
$scope.openRoomInfo = function() {
|
||||
var modalInstance = $modal.open({
|
||||
templateUrl: 'roomInfoTemplate.html',
|
||||
controller: 'RoomInfoController',
|
||||
size: 'lg',
|
||||
scope: $scope
|
||||
});
|
||||
};
|
||||
|
||||
}])
|
||||
.controller('EventInfoController', function($scope, $modalInstance) {
|
||||
console.log("Displaying modal dialog for >>>> " + JSON.stringify($scope.event_selected));
|
||||
|
@ -1026,4 +1035,14 @@ angular.module('RoomController', ['ngSanitize', 'matrixFilter', 'mFileInput'])
|
|||
console.log("Redact event >> " + JSON.stringify($scope.event_selected));
|
||||
$modalInstance.close("redact");
|
||||
};
|
||||
})
|
||||
.controller('RoomInfoController', function($scope, $modalInstance, $filter) {
|
||||
console.log("Displaying room info.");
|
||||
|
||||
$scope.submitState = function(eventType, content) {
|
||||
console.log("Submitting " + eventType + " with " + content);
|
||||
}
|
||||
|
||||
$scope.dismiss = $modalInstance.dismiss;
|
||||
|
||||
});
|
||||
|
|
|
@ -13,6 +13,34 @@
|
|||
</div>
|
||||
</script>
|
||||
|
||||
<script type="text/ng-template" id="roomInfoTemplate.html">
|
||||
<div class="modal-body">
|
||||
<table id="roomInfoTable">
|
||||
<tr>
|
||||
<th>
|
||||
Event Type
|
||||
</th>
|
||||
<th>
|
||||
Content
|
||||
</th>
|
||||
</tr>
|
||||
<tr ng-repeat="(key, event) in events.rooms[room_id] | stateEventsFilter">
|
||||
<td>
|
||||
<pre>{{ key }}</pre>
|
||||
</td>
|
||||
<td>
|
||||
<pre>{{ event.content | json }}</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button ng-click="dismiss()" type="button" class="btn">
|
||||
Close
|
||||
</button>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<div id="roomHeader">
|
||||
<a href ng-click="goToPage('/')"><img src="img/logo-small.png" width="100" height="43" alt="[matrix]"/></a>
|
||||
<div class="roomHeaderInfo">
|
||||
|
@ -216,6 +244,9 @@
|
|||
>
|
||||
Video Call
|
||||
</button>
|
||||
<button ng-click="openRoomInfo()">
|
||||
Room Info
|
||||
</button>
|
||||
</div>
|
||||
|
||||
{{ feedback }}
|
||||
|
|
Loading…
Reference in a new issue