Merge remote-tracking branch 'origin/main' into chromeless-window-desktop-option

This commit is contained in:
Susmitha Girumala committed 2021-09-20 14:38:19 -04:00
commit 7767804426
101 files changed
+1181 -700

No files matched your search

+15
View File
@@ -0,0 +1,15 @@
import ModelAbility from './model';
/**
* Provides a `connect` ability for targets.
*/
export default class TargetAbility extends ModelAbility {
// =permissions
/**
* @type {boolean}
*/
get canConnect() {
return this.hasAuthorizedAction('authorize-session');
}
}
+1
View File
@@ -0,0 +1 @@
export { default } from 'api/abilities/target';
+1
View File
@@ -13,6 +13,7 @@ export default factory.extend({
'read',
'update',
'delete',
'authorize-session',
],
/**
* -1 means "unlimited" and we want to generate these on occasion.
+22 -22
View File
@@ -25,51 +25,51 @@
},
"dependencies": {
"ember-can": "^3.1.0",
"ember-cli-babel": "^7.23.0",
"ember-cli-htmlbars": "^5.3.1",
"ember-cli-mirage": "^1.1.8",
"ember-cli-babel": "^7.26.6",
"ember-cli-htmlbars": "^5.7.1",
"ember-cli-mirage": "^2.2.0",
"ember-data": "^3.20.0",
"ember-data-model-fragments": "5.0.0-beta.2",
"ember-fetch": "^8.1.0"
"ember-fetch": "^8.1.1"
},
"devDependencies": {
"@ember/optional-features": "^2.0.0",
"@ember/test-helpers": "^2.2.8",
"@glimmer/component": "^1.0.3",
"@glimmer/tracking": "^1.0.3",
"@ember/test-helpers": "^2.4.2",
"@glimmer/component": "^1.0.4",
"@glimmer/tracking": "^1.0.4",
"babel-eslint": "^10.1.0",
"broccoli-asset-rev": "^3.0.0",
"doctoc": "^2.0.0",
"ember-auto-import": "^1.10.1",
"doctoc": "^2.0.1",
"ember-auto-import": "^1.12.0",
"ember-cli": "~3.28.0",
"ember-cli-dependency-checker": "^3.2.0",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-sri": "^2.1.1",
"ember-cli-terser": "^4.0.1",
"ember-cli-terser": "^4.0.2",
"ember-cli-update": "^0.54.6",
"ember-copy": "^1.0.0",
"ember-copy": "^2.0.1",
"ember-disable-prototype-extensions": "^1.1.3",
"ember-export-application-global": "^2.0.1",
"ember-get-config": "^0.3.0",
"ember-load-initializers": "^2.1.2",
"ember-maybe-import-regenerator": "^0.1.6",
"ember-page-title": "^6.0.3",
"ember-qunit": "^5.1.1",
"ember-resolver": "^8.0.2",
"ember-maybe-import-regenerator": "^1.0.0",
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
"ember-source": "~3.24.0",
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^2.15.0",
"ember-template-lint": "^3.7.0",
"ember-try": "^1.4.0",
"eslint": "^7.31.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-ember": "^10.1.1",
"eslint-plugin-ember": "^10.5.4",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-prettier": "^4.0.0",
"loader.js": "^4.7.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.2.1",
"qunit": "^2.13.0",
"qunit-dom": "^1.6.0"
"prettier": "^2.4.0",
"qunit": "^2.17.1",
"qunit-dom": "^2.0.0"
},
"engines": {
"node": ">=10 <=15"
@@ -0,0 +1,17 @@
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
module('Unit | Abilities | Target', function (hooks) {
setupTest(hooks);
test('it reflects when a given target may connect based on authorized_actions', function (assert) {
assert.expect(2);
const service = this.owner.lookup('service:can');
const model = {
authorized_actions: ['authorize-session'],
};
assert.ok(service.can('connect target', model));
model.authorized_actions = [];
assert.notOk(service.can('connect target', model));
});
});
+20 -20
View File
@@ -21,48 +21,48 @@
"doc:toc": "doctoc README.md"
},
"dependencies": {
"ember-cli-babel": "^7.23.0",
"ember-cli-htmlbars": "^5.3.1",
"ember-simple-auth": "^3.0.1"
"ember-cli-babel": "^7.26.6",
"ember-cli-htmlbars": "^5.7.1",
"ember-simple-auth": "^4.0.0"
},
"devDependencies": {
"@ember/optional-features": "^2.0.0",
"@ember/test-helpers": "^2.2.8",
"@glimmer/component": "^1.0.3",
"@glimmer/tracking": "^1.0.3",
"@ember/test-helpers": "^2.4.2",
"@glimmer/component": "^1.0.4",
"@glimmer/tracking": "^1.0.4",
"babel-eslint": "^10.1.0",
"broccoli-asset-rev": "^3.0.0",
"core": "*",
"doctoc": "^2.0.0",
"ember-auto-import": "^1.10.1",
"doctoc": "^2.0.1",
"ember-auto-import": "^1.12.0",
"ember-cli": "~3.28.0",
"ember-cli-dependency-checker": "^3.2.0",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-sri": "^2.1.1",
"ember-cli-terser": "^4.0.1",
"ember-cli-terser": "^4.0.2",
"ember-cli-update": "^0.54.6",
"ember-cookies": "^0.5.2",
"ember-disable-prototype-extensions": "^1.1.3",
"ember-export-application-global": "^2.0.1",
"ember-load-initializers": "^2.1.2",
"ember-maybe-import-regenerator": "^0.1.6",
"ember-page-title": "^6.0.3",
"ember-qunit": "^5.1.1",
"ember-resolver": "^8.0.2",
"ember-maybe-import-regenerator": "^1.0.0",
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
"ember-source": "~3.24.0",
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^2.15.0",
"ember-template-lint": "^3.7.0",
"ember-try": "^1.4.0",
"eslint": "^7.31.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-ember": "^10.1.1",
"eslint-plugin-ember": "^10.5.4",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-prettier": "^4.0.0",
"loader.js": "^4.7.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.2.1",
"qunit": "^2.13.0",
"qunit-dom": "^1.6.0"
"prettier": "^2.4.0",
"qunit": "^2.17.1",
"qunit-dom": "^2.0.0"
},
"engines": {
"node": ">=10 <=15"
@@ -4,5 +4,5 @@
target="_blank"
rel="noreferrer noopener"
title={{t "actions.get-topic-help"}}>
<Rose::Icon @name="flight-icons/help-24" @size={{@iconSize}} />
<Rose::Icon @name="flight-icons/svg/help-24" @size={{@iconSize}} />
</a>
@@ -28,11 +28,11 @@ export default class ErrorMessageComponent extends MessageComponent {
get icon() {
switch (this.args.status) {
case '404':
return 'flight-icons/help-16';
return 'flight-icons/svg/help-16';
case '401':
case '403':
default:
return 'flight-icons/alert-circle-16';
return 'flight-icons/svg/alert-circle-16';
}
}
+21 -23
View File
@@ -30,55 +30,53 @@
"dependencies": {
"api": "*",
"auth": "*",
"ember-browser-services": "^1.1.6",
"ember-cli-babel": "^7.23.0",
"ember-cli-htmlbars": "^5.3.1",
"ember-browser-services": "^2.0.0",
"ember-cli-babel": "^7.26.6",
"ember-cli-htmlbars": "^5.7.1",
"ember-feature-flags": "^6.0.0",
"ember-get-config": "^0.3.0",
"ember-intl": "^5.5.0",
"ember-intl": "^5.7.0",
"ember-loading": "^0.4.0",
"ember-page-title": "^6.0.3",
"ember-route-action-helper": "^2.0.8",
"rose": "*"
},
"devDependencies": {
"@ember/optional-features": "^2.0.0",
"@ember/test-helpers": "^2.2.8",
"@glimmer/component": "^1.0.3",
"@glimmer/tracking": "^1.0.3",
"@ember/test-helpers": "^2.4.2",
"@glimmer/component": "^1.0.4",
"@glimmer/tracking": "^1.0.4",
"babel-eslint": "^10.1.0",
"broccoli-asset-rev": "^3.0.0",
"doctoc": "^2.0.0",
"ember-auto-import": "^1.10.1",
"doctoc": "^2.0.1",
"ember-auto-import": "^1.12.0",
"ember-cli": "~3.28.0",
"ember-cli-dependency-checker": "^3.2.0",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-sri": "^2.1.1",
"ember-cli-terser": "^4.0.1",
"ember-cli-terser": "^4.0.2",
"ember-disable-prototype-extensions": "^1.1.3",
"ember-export-application-global": "^2.0.1",
"ember-inline-svg": "^1.0.0",
"ember-intl": "^5.5.0",
"ember-load-initializers": "^2.1.2",
"ember-maybe-import-regenerator": "^0.1.6",
"ember-page-title": "^6.0.3",
"ember-qunit": "^5.1.1",
"ember-resolver": "^8.0.2",
"ember-maybe-import-regenerator": "^1.0.0",
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
"ember-source": "~3.24.0",
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^2.15.0",
"ember-template-lint": "^3.7.0",
"ember-try": "^1.4.0",
"eslint": "^7.31.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-ember": "^10.1.1",
"eslint-plugin-ember": "^10.5.4",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-prettier": "^4.0.0",
"faker": "^5.5.3",
"loader.js": "^4.7.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.2.1",
"qunit": "^2.13.0",
"qunit-dom": "^1.6.0"
"prettier": "^2.4.0",
"qunit": "^2.17.1",
"qunit-dom": "^2.0.0"
},
"engines": {
"node": ">=10 <=15"
+23
View File
@@ -2,4 +2,27 @@
module.exports = {
extends: 'octane',
overrides: [
{
files: [
'addon/components/rose/anonymous/index.hbs',
'addon/components/rose/table/row/cell/index.hbs',
],
rules: {
'no-yield-only': false,
},
},
{
files: ['addon/components/rose/dialog/index.hbs'],
rules: {
'no-duplicate-landmark-elements': false,
},
},
{
files: ['addon/components/rose/form/actions/index.hbs'],
rules: {
'no-passed-in-event-handlers': false,
},
},
],
};
@@ -13,7 +13,7 @@ When style definition isn't supplied, a default style will be supplied.
Styles: outline, dark, informational, informational-outline, success, success-outline, error, error-outline, warning, warning-outline, alert, alert-outline
```html
<Rose::Badge @style="outline" @icon="flight-icons/org-16">Badge</Rose::Badge>
<Rose::Badge @style="outline" @icon="flight-icons/svg/org-16">Badge</Rose::Badge>
```
<Preview>
@@ -43,9 +43,9 @@ Styles: outline, dark, informational, informational-outline, success, success-ou
'none'
),
icon: select('icon', {
'flight-icons/org-16': 'flight-icons/org-16',
'flight-icons/svg/org-16': 'flight-icons/svg/org-16',
},
'flight-icons/org-16'
'flight-icons/svg/org-16'
),
}
}}</Story>
@@ -56,7 +56,7 @@ Styles: outline, dark, informational, informational-outline, success, success-ou
template: hbs`
<Rose::Badge>default style</Rose::Badge>
<Rose::Badge @style="outline">outline</Rose::Badge>
<Rose::Badge @icon="flight-icons/org-16">default style with icon</Rose::Badge>
<Rose::Badge @icon="flight-icons/svg/org-16">default style with icon</Rose::Badge>
<Rose::Badge @style="dark">dark</Rose::Badge>
<Rose::Badge @style="informational">informational</Rose::Badge>
<Rose::Badge @style="informational-outline">informational-outline</Rose::Badge>
@@ -12,7 +12,7 @@ to trigger actions or to submit forms. Avoid using buttons as simple links to
other routes. For accessibility, use links instead.
```htmlbars
<Rose::Button @style="primary" @iconRight="flight-icons/entry-point-16">
<Rose::Button @style="primary" @iconRight="flight-icons/svg/entry-point-16">
Action
</Rose::Button>
```
@@ -49,18 +49,18 @@ other routes. For accessibility, use links instead.
iconLeft: select(
'iconLeft',
{
'flight-icons/check-circle-16': 'flight-icons/check-circle-16',
'flight-icons/clipboard-copy-16': 'flight-icons/clipboard-copy-16',
'flight-icons/svg/check-circle-16': 'flight-icons/svg/check-circle-16',
'flight-icons/svg/clipboard-copy-16': 'flight-icons/svg/clipboard-copy-16',
},
'flight-icons/check-circle-16'
'flight-icons/svg/check-circle-16'
),
iconRight: select(
'iconRight',
{
'flight-icons/check-circle-16': 'flight-icons/check-circle-16',
'flight-icons/clipboard-copy-16': 'flight-icons/clipboard-copy-16',
'flight-icons/svg/check-circle-16': 'flight-icons/svg/check-circle-16',
'flight-icons/svg/clipboard-copy-16': 'flight-icons/svg/clipboard-copy-16',
},
'flight-icons/clipboard-copy-16'
'flight-icons/svg/clipboard-copy-16'
),
onClick: action('clicked'),
},
@@ -81,10 +81,10 @@ button in this case for accessibility.
iconOnly: select(
'iconOnly',
{
'flight-icons/check-circle-16': 'flight-icons/check-circle-16',
'flight-icons/clipboard-copy-16': 'flight-icons/clipboard-copy-16',
'flight-icons/svg/check-circle-16': 'flight-icons/svg/check-circle-16',
'flight-icons/svg/clipboard-copy-16': 'flight-icons/svg/clipboard-copy-16',
},
'flight-icons/check-circle-16'
'flight-icons/svg/check-circle-16'
),
},
}}</Story>
@@ -13,7 +13,7 @@ Card link component wraps content with `LinkTo` component. Supports title and de
@title='Card title'
@description='Card description'
@id='resource_id_1234'
@icon='flight-icons/org-16'
@icon='flight-icons/svg/org-16'
@route='about'/>
```
@@ -32,9 +32,9 @@ Card link component wraps content with `LinkTo` component. Supports title and de
description: text('description', 'Card description'),
id: text('id', 'resource_id_1234'),
icon: select('icon', {
'flight-icons/org-16': 'flight-icons/org-16',
'flight-icons/svg/org-16': 'flight-icons/svg/org-16',
},
'flight-icons/org-16'
'flight-icons/svg/org-16'
),
},
}}</Story>
@@ -18,35 +18,35 @@ A set of cards arranged side-by-side.
@title="Card Title"
@description="Description"
@id="resource_id_1234"
@icon="flight-icons/org-16"
@icon="flight-icons/svg/org-16"
/>
<cards.link
@route="index"
@title="Card Title"
@description="Description"
@id="resource_id_1234"
@icon="flight-icons/org-16"
@icon="flight-icons/svg/org-16"
/>
<cards.link
@route="index"
@title="Card Title"
@description="Description"
@id="resource_id_1234"
@icon="flight-icons/org-16"
@icon="flight-icons/svg/org-16"
/>
<cards.link
@route="index"
@title="Card Title"
@description="Description"
@id="resource_id_1234"
@icon="flight-icons/org-16"
@icon="flight-icons/svg/org-16"
/>
<cards.link
@route="index"
@title="Card Title"
@description="Description"
@id="resource_id_1234"
@icon="flight-icons/org-16"
@icon="flight-icons/svg/org-16"
/>
</Rose::Cards>
`,
@@ -62,14 +62,14 @@ A set of cards arranged side-by-side.
@title="Card Title"
@description="Description"
@id="resource_id_1234"
@icon="flight-icons/org-16"
@icon="flight-icons/svg/org-16"
/>
<cards.link
@route="index"
@title="Card Title"
@description="Description"
@id="resource_id_1234"
@icon="flight-icons/org-16"
@icon="flight-icons/svg/org-16"
/>
</Rose::Cards>
```
@@ -27,7 +27,7 @@
title={{@dismissButtonText}}
{{on "click" (fn this.dismiss @dismiss)}}
>
<Rose::Icon @name="flight-icons/x-16" @size="small" />
<Rose::Icon @name="flight-icons/svg/x-16" @size="small" />
</button>
</header>
@@ -62,7 +62,7 @@
title={{@dismissButtonText}}
{{on "click" (fn this.dismiss @dismiss)}}
>
<Rose::Icon @name="flight-icons/x-16" @size="small" />
<Rose::Icon @name="flight-icons/svg/x-16" @size="small" />
</button>
</header>
@@ -36,10 +36,10 @@ A dialog component with optional modal capabilities.
icon: select(
'icon',
{
'flight-icons/check-circle-16': 'flight-icons/check-circle-16',
'flight-icons/clipboard-copy-16': 'flight-icons/clipboard-copy-16',
'flight-icons/svg/check-circle-16': 'flight-icons/svg/check-circle-16',
'flight-icons/svg/clipboard-copy-16': 'flight-icons/svg/clipboard-copy-16',
},
'flight-icons/check-circle-16'
'flight-icons/svg/check-circle-16'
),
style: select(
'style',
@@ -58,7 +58,7 @@ A dialog component with optional modal capabilities.
<Rose::Dialog
@modal={{true}}
@dismiss={{@dismissFn}}
@icon="flight-icons/check-circle-16"
@icon="flight-icons/svg/check-circle-16"
@heading="Heading"
@dismissButtonText="Dismiss"
as |dialog|>
@@ -11,7 +11,7 @@ A simple dropdown component with support for links and buttons.
<Preview>
<Story name="Basic Dropdown" height="7rem">{{
template: hbs`
<Rose::Dropdown @text="Choose One&hellip;" @icon="flight-icons/org-16" @showCaret={{showCaret}} as |dropdown|>
<Rose::Dropdown @text="Choose One&hellip;" @icon="flight-icons/svg/org-16" @showCaret={{showCaret}} as |dropdown|>
<dropdown.link @route="index">Menu item</dropdown.link>
<dropdown.link @route="about">Menu item</dropdown.link>
<dropdown.separator />
@@ -31,7 +31,7 @@ A simple dropdown component with support for links and buttons.
<Preview>
<Story name="Icon-only Dropdown" height="5rem">{{
template: hbs`
<Rose::Dropdown @text="Choose One&hellip;" @icon="flight-icons/org-16" @iconOnly={{true}} as |dropdown|>
<Rose::Dropdown @text="Choose One&hellip;" @icon="flight-icons/svg/org-16" @iconOnly={{true}} as |dropdown|>
<dropdown.link @route="index">Menu item</dropdown.link>
<dropdown.link @route="about">Menu item</dropdown.link>
<dropdown.separator />
@@ -117,7 +117,7 @@ Dropdown supports `danger` styling through `style` attribute.
Dropdown indicator can be hidden using `showCaret` attribute.
```html
<Rose::Dropdown @showCaret={{true}} @icon="flight-icons/more-horizontal-16" as |dropdown|>
<Rose::Dropdown @showCaret={{true}} @icon="flight-icons/svg/more-horizontal-16" as |dropdown|>
<dropdown.link @route="index">Menu item</dropdown.link>
<dropdown.button>Button menu item</dropdown.button>
</Rose::Dropdown>
@@ -1,4 +1,4 @@
<p class="rose-form-error-message" ...attributes>
<Rose::Icon @name="flight-icons/x-square-16" @size="medium" />
<Rose::Icon @name="flight-icons/svg/x-square-16" @size="medium" />
{{yield}}
</p>
@@ -68,10 +68,10 @@ Renders a form radiofield group.
firstFieldIcon: select(
'first icon',
{
'flight-icons/org-16': 'flight-icons/org-16',
'flight-icons/clipboard-copy-16': 'flight-icons/clipboard-copy-16',
'flight-icons/svg/org-16': 'flight-icons/svg/org-16',
'flight-icons/svg/clipboard-copy-16': 'flight-icons/svg/clipboard-copy-16',
},
'flight-icons/org-16'
'flight-icons/svg/org-16'
),
secondFieldLabel: text('second label', 'Maybe'),
secondFieldValue: text('second value', 'maybe'),
@@ -44,8 +44,8 @@ Renders a form radiofield.
'icon',
{
'none': null,
'flight-icons/org-16': 'flight-icons/org-16',
'flight-icons/clipboard-copy-16': 'flight-icons/clipboard-copy-16',
'flight-icons/svg/org-16': 'flight-icons/svg/org-16',
'flight-icons/svg/clipboard-copy-16': 'flight-icons/svg/clipboard-copy-16',
},
null
),
@@ -109,8 +109,8 @@ Renders a form radiofield.
'icon',
{
'none': null,
'flight-icons/org-16': 'flight-icons/org-16',
'flight-icons/clipboard-copy-16': 'flight-icons/clipboard-copy-16',
'flight-icons/svg/org-16': 'flight-icons/svg/org-16',
'flight-icons/svg/clipboard-copy-16': 'flight-icons/svg/clipboard-copy-16',
},
null
),
@@ -27,7 +27,7 @@ A header component that allows three distinct sections to be configured: brand,
<utilities.dropdown
@text="user@example.net"
@iconOnly={{true}}
@icon="flight-icons/user-circle-16" as |dropdown|
@icon="flight-icons/svg/user-circle-16" as |dropdown|
>
<dropdown.link @route="index">Menu item</dropdown.link>
<dropdown.link @route="about">Menu item</dropdown.link>
@@ -69,11 +69,11 @@ A header component that allows three distinct sections to be configured: brand,
dropdownIcon: select(
'dropdownIcon',
{
'flight-icons/user-circle-16': 'flight-icons/user-circle-16',
'flight-icons/check-circle-16': 'flight-icons/check-circle-16',
'flight-icons/clipboard-copy-16': 'flight-icons/clipboard-copy-16',
'flight-icons/svg/user-circle-16': 'flight-icons/svg/user-circle-16',
'flight-icons/svg/check-circle-16': 'flight-icons/svg/check-circle-16',
'flight-icons/svg/clipboard-copy-16': 'flight-icons/svg/clipboard-copy-16',
},
'flight-icons/user-circle-16'
'flight-icons/svg/user-circle-16'
),
},
}}</Story>
@@ -22,10 +22,10 @@ Renders a simple icon.
name: select(
'name',
{
'flight-icons/check-circle-16': 'flight-icons/check-circle-16',
'flight-icons/clipboard-copy-16': 'flight-icons/clipboard-copy-16',
'flight-icons/svg/check-circle-16': 'flight-icons/svg/check-circle-16',
'flight-icons/svg/clipboard-copy-16': 'flight-icons/svg/clipboard-copy-16',
},
'flight-icons/check-circle-16'
'flight-icons/svg/check-circle-16'
),
}
}}</Story>
@@ -12,7 +12,7 @@ Styles supported: primary, secondary, warning, and ghost.
Disabling link button is not supported as it is an action on form components only.
```html
<Rose::LinkButton @route="index" @style="primary" @iconRight="flight-icons/entry-point-16">
<Rose::LinkButton @route="index" @style="primary" @iconRight="flight-icons/svg/entry-point-16">
Content
</Rose::LinkButton>
```
@@ -45,18 +45,18 @@ Disabling link button is not supported as it is an action on form components onl
iconLeft: select(
'iconLeft',
{
'flight-icons/check-circle-16': 'flight-icons/check-circle-16',
'flight-icons/clipboard-copy-16': 'flight-icons/clipboard-copy-16',
'flight-icons/svg/check-circle-16': 'flight-icons/svg/check-circle-16',
'flight-icons/svg/clipboard-copy-16': 'flight-icons/svg/clipboard-copy-16',
},
'flight-icons/clipboard-copy-16'
'flight-icons/svg/clipboard-copy-16'
),
iconRight: select(
'iconRight',
{
'flight-icons/check-circle-16': 'flight-icons/check-circle-16',
'flight-icons/clipboard-copy-16': 'flight-icons/clipboard-copy-16',
'flight-icons/svg/check-circle-16': 'flight-icons/svg/check-circle-16',
'flight-icons/svg/clipboard-copy-16': 'flight-icons/svg/clipboard-copy-16',
},
'flight-icons/clipboard-copy-16'
'flight-icons/svg/clipboard-copy-16'
),
},
}}</Story>
@@ -65,7 +65,7 @@ Disabling link button is not supported as it is an action on form components onl
Similar to `Rose::Button`, icon only link button is supported.
```html
<Rose::LinkButton @route="index" @style="primary" @iconOnly="flight-icons/help-16" />
<Rose::LinkButton @route="index" @style="primary" @iconOnly="flight-icons/svg/help-16" />
```
<Preview>
@@ -88,10 +88,10 @@ Similar to `Rose::Button`, icon only link button is supported.
iconOnly: select(
'iconOnly',
{
'flight-icons/check-circle-16': 'flight-icons/check-circle-16',
'flight-icons/help-16': 'flight-icons/help-16',
'flight-icons/svg/check-circle-16': 'flight-icons/svg/check-circle-16',
'flight-icons/svg/help-16': 'flight-icons/svg/help-16',
},
'flight-icons/help-16'
'flight-icons/svg/help-16'
),
},
}}</Story>
@@ -46,7 +46,7 @@ A simple key/value list with support for embedded form fields and buttons.
<input.field />
</item.cell>
<item.cell>
<Rose::Button @style="secondary" @iconOnly="flight-icons/trash-16" title="Remove">Remove</Rose::Button>
<Rose::Button @style="secondary" @iconOnly="flight-icons/svg/trash-16" title="Remove">Remove</Rose::Button>
</item.cell>
</list.item>
</Rose::Form::Input>
@@ -94,7 +94,7 @@ A simple key/value list with support for embedded form fields and buttons.
<input.field />
</item.cell>
<item.cell>
<Rose::Button @style="secondary" @iconOnly="flight-icons/trash-16" title="Remove">Remove</Rose::Button>
<Rose::Button @style="secondary" @iconOnly="flight-icons/svg/trash-16" title="Remove">Remove</Rose::Button>
</item.cell>
</list.item>
</Rose::Form::Input>
@@ -18,7 +18,7 @@ Title can be configured with optional icon and subtitle.
{{description}}
</message.description>
<message.link @route="index">
<Rose::Icon @name="flight-icons/chevron-left-16" />
<Rose::Icon @name="flight-icons/svg/chevron-left-16" />
Go back
</message.link>
<message.link @route="index">
@@ -33,23 +33,23 @@ Title can be configured with optional icon and subtitle.
icon: select(
'icon',
{
'flight-icons/alert-circle-16': 'flight-icons/alert-circle-16',
'flight-icons/help-16': 'flight-icons/help-16',
'flight-icons/svg/alert-circle-16': 'flight-icons/svg/alert-circle-16',
'flight-icons/svg/help-16': 'flight-icons/svg/help-16',
},
'flight-icons/help-16'
'flight-icons/svg/help-16'
),
},
}}</Story>
</Preview>
```html
<Rose::Message @title="Page not found" @subtitle="Error 404" @icon="flight-icons/alert-circle-16" as |message|>
<Rose::Message @title="Page not found" @subtitle="Error 404" @icon="flight-icons/svg/alert-circle-16" as |message|>
<message.description>
You must be granted permissions to view this data. Ask your administrator
if you think you should have access.
</message.description>
<message.link @route="index">
<Rose::Icon @name="flight-icons/chevron-left-16" />
<Rose::Icon @name="flight-icons/svg/chevron-left-16" />
Go back
</message.link>
<message.link @route="index">Need help?</message.link>
@@ -26,7 +26,7 @@
{{on "click" @dismiss}}
>
<Rose::Icon
@name="flight-icons/x-16"
@name="flight-icons/svg/x-16"
@size="medium" />
<span class="rose-notification-dismiss-text">
{{@dismissText}}
@@ -8,17 +8,17 @@ export default class RoseNotificationComponent extends Component {
*/
@computed('style')
get icon() {
let icon = 'flight-icons/info-16';
let icon = 'flight-icons/svg/info-16';
switch (this.style) {
case 'error':
icon = 'flight-icons/x-square-16';
icon = 'flight-icons/svg/x-square-16';
break;
case 'success':
icon = 'flight-icons/check-circle-16';
icon = 'flight-icons/svg/check-circle-16';
break;
case 'warning':
icon = 'flight-icons/alert-triangle-16';
icon = 'flight-icons/svg/alert-triangle-16';
break;
}
@@ -122,7 +122,7 @@ Cell shrink should be applied to all the cells in a row. Otherwise the bigger ce
</Rose::Form::Input>
</row.cell>
<row.cell @shrink={{true}} @alignRight={{true}}>
<Rose::Button @style="secondary" @iconOnly="flight-icons/trash-16" title="Remove">Remove</Rose::Button>
<Rose::Button @style="secondary" @iconOnly="flight-icons/svg/trash-16" title="Remove">Remove</Rose::Button>
</row.cell>
</body.row>
<body.row as |row|>
+27 -27
View File
@@ -29,10 +29,10 @@
"doc:toc": "doctoc README.md"
},
"dependencies": {
"babel-loader": "^8.1.0",
"ember-cli-babel": "^7.23.0",
"ember-cli-htmlbars": "^5.3.1",
"ember-focus-trap": "^0.4.0",
"babel-loader": "^8.2.2",
"ember-cli-babel": "^7.26.6",
"ember-cli-htmlbars": "^5.7.1",
"ember-focus-trap": "^0.7.0",
"ember-named-blocks-polyfill": "^0.2.4",
"ember-radio-button": "^2.0.1",
"ember-uuid": "^2.1.0",
@@ -40,50 +40,50 @@
},
"devDependencies": {
"@ember/optional-features": "^2.0.0",
"@ember/test-helpers": "^2.2.8",
"@glimmer/component": "^1.0.3",
"@glimmer/tracking": "^1.0.3",
"@hashicorp/flight-icons": "0.0.6-beta",
"@storybook/addon-actions": "^6.3.1",
"@storybook/addon-docs": "^6.3.1",
"@storybook/addon-knobs": "^6.3.0",
"@storybook/ember": "^6.3.1",
"@ember/test-helpers": "^2.4.2",
"@glimmer/component": "^1.0.4",
"@glimmer/tracking": "^1.0.4",
"@hashicorp/flight-icons": "0.0.9-beta",
"@storybook/addon-actions": "^6.3.8",
"@storybook/addon-docs": "^6.3.8",
"@storybook/addon-knobs": "^6.3.1",
"@storybook/ember": "^6.3.8",
"@storybook/ember-cli-storybook": "^0.4.0",
"babel-eslint": "^10.1.0",
"broccoli-asset-rev": "^3.0.0",
"doctoc": "^2.0.0",
"ember-auto-import": "^1.10.1",
"doctoc": "^2.0.1",
"ember-auto-import": "^1.12.0",
"ember-cli": "~3.28.0",
"ember-cli-dependency-checker": "^3.2.0",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-sass": "^10.0.1",
"ember-cli-sri": "^2.1.1",
"ember-cli-terser": "^4.0.1",
"ember-cli-terser": "^4.0.2",
"ember-cli-update": "^0.54.6",
"ember-disable-prototype-extensions": "^1.1.3",
"ember-export-application-global": "^2.0.1",
"ember-inline-svg": "^1.0.0",
"ember-load-initializers": "^2.1.2",
"ember-maybe-import-regenerator": "^0.1.6",
"ember-maybe-import-regenerator": "^1.0.0",
"ember-modifier": "^1.0.3",
"ember-page-title": "^6.0.3",
"ember-qunit": "^5.1.1",
"ember-resolver": "^8.0.2",
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
"ember-source": "~3.24.0",
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^2.15.0",
"ember-template-lint": "^3.7.0",
"ember-try": "^1.4.0",
"eslint": "^7.31.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-ember": "^10.1.1",
"eslint-plugin-ember": "^10.5.4",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-prettier": "^4.0.0",
"loader.js": "^4.7.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.2.1",
"qunit": "^2.13.0",
"qunit-dom": "^1.6.0",
"sass": "^1.36.0",
"prettier": "^2.4.0",
"qunit": "^2.17.1",
"qunit-dom": "^2.0.0",
"sass": "^1.41.0",
"sass-lint": "^1.13.1"
},
"engines": {
@@ -19,7 +19,7 @@
<utilities.dropdown
@text="user@example.net"
@iconOnly={{true}}
@icon="flight-icons/user-circle-16" as |dropdown|
@icon="flight-icons/svg/user-circle-16" as |dropdown|
>
<dropdown.link @route="index">Menu item</dropdown.link>
<dropdown.link @route="about">Menu item</dropdown.link>
@@ -82,7 +82,7 @@
<input.field />
</item.cell>
<item.cell>
<Rose::Button @style="secondary" @iconOnly="flight-icons/trash-16" title="Remove">Remove</Rose::Button>
<Rose::Button @style="secondary" @iconOnly="flight-icons/svg/trash-16" title="Remove">Remove</Rose::Button>
</item.cell>
</list.item>
</Rose::Form::Input>
@@ -17,7 +17,7 @@ module('Integration | Component | rose/badge', function (hooks) {
});
test('it renders an icon using @icon', async function (assert) {
await render(hbs`<Rose::Badge @icon="flight-icons/entry-point-16" />`);
await render(hbs`<Rose::Badge @icon="flight-icons/svg/entry-point-16" />`);
assert.ok(find('.rose-icon'));
});
@@ -35,18 +35,18 @@ module('Integration | Component | rose/button', function (hooks) {
test('it supports left and right icons', async function (assert) {
await render(
hbs`<Rose::Button @iconLeft="flight-icons/chevron-left-16" />`
hbs`<Rose::Button @iconLeft="flight-icons/svg/chevron-left-16" />`
);
assert.ok(find('.has-icon-left .rose-icon'));
await render(
hbs`<Rose::Button @iconRight="flight-icons/chevron-left-16" />`
hbs`<Rose::Button @iconRight="flight-icons/svg/chevron-left-16" />`
);
assert.ok(find('.has-icon-right .rose-icon'));
});
test('it supports an icon-only type', async function (assert) {
await render(
hbs`<Rose::Button @iconOnly="flight-icons/chevron-left-16" />`
hbs`<Rose::Button @iconOnly="flight-icons/svg/chevron-left-16" />`
);
assert.ok(find('.has-icon-only .rose-icon'));
});
@@ -42,7 +42,7 @@ module('Integration | Component | rose/card/link', function (hooks) {
test('it renders with @icon', async function (assert) {
await render(
hbs`<Rose::Card::Link @title="foo" @icon="flight-icons/alert-circle-16" />`
hbs`<Rose::Card::Link @title="foo" @icon="flight-icons/svg/alert-circle-16" />`
);
assert.ok(find('.rose-icon'));
});
@@ -24,7 +24,9 @@ module('Integration | Component | rose/dropdown', function (hooks) {
});
test('it supports an icon', async function (assert) {
await render(hbs`<Rose::Dropdown @icon="flight-icons/user-circle-16" />`);
await render(
hbs`<Rose::Dropdown @icon="flight-icons/svg/user-circle-16" />`
);
assert.ok(find('svg'));
});
@@ -33,7 +33,7 @@ module('Integration | Component | rose/dropdown/button', function (hooks) {
test('it supports an icon-only type', async function (assert) {
await render(
hbs`<Rose::Dropdown::Button @iconOnly="flight-icons/chevron-left-16" />`
hbs`<Rose::Dropdown::Button @iconOnly="flight-icons/svg/chevron-left-16" />`
);
assert.ok(find('.has-icon-only .rose-icon'));
});
@@ -19,7 +19,7 @@ module('Integration | Component | rose/form/radio/radio', function (hooks) {
test('it supports an icon', async function (assert) {
await render(
hbs`<Rose::Form::Radio::Radio @icon="flight-icons/user-circle-16" />`
hbs`<Rose::Form::Radio::Radio @icon="flight-icons/svg/user-circle-16" />`
);
assert.ok(find('svg'));
});
@@ -7,13 +7,13 @@ module('Integration | Component | rose/icon', function (hooks) {
setupRenderingTest(hooks);
test('it renders', async function (assert) {
await render(hbs`<Rose::Icon @name="flight-icons/globe-16" />`);
await render(hbs`<Rose::Icon @name="flight-icons/svg/globe-16" />`);
assert.ok(find('svg'));
});
test('it supports optional @size', async function (assert) {
await render(
hbs`<Rose::Icon @name="flight-icons/globe-16" @size="small" />`
hbs`<Rose::Icon @name="flight-icons/svg/globe-16" @size="small" />`
);
assert.ok(find('.small'));
});
@@ -35,7 +35,7 @@ module('Integration | Component | rose/link-button', function (hooks) {
test('it supports left icon with @iconLeft', async function (assert) {
await render(
hbs`<Rose::LinkButton @route="index" @iconLeft="flight-icons/chevron-left-16" />`
hbs`<Rose::LinkButton @route="index" @iconLeft="flight-icons/svg/chevron-left-16" />`
);
assert.ok(find('.rose-icon'));
assert.ok(find('.has-icon-left'));
@@ -43,7 +43,7 @@ module('Integration | Component | rose/link-button', function (hooks) {
test('it supports left icon with @iconRight', async function (assert) {
await render(
hbs`<Rose::LinkButton @route="index" @iconRight="flight-icons/entry-point-16" />`
hbs`<Rose::LinkButton @route="index" @iconRight="flight-icons/svg/entry-point-16" />`
);
assert.ok(find('.rose-icon'));
assert.ok(find('.has-icon-right'));
@@ -51,7 +51,7 @@ module('Integration | Component | rose/link-button', function (hooks) {
test('it supports only icon with @iconOnly', async function (assert) {
await render(
hbs`<Rose::LinkButton @route="index" @iconOnly="flight-icons/help-16" />`
hbs`<Rose::LinkButton @route="index" @iconOnly="flight-icons/svg/help-16" />`
);
assert.ok(find('.rose-icon'));
assert.ok(find('.has-icon-only'));
+1 -1
View File
@@ -40,7 +40,7 @@
},
"devDependencies": {
"cz-conventional-changelog": "^3.1.0",
"doctoc": "^2.0.0",
"doctoc": "^2.0.1",
"git-cz": "^4.3.1",
"license-checker": "^25.0.1"
},
+1
View File
@@ -4,6 +4,7 @@ module.exports = {
plugins: ['ember-template-lint-plugin-prettier'],
extends: ['octane', 'ember-template-lint-plugin-prettier:recommended'],
rules: {
'no-passed-in-event-handlers': false,
'no-bare-strings': true,
'no-curly-component-invocation': {
allow: ['app-name', 'company-name', 'company-copyright'],
+2 -2
View File
@@ -12,8 +12,8 @@ export default class CopyableComponent extends Component {
id = generateComponentID();
copyableButtonId = `copyable-button-${this.id}`;
actionIcon = 'flight-icons/clipboard-copy-16';
successIcon = 'flight-icons/clipboard-checked-16';
actionIcon = 'flight-icons/svg/clipboard-copy-16';
successIcon = 'flight-icons/svg/clipboard-checked-16';
actionText = this.args.buttonText;
successText = this.args.acknowledgeText;
@@ -177,7 +177,7 @@
<row.cell @shrink={{true}}>
<Rose::Button
@style='warning'
@iconOnly='flight-icons/trash-16'
@iconOnly='flight-icons/svg/trash-16'
title={{t 'actions.remove'}}
@disabled={{if
@model.isNew
@@ -278,7 +278,7 @@
<row.cell @shrink={{true}}>
<Rose::Button
@style='warning'
@iconOnly='flight-icons/trash-16'
@iconOnly='flight-icons/svg/trash-16'
title={{t 'actions.remove'}}
@disabled={{if
@model.isNew
@@ -368,7 +368,7 @@
<row.cell @shrink={{true}}>
<Rose::Button
@style='warning'
@iconOnly='flight-icons/trash-16'
@iconOnly='flight-icons/svg/trash-16'
title={{t 'actions.remove'}}
@disabled={{if
@model.isNew
@@ -477,7 +477,7 @@
<row.cell @shrink={{true}}>
<Rose::Button
@style='warning'
@iconOnly='flight-icons/trash-16'
@iconOnly='flight-icons/svg/trash-16'
title={{t 'actions.remove'}}
@disabled={{if
@model.isNew
@@ -578,7 +578,7 @@
<row.cell @shrink={{true}}>
<Rose::Button
@style='warning'
@iconOnly='flight-icons/trash-16'
@iconOnly='flight-icons/svg/trash-16'
title={{t 'actions.remove'}}
@disabled={{if
@model.isNew
@@ -49,7 +49,7 @@
{{t 'resources.group.messages.no-members.description'}}
</message.description>
<message.link @route='scopes.scope.groups.group.members'>
<Rose::Icon @name='flight-icons/chevron-left-16' />
<Rose::Icon @name='flight-icons/svg/chevron-left-16' />
{{t 'actions.back'}}
</message.link>
</Rose::Message>
@@ -55,7 +55,7 @@
<message.link
@route='scopes.scope.host-catalogs.host-catalog.host-sets.host-set.hosts'
>
<Rose::Icon @name='flight-icons/chevron-left-16' />
<Rose::Icon @name='flight-icons/svg/chevron-left-16' />
{{t 'actions.back'}}
</message.link>
</Rose::Message>
@@ -58,7 +58,7 @@
{{t 'resources.role.principal.messages.none.description'}}
</message.description>
<message.link @route='scopes.scope.roles.role.principals'>
<Rose::Icon @name='flight-icons/chevron-left-16' />
<Rose::Icon @name='flight-icons/svg/chevron-left-16' />
{{t 'actions.back'}}
</message.link>
</Rose::Message>
@@ -74,7 +74,7 @@
<item.cell>
<Rose::Button
@style='secondary'
@iconOnly='flight-icons/trash-16'
@iconOnly='flight-icons/svg/trash-16'
title={{t 'actions.remove'}}
{{on 'click' (fn @removeGrant grant.value)}}
>
+3 -3
View File
@@ -69,11 +69,11 @@
@text={{this.selectedGrantScope.displayName}}
@icon={{if
this.selectedGrantScope.isProject
'flight-icons/grid-16'
'flight-icons/svg/grid-16'
(if
this.selectedGrantScope.isOrg
'flight-icons/org-16'
'flight-icons/globe-16'
'flight-icons/svg/org-16'
'flight-icons/svg/globe-16'
)
}}
as |dropdown|
@@ -55,7 +55,7 @@
{{t 'resources.target.credential-library.messages.none.description'}}
</message.description>
<message.link @route='scopes.scope.targets.target.credential-libraries'>
<Rose::Icon @name='flight-icons/chevron-left-16' />
<Rose::Icon @name='flight-icons/svg/chevron-left-16' />
{{t 'actions.back'}}
</message.link>
</Rose::Message>
@@ -59,7 +59,7 @@
{{t 'resources.target.host-set.messages.none.description'}}
</message.description>
<message.link @route='scopes.scope.targets.target.host-sets'>
<Rose::Icon @name='flight-icons/chevron-left-16' />
<Rose::Icon @name='flight-icons/svg/chevron-left-16' />
{{t 'actions.back'}}
</message.link>
</Rose::Message>
@@ -59,7 +59,7 @@
{{t 'resources.user.messages.no-accounts.description'}}
</message.description>
<message.link @route='scopes.scope.users.user.accounts'>
<Rose::Icon @name='flight-icons/chevron-left-16' />
<Rose::Icon @name='flight-icons/svg/chevron-left-16' />
{{t 'actions.back'}}
</message.link>
</Rose::Message>
+3 -3
View File
@@ -16,7 +16,7 @@
<header.utilities as |utilities|>
<utilities.dropdown
@text={{this.session.data.authenticated.username}}
@icon='flight-icons/user-circle-16'
@icon='flight-icons/svg/user-circle-16'
as |dropdown|
>
<dropdown.link @route='account.change-password'>
@@ -100,7 +100,7 @@
<Rose::Dialog
@heading={{t 'titles.abandon-confirm'}}
@dismissButtonText={{t 'actions.cancel'}}
@icon='flight-icons/alert-triangle-16'
@icon='flight-icons/svg/alert-triangle-16'
@style='warning'
@modal={{true}}
@dismiss={{deny}}
@@ -126,7 +126,7 @@
(t 'actions.confirm')
}}
@dismissButtonText={{t 'actions.cancel'}}
@icon='flight-icons/alert-triangle-16'
@icon='flight-icons/svg/alert-triangle-16'
@style='warning'
@modal={{true}}
@dismiss={{deny}}
+1 -1
View File
@@ -8,7 +8,7 @@
<Rose::Layout::Centered>
<Rose::Message
@title={{t 'auth.titles.no-scopes'}}
@icon='flight-icons/alert-circle-16'
@icon='flight-icons/svg/alert-circle-16'
as |message|
>
<message.description>
+27 -15
View File
@@ -18,7 +18,7 @@
{{#if @model.isGlobal}}
<Rose::Nav::Sidebar @title={{t 'titles.general'}} as |nav|>
<nav.link @route='scopes.scope.scopes'>
<Rose::Icon @name='flight-icons/org-16' @size='medium' />
<Rose::Icon @name='flight-icons/svg/org-16' @size='medium' />
{{t 'resources.org.title_plural'}}
</nav.link>
</Rose::Nav::Sidebar>
@@ -28,12 +28,12 @@
<Rose::Nav::Sidebar @title={{t 'titles.general'}} as |nav|>
{{#if this.session.data.authenticated.isGlobal}}
<nav.link @route='scopes.scope.scopes' @model='global'>
<Rose::Icon @name='flight-icons/org-16' @size='medium' />
<Rose::Icon @name='flight-icons/svg/org-16' @size='medium' />
{{t 'resources.org.title_plural'}}
</nav.link>
{{/if}}
<nav.link @route='scopes.scope.scopes'>
<Rose::Icon @name='flight-icons/grid-16' @size='medium' />
<Rose::Icon @name='flight-icons/svg/grid-16' @size='medium' />
{{t 'resources.project.title_plural'}}
</nav.link>
</Rose::Nav::Sidebar>
@@ -43,12 +43,12 @@
<Rose::Nav::Sidebar @title={{t 'titles.general'}} as |nav|>
{{#if this.session.data.authenticated.isGlobal}}
<nav.link @route='scopes.scope.scopes' @model='global'>
<Rose::Icon @name='flight-icons/org-16' @size='medium' />
<Rose::Icon @name='flight-icons/svg/org-16' @size='medium' />
{{t 'resources.org.title_plural'}}
</nav.link>
{{/if}}
<nav.link @route='scopes.scope.scopes' @model={{@model.scopeID}}>
<Rose::Icon @name='flight-icons/grid-16' @size='medium' />
<Rose::Icon @name='flight-icons/svg/grid-16' @size='medium' />
{{t 'resources.project.title_plural'}}
</nav.link>
</Rose::Nav::Sidebar>
@@ -58,13 +58,13 @@
<Rose::Nav::Sidebar @title={{t "titles.iam"}} as |nav|>
<nav.link @route="scopes.scope.groups">
<Rose::Icon
@name="flight-icons/folder-users-16"
@name="flight-icons/svg/folder-users-16"
@size="medium" />
{{t "resources.group.title_plural"}}
</nav.link>
<nav.link @route="scopes.scope.roles">
<Rose::Icon
@name="flight-icons/identity-user-16"
@name="flight-icons/svg/identity-user-16"
@size="medium" />
{{t "resources.role.title_plural"}}
</nav.link>
@@ -73,19 +73,28 @@
<Rose::Nav::Sidebar @title={{t 'titles.resources'}} as |nav|>
{{#if (can 'navigate collection' @model collection='sessions')}}
<nav.link @route='scopes.scope.sessions'>
<Rose::Icon @name='flight-icons/entry-point-16' @size='medium' />
<Rose::Icon
@name='flight-icons/svg/entry-point-16'
@size='medium'
/>
{{t 'resources.session.title_plural'}}
</nav.link>
{{/if}}
{{#if (can 'navigate collection' @model collection='targets')}}
<nav.link @route='scopes.scope.targets'>
<Rose::Icon @name='flight-icons/crosshair-16' @size='medium' />
<Rose::Icon
@name='flight-icons/svg/crosshair-16'
@size='medium'
/>
{{t 'resources.target.title_plural'}}
</nav.link>
{{/if}}
{{#if (can 'navigate collection' @model collection='host-catalogs')}}
<nav.link @route='scopes.scope.host-catalogs'>
<Rose::Icon @name='flight-icons/collections-16' @size='medium' />
<Rose::Icon
@name='flight-icons/svg/collections-16'
@size='medium'
/>
{{t 'resources.host-catalog.title_plural'}}
</nav.link>
{{/if}}
@@ -94,7 +103,7 @@
}}
{{#if (feature-flag 'credential-store')}}
<nav.link @route='scopes.scope.credential-stores'>
<Rose::Icon @name='flight-icons/key-16' @size='medium' />
<Rose::Icon @name='flight-icons/svg/key-16' @size='medium' />
{{t 'resources.credential-store.title_plural'}}
</nav.link>
{{/if}}
@@ -106,20 +115,23 @@
<Rose::Nav::Sidebar @title={{t 'titles.iam'}} as |nav|>
{{#if (can 'navigate collection' @model collection='users')}}
<nav.link @route='scopes.scope.users'>
<Rose::Icon @name='flight-icons/users-16' @size='medium' />
<Rose::Icon @name='flight-icons/svg/users-16' @size='medium' />
{{t 'resources.user.title_plural'}}
</nav.link>
{{/if}}
{{#if (can 'navigate collection' @model collection='groups')}}
<nav.link @route='scopes.scope.groups'>
<Rose::Icon @name='flight-icons/folder-users-16' @size='medium' />
<Rose::Icon
@name='flight-icons/svg/folder-users-16'
@size='medium'
/>
{{t 'resources.group.title_plural'}}
</nav.link>
{{/if}}
{{#if (can 'navigate collection' @model collection='roles')}}
<nav.link @route='scopes.scope.roles'>
<Rose::Icon
@name='flight-icons/identity-user-16'
@name='flight-icons/svg/identity-user-16'
@size='medium'
/>
{{t 'resources.role.title_plural'}}
@@ -127,7 +139,7 @@
{{/if}}
{{#if (can 'navigate collection' @model collection='auth-methods')}}
<nav.link @route='scopes.scope.auth-methods'>
<Rose::Icon @name='flight-icons/lock-16' @size='medium' />
<Rose::Icon @name='flight-icons/svg/lock-16' @size='medium' />
{{t 'resources.auth-method.title_plural'}}
</nav.link>
{{/if}}
@@ -2,8 +2,8 @@
@text={{this.scopes.selectedOrg.displayName}}
@icon={{if
this.scopes.selectedOrg.isGlobal
'flight-icons/globe-16'
'flight-icons/org-16'
'flight-icons/svg/globe-16'
'flight-icons/svg/org-16'
}}
as |dropdown|
>
@@ -23,7 +23,7 @@
{{#if this.scopes.selectedProject}}
<Rose::Dropdown
@text={{this.scopes.selectedProject.displayName}}
@icon='flight-icons/grid-16'
@icon='flight-icons/svg/grid-16'
as |dropdown|
>
{{#each this.scopes.projects as |scope|}}
@@ -1,18 +1,18 @@
<Rose::Nav::Sidebar @title={{t 'titles.iam'}} as |nav|>
<nav.link @route='scopes.scope.users'>
<Rose::Icon @name='flight-icons/users-16' @size='medium' />
<Rose::Icon @name='flight-icons/svg/users-16' @size='medium' />
{{t 'resources.user.title_plural'}}
</nav.link>
<nav.link @route='scopes.scope.groups'>
<Rose::Icon @name='flight-icons/folder-users-16' @size='medium' />
<Rose::Icon @name='flight-icons/svg/folder-users-16' @size='medium' />
{{t 'resources.group.title_plural'}}
</nav.link>
<nav.link @route='scopes.scope.roles'>
<Rose::Icon @name='flight-icons/identity-user-16' @size='medium' />
<Rose::Icon @name='flight-icons/svg/identity-user-16' @size='medium' />
{{t 'resources.role.title_plural'}}
</nav.link>
<nav.link @route='scopes.scope.auth-methods'>
<Rose::Icon @name='flight-icons/lock-16' @size='medium' />
<Rose::Icon @name='flight-icons/svg/lock-16' @size='medium' />
{{t 'resources.auth-method.title_plural'}}
</nav.link>
</Rose::Nav::Sidebar>
@@ -3,9 +3,11 @@
@text={{t (concat 'states.' @model.attributes.state)}}
@icon={{if
@model.isInactive
'flight-icons/x-circle-16'
'flight-icons/svg/x-circle-16'
(if
@model.isPrivate 'flight-icons/lock-16' 'flight-icons/check-circle-16'
@model.isPrivate
'flight-icons/svg/lock-16'
'flight-icons/svg/check-circle-16'
)
}}
@dropdownRight={{true}}
@@ -140,7 +140,7 @@
<message.link
@route='scopes.scope.auth-methods.auth-method.accounts.new'
>
<Rose::Icon @name='flight-icons/plus-circle-16' />
<Rose::Icon @name='flight-icons/svg/plus-circle-16' />
{{t 'resources.account.actions.create'}}
</message.link>
{{/if}}
@@ -129,7 +129,7 @@
@dropdownRight={{true}}
@iconOnly={{true}}
@showCaret={{false}}
@icon='flight-icons/more-horizontal-16'
@icon='flight-icons/svg/more-horizontal-16'
as |dropdown|
>
{{#unless authMethod.isPrimary}}
@@ -16,7 +16,7 @@
}}</p>
<Rose::Dropdown
@text={{t 'actions.choose-different-org'}}
@icon='flight-icons/org-16'
@icon='flight-icons/svg/org-16'
as |dropdown|
>
<dropdown.link @route='scopes.scope.authenticate' @model='global'>
@@ -79,7 +79,7 @@
<Rose::Layout::Centered>
<Rose::Message
@title={{t 'resources.auth-method.messages.none.title'}}
@icon='flight-icons/alert-circle-16'
@icon='flight-icons/svg/alert-circle-16'
as |message|
>
<message.description>
@@ -2,7 +2,7 @@
<Rose::Layout::Centered>
<Rose::Message
@title={{t 'resources.auth-method.messages.none.title'}}
@icon='flight-icons/alert-circle-16'
@icon='flight-icons/svg/alert-circle-16'
as |message|
>
<message.description>
@@ -92,7 +92,7 @@
<message.link
@route='scopes.scope.credential-stores.credential-store.credential-libraries.new'
>
<Rose::Icon @name='flight-icons/plus-circle-16' />
<Rose::Icon @name='flight-icons/svg/plus-circle-16' />
{{t 'titles.new'}}
</message.link>
{{/if}}
@@ -107,7 +107,7 @@
(can 'create collection' this.scope collection='credential-stores')
}}
<message.link @route='scopes.scope.credential-stores.new'>
<Rose::Icon @name='flight-icons/plus-circle-16' />
<Rose::Icon @name='flight-icons/svg/plus-circle-16' />
{{t 'titles.new'}}
</message.link>
{{/if}}
@@ -27,7 +27,7 @@
</row.cell>
<row.cell>
<Rose::Dropdown
@icon='flight-icons/more-horizontal-16'
@icon='flight-icons/svg/more-horizontal-16'
@iconOnly={{true}}
@showCaret={{false}}
@dropdownRight={{true}}
@@ -58,7 +58,7 @@
{{t 'resources.group.messages.members.description'}}
</message.description>
<message.link @route='scopes.scope.groups.group.add-members'>
<Rose::Icon @name='flight-icons/plus-circle-16' />
<Rose::Icon @name='flight-icons/svg/plus-circle-16' />
{{t 'resources.group.actions.add-members'}}
</message.link>
</Rose::Message>
@@ -90,7 +90,7 @@
</message.description>
{{#if (can 'create collection' this.scope collection='groups')}}
<message.link @route='scopes.scope.groups.new'>
<Rose::Icon @name='flight-icons/plus-circle-16' />
<Rose::Icon @name='flight-icons/svg/plus-circle-16' />
{{t 'titles.new'}}
</message.link>
{{/if}}
@@ -37,7 +37,7 @@
</row.cell>
<row.cell>
<Rose::Dropdown
@icon='flight-icons/more-horizontal-16'
@icon='flight-icons/svg/more-horizontal-16'
@iconOnly={{true}}
@showCaret={{false}}
@dropdownRight={{true}}
@@ -70,7 +70,7 @@
</message.description>
{{!--
<message.link @route="scopes.scope.host-catalogs.host-catalog.host-sets.host-set.create-and-add-host">
<Rose::Icon @name="flight-icons/plus-circle-16" />
<Rose::Icon @name="flight-icons/svg/plus-circle-16" />
{{t "resources.host-set.actions.create-and-add-host"}}
</message.link>
--}}
@@ -77,7 +77,7 @@
<message.link
@route='scopes.scope.host-catalogs.host-catalog.host-sets.new'
>
<Rose::Icon @name='flight-icons/plus-circle-16' />
<Rose::Icon @name='flight-icons/svg/plus-circle-16' />
{{t 'titles.new'}}
</message.link>
{{/if}}
@@ -82,7 +82,7 @@
<message.link
@route='scopes.scope.host-catalogs.host-catalog.hosts.new'
>
<Rose::Icon @name='flight-icons/plus-circle-16' />
<Rose::Icon @name='flight-icons/svg/plus-circle-16' />
{{t 'titles.new'}}
</message.link>
{{/if}}
@@ -109,7 +109,7 @@
(can 'create collection' this.scope collection='host-catalogs')
}}
<message.link @route='scopes.scope.host-catalogs.new'>
<Rose::Icon @name='flight-icons/plus-circle-16' />
<Rose::Icon @name='flight-icons/svg/plus-circle-16' />
{{t 'titles.new'}}
</message.link>
{{/if}}
@@ -89,7 +89,7 @@
</message.description>
{{#if (can 'create collection' this.scope collection='roles')}}
<message.link @route='scopes.scope.roles.new'>
<Rose::Icon @name='flight-icons/plus-circle-16' />
<Rose::Icon @name='flight-icons/svg/plus-circle-16' />
{{t 'titles.new'}}
</message.link>
{{/if}}
@@ -31,7 +31,7 @@
</row.cell>
<row.cell>
<Rose::Dropdown
@icon='flight-icons/more-horizontal-16'
@icon='flight-icons/svg/more-horizontal-16'
@iconOnly={{true}}
@showCaret={{false}}
@dropdownRight={{true}}
@@ -62,7 +62,7 @@
{{t 'resources.role.principal.messages.welcome.description'}}
</message.description>
<message.link @route='scopes.scope.roles.role.add-principals'>
<Rose::Icon @name='flight-icons/plus-circle-16' />
<Rose::Icon @name='flight-icons/svg/plus-circle-16' />
{{t 'resources.role.principal.actions.add-principals'}}
</message.link>
</Rose::Message>
@@ -47,8 +47,8 @@
@id={{scope.id}}
@icon={{if
scope.isOrg
'flight-icons/org-16'
'flight-icons/grid-16'
'flight-icons/svg/org-16'
'flight-icons/svg/grid-16'
}}
@route='scopes.scope'
@model={{scope.id}}
@@ -71,7 +71,7 @@
(can 'create collection' @model.currentScope collection='scopes')
}}
<message.link @route='scopes.scope.new'>
<Rose::Icon @name='flight-icons/plus-circle-16' />
<Rose::Icon @name='flight-icons/svg/plus-circle-16' />
{{t 'titles.new'}}
</message.link>
{{/if}}
@@ -92,7 +92,7 @@
(can 'create collection' @model.currentScope collection='scopes')
}}
<message.link @route='scopes.scope.new'>
<Rose::Icon @name='flight-icons/plus-circle-16' />
<Rose::Icon @name='flight-icons/svg/plus-circle-16' />
{{t 'titles.new'}}
</message.link>
{{/if}}
@@ -36,7 +36,7 @@
'session-status-'
sessionAggregate.session.status
}}
@name='flight-icons/entry-point-16'
@name='flight-icons/svg/entry-point-16'
@size='medium'
/>
<Copyable
@@ -104,7 +104,7 @@
{{#if (can 'create collection' this.scope collection='targets')}}
<message.link @route='scopes.scope.targets.new'>
<Rose::Icon @name='flight-icons/plus-circle-16' />
<Rose::Icon @name='flight-icons/svg/plus-circle-16' />
{{t 'titles.new'}}
</message.link>
{{/if}}
@@ -19,7 +19,7 @@
{{t 'resources.target.credential-library.messages.none.description'}}
</message.description>
<message.link @route='scopes.scope.targets.target.credential-libraries'>
<Rose::Icon @name='flight-icons/chevron-left-16' />
<Rose::Icon @name='flight-icons/svg/chevron-left-16' />
{{t 'actions.back'}}
</message.link>
</Rose::Message>
@@ -20,7 +20,7 @@
{{t 'resources.target.host-set.messages.none.description'}}
</message.description>
<message.link @route='scopes.scope.targets.target.host-sets'>
<Rose::Icon @name='flight-icons/chevron-left-16' />
<Rose::Icon @name='flight-icons/svg/chevron-left-16' />
{{t 'actions.back'}}
</message.link>
</Rose::Message>
@@ -44,7 +44,7 @@
</row.cell>
<row.cell>
<Rose::Dropdown
@icon='flight-icons/more-horizontal-16'
@icon='flight-icons/svg/more-horizontal-16'
@iconOnly={{true}}
@showCaret={{false}}
@dropdownRight={{true}}
@@ -82,7 +82,7 @@
<message.link
@route='scopes.scope.targets.target.add-credential-libraries'
>
<Rose::Icon @name='flight-icons/plus-circle-16' />
<Rose::Icon @name='flight-icons/svg/plus-circle-16' />
{{t 'resources.target.actions.add-credential-libraries'}}
</message.link>
</Rose::Message>
@@ -34,7 +34,7 @@
</row.cell>
<row.cell>
<Rose::Dropdown
@icon='flight-icons/more-horizontal-16'
@icon='flight-icons/svg/more-horizontal-16'
@iconOnly={{true}}
@showCaret={{false}}
@dropdownRight={{true}}
@@ -68,7 +68,7 @@
{{t 'resources.target.host-set.messages.welcome.description'}}
</message.description>
<message.link @route='scopes.scope.targets.target.add-host-sets'>
<Rose::Icon @name='flight-icons/plus-circle-16' />
<Rose::Icon @name='flight-icons/svg/plus-circle-16' />
{{t 'resources.target.actions.add-host-sets'}}
</message.link>
</Rose::Message>
@@ -89,7 +89,7 @@
</message.description>
{{#if (can 'create collection' this.scope collection='users')}}
<message.link @route='scopes.scope.users.new'>
<Rose::Icon @name='flight-icons/plus-circle-16' />
<Rose::Icon @name='flight-icons/svg/plus-circle-16' />
{{t 'titles.new'}}
</message.link>
{{/if}}
@@ -34,7 +34,7 @@
</row.cell>
<row.cell>
<Rose::Dropdown
@icon='flight-icons/more-horizontal-16'
@icon='flight-icons/svg/more-horizontal-16'
@iconOnly={{true}}
@showCaret={{false}}
@dropdownRight={{true}}
@@ -68,7 +68,7 @@
{{t 'resources.user.messages.accounts.description'}}
</message.description>
<message.link @route='scopes.scope.users.user.add-accounts'>
<Rose::Icon @name='flight-icons/plus-circle-16' />
<Rose::Icon @name='flight-icons/svg/plus-circle-16' />
{{t 'resources.user.actions.add-accounts'}}
</message.link>
</Rose::Message>
@@ -20,7 +20,7 @@
{{t 'resources.user.messages.no-accounts.description'}}
</message.description>
<message.link @route='scopes.scope.users.user.accounts'>
<Rose::Icon @name='flight-icons/chevron-left-16' />
<Rose::Icon @name='flight-icons/svg/chevron-left-16' />
{{t 'actions.back'}}
</message.link>
</Rose::Message>
+29 -29
View File
@@ -35,63 +35,63 @@
"ember-named-blocks-polyfill": "^0.2.4"
},
"devDependencies": {
"@babel/core": "^7.9.6",
"@babel/core": "^7.15.5",
"@ember/optional-features": "^2.0.0",
"@ember/render-modifiers": "^1.0.2",
"@ember/test-helpers": "^2.2.8",
"@glimmer/component": "^1.0.3",
"@glimmer/tracking": "^1.0.3",
"@ember/test-helpers": "^2.4.2",
"@glimmer/component": "^1.0.4",
"@glimmer/tracking": "^1.0.4",
"babel-eslint": "^10.1.0",
"babel-loader": "^8.1.0",
"babel-loader": "^8.2.2",
"broccoli-asset-rev": "^3.0.0",
"clipboard": "^2.0.6",
"clipboard": "^2.0.8",
"core": "*",
"doctoc": "^2.0.0",
"ember-a11y-testing": "^4.0.7",
"ember-auto-import": "^1.10.1",
"doctoc": "^2.0.1",
"ember-a11y-testing": "^4.2.0",
"ember-auto-import": "^1.12.0",
"ember-breadcrumbs": "^0.2.3",
"ember-cli": "~3.28.0",
"ember-cli-app-version": "^5.0.0",
"ember-cli-babel": "^7.23.0",
"ember-cli-code-coverage": "^1.0.2",
"ember-cli-babel": "^7.26.6",
"ember-cli-code-coverage": "^1.0.3",
"ember-cli-content-security-policy": "^1.1.1",
"ember-cli-dependency-checker": "^3.2.0",
"ember-cli-htmlbars": "^5.3.1",
"ember-cli-htmlbars": "^5.7.1",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-sass": "^10.0.1",
"ember-cli-sri": "^2.1.1",
"ember-cli-template-lint": "^2.0.2",
"ember-cli-terser": "^4.0.1",
"ember-cli-terser": "^4.0.2",
"ember-cli-update": "^0.54.6",
"ember-concurrency": "^1.3.0",
"ember-exam": "^6.0.1",
"ember-exam": "^6.1.0",
"ember-export-application-global": "^2.0.1",
"ember-inline-svg": "^1.0.0",
"ember-load-initializers": "^2.1.2",
"ember-maybe-import-regenerator": "^0.1.6",
"ember-modifier": "^2.1.1",
"ember-notify": "^6.0.0",
"ember-page-title": "^6.0.3",
"ember-qunit": "^5.1.1",
"ember-resolver": "^8.0.2",
"ember-maybe-import-regenerator": "^1.0.0",
"ember-modifier": "^2.1.2",
"ember-notify": "^6.0.1",
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
"ember-source": "~3.24.0",
"ember-template-lint": "^2.15.0",
"ember-template-lint": "^3.7.0",
"ember-template-lint-plugin-prettier": "^2.0.0",
"eslint": "^7.31.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-ember": "^10.1.1",
"eslint-plugin-ember": "^10.5.4",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-prettier": "^4.0.0",
"faker": "^5.5.3",
"loader.js": "^4.7.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.3.0",
"qunit": "^2.13.0",
"qunit-dom": "^1.6.0",
"prettier": "^2.4.0",
"qunit": "^2.17.1",
"qunit-dom": "^2.0.0",
"rose": "*",
"sass": "^1.36.0",
"sass": "^1.41.0",
"sass-lint": "^1.13.1",
"sinon": "^11.1.1"
"sinon": "^11.1.2"
},
"engines": {
"node": ">=10 <=15"
+1
View File
@@ -4,6 +4,7 @@ module.exports = {
plugins: ['ember-template-lint-plugin-prettier'],
extends: ['octane', 'ember-template-lint-plugin-prettier:recommended'],
rules: {
'no-passed-in-event-handlers': false,
'no-bare-strings': true,
'no-curly-component-invocation': { allow: ['app-name'] },
'no-implicit-this': { allow: ['app-name', 'is-loading'] },
+18 -1
View File
@@ -67,7 +67,17 @@ To run as a desktop app:
The Boundary CLI is downloaded and extracted to `electron-app/cli/` folder as part of
build. CLI version is defined in `electron-app/config/cli.js`.
#### Environment Variables
### Developing Using Non-Release Versions of Boundary
You can also develop using a non-release version of Boundary - bypassing the
above CLI download behavior - by manually placing the version of Boundary that
you want to develop with in the `electron-app/cli/` directly (you may need to
create the directory).
After doing this, run yarn with `BYPASS_CLI_SETUP=true`; example:
`BYPASS_CLI_SETUP=true yarn start:desktop`.
### Environment Variables
These environment variables may be used to customized the build.
@@ -78,6 +88,7 @@ These environment variables may be used to customized the build.
| `APP_UPDATER_LATEST_VERSION_TAG` | Next version for comparison with current version. |
| `APP_UPDATER_LATEST_VERSION_LOCATION` | Location of app release to use for updating client. Can be a filepath or url. |
| `BYPASS_CLI_SETUP` | Disable download and extraction of cli. For development use only. |
| `BYPASS_APP_UPDATER` | Disable app updater feature. For development use only. |
| `DISABLE_WINDOW_CHROME` | Disable window chrome. For internal use only. |
### Building for Production
@@ -98,6 +109,11 @@ The static production assets are saved into the `dist/` folder.
The Boundary CLI is downloaded and extracted to `electron-app/cli/` folder as part of
packaging. CLI version is defined in `electron-app/config/cli.js`.
Similar to running in development, you can also use `BYPASS_CLI_SETUP=true` to
bypass the download of the CLI, which can be useful for pre-release testing. See
[Developing Using Non-Release Versions of
Boundary](#developing-using-non-release-versions-of-boundary) for more details.
To build debian based linux artifacts on MacOS, additional [MacOS tools](https://www.electronforge.io/config/makers/deb) need to be installed before running the following commands from this folder.
```
@@ -114,6 +130,7 @@ These environment variables may be used to customized the build.
| -------- | ------------- | ----------- |
| `APP_NAME` | Application Name | The user-facing name of the application, appearing in titles, etc. |
| `BOUNDARY_DESKTOP_SIGNING_IDENTITY` | | The name of the certificate to use when signing (e.g. Developer ID Application: * (*)). |
| `BYPASS_CLI_SETUP` | Set to `true` to launch without bootstrapping the CLI (see above). |
### Running Tests
+2 -2
View File
@@ -13,8 +13,8 @@ export default class CopyableComponent extends Component {
id = generateComponentID();
copyableButtonId = `copyable-button-${this.id}`;
actionIcon = 'flight-icons/clipboard-copy-16';
successIcon = 'flight-icons/clipboard-checked-16';
actionIcon = 'flight-icons/svg/clipboard-copy-16';
successIcon = 'flight-icons/svg/clipboard-checked-16';
actionText = this.args.buttonText;
successText = this.args.acknowledgeText;
@@ -3,8 +3,8 @@
@style='ghost'
@iconOnly={{if
this.isHidden
'flight-icons/eye-16'
'flight-icons/eye-off-16'
'flight-icons/svg/eye-16'
'flight-icons/svg/eye-off-16'
}}
{{on 'click' this.toggleSecretVisibility}}
>
+6 -6
View File
@@ -21,21 +21,21 @@
<header.utilities as |utilities|>
{{#if this.isWindowChromeless}}
<Rose::Button
@iconOnly='flight-icons/x-16'
@iconOnly='flight-icons/svg/x-16'
@style='warning'
class='button-window-close'
title={{t 'actions.close'}}
{{on 'click' (route-action 'close')}}
/>
<Rose::Button
@iconOnly='flight-icons/square-16'
@iconOnly='flight-icons/svg/square-16'
@style='secondary'
class='button-window-fullscreen'
title={{t 'actions.fullscreen'}}
{{on 'click' (route-action 'toggleFullScreen')}}
/>
<Rose::Button
@iconOnly='flight-icons/minus-16'
@iconOnly='flight-icons/svg/minus-16'
@style='secondary'
class='button-window-minimize'
title={{t 'actions.minimize'}}
@@ -46,7 +46,7 @@
{{#if this.session.isAuthenticated}}
<utilities.dropdown
@text={{this.session.data.authenticated.username}}
@icon='flight-icons/user-circle-16'
@icon='flight-icons/svg/user-circle-16'
as |dropdown|
>
<dropdown.button {{on 'click' (route-action 'invalidateSession')}}>
@@ -110,7 +110,7 @@
<Rose::Dialog
@heading={{t 'states.error'}}
@dismissButtonText={{t 'actions.ok'}}
@icon='flight-icons/x-square-16'
@icon='flight-icons/svg/x-square-16'
@style='error'
@modal={{true}}
@dismiss={{deny}}
@@ -137,7 +137,7 @@
<Rose::Dialog
@heading={{t 'actions.confirm'}}
@dismissButtonText={{t 'actions.cancel'}}
@icon='flight-icons/alert-triangle-16'
@icon='flight-icons/svg/alert-triangle-16'
@style='warning'
@modal={{true}}
@dismiss={{deny}}
@@ -2,8 +2,8 @@
@text={{this.scopes.selectedOrg.displayName}}
@icon={{if
this.scopes.selectedOrg.isGlobal
'flight-icons/globe-16'
'flight-icons/org-16'
'flight-icons/svg/globe-16'
'flight-icons/svg/org-16'
}}
as |dropdown|
>
@@ -11,7 +11,7 @@
<Rose::Dropdown
@text={{t 'actions.choose-different-org'}}
@icon='flight-icons/org-16'
@icon='flight-icons/svg/org-16'
as |dropdown|
>
<dropdown.link @route='scopes.scope.authenticate' @model='global'>
@@ -67,7 +67,7 @@
<Rose::Layout::Centered>
<Rose::Message
@title={{t 'resources.auth-method.messages.none.title'}}
@icon='flight-icons/alert-circle-16'
@icon='flight-icons/svg/alert-circle-16'
as |message|
>
<message.description>
@@ -2,7 +2,7 @@
<Rose::Layout::Centered>
<Rose::Message
@title={{t 'resources.auth-method.messages.none.title'}}
@icon='flight-icons/alert-circle-16'
@icon='flight-icons/svg/alert-circle-16'
as |message|
>
<message.description>
@@ -2,12 +2,12 @@
<sidebarLayout.sidebar>
<Rose::Nav::Sidebar as |nav|>
<nav.link @route='scopes.scope.projects.targets'>
<Rose::Icon @name='flight-icons/crosshair-16' @size='medium' />
<Rose::Icon @name='flight-icons/svg/crosshair-16' @size='medium' />
{{t 'resources.target.title_plural'}}
</nav.link>
<nav.link @route='scopes.scope.projects.sessions'>
<Rose::Icon @name='flight-icons/entry-point-16' @size='medium' />
<Rose::Icon @name='flight-icons/svg/entry-point-16' @size='medium' />
{{t 'resources.session.title_plural'}}
</nav.link>
</Rose::Nav::Sidebar>
@@ -29,7 +29,7 @@
<row.headerCell class='nowrap'>
<Rose::Icon
class={{concat 'session-status-' model.status}}
@name='flight-icons/entry-point-16'
@name='flight-icons/svg/entry-point-16'
@size='medium'
/>
<Copyable
@@ -44,7 +44,7 @@
credential.library.name
(concat ' (' credential.library.name ')')
}}'
@icon='flight-icons/key-16'
@icon='flight-icons/svg/key-16'
>
<:header>
<Rose::Dropdown
@@ -74,12 +74,14 @@
</Rose::Badge>
</row.cell>
<row.cell>
<Rose::Button
@style='secondary'
{{on 'click' (route-action 'connect' model)}}
>
{{t 'resources.session.actions.connect'}}
</Rose::Button>
{{#if (can 'connect target' model)}}
<Rose::Button
@style='secondary'
{{on 'click' (route-action 'connect' model)}}
>
{{t 'resources.session.actions.connect'}}
</Rose::Button>
{{/if}}
</row.cell>
</body.row>
{{/each}}
@@ -17,7 +17,7 @@
<row.cell class='nowrap'>
<Rose::Icon
class={{concat 'session-status-' session.status}}
@name='flight-icons/entry-point-16'
@name='flight-icons/svg/entry-point-16'
@size='medium'
/>
<Copyable
+15 -14
View File
@@ -4,20 +4,6 @@ const { isMac } = require('../src/helpers/platform.js');
const fs = require('fs');
const path = require('path');
console.log(`\n[forge-config] Release commit: ${config.releaseCommit}`);
console.log(`[forge-config] Release version: ${config.releaseVersion}`);
// MacOS signing identity.
// Ignore signing identity warning for debian builds run on MacOS
if (
isMac() &&
!process.env.BOUNDARY_DESKTOP_SIGNING_IDENTITY &&
!process.env.BUILD_DEBIAN
)
console.warn(
'[forge-config] WARNING: Could not find signing identity. Proceeding without signing.'
);
module.exports = {
packagerConfig: {
ignore: ['/ember-test(/|$)', '/tests(/|$)'],
@@ -65,6 +51,21 @@ module.exports = {
},
],
hooks: {
prePackage: () => {
console.log(`\n[package] Release commit: ${config.releaseCommit}`);
console.log(`[package] Release version: ${config.releaseVersion}`);
// Check for MacOS signing identity.
// Ignore signing identity warning for debian builds made on MacOS
if (
isMac() &&
!process.env.BOUNDARY_DESKTOP_SIGNING_IDENTITY &&
!process.env.BUILD_DEBIAN
)
console.warn(
'[package] WARNING: Could not find signing identity. Proceeding without signing.'
);
},
postPackage: async (forgeConfig, options) => {
if (options.spinner) {
options.spinner.info(
@@ -124,6 +124,11 @@ const displayDownloadPrompt = (version, url) => {
**/
module.exports = {
run: async ({ suppressNoUpdatePrompt } = {}) => {
/**
* Ignore app updater prompts.
*/
if (process.env.BYPASS_APP_UPDATER) return;
/**
* Disable app updater check for linux as update is unsupported.
* TODO: Enable for windows pending feature dev. Windows is supported.
+7 -1
View File
@@ -143,7 +143,13 @@ app.on('ready', async () => {
// To show app icon in toolbar in linux, set browser window icon.
// This is a limitation of electron build.
if (isLinux())
browserWindowOptions.icon = path.join(__dirname, '..', 'assets', 'app-icons', 'icon.png');
browserWindowOptions.icon = path.join(
__dirname,
'..',
'assets',
'app-icons',
'icon.png'
);
mainWindow = new BrowserWindow(browserWindowOptions);
+32 -32
View File
@@ -51,65 +51,65 @@
"ember-named-blocks-polyfill": "^0.2.4"
},
"devDependencies": {
"@doyensec/electronegativity": "^1.8.1",
"@doyensec/electronegativity": "^1.9.1",
"@ember/optional-features": "^2.0.0",
"@ember/render-modifiers": "^1.0.2",
"@ember/test-helpers": "^2.2.8",
"@glimmer/component": "^1.0.3",
"@glimmer/tracking": "^1.0.3",
"@ember/test-helpers": "^2.4.2",
"@glimmer/component": "^1.0.4",
"@glimmer/tracking": "^1.0.4",
"babel-eslint": "^10.1.0",
"babel-loader": "^8.1.0",
"babel-loader": "^8.2.2",
"broccoli-asset-rev": "^3.0.0",
"clipboard": "^2.0.6",
"clipboard": "^2.0.8",
"core": "*",
"cross-env": "^7.0.3",
"cross-os": "^1.4.0",
"doctoc": "^2.0.0",
"ember-a11y-testing": "^4.0.7",
"ember-auto-import": "^1.10.1",
"ember-autofocus-modifier": "^1.1.0",
"doctoc": "^2.0.1",
"ember-a11y-testing": "^4.2.0",
"ember-auto-import": "^1.12.0",
"ember-autofocus-modifier": "^2.0.0",
"ember-cli": "~3.28.0",
"ember-cli-app-version": "^5.0.0",
"ember-cli-babel": "^7.23.0",
"ember-cli-code-coverage": "^1.0.2",
"ember-cli-babel": "^7.26.6",
"ember-cli-code-coverage": "^1.0.3",
"ember-cli-dependency-checker": "^3.2.0",
"ember-cli-htmlbars": "^5.3.1",
"ember-cli-htmlbars": "^5.7.1",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-sass": "^10.0.1",
"ember-cli-sri": "^2.1.1",
"ember-cli-template-lint": "^2.0.2",
"ember-cli-terser": "^4.0.1",
"ember-cli-terser": "^4.0.2",
"ember-concurrency": "^1.3.0",
"ember-electron": "^3.0.0",
"ember-exam": "^6.0.1",
"ember-exam": "^6.1.0",
"ember-export-application-global": "^2.0.1",
"ember-inline-svg": "^1.0.0",
"ember-load-initializers": "^2.1.2",
"ember-maybe-import-regenerator": "^0.1.6",
"ember-modifier": "^2.1.1",
"ember-notify": "^6.0.0",
"ember-page-title": "^6.0.3",
"ember-qunit": "^5.1.1",
"ember-resolver": "^8.0.2",
"ember-maybe-import-regenerator": "^1.0.0",
"ember-modifier": "^2.1.2",
"ember-notify": "^6.0.1",
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
"ember-source": "~3.24.0",
"ember-template-lint": "^2.15.0",
"ember-template-lint": "^3.7.0",
"ember-template-lint-plugin-prettier": "^2.0.0",
"eslint": "^7.31.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-ember": "^10.1.1",
"eslint-plugin-ember": "^10.5.4",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-prettier": "^4.0.0",
"faker": "^5.5.3",
"loader.js": "^4.7.0",
"npm-run-all": "^4.1.5",
"prettier": "^2.3.0",
"qunit": "^2.13.0",
"qunit-dom": "^1.6.0",
"prettier": "^2.4.0",
"qunit": "^2.17.1",
"qunit-dom": "^2.0.0",
"rose": "*",
"sass": "^1.36.0",
"sinon": "^11.1.1",
"stylelint": "^13.8.0",
"stylelint-config-sass-guidelines": "^7.1.0"
"sass": "^1.41.0",
"sinon": "^11.1.2",
"stylelint": "^13.13.1",
"stylelint-config-sass-guidelines": "^8.0.0"
},
"engines": {
"node": ">=10 <=15"
@@ -100,7 +100,9 @@ module('Acceptance | projects | targets', function (hooks) {
);
instances.target = this.server.create(
'target',
{ scope: instances.scopes.project },
{
scope: instances.scopes.project,
},
'withAssociations'
);
@@ -253,6 +255,24 @@ module('Acceptance | projects | targets', function (hooks) {
await visit(urls.targets);
});
test('cannot connect to a target without proper authorization', async function (assert) {
assert.expect(3);
instances.target.update({
authorized_actions: instances.target.authorized_actions.filter(
(action) => action != 'authorize-session'
),
});
assert.notOk(
instances.target.authorized_actions.includes('authorize-session')
);
later(async () => {
run.cancelTimers();
assert.ok(find('tbody tr:first-child'));
assert.notOk(find('tbody tr:first-child td:last-child button'));
}, 750);
await visit(urls.targets);
});
test('handles cli error on connect', async function (assert) {
assert.expect(4);
stubs.ipcService.withArgs('cliExists').returns(true);
@@ -30,7 +30,7 @@ module('Integration | Component | card', function (hooks) {
await render(hbs`
<Card
@heading='This is a heading test'
@icon='flight-icons/key-16'>
@icon='flight-icons/svg/key-16'>
<:header></:header>
<:body></:body>
<:footer></:footer>
Loaded 100 of 101 files, more files were not shown because too many files have changed in this diff. Show more