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