github.com/hernad/nomad@v1.6.112/ui/app/components/evaluation-sidebar/detail.hbs (about)

     1  {{!
     2    Copyright (c) HashiCorp, Inc.
     3    SPDX-License-Identifier: MPL-2.0
     4  ~}}
     5  
     6  {{#let this.currentEvalDetail as |evaluation|}}
     7    {{#if this.isSideBarOpen}}
     8      {{keyboard-commands this.keyCommands}}
     9    {{/if}}
    10    <Portal @target="eval-detail-portal">
    11      <div
    12        data-test-eval-detail
    13        data-test-eval-detail-is-open={{this.isSideBarOpen}}
    14        class="sidebar {{if this.isSideBarOpen "open"}} evaluations-sidebar"
    15        {{on-click-outside
    16          this.closeSidebar
    17          capture=true
    18          exceptSelector="tr[data-eval-row]"
    19        }}
    20      >
    21        {{#if this.isLoading}}
    22          <div data-test-eval-loading>
    23            <section class="section has-text-centered">
    24              <LoadingSpinner />
    25            </section>
    26          </div>
    27        {{/if}}
    28        {{#if this.isError}}
    29          <div data-test-eval-detail-header class="error-header">
    30            <button
    31              data-test-eval-sidebar-x
    32              class="button is-borderless"
    33              type="button"
    34              {{on "click" this.closeSidebar}}
    35            >
    36              {{x-icon "cancel"}}
    37            </button>
    38          </div>
    39          <div class="error-container">
    40            <div data-test-eval-error class="error-message">
    41              <h1 data-test-error-title class="title is-spaced">
    42                Not Found
    43              </h1>
    44              <p data-test-error-message class="subtitle">
    45                The requested evaluation could not be found. You may not be authorized to view this evaluation, it may have been garbage collected, or the ID is invalid.
    46              </p>
    47            </div>
    48          </div>
    49        {{/if}}
    50        {{#if this.isSuccess}}
    51          {{! Evaluation Detail Header}}
    52          <div data-test-eval-detail-header class="detail-header">
    53            <h1 data-test-title class="title">
    54              {{evaluation.shortId}}
    55              <span class="bumper-left tag is-primary">
    56                {{evaluation.status}}
    57              </span>
    58            </h1>
    59            <button
    60              data-test-eval-sidebar-x
    61              class="button is-borderless"
    62              type="button"
    63              {{on "click" this.closeSidebar}}
    64            >
    65              {{x-icon "cancel"}}
    66            </button>
    67          </div>
    68          {{! Start Evaluation Stats}}
    69          <div class="boxed-section is-small">
    70            <div
    71              class="boxed-section-body inline-definitions"
    72              style="display: flex;"
    73            >
    74              <span class="label" style="width: 6.125rem;">
    75                Evaluation Details
    76              </span>
    77              <div style="display: flex; flex-direction: column">
    78                <span class="pair">
    79                  <span class="term">
    80                    Job
    81                  </span>
    82                  <LinkTo
    83                    data-test-evaluation-job
    84                    @model={{concat evaluation.plainJobId "@" evaluation.namespace
    85                    }}
    86                    @route="jobs.job"
    87                  >
    88                    {{evaluation.plainJobId}}
    89                  </LinkTo>
    90                </span>
    91                <span class="pair">
    92                  <span class="term">
    93                    Triggered By
    94                  </span>
    95                  {{evaluation.triggeredBy}}
    96                </span>
    97              </div>
    98              <div style="display: flex; flex-direction: column">
    99                <span class="pair">
   100                  <span class="term">
   101                    Priority
   102                  </span>
   103                  {{evaluation.priority}}
   104                </span>
   105              </div>
   106              <div style="display: flex; flex-direction: column">
   107                <span class="pair">
   108                  <span class="term">
   109                    Created
   110                  </span>
   111                  {{format-month-ts evaluation.createTime}}
   112                </span>
   113                <span class="pair">
   114                  <span class="term">
   115                    Placement Failure
   116                  </span>
   117                  {{evaluation.hasPlacementFailures}}
   118                </span>
   119              </div>
   120            </div>
   121          </div>
   122          {{! Placement Failures}}
   123          {{#if evaluation.failedTGAllocs}}
   124            <div class="boxed-section is-danger">
   125              <div class="boxed-section-head">
   126                Placement Failures
   127              </div>
   128              <div class="boxed-section-body">
   129                {{#each evaluation.failedTGAllocs as |placementFailure|}}
   130                  <PlacementFailure @failedTGAlloc={{placementFailure}} />
   131                {{/each}}
   132              </div>
   133            </div>
   134          {{/if}}
   135          {{! Related Evaluations}}
   136          {{#if this.descendentsMap}}
   137            <EvaluationSidebar::RelatedEvaluations
   138              @fns={{hash
   139                handleResize=this.handleResize
   140                handleEvaluationClick=@fns.handleEvaluationClick
   141              }}
   142              @data={{hash
   143                width=this.width
   144                height=this.height
   145                parentEvaluation=this.parentEvaluation
   146                descendentsMap=this.descendentsMap
   147                activeEvaluationID=this.currentEvalDetail.id
   148              }}
   149            />
   150          {{else}}
   151            <div class="boxed-section">
   152              <div class="boxed-section-head">
   153                Related Evaluations
   154              </div>
   155              <div class="boxed-section-body">
   156                <div data-test-eval-error class="error-message title">
   157                  <p data-test-error-message class="subtitle">
   158                    The related evaluations cannot be visualized.
   159                  </p>
   160                </div>
   161              </div>
   162            </div>
   163          {{/if}}
   164          {{! Evaluation JSON Response}}
   165          <div class="boxed-section evaluation-response">
   166            <div class="boxed-section-head">
   167              Evaluation Response
   168            </div>
   169            <div class="boxed-section-body is-full-bleed">
   170              <JsonViewer @json={{evaluation}} />
   171            </div>
   172          </div>
   173        {{/if}}
   174      </div>
   175    </Portal>
   176  {{/let}}