Files
nomad/ui/app/components/job-editor/read.hbs

98 lines
3.4 KiB
Handlebars

{{!
Copyright (c) HashiCorp, Inc.
SPDX-License-Identifier: BUSL-1.1
~}}
<div class="boxed-section">
<div class="boxed-section-head">
Job Definition
<div class="pull-right" style="display: flex">
<span class="header-toggle">
<Hds::Form::Toggle::Field
{{keyboard-shortcut label="Toggle word wrap" action=(action @fns.onToggleWrap) pattern=(array "w" "w") menuLevel=true }}
checked={{@data.shouldWrap}}
{{on "change" @fns.onToggleWrap}}
as |F|>
<F.Label>Word Wrap</F.Label>
</Hds::Form::Toggle::Field>
</span>
<Tooltip @condition={{unless @data.hasSpecification true false}} @isFullText={{true}} @text="A jobspec file was not submitted when this job was run. You can still view and edit the expanded JSON format.">
<div class="job-definition-select {{unless @data.hasSpecification " disabled"}}" data-test-select={{@data.view}}>
<button
class="button is-small is-borderless {{if (eq @data.view "job-spec") "is-active"}}"
type="button"
{{on "click" (fn @fns.onSelect "job-spec")}}
>
Job Spec
</button>
<button
class="button is-small is-borderless {{if (eq @data.view "full-definition") "is-active"}}"
type="button"
{{on "click" (fn @fns.onSelect "full-definition")}}
data-test-select-full
>
Full Definition
</button>
</div>
</Tooltip>
<button
class="button is-light is-compact"
type="button"
{{on "click" @fns.onEdit}}
data-test-edit-job
>
Edit
</button>
</div>
</div>
<div class="boxed-section-body is-full-bleed">
{{#if (eq @data.view "job-spec")}}
<div
data-test-job-spec-view
{{code-mirror
content=@data.definition
mode=(if (eq @data.format "json") "javascript" "ruby")
readOnly=true
screenReaderLabel="Job specification"
theme="hashi-read-only"
lineWrapping=@data.shouldWrap
}}
/>
{{else}}
<div
data-test-json-viewer
{{code-mirror
content=@data.definition
theme="hashi-read-only"
readOnly=true
screenReaderLabel="JSON Viewer"
lineWrapping=@data.shouldWrap
}}
/>
{{/if}}
</div>
{{#if (and (eq @data.view "job-spec") @data.hasVariables)}}
<div class="boxed-section" style="margin-top: 10px">
<div class="boxed-section-head">
HCL Variable Values
</div>
<div class="boxed-section-body is-full-bleed">
<div
class="json-viewer is-variable-editor"
data-test-variable-editor
{{code-mirror
screenReaderLabel="HLC Variables for Job Spec"
content=@data.job._newDefinitionVariables
mode="ruby"
theme="hashi-read-only"
readOnly=true
lineWrapping=@data.shouldWrap
}}
/>
</div>
</div>
{{/if}}
</div>