<div class="content-page" ng-controller="UsersFeedCtrl">
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You 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.
-->
  <div ng:include="'users/users-tabs.html'"></div>
  <br>
  <div>
    <table class="table table-striped">
      <tbody>
        <tr class="table-header">
          <td>Date</td>
          <td>User</td>
          <td>Content</td>
          <td>Verb</td>
          <td>UUID</td>
        </tr>
        <tr class="zebraRows" ng-repeat="activity in activities">
          <td>{{activity.createdDate}}</td>
          <td>{{activity.actor.displayName}}</td>
          <td>{{activity.content}}</td>
          <td>{{activity.verb}}</td>
          <td>{{activity.uuid}}</td>
        </tr>
      </tbody>
    </table>
  </div>


</div>
