github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/app/templates/csi/plugins/index.hbs (about)

     1  {{page-title "CSI Plugins"}}
     2  <StorageSubnav />
     3  <section class="section">
     4    {{#if this.isForbidden}}
     5      <ForbiddenMessage />
     6    {{else}}
     7      <div class="toolbar">
     8        <div class="toolbar-item">
     9          {{#if this.model.length}}
    10            <SearchBox
    11              data-test-plugins-search
    12              @searchTerm={{mut this.searchTerm}}
    13              @onChange={{action this.resetPagination}}
    14              @placeholder="Search plugins..." />
    15          {{/if}}
    16        </div>
    17      </div>
    18      {{#if this.sortedPlugins}}
    19        <ListPagination
    20          @source={{this.sortedPlugins}}
    21          @size={{this.pageSize}}
    22          @page={{this.currentPage}} as |p|>
    23          <ListTable
    24            @source={{p.list}}
    25            @sortProperty={{this.sortProperty}}
    26            @sortDescending={{this.sortDescending}}
    27            @class="with-foot" as |t|>
    28            <t.head>
    29              <t.sort-by @prop="plainId">ID</t.sort-by>
    30              <t.sort-by @prop="controllersHealthyProportion">Controller Health</t.sort-by>
    31              <t.sort-by @prop="nodesHealthyProportion">Node Health</t.sort-by>
    32              <t.sort-by @prop="provider">Provider</t.sort-by>
    33            </t.head>
    34            <t.body @key="model.id" as |row|>
    35              <tr class="is-interactive" data-test-plugin-row {{on "click" (action "gotoPlugin" row.model)}}>
    36                <td data-test-plugin-id>
    37                  <LinkTo @route="csi.plugins.plugin" @model={{row.model.plainId}} class="is-primary">{{row.model.plainId}}</LinkTo>
    38                </td>
    39                <td data-test-plugin-controller-health>
    40                  {{#if row.model.controllerRequired}}
    41                    {{if (gt row.model.controllersHealthy 0) "Healthy" "Unhealthy"}}
    42                    ({{row.model.controllersHealthy}}/{{row.model.controllersExpected}})
    43                  {{else}}
    44                    {{#if (gt row.model.controllersExpected 0)}}
    45                      {{if (gt row.model.controllersHealthy 0) "Healthy" "Unhealthy"}}
    46                      ({{row.model.controllersHealthy}}/{{row.model.controllersExpected}})
    47                    {{else}}
    48                      <em class="is-faded">Node Only</em>
    49                    {{/if}}
    50                  {{/if}}
    51                </td>
    52                <td data-test-plugin-node-health>
    53                  {{if (gt row.model.nodesHealthy 0) "Healthy" "Unhealthy"}}
    54                  ({{row.model.nodesHealthy}}/{{row.model.nodesExpected}})
    55                </td>
    56                <td data-test-plugin-provider>{{row.model.provider}}</td>
    57              </tr>
    58            </t.body>
    59          </ListTable>
    60          <div class="table-foot">
    61            <PageSizeSelect @onChange={{action this.resetPagination}} />
    62            <nav class="pagination">
    63              <div class="pagination-numbers">
    64                {{p.startsAt}}&ndash;{{p.endsAt}} of {{this.sortedPlugins.length}}
    65              </div>
    66              <p.prev @class="pagination-previous">{{x-icon "chevron-left"}}</p.prev>
    67              <p.next @class="pagination-next">{{x-icon "chevron-right"}}</p.next>
    68              <ul class="pagination-list"></ul>
    69            </nav>
    70          </div>
    71        </ListPagination>
    72      {{else}}
    73        <div data-test-empty-plugins-list class="empty-message">
    74          {{#if (eq this.model.length 0)}}
    75            <h3 data-test-empty-plugins-list-headline class="empty-message-headline">No Plugins</h3>
    76            <p class="empty-message-body">
    77              The cluster currently has no registered CSI Plugins.
    78            </p>
    79          {{else if this.searchTerm}}
    80            <h3 data-test-empty-plugins-list-headline class="empty-message-headline">No Matches</h3>
    81            <p class="empty-message-body">
    82              No plugins match the term <strong>{{this.searchTerm}}</strong>
    83            </p>
    84          {{/if}}
    85        </div>
    86      {{/if}}
    87    {{/if}}
    88  </section>