github.com/hernad/nomad@v1.6.112/ui/app/components/das/recommendation-card.hbs (about)

     1  {{!
     2    Copyright (c) HashiCorp, Inc.
     3    SPDX-License-Identifier: MPL-2.0
     4  ~}}
     5  
     6  {{! template-lint-disable no-duplicate-landmark-elements}}
     7  {{#if this.interstitialComponent}}
     8    <section class="das-interstitial" style={{this.interstitialStyle}}>
     9      {{component
    10        (concat "das/" this.interstitialComponent)
    11        proceed=this.proceedPromiseResolve
    12        error=this.error
    13      }}
    14    </section>
    15  {{else if @summary.taskGroup}}
    16    <section
    17      ...attributes
    18      data-test-task-group-recommendations
    19      class="recommendation-card"
    20      {{did-insert this.cardInserted}}
    21    >
    22  
    23      <h2 class="top overview inner-container">Resource Recommendation</h2>
    24  
    25      <header class="overview inner-container">
    26        <h3 class="slug">
    27          <span
    28            class="job"
    29            data-test-job-name
    30          >{{@summary.taskGroup.job.name}}</span>
    31          <span
    32            class="group"
    33            data-test-task-group-name
    34          >{{@summary.taskGroup.name}}</span>
    35        </h3>
    36        <h4 class="namespace">
    37          <span class="namespace-label">Namespace:</span>
    38          <span data-test-namespace>{{@summary.jobNamespace}}</span>
    39        </h4>
    40      </header>
    41  
    42      <section class="diffs overview inner-container">
    43        <Das::DiffsTable
    44          data-test-group-totals
    45          @model={{@summary.taskGroup}}
    46          @recommendations={{@summary.recommendations}}
    47          @excludedRecommendations={{@summary.excludedRecommendations}}
    48        />
    49      </section>
    50  
    51      <section class="narrative overview inner-container">
    52        <p data-test-narrative>{{this.narrative}}</p>
    53      </section>
    54  
    55      <section class="main overview inner-container task-toggles">
    56        <table data-test-toggles-table>
    57          <thead data-test-tasks-head>
    58            <tr>
    59              {{#if this.showToggleAllToggles}}
    60                <th>Task</th>
    61                <th class="toggle-all">Toggle All</th>
    62                <th class="toggle-cell">
    63                  <Toggle
    64                    data-test-cpu-toggle
    65                    @isActive={{and
    66                      this.allCpuToggleActive
    67                      (not this.allCpuToggleDisabled)
    68                    }}
    69                    @isDisabled={{this.allCpuToggleDisabled}}
    70                    @onToggle={{action
    71                      this.toggleAllRecommendationsForResource
    72                      "CPU"
    73                    }}
    74                    title="Toggle CPU recommendations for all tasks"
    75                  >
    76                    <div class="label-wrapper">CPU</div>
    77                  </Toggle>
    78                </th>
    79                <th class="toggle-cell">
    80                  <Toggle
    81                    data-test-memory-toggle
    82                    @isActive={{and
    83                      this.allMemoryToggleActive
    84                      (not this.allMemoryToggleDisabled)
    85                    }}
    86                    @isDisabled={{this.allMemoryToggleDisabled}}
    87                    @onToggle={{action
    88                      this.toggleAllRecommendationsForResource
    89                      "MemoryMB"
    90                    }}
    91                    title="Toggle memory recommendations for all tasks"
    92                  >
    93                    <div class="label-wrapper">Mem</div>
    94                  </Toggle>
    95                </th>
    96              {{else}}
    97                <th colspan="2">Task</th>
    98                <th class="toggle-cell">CPU</th>
    99                <th class="toggle-cell">Mem</th>
   100              {{/if}}
   101            </tr>
   102          </thead>
   103          <tbody>
   104            {{#each this.taskToggleRows key="task.name" as |taskToggleRow index|}}
   105              <Das::TaskRow
   106                @task={{taskToggleRow.task}}
   107                @active={{eq this.activeTaskToggleRowIndex index}}
   108                @cpu={{taskToggleRow.cpu}}
   109                @memory={{taskToggleRow.memory}}
   110                @onClick={{action (mut this.activeTaskToggleRowIndex) index}}
   111                @toggleRecommendation={{@summary.toggleRecommendation}}
   112              />
   113            {{/each}}
   114          </tbody>
   115        </table>
   116      </section>
   117  
   118      <section class="actions overview inner-container">
   119        <button
   120          class="button is-primary"
   121          type="button"
   122          disabled={{this.cannotAccept}}
   123          data-test-accept
   124          {{on "click" this.accept}}
   125        >Accept</button>
   126        <button
   127          class="button is-light"
   128          type="button"
   129          data-test-dismiss
   130          {{on "click" this.dismiss}}
   131        >Dismiss</button>
   132      </section>
   133  
   134      <section class="active-task-group" data-test-active-task>
   135        <section class="top active-task inner-container">
   136          <CopyButton
   137            data-test-copy-button
   138            @clipboardText={{this.copyButtonLink}}
   139          >
   140            {{@summary.taskGroup.job.name}}
   141            /
   142            {{@summary.taskGroup.name}}
   143          </CopyButton>
   144  
   145          {{#if @onCollapse}}
   146            <button
   147              data-test-accordion-toggle
   148              class="button is-light is-compact pull-right accordion-toggle"
   149              {{on "click" @onCollapse}}
   150              type="button"
   151            >
   152              Collapse
   153            </button>
   154          {{/if}}
   155        </section>
   156  
   157        <header class="active-task inner-container">
   158          <h3 data-test-task-name>{{this.activeTask.name}} task</h3>
   159        </header>
   160  
   161        <section class="diffs active-task inner-container">
   162          <Das::DiffsTable
   163            @model={{this.activeTask}}
   164            @recommendations={{this.activeTaskToggleRow.recommendations}}
   165            @excludedRecommendations={{@summary.excludedRecommendations}}
   166          />
   167        </section>
   168  
   169        <ul class="main active-task inner-container">
   170          {{#each this.activeTaskToggleRow.recommendations as |recommendation|}}
   171            <li data-test-recommendation>
   172              <Das::RecommendationChart
   173                data-test-chart-for={{recommendation.resource}}
   174                @resource={{recommendation.resource}}
   175                @currentValue={{recommendation.currentValue}}
   176                @recommendedValue={{recommendation.value}}
   177                @stats={{recommendation.stats}}
   178                @disabled={{includes
   179                  recommendation
   180                  @summary.excludedRecommendations
   181                }}
   182              />
   183            </li>
   184          {{/each}}
   185        </ul>
   186      </section>
   187  
   188    </section>
   189  {{/if}}