Merge branch 'develop' into chore-form-width
This commit is contained in:
102 files changed
+469
-463
No files matched your search
@@ -3,6 +3,7 @@
|
||||
@cancel={{@cancel}}
|
||||
@disabled={{@model.isSaving}}
|
||||
@error={{@model.errors.base}}
|
||||
@showEditToggle={{if @model.isNew false true}}
|
||||
as |form|
|
||||
>
|
||||
<form.input
|
||||
@@ -16,6 +17,7 @@
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.name.label"}}
|
||||
@helperText={{t "form.name.help"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -33,6 +35,7 @@
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.description.label"}}
|
||||
@helperText={{t "form.description.help"}}
|
||||
@error={{@model.errors.description}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
@@ -85,6 +88,7 @@
|
||||
|
||||
<form.actions
|
||||
@disabled={{if @model.cannotSave @model.cannotSave}}
|
||||
@enableEditText={{t "actions.edit-form"}}
|
||||
@submitText={{t "actions.save"}}
|
||||
@cancelText={{t "actions.cancel"}} />
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
@cancel={{@cancel}}
|
||||
@disabled={{@model.isSaving}}
|
||||
@error={{@model.errors.base}}
|
||||
@showEditToggle={{if @model.isNew false true}}
|
||||
as |form|
|
||||
>
|
||||
<form.input
|
||||
@@ -16,6 +17,7 @@
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.name.label"}}
|
||||
@helperText={{t "form.name.help"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -33,6 +35,7 @@
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.description.label"}}
|
||||
@helperText={{t "form.description.help"}}
|
||||
@error={{@model.errors.description}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
@@ -48,6 +51,7 @@
|
||||
|
||||
<form.actions
|
||||
@disabled={{if @model.cannotSave @model.cannotSave}}
|
||||
@enableEditText={{t "actions.edit-form"}}
|
||||
@submitText={{t "actions.save"}}
|
||||
@cancelText={{t "actions.cancel"}} />
|
||||
</Rose::Form>
|
||||
@@ -9,7 +9,7 @@
|
||||
>
|
||||
|
||||
<form.actions
|
||||
@submitText={{t "actions.add-members"}}
|
||||
@submitText={{t "resources.group.actions.add-members"}}
|
||||
@cancelText={{t "actions.cancel"}} />
|
||||
|
||||
<Rose::Table as |table|>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
@cancel={{@cancel}}
|
||||
@disabled={{@model.isSaving}}
|
||||
@error={{@model.errors.base}}
|
||||
@showEditToggle={{if @model.isNew false true}}
|
||||
as |form|
|
||||
>
|
||||
|
||||
@@ -11,6 +12,7 @@
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.name.label"}}
|
||||
@helperText={{t "form.name.help"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -28,6 +30,7 @@
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.description.label"}}
|
||||
@helperText={{t "form.description.help"}}
|
||||
@error={{@model.errors.description}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
@@ -43,6 +46,7 @@
|
||||
|
||||
<form.actions
|
||||
@disabled={{if @model.cannotSave @model.cannotSave}}
|
||||
@enableEditText={{t "actions.edit-form"}}
|
||||
@submitText={{t "actions.save"}}
|
||||
@cancelText={{t "actions.cancel"}} />
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
@cancel={{@cancel}}
|
||||
@disabled={{@model.isSaving}}
|
||||
@error={{@model.errors.base}}
|
||||
@showEditToggle={{if @model.isNew false true}}
|
||||
as |form|
|
||||
>
|
||||
|
||||
@@ -11,6 +12,7 @@
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.name.label"}}
|
||||
@helperText={{t "form.name.help"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -28,6 +30,7 @@
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.description.label"}}
|
||||
@helperText={{t "form.description.help"}}
|
||||
@error={{@model.errors.description}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
@@ -43,6 +46,7 @@
|
||||
|
||||
<form.actions
|
||||
@disabled={{if @model.cannotSave @model.cannotSave}}
|
||||
@enableEditText={{t "actions.edit-form"}}
|
||||
@submitText={{t "actions.save"}}
|
||||
@cancelText={{t "actions.cancel"}} />
|
||||
|
||||
|
||||
@@ -43,9 +43,9 @@
|
||||
|
||||
{{#unless this.hasAvailableHosts}}
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t "titles.no-host-set-hosts"}} as |message|>
|
||||
<Rose::Message @title={{t "resources.host-set.host.messages.add.title"}} as |message|>
|
||||
<message.description>
|
||||
{{t "descriptions.no-host-set-hosts"}}
|
||||
{{t "resources.host-set.host.messages.add.description"}}
|
||||
</message.description>
|
||||
<message.link @route="scopes.scope.projects.project.host-catalogs.host-catalog.host-sets.host-set.hosts">
|
||||
<Rose::Icon @name="chevron-left" />
|
||||
|
||||
@@ -3,11 +3,12 @@
|
||||
@cancel={{@cancel}}
|
||||
@disabled={{@model.isSaving}}
|
||||
@error={{@model.errors.base}}
|
||||
@showEditToggle={{if @model.isNew false true}}
|
||||
as |form|
|
||||
>
|
||||
|
||||
<form.input
|
||||
@value={{t (concat 'host-set.types.' @model.type)}}
|
||||
@value={{t (concat 'resources.host-set.types.' @model.type)}}
|
||||
@label={{t "form.type.label"}}
|
||||
readonly={{true}}
|
||||
@disabled={{true}} />
|
||||
@@ -17,6 +18,7 @@
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.name.label"}}
|
||||
@helperText={{t "form.name.help"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -34,6 +36,7 @@
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.description.label"}}
|
||||
@helperText={{t "form.description.help"}}
|
||||
@error={{@model.errors.description}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
@@ -49,6 +52,7 @@
|
||||
|
||||
<form.actions
|
||||
@disabled={{if @model.cannotSave @model.cannotSave}}
|
||||
@enableEditText={{t "actions.edit-form"}}
|
||||
@submitText={{t "actions.save"}}
|
||||
@cancelText={{t "actions.cancel"}} />
|
||||
|
||||
|
||||
@@ -3,11 +3,12 @@
|
||||
@cancel={{@cancel}}
|
||||
@disabled={{@model.isSaving}}
|
||||
@error={{@model.errors.base}}
|
||||
@showEditToggle={{if @model.isNew false true}}
|
||||
as |form|
|
||||
>
|
||||
|
||||
<form.input
|
||||
@value={{t (concat 'host.types.' @model.type)}}
|
||||
@value={{t (concat 'resources.host.types.' @model.type)}}
|
||||
@label={{t "form.type.label"}}
|
||||
readonly={{true}}
|
||||
@disabled={{true}} />
|
||||
@@ -69,6 +70,7 @@
|
||||
|
||||
<form.actions
|
||||
@disabled={{if @model.cannotSave @model.cannotSave}}
|
||||
@enableEditText={{t "actions.edit-form"}}
|
||||
@submitText={{t "actions.save"}}
|
||||
@cancelText={{t "actions.cancel"}} />
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
@cancel={{@cancel}}
|
||||
@disabled={{@model.isSaving}}
|
||||
@error={{@model.errors.base}}
|
||||
@showEditToggle={{if @model.isNew false true}}
|
||||
as |form|
|
||||
>
|
||||
|
||||
@@ -11,6 +12,7 @@
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.name.label"}}
|
||||
@helperText={{t "form.name.help"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -28,6 +30,7 @@
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.description.label"}}
|
||||
@helperText={{t "form.description.help"}}
|
||||
@error={{@model.errors.description}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
@@ -43,6 +46,7 @@
|
||||
|
||||
<form.actions
|
||||
@disabled={{if @model.cannotSave @model.cannotSave}}
|
||||
@enableEditText={{t "actions.edit-form"}}
|
||||
@submitText={{t "actions.save"}}
|
||||
@cancelText={{t "actions.cancel"}} />
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
@cancel={{@cancel}}
|
||||
@disabled={{@model.isSaving}}
|
||||
@error={{@model.errors.base}}
|
||||
@showEditToggle={{if @model.isNew false true}}
|
||||
as |form|
|
||||
>
|
||||
|
||||
@@ -11,6 +12,7 @@
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.name.label"}}
|
||||
@helperText={{t "form.name.help"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -28,6 +30,7 @@
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.description.label"}}
|
||||
@helperText={{t "form.description.help"}}
|
||||
@error={{@model.errors.description}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
@@ -43,6 +46,7 @@
|
||||
|
||||
<form.actions
|
||||
@disabled={{if @model.cannotSave @model.cannotSave}}
|
||||
@enableEditText={{t "actions.edit-form"}}
|
||||
@submitText={{t "actions.save"}}
|
||||
@cancelText={{t "actions.cancel"}} />
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
</row.cell>
|
||||
<row.cell>{{principal.name}}</row.cell>
|
||||
<row.cell>
|
||||
<Rose::Badge>{{t (concat 'resources.' principal.constructor.modelName)}}</Rose::Badge>
|
||||
<Rose::Badge>{{t (concat 'resources.role.principal.types.' principal.constructor.modelName)}}</Rose::Badge>
|
||||
</row.cell>
|
||||
</body.row>
|
||||
{{/each}}
|
||||
@@ -43,9 +43,9 @@
|
||||
|
||||
{{#unless this.hasAvailablePrincipals}}
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t "titles.no-principals-available"}} as |message|>
|
||||
<Rose::Message @title={{t "resources.role.principal.messages.none.title"}} as |message|>
|
||||
<message.description>
|
||||
{{t "descriptions.no-principals-available"}}
|
||||
{{t "resources.role.principal.messages.none.description"}}
|
||||
</message.description>
|
||||
<message.link @route="scopes.scope.roles.role.principals">
|
||||
<Rose::Icon @name="chevron-left" />
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
@value={{this.newGrantString}}
|
||||
as |input|>
|
||||
<item.key>
|
||||
<input.label>{{t "titles.new-grant"}}</input.label>
|
||||
<input.label>{{t "resources.role.grant.actions.create"}}</input.label>
|
||||
</item.key>
|
||||
<item.cell>
|
||||
<input.field title={{t "form.grant.help"}} />
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
@cancel={{@cancel}}
|
||||
@disabled={{@model.isSaving}}
|
||||
@error={{@model.errors.base}}
|
||||
@showEditToggle={{if @model.isNew false true}}
|
||||
as |form|
|
||||
>
|
||||
|
||||
@@ -11,8 +12,8 @@
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.name.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
@helperText={{t "form.name.help"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
{{#if @model.errors.name}}
|
||||
@@ -29,8 +30,8 @@
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.description.label"}}
|
||||
@error={{@model.errors.description}}
|
||||
@helperText={{t "form.description.help"}}
|
||||
@error={{@model.errors.description}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -45,6 +46,7 @@
|
||||
|
||||
<form.actions
|
||||
@disabled={{if @model.cannotSave @model.cannotSave}}
|
||||
@enableEditText={{t "actions.edit-form"}}
|
||||
@submitText={{t "actions.save"}}
|
||||
@cancelText={{t "actions.cancel"}} />
|
||||
|
||||
|
||||
@@ -1,44 +1,60 @@
|
||||
<Rose::Form
|
||||
class="full-width"
|
||||
@onSubmit={{fn this.submit @submit}}
|
||||
@cancel={{@cancel}}
|
||||
@disabled={{@model.isSaving}}
|
||||
@error={{@model.errors.base}}
|
||||
as |form|
|
||||
>
|
||||
{{#if this.hasAvailableHostSets}}
|
||||
<Rose::Form
|
||||
class="full-width"
|
||||
@onSubmit={{fn this.submit @submit}}
|
||||
@cancel={{@cancel}}
|
||||
@disabled={{@model.isSaving}}
|
||||
@error={{@model.errors.base}}
|
||||
as |form|
|
||||
>
|
||||
|
||||
<form.actions
|
||||
@submitText={{t "actions.add-host-sets"}}
|
||||
@cancelText={{t "actions.cancel"}} />
|
||||
<form.actions
|
||||
@submitText={{t "actions.add-host-sets"}}
|
||||
@cancelText={{t "actions.cancel"}} />
|
||||
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.type.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'resources.host-catalog'}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
<table.body as |body|>
|
||||
{{#each this.filteredHostSets as |hostSet|}}
|
||||
<body.row as |row|>
|
||||
<row.cell>
|
||||
<form.checkbox
|
||||
@label={{hostSet.id}}
|
||||
@description={{hostSet.description}}
|
||||
onChange={{fn this.toggleHostSet hostSet}} />
|
||||
</row.cell>
|
||||
<row.cell>{{hostSet.name}}</row.cell>
|
||||
<row.cell>
|
||||
<Rose::Badge>{{hostSet.type}}</Rose::Badge>
|
||||
</row.cell>
|
||||
<row.cell>
|
||||
<code>{{hostSet.host_catalog_id}}</code>
|
||||
</row.cell>
|
||||
</body.row>
|
||||
{{/each}}
|
||||
</table.body>
|
||||
</Rose::Table>
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.type.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'resources.host-catalog.title_plural'}}</row.headerCell>
|
||||
</header.row>
|
||||
</table.header>
|
||||
<table.body as |body|>
|
||||
{{#each this.filteredHostSets as |hostSet|}}
|
||||
<body.row as |row|>
|
||||
<row.cell>
|
||||
<form.checkbox
|
||||
@label={{hostSet.id}}
|
||||
@description={{hostSet.description}}
|
||||
onChange={{fn this.toggleHostSet hostSet}} />
|
||||
</row.cell>
|
||||
<row.cell>{{hostSet.name}}</row.cell>
|
||||
<row.cell>
|
||||
<Rose::Badge>{{t (concat 'resources.host-set.types.' hostSet.type)}}</Rose::Badge>
|
||||
</row.cell>
|
||||
<row.cell>
|
||||
<code>{{hostSet.host_catalog_id}}</code>
|
||||
</row.cell>
|
||||
</body.row>
|
||||
{{/each}}
|
||||
</table.body>
|
||||
</Rose::Table>
|
||||
|
||||
</Rose::Form>
|
||||
</Rose::Form>
|
||||
{{/if}}
|
||||
|
||||
{{#unless this.hasAvailableHostSets}}
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t "resources.target.host-set.messages.none.title"}} as |message|>
|
||||
<message.description>
|
||||
{{t "resources.target.host-set.messages.none.description"}}
|
||||
</message.description>
|
||||
<message.link @route="scopes.scope.projects.project.targets.target.host-sets">
|
||||
<Rose::Icon @name="chevron-left" />
|
||||
{{t "actions.back"}}
|
||||
</message.link>
|
||||
</Rose::Message>
|
||||
</Rose::Layout::Centered>
|
||||
{{/unless}}
|
||||
@@ -11,6 +11,16 @@ export default class FormTargetAddHostSetsComponent extends Component {
|
||||
*/
|
||||
selectedHostSetIDs = A();
|
||||
|
||||
/**
|
||||
* Checks for unassigned hostsets.
|
||||
* @param {[HostSetModel]} filteredHostSets
|
||||
* @type {boolean}
|
||||
*/
|
||||
@computed('filteredHostSets')
|
||||
get hasAvailableHostSets() {
|
||||
return this.filteredHostSets.length > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Host sets not already added to the target.
|
||||
* @type {[HostSetModel]}
|
||||
|
||||
@@ -3,11 +3,12 @@
|
||||
@cancel={{@cancel}}
|
||||
@disabled={{@model.isSaving}}
|
||||
@error={{@model.errors.base}}
|
||||
@showEditToggle={{if @model.isNew false true}}
|
||||
as |form|
|
||||
>
|
||||
|
||||
<form.input
|
||||
@value={{t (concat 'target.types.' @model.type)}}
|
||||
@value={{t (concat 'resources.target.types.' @model.type)}}
|
||||
@label={{t "form.type.label"}}
|
||||
readonly={{true}}
|
||||
@disabled={{true}} />
|
||||
@@ -17,8 +18,8 @@
|
||||
@type="text"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.name.label"}}
|
||||
@error={{@model.errors.name}}
|
||||
@helperText={{t "form.name.help"}}
|
||||
@error={{@model.errors.name}}
|
||||
as |field|>
|
||||
{{#if @model.errors.name}}
|
||||
<field.errors as |errors|>
|
||||
@@ -34,8 +35,8 @@
|
||||
@type="text"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.description.label"}}
|
||||
@error={{@model.errors.description}}
|
||||
@helperText={{t "form.description.help"}}
|
||||
@error={{@model.errors.description}}
|
||||
as |field|>
|
||||
{{#if @model.errors.description}}
|
||||
<field.errors as |errors|>
|
||||
@@ -69,6 +70,7 @@
|
||||
|
||||
<form.actions
|
||||
@disabled={{if @model.cannotSave @model.cannotSave}}
|
||||
@enableEditText={{t "actions.edit-form"}}
|
||||
@submitText={{t "actions.save"}}
|
||||
@cancelText={{t "actions.cancel"}} />
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
@cancel={{@cancel}}
|
||||
@disabled={{@model.isSaving}}
|
||||
@error={{@model.errors.base}}
|
||||
@showEditToggle={{if @model.isNew false true}}
|
||||
as |form|
|
||||
>
|
||||
|
||||
@@ -11,6 +12,7 @@
|
||||
@type="name"
|
||||
@value={{@model.name}}
|
||||
@label={{t "form.name.label"}}
|
||||
@helperText={{t "form.name.help"}}
|
||||
@error={{@model.errors.name}}
|
||||
readonly={{false}}
|
||||
as |field|>
|
||||
@@ -28,6 +30,7 @@
|
||||
@type="description"
|
||||
@value={{@model.description}}
|
||||
@label={{t "form.description.label"}}
|
||||
@helperText={{t "form.description.help"}}
|
||||
@error={{@model.errors.description}}
|
||||
disabled={{@model.isSaving}}
|
||||
readonly={{false}}
|
||||
@@ -43,6 +46,7 @@
|
||||
|
||||
<form.actions
|
||||
@disabled={{if @model.cannotSave @model.cannotSave}}
|
||||
@enableEditText={{t "actions.edit-form"}}
|
||||
@submitText={{t "actions.save"}}
|
||||
@cancelText={{t "actions.cancel"}} />
|
||||
|
||||
|
||||
@@ -13,6 +13,6 @@ export default class ScopesScopeGroupsController extends Controller {
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.groups');
|
||||
return this.intl.t('resources.group.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,6 @@ export default class ScopesScopeGroupsGroupAddMembersController extends Controll
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('actions.add-members');
|
||||
return this.intl.t('resources.group.messages.add-members.title');
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,6 @@ export default class ScopesScopeOrgsController extends Controller {
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.orgs');
|
||||
return this.intl.t('resources.org.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,6 @@ export default class ScopesScopeProjectsController extends Controller {
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.projects');
|
||||
return this.intl.t('resources.project.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,6 @@ export default class ScopesScopeProjectsProjectHostCatalogsController extends Co
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.host-catalogs');
|
||||
return this.intl.t('resources.host-catalog.title_plural');
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -13,6 +13,6 @@ export default class ScopesScopeProjectsProjectHostCatalogsHostCatalogHostSetsCo
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.host-sets');
|
||||
return this.intl.t('resources.host-set.title_plural');
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -13,6 +13,6 @@ export default class ScopesScopeProjectsProjectHostCatalogsHostCatalogHostsContr
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.hosts');
|
||||
return this.intl.t('resources.host.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,6 @@ export default class ScopesScopeProjectsProjectTargetsController extends Control
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.targets');
|
||||
return this.intl.t('resources.target.title_plural');
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -12,6 +12,6 @@ export default class ScopesScopeProjectsProjectTargetsTargetAddHostSetsControlle
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('actions.add-host-sets');
|
||||
return this.intl.t('resources.target.actions.add-host-sets');
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,6 @@ export default class ScopesScopeProjectsProjectTargetsTargetHostSetsController e
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.host-sets');
|
||||
return this.intl.t('resources.host-set.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,6 @@ export default class ScopesScopeRolesController extends Controller {
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.roles');
|
||||
return this.intl.t('resources.role.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,6 @@ export default class ScopesScopeRolesRoleAddPrincipalsController extends Control
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('actions.add-principals');
|
||||
return this.intl.t('resources.role.principal.actions.add-principals');
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,6 @@ export default class ScopesScopeUsersController extends Controller {
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.intl.t('resources.users');
|
||||
return this.intl.t('resources.user.title_plural');
|
||||
}
|
||||
}
|
||||
@@ -5,19 +5,19 @@
|
||||
<sidebarLayout.sidebar>
|
||||
<Rose::Nav::Sidebar @title={{t "titles.general"}} as |nav|>
|
||||
<nav.link @route="scopes.scope.projects">
|
||||
{{t "resources.projects"}}
|
||||
{{t "resources.project.title_plural"}}
|
||||
</nav.link>
|
||||
</Rose::Nav::Sidebar>
|
||||
|
||||
<Rose::Nav::Sidebar @title={{t "titles.iam"}} as |nav|>
|
||||
<nav.link @route="scopes.scope.users">
|
||||
{{t "resources.users"}}
|
||||
{{t "resources.user.title_plural"}}
|
||||
</nav.link>
|
||||
<nav.link @route="scopes.scope.groups">
|
||||
{{t "resources.groups"}}
|
||||
{{t "resources.group.title_plural"}}
|
||||
</nav.link>
|
||||
<nav.link @route="scopes.scope.roles">
|
||||
{{t "resources.roles"}}
|
||||
{{t "resources.role.title_plural"}}
|
||||
</nav.link>
|
||||
<nav.link @route="scopes.scope.auth-methods">
|
||||
{{t "resources.auth-method.title_plural"}}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{{title (t "resources.groups")}}
|
||||
{{title (t "resources.group.title_plural")}}
|
||||
|
||||
{{outlet}}
|
||||
@@ -1,6 +1,6 @@
|
||||
<Rose::Dropdown @text="{{t 'actions.manage'}}" @dropdownRight={{true}} as |dropdown|>
|
||||
<dropdown.link @route="scopes.scope.groups.group.add-members">
|
||||
{{t "actions.add-members"}}
|
||||
{{t "resources.group.actions.add-members"}}
|
||||
</dropdown.link>
|
||||
<dropdown.button
|
||||
@style="danger"
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<h2>{{t "resources.group"}}</h2>
|
||||
<p>{{t "resources.descriptions.group"}}</p>
|
||||
<h2>{{t "resources.group.title"}}</h2>
|
||||
<p>{{t "resources.group.description"}}</p>
|
||||
@@ -3,6 +3,6 @@
|
||||
{{t 'titles.details'}}
|
||||
</nav.link>
|
||||
<nav.link @route='scopes.scope.groups.group.members'>
|
||||
{{t 'titles.members'}}
|
||||
{{t 'resources.group.messages.members.title'}}
|
||||
</nav.link>
|
||||
</Rose::Nav::Tabs>
|
||||
@@ -1,4 +1,4 @@
|
||||
{{title (t "actions.add-members")}}
|
||||
{{title (t "resources.group.messages.add-members.title")}}
|
||||
|
||||
<Form::Group::AddMembers
|
||||
@model={{@model.group}}
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
<h2>{{t "actions.add-members"}}</h2>
|
||||
<h2>{{t "resources.group.messages.add-members.title"}}</h2>
|
||||
<p>{{t "resources.group.messages.add-members.description"}}</p>
|
||||
@@ -1,4 +1,4 @@
|
||||
<Form::Project
|
||||
<Form::Group
|
||||
@model={{@model}}
|
||||
@submit={{route-action "save" @model}}
|
||||
@cancel={{route-action "cancel" @model}}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{title (t 'titles.members')}}
|
||||
{{title (t 'resources.group.messages.members.title')}}
|
||||
|
||||
{{#if @model.members}}
|
||||
|
||||
@@ -43,9 +43,9 @@
|
||||
{{else}}
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t "titles.group-members-welcome"}} as |message|>
|
||||
<Rose::Message @title={{t "resources.group.messages.members.title"}} as |message|>
|
||||
<message.description>
|
||||
{{t "descriptions.group-members-welcome"}}
|
||||
{{t "resources.group.messages.members.description"}}
|
||||
</message.description>
|
||||
</Rose::Message>
|
||||
</Rose::Layout::Centered>
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
<h2>{{t "resources.groups"}}</h2>
|
||||
<p>{{t "resources.descriptions.groups"}}</p>
|
||||
<h2>{{t "resources.group.title_plural"}}</h2>
|
||||
<p>{{t "resources.group.description"}}</p>
|
||||
</page.header>
|
||||
|
||||
<page.actions>
|
||||
@@ -49,9 +49,9 @@
|
||||
{{else}}
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t 'titles.groups-welcome'}} as |message|>
|
||||
<Rose::Message @title={{t 'resources.group.messages.welcome.title'}} as |message|>
|
||||
<message.description>
|
||||
{{t 'descriptions.groups-welcome'}}
|
||||
{{t 'resources.group.description'}}
|
||||
</message.description>
|
||||
<message.link @route="scopes.scope.groups.new">
|
||||
<Rose::Icon @name="plus-circle-outline" />
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{{title (t "resources.orgs")}}
|
||||
{{title (t "resources.org.title_plural")}}
|
||||
|
||||
{{outlet}}
|
||||
@@ -5,8 +5,10 @@
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
<h2>{{t "resources.orgs"}}</h2>
|
||||
<p>{{t "resources.descriptions.orgs"}}</p>
|
||||
<h2>{{t "resources.org.title_plural"}}</h2>
|
||||
{{#if @model}}
|
||||
<p>{{t "resources.org.description"}}</p>
|
||||
{{/if}}
|
||||
</page.header>
|
||||
|
||||
<page.actions>
|
||||
@@ -39,9 +41,9 @@
|
||||
{{else}}
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t 'titles.orgs-welcome'}} as |message|>
|
||||
<Rose::Message @title={{t 'resources.org.messages.welcome.title'}} as |message|>
|
||||
<message.description>
|
||||
{{t 'descriptions.orgs-welcome'}}
|
||||
{{t 'resources.org.description'}}
|
||||
</message.description>
|
||||
<message.link @route="scopes.scope.orgs.new">
|
||||
<Rose::Icon @name="plus-circle-outline" />
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{{title (t "resources.projects")}}
|
||||
{{title (t "resources.project.title_plural")}}
|
||||
|
||||
{{outlet}}
|
||||
@@ -5,8 +5,10 @@
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
<h2>{{t "resources.projects"}}</h2>
|
||||
<p>{{t "resources.descriptions.projects"}}</p>
|
||||
<h2>{{t "resources.project.title_plural"}}</h2>
|
||||
{{#if @model}}
|
||||
<p>{{t "resources.project.description"}}</p>
|
||||
{{/if}}
|
||||
</page.header>
|
||||
|
||||
<page.actions>
|
||||
@@ -39,9 +41,9 @@
|
||||
{{else}}
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t 'titles.projects-welcome'}} as |message|>
|
||||
<Rose::Message @title={{t 'resources.project.messages.welcome.title'}} as |message|>
|
||||
<message.description>
|
||||
{{t 'descriptions.projects-welcome'}}
|
||||
{{t 'resources.project.description'}}
|
||||
</message.description>
|
||||
<message.link @route="scopes.scope.projects.new">
|
||||
<Rose::Icon @name="plus-circle-outline" />
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<Rose::Nav::Sidebar @title={{t "titles.resources"}} as |nav|>
|
||||
<nav.link @route="scopes.scope.projects.project.sessions">
|
||||
{{t "resources.sessions"}}
|
||||
{{t "resources.session.title_plural"}}
|
||||
</nav.link>
|
||||
<nav.link @route="scopes.scope.projects.project.targets">
|
||||
{{t "resources.targets"}}
|
||||
{{t "resources.target.title_plural"}}
|
||||
</nav.link>
|
||||
<nav.link @route="scopes.scope.projects.project.host-catalogs">
|
||||
{{t "resources.host-catalogs"}}
|
||||
{{t "resources.host-catalog.title_plural"}}
|
||||
</nav.link>
|
||||
</Rose::Nav::Sidebar>
|
||||
@@ -1,3 +1,3 @@
|
||||
{{title (t "resources.host-catalogs")}}
|
||||
{{title (t "resources.host-catalog.title_plural")}}
|
||||
|
||||
{{outlet}}
|
||||
@@ -1,3 +1,5 @@
|
||||
{{title @model.displayName}}
|
||||
|
||||
<Rose::Layout::Page as |page|>
|
||||
|
||||
<page.breadcrumbs>
|
||||
|
||||
+3
-3
@@ -3,13 +3,13 @@
|
||||
@route="scopes.scope.projects.project.host-catalogs.host-catalog.hosts.new"
|
||||
@model={{@model}}
|
||||
>
|
||||
{{t "actions.add-host"}}
|
||||
{{t "resources.host.actions.add"}}
|
||||
</dropdown.link>
|
||||
<dropdown.link
|
||||
@route="scopes.scope.projects.project.host-catalogs.host-catalog.host-sets.new"
|
||||
@model={{@model}}
|
||||
>
|
||||
{{t "actions.add-host-set"}}
|
||||
{{t "resources.host-set.actions.add"}}
|
||||
</dropdown.link>
|
||||
<dropdown.separator />
|
||||
<dropdown.button
|
||||
@@ -17,6 +17,6 @@
|
||||
@disabled={{@model.canSave}}
|
||||
{{on "click" (route-action "delete" @model)}}
|
||||
>
|
||||
{{t 'actions.delete-host-catalog'}}
|
||||
{{t 'resources.host-catalog.actions.delete'}}
|
||||
</dropdown.button>
|
||||
</Rose::Dropdown>
|
||||
+2
-2
@@ -1,2 +1,2 @@
|
||||
<h2>{{t "resources.host-catalog"}}</h2>
|
||||
<p>{{t "resources.descriptions.host-catalog"}}</p>
|
||||
<h2>{{t "resources.host-catalog.title"}}</h2>
|
||||
<p>{{t "resources.host-catalog.description"}}</p>
|
||||
+2
-2
@@ -3,9 +3,9 @@
|
||||
{{t 'titles.details'}}
|
||||
</nav.link>
|
||||
<nav.link @route='scopes.scope.projects.project.host-catalogs.host-catalog.host-sets'>
|
||||
{{t 'titles.host-sets'}}
|
||||
{{t 'resources.host-set.title_plural'}}
|
||||
</nav.link>
|
||||
<nav.link @route='scopes.scope.projects.project.host-catalogs.host-catalog.hosts'>
|
||||
{{t 'titles.hosts'}}
|
||||
{{t 'resources.host.title_plural'}}
|
||||
</nav.link>
|
||||
</Rose::Nav::Tabs>
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
{{title (t "resources.host-sets")}}
|
||||
{{title (t "resources.host-set.title_plural")}}
|
||||
|
||||
{{outlet}}
|
||||
+2
-2
@@ -1,12 +1,12 @@
|
||||
<Rose::Dropdown @text="{{t 'actions.manage'}}" @dropdownRight={{true}} as |dropdown|>
|
||||
<dropdown.link @route="scopes.scope.projects.project.host-catalogs.host-catalog.host-sets.host-set.add-hosts">
|
||||
{{t 'actions.add-hosts'}}
|
||||
{{t 'resources.host-set.actions.add-hosts'}}
|
||||
</dropdown.link>
|
||||
<dropdown.button
|
||||
@style="danger"
|
||||
@disabled={{@model.canSave}}
|
||||
{{on "click" (route-action "delete" @model)}}
|
||||
>
|
||||
{{t 'actions.delete-host-set'}}
|
||||
{{t 'resources.host-set.actions.delete'}}
|
||||
</dropdown.button>
|
||||
</Rose::Dropdown>
|
||||
+2
-2
@@ -1,2 +1,2 @@
|
||||
<h2>{{t "resources.host-set"}}</h2>
|
||||
<p>{{t "resources.descriptions.host-set"}}</p>
|
||||
<h2>{{t "resources.host-set.title"}}</h2>
|
||||
<p>{{t "resources.host-set.description"}}</p>
|
||||
+1
-1
@@ -3,6 +3,6 @@
|
||||
{{t 'titles.details'}}
|
||||
</nav.link>
|
||||
<nav.link @route='scopes.scope.projects.project.host-catalogs.host-catalog.host-sets.host-set.hosts'>
|
||||
{{t 'resources.hosts'}}
|
||||
{{t 'resources.host.title_plural'}}
|
||||
</nav.link>
|
||||
</Rose::Nav::Tabs>
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
{{title (t "actions.add-hosts")}}
|
||||
{{title (t "resources.host-set.actions.add-hosts")}}
|
||||
|
||||
<Form::HostSet::AddHosts
|
||||
@model={{@model.hostSet}}
|
||||
|
||||
+2
-1
@@ -1 +1,2 @@
|
||||
<h2>{{t "actions.add-hosts"}}</h2>
|
||||
<h2>{{t "resources.host-set.host.messages.add.title"}}</h2>
|
||||
<p>{{t "resources.host-set.host.messages.add.description"}}</p>
|
||||
+2
-2
@@ -52,9 +52,9 @@
|
||||
|
||||
{{#unless @model.hosts}}
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t "titles.no-host-set-hosts"}} as |message|>
|
||||
<Rose::Message @title={{t "resources.host-set.host.messages.none.title"}} as |message|>
|
||||
<message.description>
|
||||
{{t "descriptions.no-host-set-hosts"}}
|
||||
{{t "resources.host-set.host.messages.none.description"}}
|
||||
</message.description>
|
||||
<message.link @route="scopes.scope.projects.project.host-catalogs.host-catalog.hosts.new">
|
||||
<Rose::Icon @name="plus-circle-outline" />
|
||||
|
||||
+5
-3
@@ -21,7 +21,9 @@
|
||||
<p>{{hostSet.description}}</p>
|
||||
</row.headerCell>
|
||||
<row.cell>
|
||||
<Rose::Badge>{{hostSet.type}}</Rose::Badge>
|
||||
<Rose::Badge>
|
||||
{{t (concat 'resources.host-set.types.' hostSet.type)}}
|
||||
</Rose::Badge>
|
||||
</row.cell>
|
||||
<row.cell>
|
||||
<code>{{hostSet.id}}</code>
|
||||
@@ -34,9 +36,9 @@
|
||||
{{else}}
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t "titles.host-sets-welcome"}} as |message|>
|
||||
<Rose::Message @title={{t "resources.host-set.messages.welcome.title"}} as |message|>
|
||||
<message.description>
|
||||
{{t "descriptions.host-sets-welcome"}}
|
||||
{{t "resources.host-set.description"}}
|
||||
</message.description>
|
||||
<message.link @route="scopes.scope.projects.project.host-catalogs.host-catalog.host-sets.new">
|
||||
<Rose::Icon @name="plus-circle-outline" />
|
||||
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
{{title (t "resources.hosts")}}
|
||||
{{title (t "resources.host.title_plural")}}
|
||||
|
||||
{{outlet}}
|
||||
+1
-1
@@ -4,6 +4,6 @@
|
||||
@disabled={{@model.canSave}}
|
||||
{{on "click" (route-action "delete" @model)}}
|
||||
>
|
||||
{{t 'actions.delete-host'}}
|
||||
{{t 'resources.host.actions.delete'}}
|
||||
</dropdown.button>
|
||||
</Rose::Dropdown>
|
||||
+2
-2
@@ -1,2 +1,2 @@
|
||||
<h2>{{t "resources.host"}}</h2>
|
||||
<p>{{t "resources.descriptions.host"}}</p>
|
||||
<h2>{{t "resources.host.title"}}</h2>
|
||||
<p>{{t "resources.host.description"}}</p>
|
||||
+5
-3
@@ -22,7 +22,9 @@
|
||||
<p>{{host.description}}</p>
|
||||
</row.headerCell>
|
||||
<row.cell>
|
||||
<Rose::Badge>{{host.type}}</Rose::Badge>
|
||||
<Rose::Badge>
|
||||
{{t (concat 'resources.host.types.' host.type)}}
|
||||
</Rose::Badge>
|
||||
</row.cell>
|
||||
<row.cell>
|
||||
<code>{{host.id}}</code>
|
||||
@@ -38,9 +40,9 @@
|
||||
{{else}}
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t "titles.hosts-welcome"}} as |message|>
|
||||
<Rose::Message @title={{t "resources.host.messages.welcome.title"}} as |message|>
|
||||
<message.description>
|
||||
{{t "descriptions.hosts-welcome"}}
|
||||
{{t "resources.host.description"}}
|
||||
</message.description>
|
||||
<message.link @route="scopes.scope.projects.project.host-catalogs.host-catalog.hosts.new">
|
||||
<Rose::Icon @name="plus-circle-outline" />
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
<h2>{{t "resources.host-catalogs"}}</h2>
|
||||
<p>{{t "resources.descriptions.host-catalogs"}}</p>
|
||||
<h2>{{t "resources.host-catalog.title_plural"}}</h2>
|
||||
<p>{{t "resources.host-catalog.description"}}</p>
|
||||
</page.header>
|
||||
|
||||
<page.actions>
|
||||
@@ -43,7 +43,7 @@
|
||||
</row.headerCell>
|
||||
<row.cell>
|
||||
<Rose::Badge>
|
||||
{{hostCatalog.type}}
|
||||
{{t (concat 'resources.host-catalog.types.' hostCatalog.type)}}
|
||||
</Rose::Badge>
|
||||
</row.cell>
|
||||
<row.cell>
|
||||
@@ -57,9 +57,9 @@
|
||||
{{else}}
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t "titles.host-catalogs-welcome"}} as |message|>
|
||||
<Rose::Message @title={{t "resources.host-catalog.messages.welcome.title"}} as |message|>
|
||||
<message.description>
|
||||
{{t "descriptions.host-catalogs-welcome"}}
|
||||
{{t "resources.host-catalog.description"}}
|
||||
</message.description>
|
||||
<message.link @route="scopes.scope.projects.project.host-catalogs.new">
|
||||
<Rose::Icon @name="plus-circle-outline" />
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
<h2>{{t "resources.project"}}</h2>
|
||||
<p>{{t "resources.descriptions.project"}}</p>
|
||||
<h2>{{t "resources.project.title"}}</h2>
|
||||
<p>{{t "resources.project.description"}}</p>
|
||||
</page.header>
|
||||
|
||||
<page.navigation>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{{title (t "resources.sessions")}}
|
||||
{{title (t "resources.session.title_plural")}}
|
||||
|
||||
{{outlet}}
|
||||
@@ -5,7 +5,8 @@
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
<h2>{{t "resources.sessions"}}</h2>
|
||||
<h2>{{t "resources.session.title_plural"}}</h2>
|
||||
<p>{{t "resources.session.description"}}</p>
|
||||
</page.header>
|
||||
|
||||
<page.body>
|
||||
@@ -16,8 +17,8 @@
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t "form.id.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "resources.user"}}</row.headerCell>
|
||||
<row.headerCell>{{t "resources.target"}}</row.headerCell>
|
||||
<row.headerCell>{{t "resources.user.title"}}</row.headerCell>
|
||||
<row.headerCell>{{t "resources.target.title"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.started.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "form.status.label"}}</row.headerCell>
|
||||
<row.headerCell>{{t "titles.actions"}}</row.headerCell>
|
||||
@@ -52,9 +53,9 @@
|
||||
{{else}}
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t "titles.no-sessions"}} as |message|>
|
||||
<Rose::Message @title={{t "resources.session.messages.none.title"}} as |message|>
|
||||
<message.description>
|
||||
{{t "descriptions.no-sessions"}}
|
||||
{{t "resources.session.messages.none.description"}}
|
||||
</message.description>
|
||||
</Rose::Message>
|
||||
</Rose::Layout::Centered>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{{title (t "resources.targets")}}
|
||||
{{title (t "resources.target.title_plural")}}
|
||||
|
||||
{{outlet}}
|
||||
@@ -5,8 +5,10 @@
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
<h2>{{t "resources.targets"}}</h2>
|
||||
<p>{{t "resources.descriptions.targets"}}</p>
|
||||
<h2>{{t "resources.target.title_plural"}}</h2>
|
||||
{{#if @model}}
|
||||
<p>{{t "resources.target.description"}}</p>
|
||||
{{/if}}
|
||||
</page.header>
|
||||
|
||||
<page.actions>
|
||||
@@ -44,7 +46,7 @@
|
||||
<row.cell>
|
||||
{{#if target.type}}
|
||||
<Rose::Badge>
|
||||
{{t (concat "target.types." target.type)}}
|
||||
{{t (concat "resources.target.types." target.type)}}
|
||||
</Rose::Badge>
|
||||
{{/if}}
|
||||
</row.cell>
|
||||
@@ -59,9 +61,9 @@
|
||||
{{else}}
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t "titles.targets-welcome"}} as |message|>
|
||||
<Rose::Message @title={{t "resources.target.messages.welcome.title"}} as |message|>
|
||||
<message.description>
|
||||
{{t "descriptions.targets-welcome"}}
|
||||
{{t "resources.target.description"}}
|
||||
</message.description>
|
||||
<message.link @route="scopes.scope.projects.project.targets.new">
|
||||
<Rose::Icon @name="plus-circle-outline" />
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<Rose::Dropdown @text="{{t 'actions.manage'}}" @dropdownRight={{true}} as |dropdown|>
|
||||
<dropdown.link @route="scopes.scope.projects.project.targets.target.add-host-sets">
|
||||
{{t 'actions.add-host-sets'}}
|
||||
{{t 'resources.target.actions.add-host-sets'}}
|
||||
</dropdown.link>
|
||||
<dropdown.button
|
||||
@style="danger"
|
||||
@disabled={{@model.canSave}}
|
||||
{{on "click" (route-action "delete" @model)}}
|
||||
>
|
||||
{{t 'actions.delete-target'}}
|
||||
{{t 'resources.target.actions.delete'}}
|
||||
</dropdown.button>
|
||||
</Rose::Dropdown>
|
||||
@@ -1,2 +1,2 @@
|
||||
<h2>{{t "resources.target"}}</h2>
|
||||
<p>{{t "resources.descriptions.target"}}</p>
|
||||
<h2>{{t "resources.target.title"}}</h2>
|
||||
<p>{{t "resources.target.description"}}</p>
|
||||
@@ -3,6 +3,6 @@
|
||||
{{t 'titles.details'}}
|
||||
</nav.link>
|
||||
<nav.link @route='scopes.scope.projects.project.targets.target.host-sets'>
|
||||
{{t 'titles.host-sets'}}
|
||||
{{t 'resources.host-set.title_plural'}}
|
||||
</nav.link>
|
||||
</Rose::Nav::Tabs>
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
{{title (t 'actions.add-host-sets')}}
|
||||
{{title (t 'resources.target.actions.add-host-sets')}}
|
||||
|
||||
{{#if @model.hostSets}}
|
||||
<Form::Target::AddHostSets
|
||||
@@ -12,9 +12,9 @@
|
||||
|
||||
{{#unless @model.hostSets}}
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t "titles.no-host-sets-for-target"}} as |message|>
|
||||
<Rose::Message @title={{t "resources.target.host-set.messages.none.title"}} as |message|>
|
||||
<message.description>
|
||||
{{t "descriptions.no-host-sets-for-target"}}
|
||||
{{t "resources.target.host-set.messages.none.description"}}
|
||||
</message.description>
|
||||
<message.link @route="scopes.scope.projects.project.targets.target.host-sets">
|
||||
<Rose::Icon @name="chevron-left" />
|
||||
|
||||
+2
-1
@@ -1 +1,2 @@
|
||||
<h2>{{t "actions.add-host-sets"}}</h2>
|
||||
<h2>{{t "resources.target.host-set.messages.add.title"}}</h2>
|
||||
<p>{{t "resources.target.host-set.messages.add.description"}}</p>
|
||||
@@ -1,4 +1,4 @@
|
||||
{{title (t "resources.host-sets")}}
|
||||
{{title (t "resources.host-set.title_plural")}}
|
||||
|
||||
{{#if @model.hostSets}}
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<p>{{hostSet.model.description}}</p>
|
||||
</row.headerCell>
|
||||
<row.cell>
|
||||
<Rose::Badge>{{hostSet.model.type}}</Rose::Badge>
|
||||
<Rose::Badge>{{t (concat 'resources.host-set.types.' hostSet.model.type)}}</Rose::Badge>
|
||||
</row.cell>
|
||||
<row.cell>
|
||||
<code>{{hostSet.model.id}}</code>
|
||||
@@ -48,9 +48,9 @@
|
||||
{{else}}
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t "titles.target-host-sets-welcome"}} as |message|>
|
||||
<Rose::Message @title={{t "resources.target.host-set.messages.welcome.title"}} as |message|>
|
||||
<message.description>
|
||||
{{t "descriptions.target-host-sets-welcome"}}
|
||||
{{t "resources.target.host-set.messages.welcome.description"}}
|
||||
</message.description>
|
||||
</Rose::Message>
|
||||
</Rose::Layout::Centered>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
{{title (t "resources.roles")}}
|
||||
{{title (t "resources.role.title_plural")}}
|
||||
|
||||
{{outlet}}
|
||||
@@ -5,8 +5,10 @@
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
<h2>{{t "resources.roles"}}</h2>
|
||||
<p>{{t "resources.descriptions.roles"}}</p>
|
||||
<h2>{{t "resources.role.title_plural"}}</h2>
|
||||
{{#if @model}}
|
||||
<p>{{t "resources.role.description"}}</p>
|
||||
{{/if}}
|
||||
</page.header>
|
||||
|
||||
<page.actions>
|
||||
@@ -49,9 +51,9 @@
|
||||
{{else}}
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t 'titles.roles-welcome'}} as |message|>
|
||||
<Rose::Message @title={{t 'resources.role.messages.welcome.title'}} as |message|>
|
||||
<message.description>
|
||||
{{t 'descriptions.roles-welcome'}}
|
||||
{{t 'resources.role.description'}}
|
||||
</message.description>
|
||||
<message.link @route="scopes.scope.roles.new">
|
||||
<Rose::Icon @name="plus-circle-outline" />
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<Rose::Dropdown @text="{{t 'actions.manage'}}" @dropdownRight={{true}} as |dropdown|>
|
||||
<dropdown.link @route="scopes.scope.roles.role.add-principals">
|
||||
{{t 'actions.add-principals'}}
|
||||
{{t 'resources.role.principal.actions.add-principals'}}
|
||||
</dropdown.link>
|
||||
<dropdown.button
|
||||
@style="danger"
|
||||
@disabled={{@model.canSave}}
|
||||
{{on "click" (route-action "delete" @model)}}
|
||||
>
|
||||
{{t 'actions.delete-role'}}
|
||||
{{t 'resources.role.actions.delete'}}
|
||||
</dropdown.button>
|
||||
</Rose::Dropdown>
|
||||
@@ -1,2 +1,2 @@
|
||||
<h2>{{t "resources.role"}}</h2>
|
||||
<p>{{t "resources.descriptions.role"}}</p>
|
||||
<h2>{{t "resources.role.title"}}</h2>
|
||||
<p>{{t "resources.role.description"}}</p>
|
||||
@@ -3,9 +3,9 @@
|
||||
{{t 'titles.settings'}}
|
||||
</nav.link>
|
||||
<nav.link @route='scopes.scope.roles.role.principals'>
|
||||
{{t 'titles.principals'}}
|
||||
{{t 'resources.role.principal.title_plural'}}
|
||||
</nav.link>
|
||||
<nav.link @route='scopes.scope.roles.role.grants'>
|
||||
{{t 'titles.grants'}}
|
||||
{{t 'resources.role.grant.title_plural'}}
|
||||
</nav.link>
|
||||
</Rose::Nav::Tabs>
|
||||
@@ -1,4 +1,4 @@
|
||||
{{title (t "actions.add-principals")}}
|
||||
{{title (t "resources.role.principal.actions.add-principals")}}
|
||||
|
||||
<Form::Role::AddPrincipals
|
||||
@model={{@model.role}}
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
<h2>{{t "actions.add-principals"}}</h2>
|
||||
<h2>{{t "resources.role.principal.messages.add-principals.title"}}</h2>
|
||||
<p>{{t "resources.role.principal.messages.add-principals.description"}}</p>
|
||||
@@ -1,4 +1,4 @@
|
||||
{{title (t 'titles.grants')}}
|
||||
{{title (t 'resources.role.grant.title_plural')}}
|
||||
|
||||
<Form::Role::Grants
|
||||
@model={{@model}}
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<h2>{{t "resources.role"}}</h2>
|
||||
<p>{{t "resources.descriptions.grants"}}</p>
|
||||
<h2>{{t "resources.role.title"}}</h2>
|
||||
<p>{{t "resources.role.grant.description"}}</p>
|
||||
@@ -1,4 +1,4 @@
|
||||
{{title (t 'titles.principals')}}
|
||||
{{title (t 'resources.role.principal.title_plural')}}
|
||||
|
||||
{{#if @model}}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
{{principal.model.displayName}}
|
||||
</row.headerCell>
|
||||
<row.cell>
|
||||
{{t (concat 'resources.' principal.type)}}
|
||||
{{t (concat 'resources.role.principal.types.' principal.type)}}
|
||||
</row.cell>
|
||||
<row.cell>
|
||||
<code>{{principal.model.id}}</code>
|
||||
@@ -47,10 +47,14 @@
|
||||
{{else}}
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t "titles.role-principals-welcome"}} as |message|>
|
||||
<Rose::Message @title={{t "resources.role.principal.messages.welcome.title"}} as |message|>
|
||||
<message.description>
|
||||
{{t "descriptions.role-principals-welcome"}}
|
||||
{{t "resources.role.principal.messages.welcome.description"}}
|
||||
</message.description>
|
||||
<message.link @route="scopes.scope.roles.role.add-principals">
|
||||
<Rose::Icon @name="plus-circle-outline" />
|
||||
{{t 'resources.role.principal.actions.add-principals'}}
|
||||
</message.link>
|
||||
</Rose::Message>
|
||||
</Rose::Layout::Centered>
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<h2>{{t "resources.role"}}</h2>
|
||||
<p>{{t "resources.descriptions.principals"}}</p>
|
||||
<h2>{{t "resources.role.title"}}</h2>
|
||||
<p>{{t "resources.role.principal.description"}}</p>
|
||||
@@ -1,3 +1,3 @@
|
||||
{{title (t "resources.users")}}
|
||||
{{title (t "resources.user.title_plural")}}
|
||||
|
||||
{{outlet}}
|
||||
@@ -5,8 +5,10 @@
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
<h2>{{t "resources.users"}}</h2>
|
||||
<p>{{t "resources.descriptions.users"}}</p>
|
||||
<h2>{{t "resources.user.title_plural"}}</h2>
|
||||
{{#if @model}}
|
||||
<p>{{t "resources.user.description"}}</p>
|
||||
{{/if}}
|
||||
</page.header>
|
||||
|
||||
<page.actions>
|
||||
@@ -49,9 +51,9 @@
|
||||
{{else}}
|
||||
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message @title={{t 'titles.users-welcome'}} as |message|>
|
||||
<Rose::Message @title={{t 'resources.user.messages.welcome.title'}} as |message|>
|
||||
<message.description>
|
||||
{{t 'descriptions.users-welcome'}}
|
||||
{{t 'resources.user.description'}}
|
||||
</message.description>
|
||||
<message.link @route="scopes.scope.users.new">
|
||||
<Rose::Icon @name="plus-circle-outline" />
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
<h2>{{t "resources.user"}}</h2>
|
||||
<p>{{t "resources.descriptions.user"}}</p>
|
||||
<h2>{{t "resources.user.title"}}</h2>
|
||||
<p>{{t "resources.user.description"}}</p>
|
||||
</page.header>
|
||||
|
||||
<page.actions>
|
||||
|
||||
@@ -80,6 +80,7 @@ module('Acceptance | accounts', function (hooks) {
|
||||
assert.expect(1);
|
||||
await visit(urls.account);
|
||||
await fillIn('[name="name"]', 'update name');
|
||||
await click('form [type="button"]');
|
||||
await click('form [type="submit"]:not(:disabled)');
|
||||
assert.equal(this.server.db.accounts[0].name, 'update name');
|
||||
});
|
||||
@@ -87,6 +88,7 @@ module('Acceptance | accounts', function (hooks) {
|
||||
test('can update an account and cancel changes', async function (assert) {
|
||||
assert.expect(1);
|
||||
await visit(urls.account)
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'update name');
|
||||
await click('form button:not([type="submit"])');
|
||||
assert.notEqual(this.server.db.accounts[0].name, 'update name');
|
||||
@@ -174,6 +176,7 @@ module('Acceptance | accounts', function (hooks) {
|
||||
});
|
||||
await visit(urls.account);
|
||||
await fillIn('[name="name"]', 'save account');
|
||||
await click('form [type="button"]');
|
||||
await click('form [type="submit"]');
|
||||
await a11yAudit();
|
||||
assert.ok(
|
||||
@@ -228,6 +231,7 @@ module('Acceptance | accounts', function (hooks) {
|
||||
);
|
||||
});
|
||||
await visit(urls.account);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'existing account');
|
||||
await click('form [type="submit"]');
|
||||
await a11yAudit();
|
||||
|
||||
@@ -66,6 +66,7 @@ module('Acceptance | auth methods', function (hooks) {
|
||||
test('can update an auth method and save changes', async function (assert) {
|
||||
assert.expect(1);
|
||||
await visit(urls.authMethod);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'update name');
|
||||
await click('form [type="submit"]:not(:disabled)');
|
||||
assert.equal(this.server.db.authMethods[0].name, 'update name');
|
||||
@@ -74,6 +75,7 @@ module('Acceptance | auth methods', function (hooks) {
|
||||
test('can update an auth method and cancel changes', async function (assert) {
|
||||
assert.expect(1);
|
||||
await visit(urls.authMethod)
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'update name');
|
||||
await click('form button:not([type="submit"])');
|
||||
assert.notEqual(this.server.db.authMethods[0].name, 'update name');
|
||||
@@ -160,6 +162,7 @@ module('Acceptance | auth methods', function (hooks) {
|
||||
});
|
||||
await visit(urls.authMethod);
|
||||
await fillIn('[name="name"]', 'save auth method');
|
||||
await click('form [type="button"]');
|
||||
await click('form [type="submit"]');
|
||||
await a11yAudit();
|
||||
assert.ok(
|
||||
@@ -192,7 +195,7 @@ module('Acceptance | auth methods', function (hooks) {
|
||||
);
|
||||
});
|
||||
|
||||
test('saving a new auth method with invalid fields displays error messages', async function (assert) {
|
||||
test('saving an existing auth method with invalid fields displays error messages', async function (assert) {
|
||||
assert.expect(2);
|
||||
this.server.patch('/auth-methods/:id', () => {
|
||||
return new Response(
|
||||
@@ -214,6 +217,7 @@ module('Acceptance | auth methods', function (hooks) {
|
||||
);
|
||||
});
|
||||
await visit(urls.authMethod);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'existing auth method');
|
||||
await click('form [type="submit"]');
|
||||
await a11yAudit();
|
||||
@@ -251,6 +255,7 @@ module('Acceptance | auth methods', function (hooks) {
|
||||
);
|
||||
});
|
||||
await visit(urls.authMethod);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'existing auth method');
|
||||
await click('form [type="submit"]');
|
||||
await a11yAudit();
|
||||
|
||||
@@ -116,6 +116,7 @@ module('Acceptance | groups', function (hooks) {
|
||||
test('can save changes to an existing group', async function (assert) {
|
||||
assert.expect(2);
|
||||
await visit(urls.group);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'Updated admin group');
|
||||
await click('.rose-form-actions [type="submit"]');
|
||||
assert.equal(currentURL(), urls.group);
|
||||
@@ -125,6 +126,7 @@ module('Acceptance | groups', function (hooks) {
|
||||
test('can cancel changes to an existing group', async function (assert) {
|
||||
assert.expect(1);
|
||||
await visit(urls.group);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'Updated admin group');
|
||||
await click('.rose-form-actions [type="button"]');
|
||||
assert.notEqual(find('[name="name"]').value, 'Updated admin group');
|
||||
@@ -160,6 +162,7 @@ module('Acceptance | groups', function (hooks) {
|
||||
);
|
||||
});
|
||||
await visit(urls.group);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'random string');
|
||||
await click('[type="submit"]');
|
||||
assert.ok(
|
||||
@@ -174,29 +177,6 @@ module('Acceptance | groups', function (hooks) {
|
||||
);
|
||||
});
|
||||
|
||||
test('errors are displayed when save project fails', async function (assert) {
|
||||
assert.expect(1);
|
||||
this.server.patch('/groups/:id', () => {
|
||||
return new Response(
|
||||
490,
|
||||
{},
|
||||
{
|
||||
status: 490,
|
||||
code: 'error',
|
||||
message: 'Oops.',
|
||||
}
|
||||
);
|
||||
});
|
||||
await visit(urls.group);
|
||||
await fillIn('[name="name"]', 'Role name');
|
||||
await click('[type="submit"]');
|
||||
assert.ok(
|
||||
find('[role="alert"]').textContent.trim(),
|
||||
'Oops.',
|
||||
'Displays primary error message.'
|
||||
);
|
||||
});
|
||||
|
||||
test('errors are displayed when delete project fails', async function (assert) {
|
||||
assert.expect(1);
|
||||
this.server.del('/groups/:id', () => {
|
||||
|
||||
@@ -84,6 +84,7 @@ module('Acceptance | host catalogs', function (hooks) {
|
||||
test('can update host catalog and save changes', async function (assert) {
|
||||
assert.expect(1);
|
||||
await visit(urls.hostCatalog);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'Test Name');
|
||||
await click('form [type="submit"]:not(:disabled)');
|
||||
assert.equal(this.server.db.hostCatalogs[0].name, 'Test Name');
|
||||
@@ -92,6 +93,7 @@ module('Acceptance | host catalogs', function (hooks) {
|
||||
test('can update host catalog and cancel changes', async function (assert) {
|
||||
assert.expect(1);
|
||||
await visit(urls.hostCatalog);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'Test Name');
|
||||
await click('form button:not([type="submit"])');
|
||||
assert.notEqual(this.server.db.hostCatalogs[0].name, 'Test Name');
|
||||
@@ -115,30 +117,6 @@ module('Acceptance | host catalogs', function (hooks) {
|
||||
assert.equal(this.server.db.hostCatalogs.length, hostCatalogsCount);
|
||||
});
|
||||
|
||||
test('errors are displayed when save host catalog fails', async function (assert) {
|
||||
assert.expect(1);
|
||||
this.server.patch('/host-catalogs/:id', () => {
|
||||
return new Response(
|
||||
490,
|
||||
{},
|
||||
{
|
||||
status: 490,
|
||||
code: 'error',
|
||||
message: 'Oops.',
|
||||
}
|
||||
);
|
||||
});
|
||||
await visit(urls.hostCatalog);
|
||||
await fillIn('[name="name"]', 'random string');
|
||||
await click('form [type="submit"]');
|
||||
await a11yAudit();
|
||||
assert.ok(
|
||||
find('[role="alert"]').textContent.trim(),
|
||||
'Oops.',
|
||||
'Displays primary error message.'
|
||||
);
|
||||
});
|
||||
|
||||
test('errors are displayed when delete host catalog fails', async function (assert) {
|
||||
assert.expect(1);
|
||||
this.server.del('/host-catalogs/:id', () => {
|
||||
@@ -221,6 +199,7 @@ module('Acceptance | host catalogs', function (hooks) {
|
||||
);
|
||||
});
|
||||
await visit(urls.hostCatalog);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'random string');
|
||||
await click('form [type="submit"]');
|
||||
await a11yAudit();
|
||||
|
||||
@@ -73,6 +73,7 @@ module('Acceptance | host sets', function (hooks) {
|
||||
test('can update a host set and save changes', async function (assert) {
|
||||
assert.expect(3);
|
||||
await visit(urls.hostSet);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'Updated name');
|
||||
await fillIn('[name="description"]', 'Updated description');
|
||||
await click('.rose-form-actions [type="submit"]');
|
||||
@@ -84,6 +85,7 @@ module('Acceptance | host sets', function (hooks) {
|
||||
test('can update a host set and cancel changes', async function (assert) {
|
||||
assert.expect(1);
|
||||
await visit(urls.hostSet);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'Updated name');
|
||||
await click('.rose-form-actions [type="button"]');
|
||||
assert.notEqual(find('[name="name"]').value, 'Updated name');
|
||||
@@ -120,6 +122,7 @@ module('Acceptance | host sets', function (hooks) {
|
||||
);
|
||||
});
|
||||
await visit(urls.hostSet);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'existing host');
|
||||
await click('[type="submit"]');
|
||||
await a11yAudit();
|
||||
@@ -127,26 +130,6 @@ module('Acceptance | host sets', function (hooks) {
|
||||
assert.ok(find('.rose-form-error-message'));
|
||||
});
|
||||
|
||||
test('errors are displayed when save on host set fails', async function (assert) {
|
||||
assert.expect(1);
|
||||
this.server.patch('/host-sets/:id', () => {
|
||||
return new Response(
|
||||
490,
|
||||
{},
|
||||
{
|
||||
status: 490,
|
||||
code: 'error',
|
||||
message: 'Oops.',
|
||||
}
|
||||
);
|
||||
});
|
||||
await visit(urls.hostSet);
|
||||
await fillIn('[name="name"]', 'save host');
|
||||
await click('form [type="submit"]');
|
||||
await a11yAudit();
|
||||
assert.ok(find('[role="alert"]'));
|
||||
});
|
||||
|
||||
test('errors are displayed when delete on a host set fails', async function (assert) {
|
||||
assert.expect(1);
|
||||
this.server.del('/host-sets/:id', () => {
|
||||
|
||||
@@ -73,6 +73,7 @@ module('Acceptance | hosts', function (hooks) {
|
||||
test('can update a host and save changes', async function (assert) {
|
||||
assert.expect(4);
|
||||
await visit(urls.host);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'Updated name');
|
||||
await fillIn('[name="description"]', 'Updated description');
|
||||
await fillIn('[name="address"]', '::1');
|
||||
@@ -86,6 +87,7 @@ module('Acceptance | hosts', function (hooks) {
|
||||
test('can update a host and cancel changes', async function (assert) {
|
||||
assert.expect(1);
|
||||
await visit(urls.host);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'Updated name');
|
||||
await click('.rose-form-actions [type="button"]');
|
||||
assert.notEqual(find('[name="name"]').value, 'Updated name');
|
||||
@@ -122,6 +124,7 @@ module('Acceptance | hosts', function (hooks) {
|
||||
);
|
||||
});
|
||||
await visit(urls.host);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'existing host');
|
||||
await click('[type="submit"]');
|
||||
await a11yAudit();
|
||||
@@ -129,26 +132,6 @@ module('Acceptance | hosts', function (hooks) {
|
||||
assert.ok(find('.rose-form-error-message'));
|
||||
});
|
||||
|
||||
test('errors are displayed when save on host fails', async function (assert) {
|
||||
assert.expect(1);
|
||||
this.server.patch('/hosts/:id', () => {
|
||||
return new Response(
|
||||
490,
|
||||
{},
|
||||
{
|
||||
status: 490,
|
||||
code: 'error',
|
||||
message: 'Oops.',
|
||||
}
|
||||
);
|
||||
});
|
||||
await visit(urls.host);
|
||||
await fillIn('[name="name"]', 'save host');
|
||||
await click('form [type="submit"]');
|
||||
await a11yAudit();
|
||||
assert.ok(find('[role="alert"]'));
|
||||
});
|
||||
|
||||
test('errors are displayed when delete on a host fails', async function (assert) {
|
||||
assert.expect(1);
|
||||
this.server.del('/hosts/:id', () => {
|
||||
|
||||
@@ -117,6 +117,7 @@ module('Acceptance | projects', function (hooks) {
|
||||
assert.expect(3);
|
||||
assert.notEqual(existingProject.name, 'random string');
|
||||
await visit(existingProjectURL);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'random string');
|
||||
await click('.rose-form-actions [type="submit"]');
|
||||
assert.equal(currentURL(), existingProjectURL);
|
||||
@@ -126,6 +127,7 @@ module('Acceptance | projects', function (hooks) {
|
||||
test('can cancel changes to existing project', async function (assert) {
|
||||
assert.expect(2);
|
||||
await visit(existingProjectURL);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'random string');
|
||||
await click('.rose-form-actions [type="button"]');
|
||||
assert.notEqual(existingProject.name, 'random string');
|
||||
@@ -161,6 +163,7 @@ module('Acceptance | projects', function (hooks) {
|
||||
);
|
||||
});
|
||||
await visit(existingProjectURL);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'random string');
|
||||
await click('[type="submit"]');
|
||||
assert.ok(
|
||||
@@ -175,29 +178,6 @@ module('Acceptance | projects', function (hooks) {
|
||||
);
|
||||
});
|
||||
|
||||
test('errors are displayed when save project fails', async function (assert) {
|
||||
assert.expect(1);
|
||||
this.server.patch('/scopes/:id', () => {
|
||||
return new Response(
|
||||
490,
|
||||
{},
|
||||
{
|
||||
status: 490,
|
||||
code: 'error',
|
||||
message: 'Oops.',
|
||||
}
|
||||
);
|
||||
});
|
||||
await visit(existingProjectURL);
|
||||
await fillIn('[name="name"]', 'random string');
|
||||
await click('[type="submit"]');
|
||||
assert.ok(
|
||||
find('[role="alert"]').textContent.trim(),
|
||||
'Oops.',
|
||||
'Displays primary error message.'
|
||||
);
|
||||
});
|
||||
|
||||
test('errors are displayed when delete project fails', async function (assert) {
|
||||
assert.expect(1);
|
||||
this.server.del('/scopes/:id', () => {
|
||||
|
||||
@@ -62,6 +62,7 @@ module('Acceptance | roles', function (hooks) {
|
||||
test('can save changes to an existing role', async function (assert) {
|
||||
assert.expect(2);
|
||||
await visit(urls.role);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'Updated admin role');
|
||||
await click('.rose-form-actions [type="submit"]');
|
||||
assert.equal(currentURL(), urls.role);
|
||||
@@ -71,6 +72,7 @@ module('Acceptance | roles', function (hooks) {
|
||||
test('can cancel changes to an existing role', async function (assert) {
|
||||
assert.expect(1);
|
||||
await visit(urls.role);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'Updated admin role');
|
||||
await click('.rose-form-actions [type="button"]');
|
||||
assert.notEqual(find('[name="name"]').value, 'Updated admin role');
|
||||
@@ -154,6 +156,7 @@ module('Acceptance | roles', function (hooks) {
|
||||
);
|
||||
});
|
||||
await visit(urls.role);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'random string');
|
||||
await click('[type="submit"]');
|
||||
assert.ok(
|
||||
@@ -168,29 +171,6 @@ module('Acceptance | roles', function (hooks) {
|
||||
);
|
||||
});
|
||||
|
||||
test('errors are displayed when save project fails', async function (assert) {
|
||||
assert.expect(1);
|
||||
this.server.patch('/roles/:id', () => {
|
||||
return new Response(
|
||||
490,
|
||||
{},
|
||||
{
|
||||
status: 490,
|
||||
code: 'error',
|
||||
message: 'Oops.',
|
||||
}
|
||||
);
|
||||
});
|
||||
await visit(urls.role);
|
||||
await fillIn('[name="name"]', 'Role name');
|
||||
await click('[type="submit"]');
|
||||
assert.ok(
|
||||
find('[role="alert"]').textContent.trim(),
|
||||
'Oops.',
|
||||
'Displays primary error message.'
|
||||
);
|
||||
});
|
||||
|
||||
test('errors are displayed when delete project fails', async function (assert) {
|
||||
assert.expect(1);
|
||||
this.server.del('/roles/:id', () => {
|
||||
|
||||
@@ -92,6 +92,7 @@ module('Acceptance | targets', function (hooks) {
|
||||
test('can update a target and save changes', async function (assert) {
|
||||
assert.expect(2);
|
||||
await visit(urls.target);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'update name');
|
||||
await fillIn('[name="default_port"]', '1234');
|
||||
await click('form [type="submit"]:not(:disabled)');
|
||||
@@ -102,6 +103,7 @@ module('Acceptance | targets', function (hooks) {
|
||||
test('can update a target and cancel changes', async function (assert) {
|
||||
assert.expect(2);
|
||||
await visit(urls.target);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'update name');
|
||||
await fillIn('[name="default_port"]', '1234');
|
||||
await click('form button:not([type="submit"])');
|
||||
@@ -167,26 +169,6 @@ module('Acceptance | targets', function (hooks) {
|
||||
assert.ok(find('.rose-form-error-message'));
|
||||
});
|
||||
|
||||
test('errors are displayed when save on target fails', async function (assert) {
|
||||
assert.expect(1);
|
||||
this.server.patch('/targets/:id', () => {
|
||||
return new Response(
|
||||
490,
|
||||
{},
|
||||
{
|
||||
status: 490,
|
||||
code: 'error',
|
||||
message: 'Oops.',
|
||||
}
|
||||
);
|
||||
});
|
||||
await visit(urls.target);
|
||||
await fillIn('[name="name"]', 'save target');
|
||||
await click('form [type="submit"]');
|
||||
await a11yAudit();
|
||||
assert.ok(find('[role="alert"]'));
|
||||
});
|
||||
|
||||
test('errors are displayed when delete on a target fails', async function (assert) {
|
||||
assert.expect(1);
|
||||
this.server.del('/targets/:id', () => {
|
||||
@@ -228,6 +210,7 @@ module('Acceptance | targets', function (hooks) {
|
||||
);
|
||||
});
|
||||
await visit(urls.target);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'existing target');
|
||||
await click('form [type="submit"]');
|
||||
await a11yAudit();
|
||||
@@ -245,7 +228,7 @@ module('Acceptance | targets', function (hooks) {
|
||||
assert.equal(findAll('tbody tr').length, targetHostSetCount);
|
||||
});
|
||||
|
||||
test('can delete a host sets', async function (assert) {
|
||||
test('can remove a host sets', async function (assert) {
|
||||
assert.expect(2);
|
||||
const targetHostSetCount = instances.target.hostSets.length;
|
||||
await visit(urls.targetHostSets);
|
||||
|
||||
@@ -112,6 +112,7 @@ module('Acceptance | users', function (hooks) {
|
||||
test('can save changes to an existing user', async function (assert) {
|
||||
assert.expect(2);
|
||||
await visit(userURL);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'Updated user name');
|
||||
await click('.rose-form-actions [type="submit"]');
|
||||
assert.equal(currentURL(), userURL);
|
||||
@@ -121,6 +122,7 @@ module('Acceptance | users', function (hooks) {
|
||||
test('can cancel changes to an existing user', async function (assert) {
|
||||
assert.expect(1);
|
||||
await visit(userURL);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'Unsaved user name');
|
||||
await click('.rose-form-actions [type="button"]');
|
||||
assert.notEqual(find('[name="name"]').value, 'Unsaved user name');
|
||||
@@ -156,6 +158,7 @@ module('Acceptance | users', function (hooks) {
|
||||
);
|
||||
});
|
||||
await visit(userURL);
|
||||
await click('form [type="button"]', 'Activate edit mode');
|
||||
await fillIn('[name="name"]', 'User name');
|
||||
await click('[type="submit"]');
|
||||
assert.ok(
|
||||
@@ -170,29 +173,6 @@ module('Acceptance | users', function (hooks) {
|
||||
);
|
||||
});
|
||||
|
||||
test('errors are displayed when saving user fails', async function (assert) {
|
||||
assert.expect(1);
|
||||
this.server.patch('/users/:id', () => {
|
||||
return new Response(
|
||||
490,
|
||||
{},
|
||||
{
|
||||
status: 490,
|
||||
code: 'error',
|
||||
message: 'Oops.',
|
||||
}
|
||||
);
|
||||
});
|
||||
await visit(userURL);
|
||||
await fillIn('[name="name"]', 'User name');
|
||||
await click('[type="submit"]');
|
||||
assert.ok(
|
||||
find('[role="alert"]').textContent.trim(),
|
||||
'Oops.',
|
||||
'Displays primary error message.'
|
||||
);
|
||||
});
|
||||
|
||||
test('errors are displayed when user deletion fails', async function (assert) {
|
||||
assert.expect(1);
|
||||
this.server.del('/users/:id', () => {
|
||||
|
||||
@@ -27,3 +27,4 @@ add-members: Add Members
|
||||
add-hosts: Add Hosts
|
||||
set-password: Set Password
|
||||
change-password: Change Password
|
||||
edit-form: Edit Form
|
||||
@@ -5,15 +5,6 @@ auth:
|
||||
no-scopes: No scopes were found. To authenticate, ask your administrator to create an scope and grant you access.
|
||||
choose-org: Choose a scope to authenticate.
|
||||
authenticating-with-org: "You are authenticating with {name}."
|
||||
host-set:
|
||||
types:
|
||||
static: Static
|
||||
target:
|
||||
types:
|
||||
tcp: TCP
|
||||
host:
|
||||
types:
|
||||
static: Static
|
||||
titles:
|
||||
iam: IAM
|
||||
new: New
|
||||
@@ -23,49 +14,7 @@ titles:
|
||||
overview: Overview
|
||||
settings: Settings
|
||||
empty-set: No Items Yet
|
||||
orgs-welcome: Welcome to Orgs
|
||||
projects-welcome: Welcome to Projects
|
||||
host-catalogs-welcome: Welcome to Host Catalogs
|
||||
host-sets-welcome: Welcome to Host Sets
|
||||
hosts-welcome: Welcome to Hosts
|
||||
users-welcome: Welcome to Users
|
||||
roles-welcome: Welcome to Roles
|
||||
groups-welcome: Welcome to Groups
|
||||
targets-welcome: Create your first Target
|
||||
target-host-sets-welcome: No Host Sets Associated
|
||||
grants: Permissions
|
||||
new-grant: New Grant
|
||||
principals: Principals
|
||||
host-sets: Host Sets
|
||||
hosts: Hosts
|
||||
targets: Targets
|
||||
global: Global
|
||||
no-host-set-hosts: No Hosts Available
|
||||
no-host-sets-for-target: No Host Sets Available
|
||||
role-principals-welcome: No Principals Associated
|
||||
no-principals-available: No Principals Available
|
||||
members: Members
|
||||
group-members-welcome: Welcome to Members
|
||||
no-available-users: No Users Available
|
||||
no-sessions: No Active Sessions
|
||||
actions: Actions
|
||||
descriptions:
|
||||
host-catalogs: Overview of collections of hosts and host sets.
|
||||
empty-set: There are no items to display yet. You may be able to add items or try back later.
|
||||
orgs-welcome: Create your orgs here.
|
||||
projects-welcome: Projects allow you to create and manage host catalogs. To start, create a project.
|
||||
host-catalogs-welcome: Host catalogs allow you to configure to collect and create hosts and host sets. To start, create a host catalog.
|
||||
host-sets-welcome: Configure a static host set in this host catalog.
|
||||
hosts-welcome: Configure a static host in this host catalog.
|
||||
users-welcome: Users are authorized to access Boundary.
|
||||
roles-welcome: Roles are collections of capabilities that can be granted to user and/or groups.
|
||||
groups-welcome: Groups are collections of users.
|
||||
targets-welcome: Targets provide Users the means to connect to and interact networked services. A Target contains a collection of Hosts and a collection of Credentials.
|
||||
target-host-sets-welcome: Add Host Sets to this target to provide access.
|
||||
no-host-set-hosts: Before associating hosts with this host set, create hosts within the host catalog.
|
||||
no-host-sets-for-target: No host sets are available to add to this target.
|
||||
role-principals-welcome: No principals are available in this role.
|
||||
no-principals-available: Principals are not available for assignment.
|
||||
group-members-welcome: Users belonging to this group appear here.
|
||||
no-available-users: No users are available to add to this group.
|
||||
no-sessions: There are no active sessions at this time.
|
||||
empty-set: There are no items to display yet. You may be able to add items or try back later.
|
||||
Loaded 100 of 102 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user