mirror of https://github.com/rancher/ui.git
371 lines
12 KiB
Handlebars
371 lines
12 KiB
Handlebars
<section class="header">
|
|
<h1>
|
|
{{t (concat "editDns.title." mode) name=model.displayName}}
|
|
</h1>
|
|
{{#if isView}}
|
|
<div class="right-buttons">
|
|
{{action-menu model=model size="sm"}}
|
|
</div>
|
|
{{/if}}
|
|
</section>
|
|
|
|
<section class="horizontal-form container-fluid">
|
|
<div class="row">
|
|
<div class="col span-6">
|
|
{{form-name-description
|
|
model=model
|
|
namePlaceholder="editDns.name.placeholder"
|
|
nameRequired=true
|
|
descriptionPlaceholder="editDns.description.placeholder"
|
|
editing=editing
|
|
}}
|
|
</div>
|
|
<div class="col span-6 pt-5">
|
|
{{form-namespace
|
|
editable=isNew
|
|
namespace=namespace
|
|
errors=namespaceErrors
|
|
registerHook=(action "registerHook")
|
|
editing=editing
|
|
}}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col span-6">
|
|
<div>
|
|
<label class="acc-label">
|
|
{{t "editDns.recordType.label"}}
|
|
</label>
|
|
</div>
|
|
<div>
|
|
{{#if editing}}
|
|
<div class="radio">
|
|
<label class="acc-label">
|
|
{{radio-button selection=recordType value="arecord"}} {{t "editDns.recordType.arecord"}}
|
|
</label>
|
|
</div>
|
|
<div class="radio">
|
|
<label class="acc-label">
|
|
{{radio-button selection=recordType value="cname"}} {{t "editDns.recordType.cname"}}
|
|
</label>
|
|
</div>
|
|
<div class="radio">
|
|
<label class="acc-label">
|
|
{{radio-button selection=recordType value="alias"}} {{t "editDns.recordType.alias"}}
|
|
</label>
|
|
</div>
|
|
<div class="radio">
|
|
<label class="acc-label">
|
|
{{radio-button selection=recordType value="workload"}} {{t "editDns.recordType.workload"}}
|
|
</label>
|
|
</div>
|
|
<div class="radio">
|
|
<label class="acc-label">
|
|
{{radio-button selection=recordType value="selector"}} {{t "editDns.recordType.selector"}}
|
|
</label>
|
|
</div>
|
|
{{else}}
|
|
{{t (concat "editDns.recordType." recordType)}}
|
|
{{/if}}
|
|
</div>
|
|
</div>
|
|
<div class="col span-6">
|
|
{{#if (eq recordType "arecord")}}
|
|
{{form-value-array
|
|
initialValues=model.ipAddresses
|
|
addActionLabel="editDns.add.arecord"
|
|
valueLabel="editDns.target.arecord"
|
|
valuePlaceholder="editDns.placeholder.arecord"
|
|
changed=(action (mut model.ipAddresses))
|
|
editing=editing
|
|
}}
|
|
{{else if (eq recordType "cname")}}
|
|
<label class="acc-label">
|
|
{{t "editDns.target.cname"}}{{field-required}}
|
|
</label>
|
|
{{input
|
|
value=model.hostname
|
|
placeholder=(t "editDns.placeholder.cname")
|
|
}}
|
|
{{else if (eq recordType "alias")}}
|
|
{{#form-value-array
|
|
initialValues=model.targetDnsRecordIds
|
|
editing=(not isView)
|
|
addActionLabel="editDns.add.alias"
|
|
changed=(action "setAlias")
|
|
as |c row|
|
|
}}
|
|
{{new-select
|
|
classNames="form-control"
|
|
optionValuePath="id"
|
|
optionLabelPath="nameWithType"
|
|
prompt="editDns.prompt.alias"
|
|
optionGroupPath="namespaceId"
|
|
localizedPrompt=true
|
|
content=dnsRecords
|
|
value=row.value
|
|
disabled=isView
|
|
showProTip=false
|
|
editing=editing
|
|
}}
|
|
{{/form-value-array}}
|
|
{{else if (eq recordType "workload")}}
|
|
{{#form-value-array
|
|
editing=(not isView)
|
|
initialValues=model.targetWorkloadIds
|
|
addActionLabel="editDns.add.workload"
|
|
changed=(action "setWorkload")
|
|
as |c row|
|
|
}}
|
|
{{new-select
|
|
classNames="form-control-static"
|
|
optionValuePath="id"
|
|
optionLabelPath="displayName"
|
|
prompt="editDns.prompt.workload"
|
|
localizedPrompt=true
|
|
content=workloadsChoices
|
|
value=row.value
|
|
showProTip=false
|
|
editing=editing
|
|
disabled=isView
|
|
}}
|
|
{{/form-value-array}}
|
|
{{else if (eq recordType "selector")}}
|
|
{{form-key-value
|
|
initialMap=model.selector
|
|
changed=(action "setSelector")
|
|
addActionLabel="editDns.selector.addActionLabel"
|
|
keyLabel="editDns.selector.keyLabel"
|
|
editing=editing
|
|
}}
|
|
{{/if}}
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
{{#advanced-section advanced=advanced}}
|
|
{{#if showMoreOptions}}
|
|
<hr class="mt-30 mb-30" />
|
|
|
|
<div class="row mb-20">
|
|
<div class="col span-6">
|
|
<label class="acc-label pb-5">
|
|
{{t "editDns.kind.label"}}
|
|
</label>
|
|
{{new-select
|
|
classNames="form-control"
|
|
content=kindChoices
|
|
value=kind
|
|
localizedLabel=true
|
|
disabled=(not editing)
|
|
}}
|
|
</div>
|
|
{{#unless isHeadless}}
|
|
<div class="col span-6">
|
|
{{form-value-array
|
|
initialValues=model.externalIPs
|
|
addActionLabel="editDns.externalIPs.addActionLabel"
|
|
valueLabel="editDns.externalIPs.value"
|
|
valuePlaceholder="editDns.externalIPs.placeholder"
|
|
changed=(action (mut model.externalIPs))
|
|
editing=editing
|
|
}}
|
|
</div>
|
|
{{/unless}}
|
|
</div>
|
|
{{#unless isHeadless}}
|
|
<div class="row mb-20">
|
|
{{#if (or (eq model.kind "LoadBalancer") (eq model.kind "NodePort")) }}
|
|
<div class="col span-6">
|
|
<label class="acc-label">
|
|
{{t "editDns.externalTrafficPolicy.label"}}
|
|
</label>
|
|
{{#input-or-display
|
|
editable=editing
|
|
value=model.externalTrafficPolicy
|
|
}}
|
|
<div class="radio">
|
|
<label>
|
|
{{radio-button
|
|
selection=model.externalTrafficPolicy
|
|
value="Local"
|
|
}} {{t "editDns.externalTrafficPolicy.local"}}
|
|
</label>
|
|
</div>
|
|
<div class="radio">
|
|
<label>
|
|
{{radio-button
|
|
selection=model.externalTrafficPolicy
|
|
value="Cluster"
|
|
}} {{t "editDns.externalTrafficPolicy.cluster"}}
|
|
</label>
|
|
</div>
|
|
{{/input-or-display}}
|
|
</div>
|
|
{{/if}}
|
|
<div class="col span-6">
|
|
<label class="acc-label">
|
|
{{t "editDns.publishNotReadyAddresses.label"}}
|
|
</label>
|
|
{{#input-or-display
|
|
editable=editing
|
|
value=model.publishNotReadyAddresses
|
|
}}
|
|
<div class="radio">
|
|
<label>
|
|
{{radio-button
|
|
selection=model.publishNotReadyAddresses
|
|
value=false
|
|
}} {{t "editDns.publishNotReadyAddresses.readyOnly"}}
|
|
</label>
|
|
</div>
|
|
<div class="radio">
|
|
<label>
|
|
{{radio-button
|
|
selection=model.publishNotReadyAddresses
|
|
value=true
|
|
}} {{t "editDns.publishNotReadyAddresses.all"}}
|
|
</label>
|
|
</div>
|
|
{{/input-or-display}}
|
|
</div>
|
|
</div>
|
|
{{/unless}}
|
|
{{#if (eq model.kind "LoadBalancer")}}
|
|
<div class="row mb-20">
|
|
<div class="col span-6">
|
|
<label class="acc-label pb-5">
|
|
{{t "editDns.loadBalancerIP.label"}}
|
|
</label>
|
|
{{#input-or-display
|
|
editable=editing
|
|
value=model.loadBalancerIP
|
|
}}
|
|
{{input class="form-control input-sm"
|
|
type="text"
|
|
value=model.loadBalancerIP
|
|
placeholder=(t "editDns.loadBalancerIP.placeholder")
|
|
}}
|
|
{{/input-or-display}}
|
|
</div>
|
|
<div class="col span-6">
|
|
{{form-value-array
|
|
initialValues=model.loadBalancerSourceRanges
|
|
addActionLabel="editDns.loadBalancerSourceRanges.addActionLabel"
|
|
valueLabel="editDns.loadBalancerSourceRanges.value"
|
|
valuePlaceholder="editDns.loadBalancerSourceRanges.placeholder"
|
|
changed=(action (mut model.loadBalancerSourceRanges))
|
|
editing=editing
|
|
}}
|
|
</div>
|
|
</div>
|
|
{{#if (eq model.externalTrafficPolicy "Local")}}
|
|
<div class="row mb-20">
|
|
<div class="col span-6">
|
|
<label class="acc-label pb-5">
|
|
{{t "editDns.healthCheckNodePort.label"}}
|
|
</label>
|
|
{{input-integer
|
|
min="0"
|
|
max="65535"
|
|
step="1"
|
|
value=model.healthCheckNodePort
|
|
classNames="form-control"
|
|
placeholder=(t "editDns.healthCheckNodePort.placeholder")
|
|
}}
|
|
</div>
|
|
</div>
|
|
{{/if}}
|
|
{{/if}}
|
|
{{/if}}
|
|
|
|
<hr class="mt-30 mb-30" />
|
|
|
|
{{form-service-ports
|
|
model=model
|
|
editing=editing
|
|
}}
|
|
|
|
<hr class="mt-30 mb-30" />
|
|
|
|
{{#accordion-list showExpandAll=false as | al expandFn |}}
|
|
{{form-labels-annotations
|
|
classNames="accordion-wrapper"
|
|
expandAll=al.expandAll
|
|
expandFn=expandFn
|
|
initialLabels=model.labels
|
|
model=model
|
|
editing=editing
|
|
setLabels=(action "setLabels")
|
|
}}
|
|
{{#if showSessionAffinity}}
|
|
{{#accordion-list-item
|
|
title=(t "editDns.sessionAffinity.title")
|
|
detail=(t "editDns.sessionAffinity.detail")
|
|
expandAll=al.expandAll
|
|
expand=(action expandFn)
|
|
}}
|
|
<div class="row box">
|
|
<div class="col span-6">
|
|
<label class="acc-label">
|
|
{{t "editDns.sessionAffinity.label"}}
|
|
</label>
|
|
{{#input-or-display editable=editing value=model.sessionAffinity}}
|
|
<div class="radio">
|
|
<label>
|
|
{{radio-button
|
|
selection=model.sessionAffinity
|
|
value="None"
|
|
}} {{t "generic.no"}}
|
|
</label>
|
|
</div>
|
|
<div class="radio">
|
|
<label>
|
|
{{radio-button
|
|
selection=model.sessionAffinity
|
|
value="ClientIP"
|
|
}} {{t "generic.yes"}}
|
|
</label>
|
|
</div>
|
|
{{/input-or-display}}
|
|
</div>
|
|
{{#if (eq model.sessionAffinity "ClientIP")}}
|
|
<div class="col span-6">
|
|
<label class="acc-label">
|
|
{{t "editDns.sessionAffinityConfig.label"}}
|
|
</label>
|
|
{{#input-or-display
|
|
editable=editing
|
|
value=timeoutSeconds
|
|
classesForDisplay="text-muted form-control-static"
|
|
}}
|
|
<div class="input-group">
|
|
{{input-integer
|
|
min="1"
|
|
max="86400"
|
|
step="60"
|
|
value=timeoutSeconds
|
|
classNames="form-control"
|
|
placeholder=(t "editDns.sessionAffinityConfig.placeholder")
|
|
}}
|
|
<div class="input-group-addon bg-default">{{t "generic.seconds"}}</div>
|
|
</div>
|
|
{{/input-or-display}}
|
|
</div>
|
|
{{/if}}
|
|
</div>
|
|
{{/accordion-list-item}}
|
|
{{/if}}
|
|
{{/accordion-list}}
|
|
{{/advanced-section}}
|
|
|
|
{{#if editing}}
|
|
{{top-errors errors=errors}}
|
|
{{save-cancel
|
|
editing=isEdit
|
|
save=(action "save")
|
|
cancel=cancel
|
|
}}
|
|
{{/if}}
|