Merge remote-tracking branch 'origin/main' into chromeless-window-desktop-option
This commit is contained in:
101 files changed
+1181
-700
No files matched your search
@@ -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');
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export { default } from 'api/abilities/target';
|
||||
@@ -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
@@ -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
@@ -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
@@ -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"
|
||||
|
||||
@@ -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…" @icon="flight-icons/org-16" @showCaret={{showCaret}} as |dropdown|>
|
||||
<Rose::Dropdown @text="Choose One…" @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…" @icon="flight-icons/org-16" @iconOnly={{true}} as |dropdown|>
|
||||
<Rose::Dropdown @text="Choose One…" @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
@@ -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
@@ -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"
|
||||
},
|
||||
|
||||
@@ -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'],
|
||||
|
||||
@@ -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)}}
|
||||
>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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}}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
+1
-1
@@ -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}}
|
||||
|
||||
+2
-2
@@ -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
@@ -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"
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
|
||||
@@ -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}}
|
||||
>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
@@ -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
Reference in new issue
Block a user