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