diff --git a/README.md b/README.md index 6765300a..d4667662 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,6 @@ If you mounted alexandria with query params you can access the query params in you config service (as shown in the example above) with `this.alexandriaQueryParams.your_query_param`. - If you need to access the `alexandriaQueryParams` inside your config check that you define `modelMetaFilters` and/or `defaultModelMeta` as getters. If you don't need `alexandriaQueryParams` you can ignore the getters and just define the field as usual. @@ -106,7 +105,23 @@ export default class AlexandriaConfigService extends ConfigService { } ``` +As the Alexandria backend returns IDs for the user and groups you can add a +resolver from your project to turn the IDs to something the user can relate to. + +Just replace the identity functions on the config service. +__Example__: +```js +import ConfigService from "ember-alexandria/services/config"; +import { inject as service } from "@ember/service"; + +export default class AlexandriaConfigService extends ConfigService { + @service store; + + resolveUser(id) { return this.store.peekRecord("user", id); } + resolveGroup(id) { return this.store.peekRecord("group", id); } +} +``` Contributing ------------------------------------------------------------------------------ diff --git a/addon/components/document-details.hbs b/addon/components/document-details.hbs index eb92d1ac..8cb565ca 100644 --- a/addon/components/document-details.hbs +++ b/addon/components/document-details.hbs @@ -135,11 +135,11 @@

- {{@document.createdByUser}} + {{resolve-user @document.createdByUser}}

- {{@document.createdByGroup}} + {{resolve-group @document.createdByGroup}}

@@ -191,7 +191,7 @@ {{moment-format file.createdAt "DD.MM.YYYY HH:mm"}} - {{~file.createdByUser.fullName~}} + {{~resolve-user file.createdByUser~}} id; + resolveGroup = (id) => id; + /** * Defaults so we can lookup * `this.config.modelMetaFilters.document` diff --git a/app/helpers/resolve-group.js b/app/helpers/resolve-group.js new file mode 100644 index 00000000..4a6ed61a --- /dev/null +++ b/app/helpers/resolve-group.js @@ -0,0 +1 @@ +export { default } from "ember-alexandria/helpers/resolve-group"; diff --git a/app/helpers/resolve-user.js b/app/helpers/resolve-user.js new file mode 100644 index 00000000..cf51431b --- /dev/null +++ b/app/helpers/resolve-user.js @@ -0,0 +1 @@ +export { default } from "ember-alexandria/helpers/resolve-user"; diff --git a/tests/integration/helpers/resolve-group-test.js b/tests/integration/helpers/resolve-group-test.js new file mode 100644 index 00000000..ed58c967 --- /dev/null +++ b/tests/integration/helpers/resolve-group-test.js @@ -0,0 +1,16 @@ +import { render } from "@ember/test-helpers"; +import { hbs } from "ember-cli-htmlbars"; +import { setupRenderingTest } from "ember-qunit"; +import { module, test } from "qunit"; + +module("Integration | Helper | resolve-group", function (hooks) { + setupRenderingTest(hooks); + + test("it renders", async function (assert) { + this.id = "1234"; + + await render(hbs`{{resolve-group this.id}}`); + + assert.equal(this.element.textContent.trim(), "1234"); + }); +}); diff --git a/tests/integration/helpers/resolve-user-test.js b/tests/integration/helpers/resolve-user-test.js new file mode 100644 index 00000000..00b2493b --- /dev/null +++ b/tests/integration/helpers/resolve-user-test.js @@ -0,0 +1,16 @@ +import { render } from "@ember/test-helpers"; +import { hbs } from "ember-cli-htmlbars"; +import { setupRenderingTest } from "ember-qunit"; +import { module, test } from "qunit"; + +module("Integration | Helper | resolve-user", function (hooks) { + setupRenderingTest(hooks); + + test("it renders", async function (assert) { + this.id = "1234"; + + await render(hbs`{{resolve-group this.id}}`); + + assert.equal(this.element.textContent.trim(), "1234"); + }); +});