ui/lib/nodes/addon/components/node-driver/driver-exoscale/template.hbs

243 lines
9.1 KiB
Handlebars

<section class="horizontal-form">
<form>
<div class="container-fluid">
<div class="over-hr r-mb20">
<span>{{t 'nodeDriver.exoscale.accountSection'}}</span>
</div>
<div class="row {{if isStep1 'form-group'}}">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'nodeDriver.exoscale.apiKey.label'}}</label>
</div>
<div class="col-md-10">
{{#if isStep1}}
{{input type="text" name="username" classNames="form-control" placeholder=(t 'nodeDriver.exoscale.apiKey.placeholder') value=config.apiKey}}
{{else}}
<div class="form-control-static">{{config.apiKey}}</div>
{{/if}}
</div>
</div>
<div class="row {{if isStep1 'form-group'}}">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'nodeDriver.exoscale.secretKey.label'}}</label>
</div>
<div class="col-md-10">
{{#if isStep1}}
{{input type="password" name="password" classNames="form-control" placeholder=(t 'nodeDriver.exoscale.secretKey.placeholder') value=config.apiSecretKey}}
{{else}}
<div class="form-control-static text-muted text-italic">{{t 'nodeDriver.exoscale.secretKey.provided'}}</div>
{{/if}}
{{#if isStep1}}
<p class="help-block">{{t 'nodeDriver.exoscale.accountHelp'}}</p>
{{/if}}
</div>
</div>
</div>
{{#if isStep1}}
{{top-errors errors=errors}}
<div class="footer-actions">
<button {{action "exoscaleLogin"}} name="submit" class="btn btn-primary">{{t 'nodeDriver.exoscale.loginAction'}}</button>
<button {{action "cancel"}} class="btn btn-link">{{t 'generic.cancel'}}</button>
</div>
{{/if}}
</form>
</section>
<section class="horizontal-form r-pt0 {{unless isStep2 'hide'}}">
<div class="text-center">
<i class="icon icon-spinner icon-spin"></i> {{t 'nodeDriver.exoscale.loadingZone'}}
</div>
</section>
<section class="horizontal-form r-pt0 {{unless isGteStep3 'hide'}}">
<div class="container-fluid">
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'nodeDriver.exoscale.zoneSection'}}</span>
</div>
<div class="row {{if isStep3 'form-group'}}">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'nodeDriver.exoscale.zone.label'}}</label>
</div>
<div class="col-md-10">
{{#if isStep3}}
{{#each allZones as |choice|}}
<div class="radio r-pt10"><label>
{{radio-button selection=selectedZone value=choice.id}}
{{ choice.name }}
</label></div>
{{/each}}
{{else}}
<div class="form-control-static">
{{config.availabilityZone}}
</div>
{{/if}}
</div>
</div>
</div>
{{#if isStep3}}
{{top-errors errors=errors}}
<div class="footer-actions">
<button {{action "selectZone"}} class="btn btn-primary">{{t 'nodeDriver.exoscale.selectZoneAction'}}</button>
<button {{action "cancel"}} class="btn btn-link">Cancel</button>
</div>
{{/if}}
</section>
<section class="horizontal-form r-pt0 {{unless isStep4 'hide'}}">
<div class="text-center">
<i class="icon icon-spinner icon-spin"></i> {{t 'nodeDriver.exoscale.loadingSecurity'}}
</div>
</section>
<section class="horizontal-form r-pt0 {{unless isGteStep5 'hide'}}">
<div class="container-fluid">
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'nodeDriver.exoscale.securityGroupSection'}}</span>
</div>
<div class="row {{if isStep5 'form-group'}}">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'nodeDriver.exoscale.securityGroup.label'}}</label>
</div>
<div class="col-md-10">
{{#if isStep5}}
<div class="radio r-pt10"><label>
{{radio-button selection=whichSecurityGroup value="default"}}
{{#if defaultSecurityGroup}}
{{format-html-message 'nodeDriver.exoscale.securityGroup.defaultExisting' groupName=defaultSecurityGroup}}
{{else}}
{{format-html-message 'nodeDriver.exoscale.securityGroup.defaultCreate' groupName=defaultSecurityGroup}}
{{/if}}
</label></div>
{{#if (and settings.isRancher (not isCustomSecurityGroup))}}
<p class="help-block r-ml20"><a href="{{settings.docsBase}}/hosts/exoscale/#required-ports-for-rancher-to-work" target="_blank">{{t 'nodeDriver.exoscale.portHelp.link'}}</a> {{t 'nodeDriver.exoscale.portHelp.text'}}</p>
{{/if}}
<div class="radio"><label>{{radio-button selection=whichSecurityGroup value="custom"}} {{t 'nodeDriver.exoscale.securityGroup.custom'}}</label></div>
{{#if isCustomSecurityGroup}}
<select class="form-control" onchange={{action (mut securityGroup) value="target.value"}}>
{{#each allSecurityGroups as |choice|}}
<option value={{choice.name}} selected={{eq securityGroup choice.name}}>{{choice.name}}</option>
{{/each}}
</select>
<p style="r-m0 r-mt10">{{t 'nodeDriver.exoscale.needs.label' appName=settings.appName}}</p>
<ul>
<li>{{format-html-message 'nodeDriver.exoscale.needs.item1' appName=settings.appName}}</li>
<li>{{format-html-message 'nodeDriver.exoscale.needs.item2' appName=settings.appName}}</li>
<li>{{format-html-message 'nodeDriver.exoscale.needs.item3' appName=settings.appName}}</li>
</ul>
{{/if}}
{{else}}
<div class="form-control-static">
{{config.securityGroup}}
</div>
{{/if}}
</div>
</div>
</div>
{{#if isStep5}}
{{top-errors errors=errors}}
<div class="footer-actions">
<button {{action "selectSecurityGroup"}} class="btn btn-primary">{{t 'nodeDriver.exoscale.selectSecurityGroupAction'}}</button>
<button {{action "cancel"}} class="btn btn-link">Cancel</button>
</div>
{{/if}}
</section>
<section class="horizontal-form {{unless isStep6 'hide'}}" style="padding-top: 0">
<div class="text-center">
<i class="icon icon-spinner icon-spin"></i>
{{#if defaultSecurityGroup}}
{{t 'nodeDriver.exoscale.securityGroup.updating'}}
{{else}}
{{t 'nodeDriver.exoscale.securityGroup.creating'}}
{{/if}}
</div>
</section>
<section class="horizontal-form r-pt0 {{unless isStep7 'hide'}}">
<div class="text-center">
<i class="icon icon-spinner icon-spin"></i> {{t 'nodeDriver.exoscale.loadingInstance'}}
</div>
</section>
<section class="horizontal-form r-pt0 {{unless isGteStep8 'hide'}}">
<div class="container-fluid">
<div class="over-hr r-mt20 r-mb20">
<span>{{t 'nodeDriver.exoscale.instanceSection'}}</span>
</div>
{{!-- {{partial "host/add-common"}} --}}
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'nodeDriver.exoscale.instanceProfile.label'}}</label>
</div>
<div class="col-md-4">
<select class="form-control" onchange={{action (mut config.instanceProfile) value="target.value"}}>
{{#each allInstanceProfiles as |choice|}}
<option value={{choice.name}} selected={{eq config.instanceProfile choice.name}}>{{choice.displaytext}}</option>
{{/each}}
</select>
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'nodeDriver.exoscale.diskSize.label'}}</label>
</div>
<div class="col-md-4">
{{input type="number" classNames="form-control" min=10 max=1600 step=10 value=config.diskSize}}
</div>
</div>
<div class="row form-group">
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'nodeDriver.exoscale.template.label'}}</label>
</div>
<div class="col-md-4">
<select class="form-control" onchange={{action (mut config.image) value="target.value"}}>
{{#each allTemplates as |choice|}}
<option value={{choice}} selected={{eq config.image choice}}>{{choice}}</option>
{{/each}}
</select>
</div>
<div class="col-md-2 form-label">
<label class="form-control-static">{{t 'nodeDriver.exoscale.sshUser.label'}}</label>
</div>
<div class="col-md-4">
{{input type="text" classNames="form-control" placeholder=(t 'nodeDriver.exoscale.sshUser.placeholder') value=config.sshUser}}
</div>
</div>
{{!-- {{partial "host/add-options"}} --}}
</div>
<div class="over-hr"><span>{{templateOptionsTitle}}</span></div>
{{form-name-description
model=model
nameRequired=true
}}
{{#accordion-list showExpandAll=false as | al expandFn |}}
{{form-user-labels
initialLabels=labelResource.labels
setLabels=(action 'setLabels')
expandAll=expandAll
expand=(action expandFn)
}}
{{form-engine-opts
machine=model
showEngineUrl=showEngineUrl
}}
{{/accordion-list}}
{{top-errors errors=errors}}
{{save-cancel save="save" cancel="cancel"}}
</section>