hunk.code_window:     $httpProvider.interceptors.push('jwtInterceptor');
       AnalyticsProvider.setAccount('@@CONFIG_GA_ID');
       $urlRouterProvider.otherwise('/auth');
       $stateProvider
       .state('root', {
  
hunk.labels: keep keep add keep keep keep keep keep
hunk.after_edit:     AnalyticsProvider.startOffline(true);
  
hunk.file_path: app/app.js
hunk.type: add
file: <rd-header>
    <rd-header-title title="Cluster overview">
      <a data-toggle="tooltip" title="Refresh" ui-sref="swarm" ui-sref-opts="{reload: true}">
        <i class="fa fa-refresh" aria-hidden="true"></i>
      </a>
    </rd-header-title>
    <rd-header-content>Swarm</rd-header-content>
  </rd-header>
  
  <div class="row">
    <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
      <rd-widget>
        <rd-widget-header icon="fa-object-group" title="Cluster status"></rd-widget-header>
        <rd-widget-body classes="no-padding">
          <table class="table">
            <tbody>
              <tr>
                <td>Nodes</td>
                <td ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM'">{{ swarm.Nodes }}</td>
                <td ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE'">{{ info.Swarm.Nodes }}</td>
              </tr>
              <tr ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM'">
                <td>Images</td>
                <td>{{ info.Images }}</td>
              </tr>
              <tr ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM'">
                <td>Swarm version</td>
                <td>{{ docker.Version|swarmversion }}</td>
              </tr>
              <tr>
                <td>Docker API version</td>
                <td>{{ docker.ApiVersion }}</td>
              </tr>
              <tr ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM'">
                <td>Strategy</td>
                <td>{{ swarm.Strategy }}</td>
              </tr>
              <tr>
                <td>Total CPU</td>
                <td ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM'">{{ info.NCPU }}</td>
                <td ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE'">{{ totalCPU }}</td>
              </tr>
              <tr>
                <td>Total memory</td>
                <td ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM'">{{ info.MemTotal|humansize: 2 }}</td>
                <td ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE'">{{ totalMemory|humansize: 2 }}</td>
              </tr>
              <tr ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM'">
                <td>Operating system</td>
                <td>{{ info.OperatingSystem }}</td>
              </tr>
              <tr ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM'">
                <td>Kernel version</td>
                <td>{{ info.KernelVersion }}</td>
              </tr>
              <tr ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM'">
                <td>Go version</td>
                <td>{{ docker.GoVersion }}</td>
              </tr>
            </tbody>
          </table>
        </rd-widget-body>
      </rd-widget>
    </div>
  </div>
  
  <div class="row">
    <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12" ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM'">
      <rd-widget>
        <rd-widget-header icon="fa-hdd-o" title="Node status">
          <div class="pull-right">
            Items per page:
            <select ng-model="state.pagination_count" ng-change="changePaginationCount()">
              <option value="0">All</option>
              <option value="10">10</option>
              <option value="25">25</option>
              <option value="50">50</option>
              <option value="100">100</option>
            </select>
          </div>
        </rd-widget-header>
        <rd-widget-body classes="no-padding">
          <table class="table table-striped">
            <thead>
              <tr>
                <th>
                  <a ui-sref="swarm" ng-click="order('name')">
                    Name
                    <span ng-show="sortType == 'name' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
                    <span ng-show="sortType == 'name' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
                  </a>
                </th>
                <th>
                  <a ui-sref="swarm" ng-click="order('cpu')">
                    CPU
                    <span ng-show="sortType == 'cpu' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
                    <span ng-show="sortType == 'cpu' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
                  </a>
                </th>
                <th>
                  <a ui-sref="swarm" ng-click="order('memory')">
                    Memory
                    <span ng-show="sortType == 'memory' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
                    <span ng-show="sortType == 'memory' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
                  </a>
                </th>
                <th>
                  <a ui-sref="swarm" ng-click="order('ip')">
                    IP
                    <span ng-show="sortType == 'ip' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
                    <span ng-show="sortType == 'ip' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
                  </a>
                </th>
                <th>
                  <a ui-sref="swarm" ng-click="order('version')">
                    Engine
                    <span ng-show="sortType == 'version' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
                    <span ng-show="sortType == 'version' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
                  </a>
                </th>
                <th>
                  <a ui-sref="swarm" ng-click="order('status')">
                    Status
                    <span ng-show="sortType == 'status' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
                    <span ng-show="sortType == 'status' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
                  </a>
                </th>
              </tr>
            </thead>
            <tbody>
              <tr dir-paginate="node in (state.filteredNodes = (swarm.Status | filter:state.filter | orderBy:sortType:sortReverse | itemsPerPage: state.pagination_count))">
                <td>{{ node.name }}</td>
                <td>{{ node.cpu }}</td>
                <td>{{ node.memory }}</td>
                <td>{{ node.ip }}</td>
                <td>{{ node.version }}</td>
                <td><span class="label label-{{ node.status|nodestatusbadge }}">{{ node.status }}</span></td>
              </tr>
            </tbody>
          </table>
          <div class="pagination-controls">
            <dir-pagination-controls></dir-pagination-controls>
          </div>
        </rd-widget-body>
      </rd-widget>
    </div>
    <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12" ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE'">
      <rd-widget>
        <rd-widget-header icon="fa-hdd-o" title="Node status">
          <div class="pull-right">
            Items per page:
            <select ng-model="state.pagination_count" ng-change="changePaginationCount()">
              <option value="0">All</option>
              <option value="10">10</option>
              <option value="25">25</option>
              <option value="50">50</option>
              <option value="100">100</option>
            </select>
          </div>
        </rd-widget-header>
        <rd-widget-body classes="no-padding">
          <table class="table table-striped">
            <thead>
              <tr>
                <th>
                  <a ui-sref="swarm" ng-click="order('Hostname')">
                    Name
                    <span ng-show="sortType == 'Hostname' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
                    <span ng-show="sortType == 'Hostname' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
                  </a>
                </th>
                <th>
                  <a ui-sref="swarm" ng-click="order('Role')">
                    Role
                    <span ng-show="sortType == 'Role' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
                    <span ng-show="sortType == 'Role' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
                  </a>
                </th>
                <th>
                  <a ui-sref="swarm" ng-click="order('CPUs')">
                    CPU
                    <span ng-show="sortType == 'CPUs' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
                    <span ng-show="sortType == 'CPUs' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
                  </a>
                </th>
                <th>
                  <a ui-sref="swarm" ng-click="order('Memory')">
                    Memory
                    <span ng-show="sortType == 'Memory' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
                    <span ng-show="sortType == 'Memory' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
                  </a>
                </th>
                <th>
                  <a ui-sref="swarm" ng-click="order('EngineVersion')">
                    Engine
                    <span ng-show="sortType == 'EngineVersion' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
                    <span ng-show="sortType == 'EngineVersion' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
                  </a>
                </th>
                <th ng-if="applicationState.endpoint.apiVersion >= 1.25">
                  <a ui-sref="swarm" ng-click="order('Addr')">
                    IP Address
                    <span ng-show="sortType == 'Addr' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
                    <span ng-show="sortType == 'Addr' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
                  </a>
                </th>
                <th>
                  <a ui-sref="swarm" ng-click="order('Status')">
                    Status
                    <span ng-show="sortType == 'Status' && !sortReverse" class="glyphicon glyphicon-chevron-down"></span>
                    <span ng-show="sortType == 'Status' && sortReverse" class="glyphicon glyphicon-chevron-up"></span>
                  </a>
                </th>
              </tr>
            </thead>
            <tbody>
              <tr dir-paginate="node in (state.filteredNodes = (nodes | filter:state.filter | orderBy:sortType:sortReverse | itemsPerPage: state.pagination_count))">
                <td><a ui-sref="node({id: node.ID})">{{ node.Hostname }}</a></td>
                <td>{{ node.Role }}</td>
                <td>{{ node.CPUs / 1000000000 }}</td>
                <td>{{ node.Memory|humansize }}</td>
                <td>{{ node.EngineVersion }}</td>
                <td ng-if="applicationState.endpoint.apiVersion >= 1.25">{{ node.Addr }}</td>
                <td><span class="label label-{{ node.Status|nodestatusbadge }}">{{ node.Status }}</span></td>
              </tr>
            </tbody>
          </table>
          <div class="pagination-controls">
            <dir-pagination-controls></dir-pagination-controls>
          </div>
        </rd-widget-body>
      </rd-widget>
    </div>
  </div>
  