From 825d7caaa35199acc4e7274bb2814361e55abc9b Mon Sep 17 00:00:00 2001 From: Stanislav Romanov Date: Wed, 12 Oct 2022 16:34:08 +0300 Subject: [PATCH] Add form for all setting of an index --- app/components/index-setting.hbs | 2 +- app/components/index-setting.js | 2 +- app/components/tab.hbs | 2 +- app/models/index.js | 34 +++++++++++++++---- app/router.js | 4 ++- .../admin/indexes/item/settings/index.js | 3 ++ .../admin/indexes/item/settings/specific.js | 3 ++ app/templates/admin/indexes/item/settings.hbs | 9 +++-- .../admin/indexes/item/settings/index.hbs | 1 + .../admin/indexes/item/settings/specific.hbs | 3 ++ .../admin/indexes/item/settings/index-test.js | 11 ++++++ .../indexes/item/settings/specific-test.js | 11 ++++++ 12 files changed, 71 insertions(+), 14 deletions(-) create mode 100644 app/routes/admin/indexes/item/settings/index.js create mode 100644 app/routes/admin/indexes/item/settings/specific.js create mode 100644 app/templates/admin/indexes/item/settings/index.hbs create mode 100644 app/templates/admin/indexes/item/settings/specific.hbs create mode 100644 tests/unit/routes/admin/indexes/item/settings/index-test.js create mode 100644 tests/unit/routes/admin/indexes/item/settings/specific-test.js diff --git a/app/components/index-setting.hbs b/app/components/index-setting.hbs index 702026c..a796433 100644 --- a/app/components/index-setting.hbs +++ b/app/components/index-setting.hbs @@ -1,5 +1,5 @@
- + diff --git a/app/models/index.js b/app/models/index.js index a83611c..26e02ac 100644 --- a/app/models/index.js +++ b/app/models/index.js @@ -86,22 +86,42 @@ export default class Index { } getSetting(name) { - return query(`${this.path}/settings/${dasherize(name)}`); + let url = `${this.path}/settings`; + + if (name) { + url = `${url}/${dasherize(name)}`; + } + + return query(url); } - updateSetting(name, value) { - const method = ['faceting', 'pagination', 'typo-tolerance'].includes(name) - ? 'PATCH' - : 'PUT'; + updateSetting(value, name) { + const method = + name === undefined || + ['faceting', 'pagination', 'typo-tolerance'].includes(name) + ? 'PATCH' + : 'PUT'; - return query(`${this.path}/settings/${dasherize(name)}`, { + let url = `${this.path}/settings`; + + if (name) { + url = `${url}/${dasherize(name)}`; + } + + return query(url, { method: method, body: JSON.stringify(value), }); } resetSetting(name) { - return query(`${this.path}/settings/${dasherize(name)}`, { + let url = `${this.path}/settings`; + + if (name) { + url = `${url}/${dasherize(name)}`; + } + + return query(url, { method: 'DELETE', }); } diff --git a/app/router.js b/app/router.js index a2fa6c2..3bb888c 100644 --- a/app/router.js +++ b/app/router.js @@ -10,7 +10,9 @@ Router.map(function () { this.route('admin', function () { this.route('indexes', function () { this.route('item', { path: '/:index_uid' }, function () { - this.route('settings'); + this.route('settings', function () { + this.route('specific'); + }); this.route('info'); this.route('edit'); this.route('documents', function () { diff --git a/app/routes/admin/indexes/item/settings/index.js b/app/routes/admin/indexes/item/settings/index.js new file mode 100644 index 0000000..3e3cc5e --- /dev/null +++ b/app/routes/admin/indexes/item/settings/index.js @@ -0,0 +1,3 @@ +import Route from '@ember/routing/route'; + +export default class AdminIndexesItemSettingsIndexRoute extends Route {} diff --git a/app/routes/admin/indexes/item/settings/specific.js b/app/routes/admin/indexes/item/settings/specific.js new file mode 100644 index 0000000..adba3b9 --- /dev/null +++ b/app/routes/admin/indexes/item/settings/specific.js @@ -0,0 +1,3 @@ +import Route from '@ember/routing/route'; + +export default class AdminIndexesItemSettingsSpecificRoute extends Route {} diff --git a/app/templates/admin/indexes/item/settings.hbs b/app/templates/admin/indexes/item/settings.hbs index bc55029..4f6eb96 100644 --- a/app/templates/admin/indexes/item/settings.hbs +++ b/app/templates/admin/indexes/item/settings.hbs @@ -1,3 +1,6 @@ -{{#each @model.settingNames as |name|}} - -{{/each}} + + + + + +{{outlet}} diff --git a/app/templates/admin/indexes/item/settings/index.hbs b/app/templates/admin/indexes/item/settings/index.hbs new file mode 100644 index 0000000..294e084 --- /dev/null +++ b/app/templates/admin/indexes/item/settings/index.hbs @@ -0,0 +1 @@ + diff --git a/app/templates/admin/indexes/item/settings/specific.hbs b/app/templates/admin/indexes/item/settings/specific.hbs new file mode 100644 index 0000000..db4c0a7 --- /dev/null +++ b/app/templates/admin/indexes/item/settings/specific.hbs @@ -0,0 +1,3 @@ +{{#each @model.settingNames as |name|}} + +{{/each}} diff --git a/tests/unit/routes/admin/indexes/item/settings/index-test.js b/tests/unit/routes/admin/indexes/item/settings/index-test.js new file mode 100644 index 0000000..65344f3 --- /dev/null +++ b/tests/unit/routes/admin/indexes/item/settings/index-test.js @@ -0,0 +1,11 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'meiliadmin/tests/helpers'; + +module('Unit | Route | admin/indexes/item/settings/index', function (hooks) { + setupTest(hooks); + + test('it exists', function (assert) { + let route = this.owner.lookup('route:admin/indexes/item/settings/index'); + assert.ok(route); + }); +}); diff --git a/tests/unit/routes/admin/indexes/item/settings/specific-test.js b/tests/unit/routes/admin/indexes/item/settings/specific-test.js new file mode 100644 index 0000000..b630eae --- /dev/null +++ b/tests/unit/routes/admin/indexes/item/settings/specific-test.js @@ -0,0 +1,11 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'meiliadmin/tests/helpers'; + +module('Unit | Route | admin/indexes/item/settings/specific', function (hooks) { + setupTest(hooks); + + test('it exists', function (assert) { + let route = this.owner.lookup('route:admin/indexes/item/settings/specific'); + assert.ok(route); + }); +});