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}}–{{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>