Merge branch 'develop' into dropdown-separator
This commit is contained in:
94 files changed
+145
-83
No files matched your search
Whitespace-only changes.
@@ -37,8 +37,11 @@ export default class ApplicationSerializer extends RESTSerializer {
|
||||
* @param {String} key
|
||||
* @param {Object} attribute
|
||||
*/
|
||||
serializeAttribute(snapshot, json, key, { options }) {
|
||||
serializeAttribute(snapshot, json, key, attribute) {
|
||||
const { type, options } = attribute;
|
||||
let value = super.serializeAttribute(...arguments);
|
||||
// Convert empty strings to null.
|
||||
if (type === 'string' && json[key] === '') json[key] = null;
|
||||
// Do not serialize read-only attributes.
|
||||
if (options.readOnly) delete json[key];
|
||||
// Version is sent only if it has a non-nullish value
|
||||
|
||||
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
@@ -70,6 +70,21 @@ module('Unit | Serializer | application', function (hooks) {
|
||||
});
|
||||
});
|
||||
|
||||
test('it serializes empty strings to null', function (assert) {
|
||||
assert.expect(1);
|
||||
const store = this.owner.lookup('service:store');
|
||||
const record = store.createRecord('user', {
|
||||
name: '',
|
||||
description: '',
|
||||
version: null,
|
||||
});
|
||||
let serializedRecord = record.serialize();
|
||||
assert.deepEqual(serializedRecord, {
|
||||
name: null,
|
||||
description: null,
|
||||
});
|
||||
});
|
||||
|
||||
test('it serializes non-nullish version fields', function (assert) {
|
||||
assert.expect(2);
|
||||
const store = this.owner.lookup('service:store');
|
||||
|
||||
Vendored
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Whitespace-only changes.
Vendored
Whitespace-only changes.
@@ -1,6 +1,6 @@
|
||||
<Rose::Form
|
||||
class="full-width"
|
||||
@onSubmit={{fn this.submit @submit}}
|
||||
@onSubmit={{fn this.submit @submit this.currentPassword this.newPassword}}
|
||||
@cancel={{fn this.cancel @cancel}}
|
||||
@disabled={{@model.isSaving}}
|
||||
@error={{@model.errors.base}}
|
||||
|
||||
@@ -2,7 +2,7 @@ import Component from '@glimmer/component';
|
||||
import { tracked } from '@glimmer/tracking';
|
||||
import { computed } from '@ember/object';
|
||||
import { action } from '@ember/object';
|
||||
import { next } from '@ember/runloop';
|
||||
import { run } from '@ember/runloop';
|
||||
|
||||
export default class FormAccountPasswordChangePasswordIndexComponent extends Component {
|
||||
|
||||
@@ -50,13 +50,13 @@ export default class FormAccountPasswordChangePasswordIndexComponent extends Com
|
||||
* Call passed submit function with passwords.
|
||||
* Unset passwords before callack.
|
||||
* @param {function} fn
|
||||
* @param {string} currentPassword
|
||||
* @param {string} newPassword
|
||||
*/
|
||||
@action
|
||||
submit(fn) {
|
||||
const currentPassword = this.currentPassword;
|
||||
const newPassword = this.newPassword;
|
||||
next(() => this.resetPasswords());
|
||||
fn(currentPassword, newPassword);
|
||||
submit(fn, currentPassword, newPassword) {
|
||||
run(() => this.resetPasswords());
|
||||
run(() => fn(currentPassword, newPassword));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<Rose::Form
|
||||
@onSubmit={{fn this.submit @submit}}
|
||||
@onSubmit={{fn this.submit @submit this.password}}
|
||||
@disabled={{@model.isSaving}}
|
||||
@error={{@model.errors.base}}
|
||||
as |form|
|
||||
|
||||
@@ -2,7 +2,7 @@ import Component from '@glimmer/component';
|
||||
import { tracked } from '@glimmer/tracking';
|
||||
import { computed } from '@ember/object';
|
||||
import { action } from '@ember/object';
|
||||
import { next } from '@ember/runloop';
|
||||
import { run } from '@ember/runloop';
|
||||
|
||||
export default class FormAccountPasswordSetPasswordIndexComponent extends Component {
|
||||
// =properties
|
||||
@@ -36,11 +36,11 @@ export default class FormAccountPasswordSetPasswordIndexComponent extends Compon
|
||||
* Submit with password value when it is allowed.
|
||||
* Callback with no arguments otherwise.
|
||||
* @param {function} fn
|
||||
* @param {string} password
|
||||
*/
|
||||
@action
|
||||
submit(fn) {
|
||||
const password = this.password;
|
||||
next(() => this.resetPassword());
|
||||
fn(password);
|
||||
submit(fn, password) {
|
||||
run(() => this.resetPassword());
|
||||
run(() => fn(password));
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,11 @@
|
||||
import { helper } from '@ember/component/helper';
|
||||
import { get } from '@ember/object';
|
||||
import { assert } from '@ember/debug';
|
||||
import config from '../config/environment';
|
||||
|
||||
export default helper(function docUrl(params/*, hash*/) {
|
||||
const baseURL = config.documentation.baseURL;
|
||||
const docKey = params[0] || '';
|
||||
const configuredPath = get(config.documentation, docKey);
|
||||
const configuredPath = config.documentation.topics[docKey];
|
||||
if (docKey) {
|
||||
assert(`
|
||||
Documentation for "${docKey}" could not be found. Please ensure that
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
<link integrity="" rel="stylesheet" href="{{rootURL}}assets/vendor.css">
|
||||
<link integrity="" rel="stylesheet" href="{{rootURL}}assets/core.css">
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="{{rootURL}}logo-app.svg">
|
||||
|
||||
{{content-for "head-footer"}}
|
||||
</head>
|
||||
<body>
|
||||
|
||||
Whitespace-only changes.
@@ -5,13 +5,13 @@
|
||||
|
||||
<layout.header>
|
||||
<Rose::Header class="{{if (is-loading) " loading"}}" as |header|>
|
||||
<header.brand @logo="logo-boundary" @text={{app-name}} />
|
||||
<header.brand @logo="logo-app" @text={{app-name}} />
|
||||
|
||||
{{#if this.session.isAuthenticated}}
|
||||
<header.nav as |nav|>
|
||||
<nav.dropdown
|
||||
@text={{this.scope.displayName}}
|
||||
@icon="boundary-icons/org" as |dropdown|
|
||||
@icon="app-icons/org" as |dropdown|
|
||||
>
|
||||
{{#if this.session.data.authenticated.isGlobal}}
|
||||
<dropdown.link @route="scopes.scope" @model="global">
|
||||
@@ -35,7 +35,7 @@
|
||||
<header.utilities as |utilities|>
|
||||
<utilities.dropdown
|
||||
@text={{this.session.data.authenticated.username}}
|
||||
@icon="boundary-icons/user-profile" as |dropdown|
|
||||
@icon="app-icons/user-profile" as |dropdown|
|
||||
>
|
||||
<dropdown.link @route="account.change-password">
|
||||
{{t 'actions.change-password'}}
|
||||
@@ -60,7 +60,7 @@
|
||||
|
||||
<layout.footer>
|
||||
<Rose::Footer as |footer|>
|
||||
<footer.brand @logo="logo-hashi" @text={{company-name}} />
|
||||
<footer.brand @logo="logo-company" @text={{company-name}} />
|
||||
<footer.text>{{company-copyright}}</footer.text>
|
||||
<footer.text>{{app-name}}</footer.text>
|
||||
<footer.nav as |nav|>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<Rose::Nav::Sidebar @title={{t "titles.general"}} as |nav|>
|
||||
<nav.link @route="scopes.scope.projects">
|
||||
<Rose::Icon
|
||||
@name="boundary-icons/project"
|
||||
@name="app-icons/project"
|
||||
@size="medium" />
|
||||
{{t "resources.project.title_plural"}}
|
||||
</nav.link>
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
<Rose::Nav::Sidebar @title={{t "titles.iam"}} as |nav|>
|
||||
<nav.link @route="scopes.scope.users">
|
||||
<Rose::Icon
|
||||
@name="boundary-icons/users"
|
||||
@name="app-icons/users"
|
||||
@size="medium" />
|
||||
{{t "resources.user.title_plural"}}
|
||||
</nav.link>
|
||||
<nav.link @route="scopes.scope.groups">
|
||||
<Rose::Icon
|
||||
@name="boundary-icons/group"
|
||||
@name="app-icons/group"
|
||||
@size="medium" />
|
||||
{{t "resources.group.title_plural"}}
|
||||
</nav.link>
|
||||
<nav.link @route="scopes.scope.roles">
|
||||
<Rose::Icon
|
||||
@name="boundary-icons/roles"
|
||||
@name="app-icons/roles"
|
||||
@size="medium" />
|
||||
{{t "resources.role.title_plural"}}
|
||||
</nav.link>
|
||||
<nav.link @route="scopes.scope.auth-methods">
|
||||
<Rose::Icon
|
||||
@name="boundary-icons/auth-method"
|
||||
@name="app-icons/auth-method"
|
||||
@size="medium" />
|
||||
{{t "resources.auth-method.title_plural"}}
|
||||
</nav.link>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<h2>
|
||||
{{t "resources.auth-method.title"}}
|
||||
<DocLink @doc="topics.auth-method" @iconSize="large" />
|
||||
<DocLink @doc="auth-method" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.auth-method.description"}}</p>
|
||||
<Copyable
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<h2>
|
||||
{{t "resources.account.title"}}
|
||||
<DocLink @doc="topics.account" @iconSize="large" />
|
||||
<DocLink @doc="account" @iconSize="large" />
|
||||
</h2>
|
||||
<Copyable
|
||||
@text={{@model.id}}
|
||||
|
||||
+4
-1
@@ -1 +1,4 @@
|
||||
<h2>{{t "titles.new"}}</h2>
|
||||
<h2>
|
||||
{{t "titles.new"}}
|
||||
<DocLink @doc="account.new" @iconSize="large" />
|
||||
</h2>
|
||||
@@ -2,7 +2,7 @@
|
||||
<page.header>
|
||||
<h2>
|
||||
{{t "resources.auth-method.title_plural"}}
|
||||
<DocLink @doc="topics.auth-method" @iconSize="large" />
|
||||
<DocLink @doc="auth-method" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.auth-method.description"}}</p>
|
||||
</page.header>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<h2>
|
||||
{{t "resources.group.title"}}
|
||||
<DocLink @doc="topics.group" @iconSize="large" />
|
||||
<DocLink @doc="group" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.group.description"}}</p>
|
||||
<Copyable
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
<h2>{{t "resources.group.messages.add-members.title"}}</h2>
|
||||
<h2>
|
||||
{{t "resources.group.messages.add-members.title"}}
|
||||
<DocLink @doc="group.add-members" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.group.messages.add-members.description"}}</p>
|
||||
@@ -7,7 +7,7 @@
|
||||
<page.header>
|
||||
<h2>
|
||||
{{t "resources.group.title_plural"}}
|
||||
<DocLink @doc="topics.group" @iconSize="large" />
|
||||
<DocLink @doc="group" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.group.description"}}</p>
|
||||
</page.header>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<page.header>
|
||||
<h2>
|
||||
{{t "resources.org.title_plural"}}
|
||||
<DocLink @doc="topics.org" @iconSize="large" />
|
||||
<DocLink @doc="org" @iconSize="large" />
|
||||
</h2>
|
||||
{{#if @model}}
|
||||
<p>{{t "resources.org.description"}}</p>
|
||||
@@ -35,7 +35,7 @@
|
||||
@title={{org.name}}
|
||||
@description={{org.description}}
|
||||
@id={{org.id}}
|
||||
@icon="boundary-icons/org"
|
||||
@icon="app-icons/org"
|
||||
@route="scopes.scope"
|
||||
@model={{org.id}}
|
||||
/>
|
||||
|
||||
@@ -7,7 +7,10 @@
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
<h2>{{t "titles.new"}}</h2>
|
||||
<h2>
|
||||
{{t "titles.new"}}
|
||||
<DocLink @doc="org.new" @iconSize="large" />
|
||||
</h2>
|
||||
</page.header>
|
||||
|
||||
<page.body>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<page.header>
|
||||
<h2>
|
||||
{{t "resources.project.title_plural"}}
|
||||
<DocLink @doc="topics.project" @iconSize="large" />
|
||||
<DocLink @doc="project" @iconSize="large" />
|
||||
</h2>
|
||||
{{#if @model}}
|
||||
<p>{{t "resources.project.description"}}</p>
|
||||
@@ -35,7 +35,7 @@
|
||||
@title={{project.name}}
|
||||
@description={{project.description}}
|
||||
@id={{project.id}}
|
||||
@icon="boundary-icons/project"
|
||||
@icon="app-icons/project"
|
||||
@route="scopes.scope.projects.project"
|
||||
@model={{project.id}}
|
||||
/>
|
||||
|
||||
@@ -7,7 +7,10 @@
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
<h2>{{t "titles.new"}}</h2>
|
||||
<h2>
|
||||
{{t "titles.new"}}
|
||||
<DocLink @doc="project.new" @iconSize="large" />
|
||||
</h2>
|
||||
</page.header>
|
||||
|
||||
<page.body>
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
<Rose::Nav::Sidebar @title={{t "titles.resources"}} as |nav|>
|
||||
<nav.link @route="scopes.scope.projects.project.sessions">
|
||||
<Rose::Icon
|
||||
@name="boundary-icons/action-session"
|
||||
@name="app-icons/action-session"
|
||||
@size="medium" />
|
||||
{{t "resources.session.title_plural"}}
|
||||
</nav.link>
|
||||
<nav.link @route="scopes.scope.projects.project.targets">
|
||||
<Rose::Icon
|
||||
@name="boundary-icons/target"
|
||||
@name="app-icons/target"
|
||||
@size="medium" />
|
||||
{{t "resources.target.title_plural"}}
|
||||
</nav.link>
|
||||
<nav.link @route="scopes.scope.projects.project.host-catalogs">
|
||||
<Rose::Icon
|
||||
@name="boundary-icons/host-catalogs"
|
||||
@name="app-icons/host-catalogs"
|
||||
@size="medium" />
|
||||
{{t "resources.host-catalog.title_plural"}}
|
||||
</nav.link>
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<h2>
|
||||
{{t "resources.host-catalog.title"}}
|
||||
<DocLink @doc="topics.host-catalog" @iconSize="large" />
|
||||
<DocLink @doc="host-catalog" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.host-catalog.description"}}</p>
|
||||
<Copyable
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<h2>
|
||||
{{t "resources.host-set.title"}}
|
||||
<DocLink @doc="topics.host-set" @iconSize="large" />
|
||||
<DocLink @doc="host-set" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.host-set.description"}}</p>
|
||||
<Copyable
|
||||
|
||||
+5
-2
@@ -1,2 +1,5 @@
|
||||
<h2>{{t "resources.host-set.host.messages.add.title"}}</h2>
|
||||
<p>{{t "resources.host-set.host.messages.add.description"}}</p>
|
||||
<h2>
|
||||
{{t "resources.host-set.host.messages.add.title"}}
|
||||
<DocLink @doc="host-set.add-hosts" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.host-set.host.messages.add.description"}}</p>
|
||||
+4
-1
@@ -1 +1,4 @@
|
||||
<h2>{{t "titles.new"}}</h2>
|
||||
<h2>
|
||||
{{t "titles.new"}}
|
||||
<DocLink @doc="host-set.new" @iconSize="large" />
|
||||
</h2>
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<h2>
|
||||
{{t "resources.host.title"}}
|
||||
<DocLink @doc="topics.host" @iconSize="large" />
|
||||
<DocLink @doc="host" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.host.description"}}</p>
|
||||
<Copyable
|
||||
|
||||
+4
-1
@@ -1 +1,4 @@
|
||||
<h2>{{t "titles.new"}}</h2>
|
||||
<h2>
|
||||
{{t "titles.new"}}
|
||||
<DocLink @doc="host.new" @iconSize="large" />
|
||||
</h2>
|
||||
@@ -7,7 +7,7 @@
|
||||
<page.header>
|
||||
<h2>
|
||||
{{t "resources.host-catalog.title_plural"}}
|
||||
<DocLink @doc="topics.host-catalog" @iconSize="large" />
|
||||
<DocLink @doc="host-catalog" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.host-catalog.description"}}</p>
|
||||
</page.header>
|
||||
|
||||
@@ -7,7 +7,10 @@
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
<h2>{{t "titles.new"}}</h2>
|
||||
<h2>
|
||||
{{t "titles.new"}}
|
||||
<DocLink @doc="host-catalog.new" @iconSize="large" />
|
||||
</h2>
|
||||
</page.header>
|
||||
|
||||
<page.body>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<page.header>
|
||||
<h2>
|
||||
{{t "resources.project.title"}}
|
||||
<DocLink @doc="topics.project" @iconSize="large" />
|
||||
<DocLink @doc="project" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.project.description"}}</p>
|
||||
<Copyable
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<page.header>
|
||||
<h2>
|
||||
{{t "resources.session.title_plural"}}
|
||||
<DocLink @doc="topics.session" @iconSize="large" />
|
||||
<DocLink @doc="session" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.session.description"}}</p>
|
||||
</page.header>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<page.header>
|
||||
<h2>
|
||||
{{t "resources.target.title_plural"}}
|
||||
<DocLink @doc="topics.target" @iconSize="large" />
|
||||
<DocLink @doc="target" @iconSize="large" />
|
||||
</h2>
|
||||
{{#if @model}}
|
||||
<p>{{t "resources.target.description"}}</p>
|
||||
|
||||
@@ -7,7 +7,10 @@
|
||||
</page.breadcrumbs>
|
||||
|
||||
<page.header>
|
||||
<h2>{{t "titles.new"}}</h2>
|
||||
<h2>
|
||||
{{t "titles.new"}}
|
||||
<DocLink @doc="target.new" @iconSize="large" />
|
||||
</h2>
|
||||
</page.header>
|
||||
|
||||
<page.body>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<h2>
|
||||
{{t "resources.target.title"}}
|
||||
<DocLink @doc="topics.target" @iconSize="large" />
|
||||
<DocLink @doc="target" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.target.description"}}</p>
|
||||
<Copyable
|
||||
|
||||
+5
-2
@@ -1,2 +1,5 @@
|
||||
<h2>{{t "resources.target.host-set.messages.add.title"}}</h2>
|
||||
<p>{{t "resources.target.host-set.messages.add.description"}}</p>
|
||||
<h2>
|
||||
{{t "resources.target.host-set.messages.add.title"}}
|
||||
<DocLink @doc="target.add-host-sets" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.target.host-set.messages.add.description"}}</p>
|
||||
@@ -7,7 +7,7 @@
|
||||
<page.header>
|
||||
<h2>
|
||||
{{t "resources.role.title_plural"}}
|
||||
<DocLink @doc="topics.role" @iconSize="large" />
|
||||
<DocLink @doc="role" @iconSize="large" />
|
||||
</h2>
|
||||
{{#if @model}}
|
||||
<p>{{t "resources.role.description"}}</p>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<h2>
|
||||
{{t "resources.role.title"}}
|
||||
<DocLink @doc="topics.role" @iconSize="large" />
|
||||
<DocLink @doc="role" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.role.description"}}</p>
|
||||
<Copyable
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
<h2>{{t "resources.role.principal.messages.add-principals.title"}}</h2>
|
||||
<p>{{t "resources.role.principal.messages.add-principals.description"}}</p>
|
||||
<h2>
|
||||
{{t "resources.role.principal.messages.add-principals.title"}}
|
||||
<DocLink @doc="role.add-principals" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.role.principal.messages.add-principals.description"}}</p>
|
||||
@@ -1,6 +1,6 @@
|
||||
<h2>
|
||||
{{t "resources.role.title"}}
|
||||
<DocLink @doc="topics.role" @iconSize="large" />
|
||||
<DocLink @doc="role" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.role.grant.description"}}</p>
|
||||
<Copyable
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<h2>
|
||||
{{t "resources.role.title"}}
|
||||
<DocLink @doc="topics.role" @iconSize="large" />
|
||||
<DocLink @doc="role" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.role.principal.description"}}</p>
|
||||
<Copyable
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<page.header>
|
||||
<h2>
|
||||
{{t "resources.user.title_plural"}}
|
||||
<DocLink @doc="topics.user" @iconSize="large" />
|
||||
<DocLink @doc="user" @iconSize="large" />
|
||||
</h2>
|
||||
{{#if @model}}
|
||||
<p>{{t "resources.user.description"}}</p>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<h2>
|
||||
{{t "resources.user.title"}}
|
||||
<DocLink @doc="topics.user" @iconSize="large" />
|
||||
<DocLink @doc="user" @iconSize="large" />
|
||||
</h2>
|
||||
<p>{{t "resources.user.description"}}</p>
|
||||
<Copyable
|
||||
|
||||
@@ -41,18 +41,29 @@ module.exports = function (environment) {
|
||||
documentation: {
|
||||
baseURL: 'https://boundaryproject.io/help/admin-ui',
|
||||
topics: {
|
||||
org: '/org',
|
||||
project: '/project',
|
||||
account: '/account',
|
||||
'auth-method': '/auth-method',
|
||||
group: '/group',
|
||||
'host-catalog': '/host-catalog',
|
||||
'host-set': '/host-set',
|
||||
host: '/host',
|
||||
role: '/role',
|
||||
session: '/session',
|
||||
target: '/target',
|
||||
user: '/user'
|
||||
org: '/orgs',
|
||||
'org.new': '/orgs/new',
|
||||
project: '/projects',
|
||||
'project.new': '/projects/new',
|
||||
account: '/accounts',
|
||||
'account.new': '/accounts/new',
|
||||
'auth-method': '/auth-methods',
|
||||
group: '/groups',
|
||||
'group.add-members': '/groups/add-members',
|
||||
'host-catalog': '/host-catalogs',
|
||||
'host-catalog.new': '/host-catalogs/new',
|
||||
'host-set': '/host-sets',
|
||||
'host-set.new': '/host-sets/new',
|
||||
'host-set.add-hosts': '/host-sets/add-hosts',
|
||||
host: '/hosts',
|
||||
'host.new': '/hosts/new',
|
||||
role: '/roles',
|
||||
'role.add-principals': '/roles/add-principals',
|
||||
session: '/sessions',
|
||||
target: '/targets',
|
||||
'target.new': '/targets/new',
|
||||
'target.add-host-sets': '/targets/add-host-sets',
|
||||
user: '/users'
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1 +0,0 @@
|
||||
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.278 9.313a2.021 2.021 0 0 1-2.01-.951c-.552-.928-.224-2.115.732-2.65.956-.536 2.179-.218 2.732.71.407.684.346 1.54-.155 2.164l2.354 3.955c2.02-.731 4.352.038 5.466 1.91 1.242 2.087.504 4.76-1.647 5.964a4.608 4.608 0 0 1-3.51.41l.474-1.383c.77.204 1.594.1 2.286-.288 1.434-.804 1.925-2.583 1.098-3.975a3.006 3.006 0 0 0-2.193-1.429 3.059 3.059 0 0 0-2.507.807l-3.12-5.244zm3.367 6.592a2.003 2.003 0 0 1 1.855-1.213c1.104 0 2 .87 2 1.94 0 1.072-.896 1.94-2 1.941-.815 0-1.549-.48-1.855-1.213h-4.707C10.58 19.424 8.728 21 6.5 21c-2.484 0-4.5-1.957-4.5-4.366 0-1.24.533-2.358 1.389-3.153l.997 1.088a2.859 2.859 0 0 0-.886 2.065c0 1.607 1.343 2.91 3 2.91.928 0 1.803-.417 2.371-1.128a2.844 2.844 0 0 0 .534-2.51h6.24zm-7.568-.49c.501.623.562 1.479.155 2.164-.553.927-1.775 1.245-2.732.71-.956-.536-1.284-1.723-.732-2.65a2.022 2.022 0 0 1 2.01-.953l2.354-3.955c-1.664-1.332-2.143-3.676-1.03-5.548C9.345 3.096 12.1 2.38 14.25 3.585a4.37 4.37 0 0 1 2.12 2.744l-1.47.293a2.915 2.915 0 0 0-1.4-1.777c-1.435-.802-3.269-.326-4.098 1.065a2.835 2.835 0 0 0-.179 2.557 2.973 2.973 0 0 0 1.974 1.704l-3.12 5.243z" fill="currentColor"/></svg>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
Whitespace-only changes.
@@ -8,7 +8,7 @@ module('Integration | Component | doc-link', function(hooks) {
|
||||
|
||||
test('it renders', async function(assert) {
|
||||
assert.expect(1);
|
||||
await render(hbs`<DocLink @doc="topics.account" @iconSize="large" />`);
|
||||
await render(hbs`<DocLink @doc="account" @iconSize="large" />`);
|
||||
assert.ok(find('.doc-link .rose-icon.large'));
|
||||
});
|
||||
});
|
||||
@@ -11,7 +11,7 @@ module('Integration | Helper | doc-url', function(hooks) {
|
||||
assert.expect(3);
|
||||
const baseURL = config.documentation.baseURL;
|
||||
const path = config.documentation.topics.account;
|
||||
await render(hbs`{{doc-url 'topics.account'}}`);
|
||||
await render(hbs`{{doc-url 'account'}}`);
|
||||
assert.ok(baseURL);
|
||||
assert.ok(path);
|
||||
assert.equal(this.element.textContent.trim(), `${baseURL}${path}`);
|
||||
@@ -20,7 +20,7 @@ module('Integration | Helper | doc-url', function(hooks) {
|
||||
test('it throws an error if the specified documentation path cannot be found', async function(assert) {
|
||||
assert.expect(2);
|
||||
const helper = this.owner.lookup('helper:doc-url');
|
||||
assert.ok(helper.compute(['topics.account']), 'Specified document exists.')
|
||||
assert.ok(helper.compute(['account']), 'Specified document exists.')
|
||||
assert.throws(() => {
|
||||
helper.compute(['no.such.doc']);
|
||||
}, 'Specified documentation was not found, so the helper threw an error.');
|
||||
|
||||
Whitespace-only changes.
@@ -107,14 +107,14 @@ session:
|
||||
org:
|
||||
title: Organization
|
||||
title_plural: Organizations
|
||||
description: An organization is a type of scope used to organize projects and IAM resources. Organizations contain projects and is a child scope of global.
|
||||
description: An organization is a type of scope used to organize projects and IAM resources. Organizations are child scopes of the global scope.
|
||||
messages:
|
||||
welcome:
|
||||
title: Welcome to Organizations
|
||||
project:
|
||||
title: Project
|
||||
title_plural: Projects
|
||||
description: A project is a type of scope used to organize resources such as by targets and host catalogs.
|
||||
description: A project is a type of scope used to organize resources such as targets and host catalogs.
|
||||
messages:
|
||||
welcome:
|
||||
title: Welcome to Projects
|
||||
|
||||
Vendored
Whitespace-only changes.
Reference in new issue
Block a user