ui/lib/shared/addon/components/view-edit-project/template.hbs

195 lines
6.8 KiB
Handlebars

<section class="header clearfix">
{{#if showEdit}}
<h1>
{{#if editing}}
{{t 'viewEditProject.showEdit.edit'}} {{originalProject.displayName}}
{{else}}
{{t 'viewEditProject.showEdit.add'}}
{{/if}}
</h1>
{{else}}
<h1>{{#link-to "authenticated.clusters"}}{{t 'viewEditProject.header'}}{{/link-to}}</h1>
<div class="right-buttons">
{{badge-state model=project}}
{{action-menu model=project size="sm" classNames="ml-10"}}
</div>
{{/if}}
</section>
{{#if showEdit}}
<section class="pt-10">
{{form-name-description
model=project
nameRequired=true
namePlaceholder="viewEditDescription.form.name.placeholder"
descriptionPlaceholder="viewEditDescription.form.description.placeholder"
}}
</section>
<section class="pt-10">
<label class="pb-5 acc-label">{{t 'viewEditProject.showEdit.cluster.label'}} {{field-required}}</label>
{{new-select
classNames="form-control"
optionValuePath="id"
optionLabelPath="displayName"
content=clusters
value=project.clusterId
prompt="viewEditProject.showEdit.cluster.prompt"
localizedPrompt=true
}}
</section>
{{else if project.description}}
<section class="pt-10">
<label class="inline-block m-0">{{t 'viewEditProject.description'}}: </label>
<p class="inline-block m-0">{{project.description}}</p>
</section>
{{/if}}
<section>
<div class="box mt-40">
<h4>{{t 'viewEditProject.showEdit.accessControl'}}</h4>
{{#if (and accessEnabled showEdit)}}
<div class="inline-form mb-20">
{{input-identity action="checkMember" onError="error"}}
</div>
{{/if}}
{{#if accessEnabled}}
{{#sortable-table
classNames="grid fixed mb-0 sortable-table"
bulkActions=false
paging=false
search=false
sortBy=sortBy
headers=headers
body=project.projectMembers
as |sortable kind member|
}}
{{#if (eq kind "row")}}
<td>
{{identity-block identity=member}}
</td>
<td>{{member.displayType}}</td>
<td>
{{#if showEdit}}
<select class="form-control input-sm" onchange={{action (mut member.role) value="target.value"}}>
{{#each roleOptions as |choice|}}
<option value={{choice.value}} selected={{eq member.role choice.value}}>{{t choice.label}}</option>
{{/each}}
</select>
{{else}}
{{uc-first member.role}}
{{/if}}
</td>
{{#if showEdit}}
<td>
{{#if accessEnabled}}
<button class="btn bg-primary btn-sm pull-right gh-action" {{action "removeMember" member}}><i class="icon icon-minus"/></button>
{{else}}
&nbsp;
{{/if}}
</td>
{{/if}}
{{else if (eq kind "norows")}}
<tr>
<td colspan="{{sortable.fullColspan}}" class="text-center text-muted">
{{t 'viewEditProject.showEdit.noMembers'}}
</td>
</tr>
{{/if}}
{{/sortable-table}}
{{else}}
<p class="text-info text-center">
{{t 'viewEditProject.helpBlock' htmlSafe=true}}
</p>
{{/if}}
</div>
</section>
{{#if network}}
<section>
<div class="box mt-40">
<h4>{{t 'viewEditProject.networkPolicy.label'}}</h4>
<p>{{t 'viewEditProject.networkPolicy.description'}}</p>
{{#if missingManager}}
<p class="help-block">{{t 'viewEditProject.networkPolicy.noManager'}}</p>
{{else if hasUnsupportedPolicy}}
<div class="row">
<div class="col span-12">
<p>{{t 'viewEditProject.networkPolicy.unsupported'}}</p>
</div>
</div>
{{else}}
<div class="row">
<div class="col span-3">
<label>{{t 'viewEditProject.networkPolicy.withinLinked'}}</label>
{{#if showEdit}}
<div class="radio">
<label>{{radio-button selection=npWithinLinked.action value="allow"}}&nbsp;{{t 'viewEditProject.networkPolicy.allow'}}</label>
</div>
<div class="radio">
<label>{{radio-button selection=npWithinLinked.action value="deny"}}&nbsp;{{t 'viewEditProject.networkPolicy.deny'}}</label>
</div>
{{else}}
<div class="row">
<div class="col span-12">
<p class="text-muted">{{t 'viewEditProject.networkPolicy.description'}}</p>
</div>
</div>
{{/if}}
</div>
<div class="col span-3">
<label>{{t 'viewEditProject.networkPolicy.withinService'}}</label>
{{#if showEdit}}
<div class="radio">
<label>{{radio-button selection=npWithinService.action value="allow"}}&nbsp;{{t 'viewEditProject.networkPolicy.allow'}}</label>
</div>
<div class="radio">
<label>{{radio-button selection=npWithinService.action value="deny"}}&nbsp;{{t 'viewEditProject.networkPolicy.deny'}}</label>
</div>
{{else}}
<div>{{uc-first npWithinService.action}}</div>
{{/if}}
</div>
<div class="col span-3">
<label>{{t 'viewEditProject.networkPolicy.withinStack'}}</label>
{{#if showEdit}}
<div class="radio">
<label>{{radio-button selection=npWithinStack.action value="allow"}}&nbsp;{{t 'viewEditProject.networkPolicy.allow'}}</label>
</div>
<div class="radio">
<label>{{radio-button selection=npWithinStack.action value="deny"}}&nbsp;{{t 'viewEditProject.networkPolicy.deny'}}</label>
</div>
{{else}}
<div>{{uc-first npWithinStack.action}}</div>
{{/if}}
</div>
<div class="col span-3">
<label>{{t 'viewEditProject.networkPolicy.default'}}</label>
{{#if showEdit}}
<div class="radio">
<label>{{radio-button selection=network.defaultPolicyAction value="allow"}}&nbsp;{{t 'viewEditProject.networkPolicy.allow'}}</label>
</div>
<div class="radio">
<label>{{radio-button selection=network.defaultPolicyAction value="deny"}}&nbsp;{{t 'viewEditProject.networkPolicy.deny'}}</label>
</div>
{{else}}
<div>{{uc-first network.defaultPolicyAction}}</div>
{{/if}}
</div>
</div>
{{/if}}
</div>
</section>
{{/if}}
{{#if showEdit}}
{{top-errors errors=errors}}
{{save-cancel editing=editing save="save" cancel="cancel"}}
{{/if}}