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");
+ });
+});