Skip to content

Commit 22c5f88

Browse files
committed
settings/tokens: Allow alt+click to navigate to new token creation page
1 parent dc4b98c commit 22c5f88

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

app/components/settings/api-tokens.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,20 @@ import { task } from 'ember-concurrency';
88
export default class ApiTokens extends Component {
99
@service store;
1010
@service notifications;
11+
@service router;
1112

1213
@tracked newToken;
1314

1415
get sortedTokens() {
1516
return this.args.tokens.filter(t => !t.isNew).sort((a, b) => (a.created_at < b.created_at ? 1 : -1));
1617
}
1718

18-
@action startNewToken() {
19-
this.newToken = this.store.createRecord('api-token');
19+
@action startNewToken(event) {
20+
if (event.altKey) {
21+
this.router.transitionTo('settings.tokens.new');
22+
} else {
23+
this.newToken = this.store.createRecord('api-token');
24+
}
2025
}
2126

2227
saveTokenTask = task(async () => {

tests/routes/settings/tokens/new-test.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,23 @@ module('/settings/tokens/new', function (hooks) {
1919
context.authenticateAs(user);
2020
}
2121

22+
test('can navigate to the route', async function (assert) {
23+
prepare(this);
24+
25+
await visit('/');
26+
assert.strictEqual(currentURL(), '/');
27+
28+
await click('[data-test-user-menu] [data-test-toggle]');
29+
await click('[data-test-user-menu] [data-test-settings]');
30+
assert.strictEqual(currentURL(), '/settings/profile');
31+
32+
await click('[data-test-settings-menu] [data-test-tokens] a');
33+
assert.strictEqual(currentURL(), '/settings/tokens');
34+
35+
await click('[data-test-new-token-button]', { altKey: true });
36+
assert.strictEqual(currentURL(), '/settings/tokens/new');
37+
});
38+
2239
test('access is blocked if unauthenticated', async function (assert) {
2340
await visit('/settings/tokens/new');
2441
assert.strictEqual(currentURL(), '/settings/tokens/new');

0 commit comments

Comments
 (0)