From 5d647ff4dee932694a1acfd3393b1ce7fb369fac Mon Sep 17 00:00:00 2001 From: Stanislav Romanov Date: Mon, 17 Oct 2022 11:39:57 +0300 Subject: [PATCH] Add json view --- app/components/button.js | 2 +- .../admin/indexes/item/documents/index.js | 4 +- .../admin/indexes/item/documents/index.hbs | 166 ++++++++++-------- 3 files changed, 97 insertions(+), 75 deletions(-) diff --git a/app/components/button.js b/app/components/button.js index 1ef8661..b354690 100644 --- a/app/components/button.js +++ b/app/components/button.js @@ -40,7 +40,7 @@ export default class ButtonComponent extends Component { {{/if}} diff --git a/app/controllers/admin/indexes/item/documents/index.js b/app/controllers/admin/indexes/item/documents/index.js index 9fa13f0..f3bd8b8 100644 --- a/app/controllers/admin/indexes/item/documents/index.js +++ b/app/controllers/admin/indexes/item/documents/index.js @@ -1,7 +1,7 @@ import Controller from '@ember/controller'; import { action } from '@ember/object'; import { tracked } from '@glimmer/tracking'; -import { Magnify, Table, MapOutline } from 'ember-mdi'; +import { Magnify, Table, /* MapOutline, */ CodeJson } from 'ember-mdi'; export default class AdminIndexesItemDocumentsIndexController extends Controller { @tracked q = null; @@ -19,7 +19,7 @@ export default class AdminIndexesItemDocumentsIndexController extends Controller // key: view name, value: icon views = { table: Table, - map: MapOutline, + json: CodeJson, }; get attributes() { diff --git a/app/templates/admin/indexes/item/documents/index.hbs b/app/templates/admin/indexes/item/documents/index.hbs index fdad16a..ccf3945 100644 --- a/app/templates/admin/indexes/item/documents/index.hbs +++ b/app/templates/admin/indexes/item/documents/index.hbs @@ -60,81 +60,103 @@ --}} {{#if (gt @model.data.estimatedTotalHits 0)}} - - {{#let - (array @model.index.uid (get data @model.index.primaryKey)) - as |models| - }} - {{#each this.attributes as |field|}} - {{#if (not (includes field this.hiddenFields))}} - - {{#let (get data field) as |value|}} - {{#if (eq @model.index.primaryKey field)}} +
+ {{#each-in this.views as |key icon|}} +
+ + {{#if (eq this.dataView 'table')}} + + {{#let + (array @model.index.uid (get data @model.index.primaryKey)) + as |models| + }} + {{#each this.attributes as |field|}} + {{#if (not (includes field this.hiddenFields))}} + + {{#let (get data field) as |value|}} + {{#if (eq @model.index.primaryKey field)}} + {{value}} + {{else if (eq (type-of value) 'object')}} + {{json-stringify value}} + {{else}} + {{value}} + {{/if}} + {{/let}} + + {{/if}} + {{/each}} + + {{#let + 'flex items-center px-4 py-2 text-inherit no-underline text-sm hover:bg-base-6 hover:text-base-1' + as |linkClasses| + }} + + + + + {{value}} - {{else if (eq (type-of value) 'object')}} - {{json-stringify value}} - {{else}} - {{value}} - {{/if}} - {{/let}} - - {{/if}} - {{/each}} - - {{#let - 'flex items-center px-4 py-2 text-inherit no-underline text-sm hover:bg-base-6 hover:text-base-1' - as |linkClasses| - }} - - - - - - - - View - - - - Edit - - - - Delete - - - - {{/let}} - - {{/let}} - + class={{linkClasses}} + > + + View + + + + Edit + + + + Delete + + + + {{/let}} + + {{/let}} + + {{else if (eq this.dataView 'json')}} + {{#each @model.data.hits as |item|}} + + {{/each}} + {{/if}}
{{this.fromHits}}