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>