refactor: 💡 role route should have multiple outlets
This commit is contained in:
5 files changed
+54
-22
No files matched your search
@@ -9,10 +9,39 @@ export default class ScopesScopeRolesRoleRoute extends Route {
|
||||
* @param {string} params.role_id
|
||||
* @return {RoleModel}
|
||||
*/
|
||||
async model({ role_id }) {
|
||||
model({ role_id }) {
|
||||
const { id: scopeID } = this.modelFor('scopes.scope');
|
||||
return this.store.findRecord('role', role_id, {
|
||||
adapterOptions: { scopeID },
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders the route-specific templates for header, navigation,
|
||||
* and actions page sections.
|
||||
* @override
|
||||
* @param {object} controller
|
||||
* @param {object} model
|
||||
*/
|
||||
renderTemplate(controller, model) {
|
||||
super.renderTemplate(...arguments);
|
||||
|
||||
this.render('scopes/scope/roles/role/-header', {
|
||||
into: 'scopes/scope/roles/role',
|
||||
outlet: 'header',
|
||||
model
|
||||
});
|
||||
|
||||
this.render('scopes/scope/roles/role/-actions', {
|
||||
into: 'scopes/scope/roles/role',
|
||||
outlet: 'actions',
|
||||
model
|
||||
});
|
||||
|
||||
this.render('scopes/scope/roles/role/-navigation', {
|
||||
into: 'scopes/scope/roles/role',
|
||||
outlet: 'navigation',
|
||||
model
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -7,33 +7,15 @@
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
<h2>{{t "resources.role"}}</h2>
|
||||
{{outlet "header"}}
|
||||
</page.header>
|
||||
|
||||
<page.actions>
|
||||
<Rose::Dropdown @text="{{t 'actions.manage'}}" @dropdownRight={{true}} as |dropdown|>
|
||||
<dropdown.button
|
||||
@style="danger"
|
||||
@disabled={{@model.canSave}}
|
||||
{{on "click" (route-action "delete" @model)}}
|
||||
>
|
||||
{{t 'actions.delete-role'}}
|
||||
</dropdown.button>
|
||||
</Rose::Dropdown>
|
||||
{{outlet "actions"}}
|
||||
</page.actions>
|
||||
|
||||
<page.navigation>
|
||||
<Rose::Nav::Tabs as |nav|>
|
||||
<nav.link @route='scopes.scope.roles.role.index'>
|
||||
{{t 'titles.settings'}}
|
||||
</nav.link>
|
||||
<nav.link @route='scopes.scope.roles.role.principals'>
|
||||
{{t 'titles.principals'}}
|
||||
</nav.link>
|
||||
<nav.link @route='scopes.scope.roles.role.grants'>
|
||||
{{t 'titles.grants'}}
|
||||
</nav.link>
|
||||
</Rose::Nav::Tabs>
|
||||
{{outlet "navigation"}}
|
||||
</page.navigation>
|
||||
|
||||
<page.body>
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<Rose::Dropdown @text="{{t 'actions.manage'}}" @dropdownRight={{true}} as |dropdown|>
|
||||
<dropdown.button
|
||||
@style="danger"
|
||||
@disabled={{@model.canSave}}
|
||||
{{on "click" (route-action "delete" @model)}}
|
||||
>
|
||||
{{t 'actions.delete-role'}}
|
||||
</dropdown.button>
|
||||
</Rose::Dropdown>
|
||||
@@ -0,0 +1 @@
|
||||
<h2>{{t "resources.role"}}</h2>
|
||||
@@ -0,0 +1,11 @@
|
||||
<Rose::Nav::Tabs as |nav|>
|
||||
<nav.link @route='scopes.scope.roles.role.index'>
|
||||
{{t 'titles.settings'}}
|
||||
</nav.link>
|
||||
<nav.link @route='scopes.scope.roles.role.principals'>
|
||||
{{t 'titles.principals'}}
|
||||
</nav.link>
|
||||
<nav.link @route='scopes.scope.roles.role.grants'>
|
||||
{{t 'titles.grants'}}
|
||||
</nav.link>
|
||||
</Rose::Nav::Tabs>
|
||||
Reference in new issue
Block a user