From b00c7eef15b7aadb8e0993606e06c8661053cceb Mon Sep 17 00:00:00 2001 From: Stanislav Romanov Date: Thu, 1 Sep 2022 12:14:56 +0300 Subject: [PATCH] Add creation new document --- .../admin/indexes/item/documents/document.js | 5 +++- app/models/index.js | 5 ++-- app/router.js | 1 + .../admin/indexes/item/documents/new.js | 17 ++++++++++++ .../admin/indexes/item/documents/document.hbs | 26 +------------------ .../admin/indexes/item/documents/index.hbs | 4 +++ .../admin/indexes/item/documents/new.hbs | 1 + app/templates/admin/tasks/index.hbs | 7 ++++- .../admin/indexes/item/documents/new-test.js | 11 ++++++++ 9 files changed, 48 insertions(+), 29 deletions(-) create mode 100644 app/routes/admin/indexes/item/documents/new.js create mode 100644 app/templates/admin/indexes/item/documents/new.hbs create mode 100644 tests/unit/routes/admin/indexes/item/documents/new-test.js diff --git a/app/controllers/admin/indexes/item/documents/document.js b/app/controllers/admin/indexes/item/documents/document.js index 66d3dc0..5b293f6 100644 --- a/app/controllers/admin/indexes/item/documents/document.js +++ b/app/controllers/admin/indexes/item/documents/document.js @@ -6,6 +6,9 @@ export default class AdminIndexesItemDocumentsDocumentController extends Control save(event) { event.preventDefault(); - this.model.index.saveDocument(this.model.document); + const formData = new FormData(event.currentTarget); + const data = formData.get('document'); + + this.model.index.saveDocument(data); } } diff --git a/app/models/index.js b/app/models/index.js index 724107c..bb41faa 100644 --- a/app/models/index.js +++ b/app/models/index.js @@ -1,3 +1,4 @@ +import jsonParse from '../helpers/json-parse'; import query from '../utils/query'; // import { TrackedArray } from 'tracked-built-ins'; // import { trackedFunction } from 'ember-resources/util/function'; @@ -40,8 +41,8 @@ export default class Index { saveDocument(document) { return query(`${this.path}/documents`, { - method: 'PUT', - body: JSON.stringify(document), + method: 'POST', + body: JSON.stringify([JSON.parse(document)]), }); } diff --git a/app/router.js b/app/router.js index 06aad4e..76296b9 100644 --- a/app/router.js +++ b/app/router.js @@ -15,6 +15,7 @@ Router.map(function () { this.route('edit'); this.route('documents', function () { this.route('document', { path: '/:document_id' }); + this.route('new'); }); }); this.route('new'); diff --git a/app/routes/admin/indexes/item/documents/new.js b/app/routes/admin/indexes/item/documents/new.js new file mode 100644 index 0000000..a57fad3 --- /dev/null +++ b/app/routes/admin/indexes/item/documents/new.js @@ -0,0 +1,17 @@ +import Route from '@ember/routing/route'; +import Document from '../../../../../models/document'; +import { hash } from 'rsvp'; + +export default class AdminIndexesItemDocumentsNewRoute extends Route { + templateName = 'admin.indexes.item.documents.document'; + controllerName = 'admin.indexes.item.documents.document'; + + model() { + const index = this.modelFor('admin.indexes.item'); + + return hash({ + index, + document: new Document(), + }); + } +} diff --git a/app/templates/admin/indexes/item/documents/document.hbs b/app/templates/admin/indexes/item/documents/document.hbs index 8c8918c..f65b58a 100644 --- a/app/templates/admin/indexes/item/documents/document.hbs +++ b/app/templates/admin/indexes/item/documents/document.hbs @@ -1,29 +1,5 @@
- {{#each-in @model.document as |key value|}} - {{#let (type-of value) as |type|}} - {{#if (eq 'number' type)}} - - {{else if (eq 'boolean' type)}} - - {{else if (eq '_geo' key)}} - {{!-- TODO: add map --}} - {{else}} - - {{/if}} - {{/let}} - {{/each-in}} +