From 12f6be1e2d1c191c6bc473c4a495487a238df942 Mon Sep 17 00:00:00 2001 From: Stanislav Romanov Date: Sun, 14 May 2023 11:40:28 +0300 Subject: [PATCH] Add map --- .../admin/indexes/item/documents/index.js | 21 +++++++++++++++++- .../admin/indexes/item/documents/index.hbs | 22 +++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/app/controllers/admin/indexes/item/documents/index.js b/app/controllers/admin/indexes/item/documents/index.js index 945225a..79e9617 100644 --- a/app/controllers/admin/indexes/item/documents/index.js +++ b/app/controllers/admin/indexes/item/documents/index.js @@ -1,9 +1,11 @@ import Controller from '@ember/controller'; import { action } from '@ember/object'; import { tracked } from '@glimmer/tracking'; -import { Magnify, Table, /* MapOutline, */ CodeJson } from 'ember-mdi'; +import { Magnify, Table, MapOutline, CodeJson } from 'ember-mdi'; import { inject as service } from '@ember/service'; import ActionInvoker from 'meiliadmin/lib/action-invoker'; +import { FeatureGroup } from 'leaflet'; +import { Marker } from 'leaflet'; export default class AdminIndexesItemDocumentsIndexController extends Controller { @service router; @@ -54,6 +56,7 @@ export default class AdminIndexesItemDocumentsIndexController extends Controller views = { table: Table, json: CodeJson, + map: MapOutline, }; modes = ['simple', 'advanced']; @@ -64,6 +67,22 @@ export default class AdminIndexesItemDocumentsIndexController extends Controller this.invoker = new ActionInvoker(); } + get markers() { + const markers = []; + + for (const item of this.model.data.hits) { + if (item._geo) { + markers.push(new Marker([item._geo.lat, item._geo.lng])); + } + } + + return new FeatureGroup(markers); + } + + get mapBounds() { + return this.markers.getBounds(); + } + get searchObject() { return this.queryParams.reduce((properties, item) => { properties[item] = this[item]; diff --git a/app/templates/admin/indexes/item/documents/index.hbs b/app/templates/admin/indexes/item/documents/index.hbs index a0822ac..0a5cb83 100644 --- a/app/templates/admin/indexes/item/documents/index.hbs +++ b/app/templates/admin/indexes/item/documents/index.hbs @@ -218,6 +218,28 @@ class='mb-4' /> {{/each}} + {{else if (eq this.dataView 'map')}} + + + + {{#each @model.data.hits as |data|}} + + +

Hotel

+
+
+ {{/each}} +
{{/if}}