From 644b2d203f240cf5fd540185452e91ce6ef55cff Mon Sep 17 00:00:00 2001 From: Stanislav Romanov Date: Tue, 30 Aug 2022 10:55:54 +0300 Subject: [PATCH] Add key route --- app/components/form-element.hbs | 19 +++++++++ app/router.js | 2 +- app/routes/admin/keys.js | 9 +--- app/routes/admin/keys/index.js | 10 +++++ app/routes/admin/keys/key.js | 9 +++- app/services/meilisearch.js | 4 ++ app/templates/admin/keys.hbs | 14 +------ app/templates/admin/keys/index.hbs | 13 ++++++ app/templates/admin/keys/key.hbs | 42 ++++++++++++++++++- .../components/form-element-test.js | 26 ++++++++++++ tests/unit/routes/admin/keys/index-test.js | 11 +++++ 11 files changed, 134 insertions(+), 25 deletions(-) create mode 100644 app/components/form-element.hbs create mode 100644 app/routes/admin/keys/index.js create mode 100644 app/templates/admin/keys/index.hbs create mode 100644 tests/integration/components/form-element-test.js create mode 100644 tests/unit/routes/admin/keys/index-test.js diff --git a/app/components/form-element.hbs b/app/components/form-element.hbs new file mode 100644 index 0000000..897dcfd --- /dev/null +++ b/app/components/form-element.hbs @@ -0,0 +1,19 @@ +
+ {{#if @label}} + + {{/if}} + + {{#if (has-block)}} + {{yield}} + {{else}} + {{@value}} + {{/if}} + + {{#if @helper}} +
+ {{@helper}} +
+ {{/if}} +
diff --git a/app/router.js b/app/router.js index 0999403..ed08932 100644 --- a/app/router.js +++ b/app/router.js @@ -16,7 +16,7 @@ Router.map(function () { }); }); this.route('keys', function () { - this.route('key'); + this.route('key', { path: '/:uid' }); }); }); this.route('login'); diff --git a/app/routes/admin/keys.js b/app/routes/admin/keys.js index b92f324..cb8d863 100644 --- a/app/routes/admin/keys.js +++ b/app/routes/admin/keys.js @@ -1,10 +1,3 @@ import Route from '@ember/routing/route'; -import { inject as service } from '@ember/service'; -export default class AdminKeysRoute extends Route { - @service meilisearch; - - model() { - return this.meilisearch.getKeys(); - } -} +export default class AdminKeysRoute extends Route {} diff --git a/app/routes/admin/keys/index.js b/app/routes/admin/keys/index.js new file mode 100644 index 0000000..258153d --- /dev/null +++ b/app/routes/admin/keys/index.js @@ -0,0 +1,10 @@ +import Route from '@ember/routing/route'; +import { inject as service } from '@ember/service'; + +export default class AdminKeysIndexRoute extends Route { + @service meilisearch; + + model() { + return this.meilisearch.getKeys(); + } +} diff --git a/app/routes/admin/keys/key.js b/app/routes/admin/keys/key.js index 17008f9..95eb9cf 100644 --- a/app/routes/admin/keys/key.js +++ b/app/routes/admin/keys/key.js @@ -1,3 +1,10 @@ import Route from '@ember/routing/route'; +import { inject as service } from '@ember/service'; -export default class AdminKeysKeyRoute extends Route {} +export default class AdminKeysKeyRoute extends Route { + @service meilisearch; + + model({ uid }) { + return this.meilisearch.getKey(uid); + } +} diff --git a/app/services/meilisearch.js b/app/services/meilisearch.js index 3a78d52..8011c09 100644 --- a/app/services/meilisearch.js +++ b/app/services/meilisearch.js @@ -24,4 +24,8 @@ export default class MeilisearchService extends Service { getKeys() { return query('keys'); } + + getKey(uid) { + return query(`keys/${uid}`); + } } diff --git a/app/templates/admin/keys.hbs b/app/templates/admin/keys.hbs index 8e9e706..c24cd68 100644 --- a/app/templates/admin/keys.hbs +++ b/app/templates/admin/keys.hbs @@ -1,13 +1 @@ -

Keys

- - - - - - {{data.name}} - - - - - - +{{outlet}} diff --git a/app/templates/admin/keys/index.hbs b/app/templates/admin/keys/index.hbs new file mode 100644 index 0000000..8e9e706 --- /dev/null +++ b/app/templates/admin/keys/index.hbs @@ -0,0 +1,13 @@ +

Keys

+ + + + + + {{data.name}} + + + + + + diff --git a/app/templates/admin/keys/key.hbs b/app/templates/admin/keys/key.hbs index 436ef93..0ef3f3d 100644 --- a/app/templates/admin/keys/key.hbs +++ b/app/templates/admin/keys/key.hbs @@ -1,2 +1,40 @@ -{{page-title "Key"}} -{{outlet}} \ No newline at end of file +

{{@model.name}}

+ + + + + + + + {{date-time-format + @model.expiresAt + year='numeric' + month='numeric' + day='numeric' + hour='numeric' + minute='numeric' + second='numeric' + }} + + + {{date-time-format + @model.createdAt + year='numeric' + month='numeric' + day='numeric' + hour='numeric' + minute='numeric' + second='numeric' + }} + + + {{date-time-format + @model.updatedAt + year='numeric' + month='numeric' + day='numeric' + hour='numeric' + minute='numeric' + second='numeric' + }} + diff --git a/tests/integration/components/form-element-test.js b/tests/integration/components/form-element-test.js new file mode 100644 index 0000000..28f4f40 --- /dev/null +++ b/tests/integration/components/form-element-test.js @@ -0,0 +1,26 @@ +import { module, test } from 'qunit'; +import { setupRenderingTest } from 'meiliadmin/tests/helpers'; +import { render } from '@ember/test-helpers'; +import { hbs } from 'ember-cli-htmlbars'; + +module('Integration | Component | form-element', function (hooks) { + setupRenderingTest(hooks); + + test('it renders', async function (assert) { + // Set any properties with this.set('myProperty', 'value'); + // Handle any actions with this.set('myAction', function(val) { ... }); + + await render(hbs``); + + assert.dom(this.element).hasText(''); + + // Template block usage: + await render(hbs` + + template block text + + `); + + assert.dom(this.element).hasText('template block text'); + }); +}); diff --git a/tests/unit/routes/admin/keys/index-test.js b/tests/unit/routes/admin/keys/index-test.js new file mode 100644 index 0000000..856290f --- /dev/null +++ b/tests/unit/routes/admin/keys/index-test.js @@ -0,0 +1,11 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'meiliadmin/tests/helpers'; + +module('Unit | Route | admin/keys/index', function (hooks) { + setupTest(hooks); + + test('it exists', function (assert) { + let route = this.owner.lookup('route:admin/keys/index'); + assert.ok(route); + }); +});