From bbed152bc7c96ac6bbe7ae38e74ac26bf28b91f5 Mon Sep 17 00:00:00 2001 From: Stanislav Romanov Date: Mon, 28 Mar 2022 14:20:06 +0300 Subject: [PATCH] Refactored json settings --- app/components/input-textarea.hbs | 2 +- app/controllers/admin/indexes/item/settings.js | 9 ++++++--- app/helpers/json-parse.js | 5 +++++ app/helpers/json-stringify.js | 5 +++++ app/templates/admin/indexes/item/settings.hbs | 13 ++++++++++--- tests/integration/helpers/json-parse-test.js | 17 +++++++++++++++++ .../integration/helpers/json-stringify-test.js | 17 +++++++++++++++++ 7 files changed, 61 insertions(+), 7 deletions(-) create mode 100644 app/helpers/json-parse.js create mode 100644 app/helpers/json-stringify.js create mode 100644 tests/integration/helpers/json-parse-test.js create mode 100644 tests/integration/helpers/json-stringify-test.js diff --git a/app/components/input-textarea.hbs b/app/components/input-textarea.hbs index 6330e44..74dd980 100644 --- a/app/components/input-textarea.hbs +++ b/app/components/input-textarea.hbs @@ -16,7 +16,7 @@ id={{this.id}} class="block w-full p-2 bg-transparent focus:outline-none" placeholder={{@placeholder}} - {{on 'input' this.onChange}} + {{on 'change' this.onChange}} >{{@value}} {{#if @helper}} diff --git a/app/controllers/admin/indexes/item/settings.js b/app/controllers/admin/indexes/item/settings.js index 5835f3e..7782d2b 100644 --- a/app/controllers/admin/indexes/item/settings.js +++ b/app/controllers/admin/indexes/item/settings.js @@ -3,12 +3,15 @@ import { action } from '@ember/object'; import arrayEquals from 'meilisearch-admin/utils/array-equals'; export default class AdminIndexesItemSettingsController extends Controller { + emptyObj = {}; + @action - saveStopWords(str) { + saveStrToJSON(prop, emptyValue, str) { + console.log(str, prop, emptyValue); if (typeof str !== 'string' || str === '') { - this.model.settings.stopWords = []; + this.model.settings[prop] = emptyValue; } else { - this.model.settings.stopWords = str.split(',').map((item) => item.trim()); + this.model.settings[prop] = JSON.parse(str); } } diff --git a/app/helpers/json-parse.js b/app/helpers/json-parse.js new file mode 100644 index 0000000..4cb3d43 --- /dev/null +++ b/app/helpers/json-parse.js @@ -0,0 +1,5 @@ +import { helper } from '@ember/component/helper'; + +export default helper(function jsonParse() { + return (str) => JSON.parse(str); +}); diff --git a/app/helpers/json-stringify.js b/app/helpers/json-stringify.js new file mode 100644 index 0000000..13686c7 --- /dev/null +++ b/app/helpers/json-stringify.js @@ -0,0 +1,5 @@ +import { helper } from '@ember/component/helper'; + +export default helper(function jsonStringify([data], { replacer, space }) { + return JSON.stringify(data, replacer, space); +}); diff --git a/app/templates/admin/indexes/item/settings.hbs b/app/templates/admin/indexes/item/settings.hbs index 1076144..7566d7c 100644 --- a/app/templates/admin/indexes/item/settings.hbs +++ b/app/templates/admin/indexes/item/settings.hbs @@ -80,9 +80,16 @@ + +