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/components/monaco-editor.js b/app/components/monaco-editor.js
index 2b83b9d..5453091 100644
--- a/app/components/monaco-editor.js
+++ b/app/components/monaco-editor.js
@@ -48,17 +48,10 @@ export default class MonacoEditorComponent extends Component {
@action
initEditor(el) {
- const model = getModel(
- this.args.value,
- this.args.language,
- this.args.uri,
- this.args.schema
- );
-
- this.editor = editor.create(el, {
- model,
+ const options = {
// theme: 'vs-dark', //TODO: add checking global theme
readOnly: this.args.readOnly ?? false,
+ language: this.args.language,
// wordWrap: 'on',
// wrappingIndent: 'same',
lineNumbers: 'off',
@@ -67,14 +60,39 @@ export default class MonacoEditorComponent extends Component {
minimap: {
enabled: false,
},
- });
+ scrollbar: {
+ alwaysConsumeMouseWheel: false,
+ },
+ };
+ if (this.args.uri) {
+ options.model = getModel(
+ this.args.value,
+ this.args.language,
+ this.args.uri,
+ this.args.schema
+ );
+ } else if (this.args.value) {
+ options.value = this.args.value;
+ }
+
+ this.editor = editor.create(el, options);
+
+ if (Array.isArray(this.args.actions)) {
+ this.args.actions.forEach((item) => {
+ // assign because item can be a proxy object
+ this.editor.addAction(Object.assign({}, item));
+ });
+ }
+
+ const minHeight = this.args.minHeight ?? 160;
+ const maxHeight = this.args.maxHeight ?? 420;
// Autoresize height of element
const onDidContentSizeChangeHandler = this.editor.onDidContentSizeChange(
() => {
const contentHeight = Math.min(
- Math.max(this.editor.getContentHeight(), 160),
- 420
+ Math.max(this.editor.getContentHeight(), minHeight),
+ maxHeight
);
el.style.height = `${contentHeight + 1}px`;
diff --git a/app/controllers/admin/indexes/item/documents/index.js b/app/controllers/admin/indexes/item/documents/index.js
index 9fa13f0..1970471 100644
--- a/app/controllers/admin/indexes/item/documents/index.js
+++ b/app/controllers/admin/indexes/item/documents/index.js
@@ -1,9 +1,12 @@
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';
+import { inject as service } from '@ember/service';
export default class AdminIndexesItemDocumentsIndexController extends Controller {
+ @service router;
+
@tracked q = null;
@tracked limit = 20;
@tracked page = 1;
@@ -19,7 +22,7 @@ export default class AdminIndexesItemDocumentsIndexController extends Controller
// key: view name, value: icon
views = {
table: Table,
- map: MapOutline,
+ json: CodeJson,
};
get attributes() {
@@ -65,6 +68,11 @@ export default class AdminIndexesItemDocumentsIndexController extends Controller
return result;
}
+ @action
+ goToPage(route, index, id) {
+ this.router.transitionTo(route, index, id);
+ }
+
@action
toggleAttribute(name) {
if (this.attributes.includes(name)) {
diff --git a/app/templates/admin/indexes/item/documents/index.hbs b/app/templates/admin/indexes/item/documents/index.hbs
index fdad16a..dca65b7 100644
--- a/app/templates/admin/indexes/item/documents/index.hbs
+++ b/app/templates/admin/indexes/item/documents/index.hbs
@@ -60,81 +60,144 @@
--}}
{{#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)}}
- {{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|
- }}
-
+ {{/let}}
+
+ {{/let}}
+
+ {{else if (eq this.dataView 'json')}}
+
+ {{#each @model.data.hits as |data|}}
+
+ {{/each}}
+ {{/if}}
{{this.fromHits}}