github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/app/templates/evaluations/index.hbs (about) 1 {{page-title "Evaluations"}} 2 {{did-update this.notifyEvalChange this.currentEval}} 3 <section class="section"> 4 <div class="toolbar"> 5 <div class="toolbar-item"> 6 <SearchBox 7 data-test-evaluations-search 8 @searchTerm={{mut this.searchTerm}} 9 @onChange={{action this._resetTokens}} 10 @placeholder="Search evaluations..." 11 /> 12 </div> 13 <div class="toolbar-item is-right-aligned"> 14 <div class="button-bar"> 15 <SingleSelectDropdown 16 data-test-evaluation-namespace-facet 17 @label="Namespace" 18 @options={{this.optionsNamespaces}} 19 @selection={{this.qpNamespace}} 20 @onSelect={{action this.setQueryParam "qpNamespace"}} 21 /> 22 <SingleSelectDropdown 23 data-test-evaluation-status-facet 24 @label="Status" 25 @options={{this.optionsEvaluationsStatus}} 26 @selection={{this.status}} 27 @onSelect={{action this.setQueryParam "status"}} 28 /> 29 <SingleSelectDropdown 30 data-test-evaluation-triggered-by-facet 31 @label="Triggered By" 32 @options={{this.optionsTriggeredBy}} 33 @selection={{this.triggeredBy}} 34 @onSelect={{action this.setQueryParam "triggeredBy"}} 35 /> 36 <SingleSelectDropdown 37 data-test-evaluation-type-facet 38 @label="Type" 39 @options={{this.optionsType}} 40 @selection={{this.type}} 41 @onSelect={{action this.setQueryParam "type"}} 42 /> 43 </div> 44 </div> 45 </div> 46 <div class="table-container"> 47 {{#if @model.length}} 48 <ListTable data-test-eval-table @source={{@model}} as |t|> 49 <t.head> 50 <th> 51 Evaluation ID 52 </th> 53 <th> 54 Resource 55 </th> 56 <th> 57 Priority 58 </th> 59 <th> 60 Created 61 </th> 62 <th> 63 Triggered By 64 </th> 65 <th> 66 Status 67 </th> 68 <th> 69 Placement Failures 70 </th> 71 </t.head> 72 <t.body as |row|> 73 <tr 74 data-test-evaluation="{{row.model.shortId}}" 75 style="cursor: pointer;" 76 class="{{if (eq this.currentEval row.model.id) "is-active"}}" 77 tabindex="0" 78 {{on "click" (fn this.handleEvaluationClick row.model)}} 79 {{on "keyup" (fn this.handleEvaluationClick row.model)}} 80 > 81 <td data-test-id 82 {{keyboard-shortcut 83 enumerated=true 84 action=(fn this.handleEvaluationClick row.model) 85 }} 86 > 87 {{row.model.shortId}} 88 </td> 89 <td data-test-id> 90 {{#if row.model.hasJob}} 91 <LinkTo 92 data-test-evaluation-resource 93 @model={{concat row.model.plainJobId "@" row.model.namespace}} 94 @route="jobs.job" 95 > 96 {{row.model.plainJobId}} 97 </LinkTo> 98 {{else}} 99 <LinkTo 100 data-test-evaluation-resource 101 @model={{row.model.nodeId}} 102 @route="clients.client" 103 > 104 {{row.model.shortNodeId}} 105 </LinkTo> 106 {{/if}} 107 </td> 108 <td data-test-priority> 109 {{row.model.priority}} 110 </td> 111 <td data-test-create-time> 112 {{format-month-ts row.model.createTime}} 113 </td> 114 <td data-test-triggered-by> 115 {{row.model.triggeredBy}} 116 </td> 117 <td data-test-status class="is-one-line"> 118 <StatusCell @status={{row.model.status}} /> 119 </td> 120 <td data-test-blocked> 121 {{#if (eq row.model.status "blocked")}} 122 N/A - In Progress 123 {{else if row.model.hasPlacementFailures}} 124 True 125 {{else}} 126 False 127 {{/if}} 128 </td> 129 </tr> 130 </t.body> 131 </ListTable> 132 <div class="table-foot with-padding"> 133 <PageSizeSelect data-test-per-page @onChange={{this.onChange}} /> 134 <div> 135 <button 136 class="button" 137 data-test-eval-refresh 138 type="button" 139 {{on "click" this.refresh}} 140 > 141 {{x-icon "refresh-default" class="is-text"}} 142 Refresh 143 </button> 144 <button 145 data-test-eval-pagination-prev 146 type="button" 147 class="button is-text is-borderless" 148 disabled={{this.shouldDisablePrev}} 149 {{on "click" (fn this.onPrev this.lastToken)}} 150 > 151 {{x-icon "chevron-left" class="is-large"}} 152 </button> 153 <button 154 data-test-eval-pagination-next 155 type="button" 156 class="button is-text is-borderless" 157 disabled={{this.shouldDisableNext}} 158 {{on "click" (fn this.onNext @model.meta.nextToken)}} 159 > 160 {{x-icon "chevron-right" class="is-large"}} 161 </button> 162 </div> 163 </div> 164 {{else}} 165 <div class="boxed-section-body"> 166 <div class="empty-message" data-test-empty-evaluations-list> 167 <h3 168 class="empty-message-headline" 169 data-test-empty-evalations-list-headline 170 > 171 No Matches 172 </h3> 173 <p class="empty-message-body"> 174 {{#if this.hasFiltersApplied}} 175 <span data-test-no-eval-match> 176 No evaluations that match: 177 <strong> 178 {{this.noMatchText}} 179 </strong> 180 </span> 181 {{else}} 182 <span data-test-no-eval> 183 There are no evaluations 184 </span> 185 {{/if}} 186 </p> 187 </div> 188 </div> 189 {{/if}} 190 </div> 191 <EvaluationSidebar::Detail 192 @statechart={{this.statechart}} 193 @fns={{hash 194 closeSidebar=this.closeSidebar 195 handleEvaluationClick=this.handleEvaluationClick 196 }} 197 /> 198 </section>