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