github.com/manicqin/nomad@v0.9.5/ui/app/templates/components/job-editor.hbs (about)

     1  {{#if parseError}}
     2    <div data-test-parse-error class="notification is-danger">
     3      <h3 class="title is-4" data-test-parse-error-title>Parse Error</h3>
     4      <p data-test-parse-error-message>{{parseError}}</p>
     5    </div>
     6  {{/if}}
     7  {{#if planError}}
     8    <div data-test-plan-error class="notification is-danger">
     9      <h3 class="title is-4" data-test-plan-error-title>Plan Error</h3>
    10      <p data-test-plan-error-message>{{planError}}</p>
    11    </div>
    12  {{/if}}
    13  {{#if runError}}
    14    <div data-test-run-error class="notification is-danger">
    15      <h3 class="title is-4" data-test-run-error-title>Run Error</h3>
    16      <p data-test-run-error-message>{{runError}}</p>
    17    </div>
    18  {{/if}}
    19  
    20  {{#if (eq stage "editor")}}
    21    {{#if (and showEditorMessage (eq context "new"))}}
    22      <div class="notification is-info">
    23        <div class="columns">
    24          <div class="column">
    25            <h3 class="title is-4" data-test-editor-help-title>Run a Job</h3>
    26            <p data-test-editor-help-message>Paste or author HCL or JSON to submit to your cluster. A plan will be requested before the job is submitted.</p>
    27          </div>
    28          <div class="column is-centered is-minimum">
    29            <button class="button is-info" onclick={{toggle-action "showEditorMessage" this}} data-test-editor-help-dismiss>Okay</button>
    30          </div>
    31        </div>
    32      </div>
    33    {{/if}}
    34    <div class="boxed-section">
    35      <div class="boxed-section-head">
    36        Job Definition
    37        {{#if cancelable}}
    38          <button class="button is-light is-compact pull-right" onclick={{action onCancel}} data-test-cancel-editing>Cancel</button>
    39        {{/if}}
    40      </div>
    41      <div class="boxed-section-body is-full-bleed">
    42        {{ivy-codemirror
    43          data-test-editor
    44          value=(or job._newDefinition jobSpec)
    45          valueUpdated=(action (mut job._newDefinition))
    46          options=(hash
    47            mode="javascript"
    48            theme="hashi"
    49            tabSize=2
    50            lineNumbers=true
    51          )}}
    52      </div>
    53    </div>
    54    <div class="content is-associative">
    55      <button class="button is-primary {{if plan.isRunning "is-loading"}}" type="button" onclick={{perform plan}} disabled={{or plan.isRunning (not job._newDefinition)}} data-test-plan>Plan</button>
    56    </div>
    57  {{/if}}
    58  
    59  {{#if (eq stage "plan")}}
    60    {{#if showPlanMessage}}
    61      <div class="notification is-info">
    62        <div class="columns">
    63          <div class="column">
    64            <h3 class="title is-4" data-test-plan-help-title>Job Plan</h3>
    65            <p data-test-plan-help-message>This is the impact running this job will have on your cluster.</p>
    66          </div>
    67          <div class="column is-centered is-minimum">
    68            <button class="button is-info" onclick={{toggle-action "showPlanMessage" this}} data-test-plan-help-dismiss>Okay</button>
    69          </div>
    70        </div>
    71      </div>
    72    {{/if}}
    73    <div class="boxed-section">
    74      <div class="boxed-section-head">Job Plan</div>
    75      <div class="boxed-section-body is-dark">
    76        {{job-diff data-test-plan-output diff=planOutput.diff verbose=false}}
    77      </div>
    78    </div>
    79    <div class="boxed-section {{if planOutput.failedTGAllocs "is-warning" "is-primary"}}" data-test-dry-run-message>
    80      <div class="boxed-section-head" data-test-dry-run-title>Scheduler dry-run</div>
    81      <div class="boxed-section-body" data-test-dry-run-body>
    82        {{#if planOutput.failedTGAllocs}}
    83          {{#each planOutput.failedTGAllocs as |placementFailure|}}
    84            {{placement-failure failedTGAlloc=placementFailure}}
    85          {{/each}}
    86        {{else}}
    87          All tasks successfully allocated.
    88        {{/if}}
    89      </div>
    90    </div>
    91    {{#if (and planOutput.preemptions.isFulfilled planOutput.preemptions.length)}}
    92      <div class="boxed-section is-warning" data-test-preemptions>
    93        <div class="boxed-section-head" data-test-preemptions-title>
    94          Preemptions (if you choose to run this job, these allocations will be stopped)
    95        </div>
    96        <div class="boxed-section-body" data-test-preemptions-body>
    97          {{#list-table
    98            source=planOutput.preemptions
    99            class="allocations is-isolated" as |t|}}
   100            {{#t.head}}
   101              <th class="is-narrow"></th>
   102              <th>ID</th>
   103              <th>Task Group</th>
   104              <th>Created</th>
   105              <th>Modified</th>
   106              <th>Status</th>
   107              <th>Version</th>
   108              <th>Node</th>
   109              <th>CPU</th>
   110              <th>Memory</th>
   111            {{/t.head}}
   112            {{#t.body as |row|}}
   113              {{allocation-row allocation=row.model context="job"}}
   114            {{/t.body}}
   115          {{/list-table}}
   116        </div>
   117      </div>
   118    {{/if}}
   119    <div class="content is-associative">
   120      <button class="button is-primary {{if submit.isRunning "is-loading"}}" type="button" onclick={{perform submit}} disabled={{submit.isRunning}} data-test-run>Run</button>
   121      <button class="button is-light" type="button" onclick={{action reset}} data-test-cancel>Cancel</button>
   122    </div>
   123  {{/if}}