diff --git a/app/components/button.js b/app/components/button.js
index 26aec1c..8d5d980 100644
--- a/app/components/button.js
+++ b/app/components/button.js
@@ -30,6 +30,7 @@ export default class ButtonComponent extends Component {
disabled={{this.disabled}}
type={{this.type}}
class="inline-flex items-center justify-center min-w-min whitespace-nowrap
+ disabled:opacity-75 disabled:cursor-not-allowed
{{get sizes this.size}}
{{get styles this.style}}
"
diff --git a/app/components/index-setting.js b/app/components/index-setting.js
index 86f7851..56a4ccb 100644
--- a/app/components/index-setting.js
+++ b/app/components/index-setting.js
@@ -1,7 +1,7 @@
import Component from '@glimmer/component';
import { action } from '@ember/object';
import { tracked } from '@glimmer/tracking';
-import ActionInvoker from '../lib/action-invoker';
+import ActionInvoker from 'meiliadmin/lib/action-invoker';
import { inject as service } from '@ember/service';
export default class FormIndexSettingComponent extends Component {
diff --git a/app/components/monaco-editor.js b/app/components/monaco-editor.js
index b241b26..a950d34 100644
--- a/app/components/monaco-editor.js
+++ b/app/components/monaco-editor.js
@@ -33,6 +33,8 @@ function getModel(value, language, uri, schema) {
languages.json.jsonDefaults.setDiagnosticsOptions({
validate: true,
schemas: [schema],
+ schemaRequest: 'error',
+ schemaValidation: 'error',
});
}
}
@@ -109,9 +111,9 @@ export default class MonacoEditorComponent extends Component {
});
}
+ // Autoresize height of element
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(
@@ -125,13 +127,33 @@ export default class MonacoEditorComponent extends Component {
);
registerDestructor(this, onDidContentSizeChangeHandler.dispose);
- // Validation
- const onDidChangeMarkersHandler = editor.onDidChangeMarkers(() => {
- this.args.onDidValidation?.(
- editor.getModelMarkers().map((item) => item.message)
+ // onDidChangeModelContent
+ if (this.args.onDidChangeModelContent) {
+ const onDidChangeModelContent = this.editor.onDidChangeModelContent(
+ () => {
+ this.args.onDidChangeModelContent(
+ this.editor.getValue(),
+ this.editor
+ );
+ }
);
- });
- registerDestructor(this, onDidChangeMarkersHandler.dispose);
+ registerDestructor(this, onDidChangeModelContent.dispose);
+ }
+
+ // Validation
+ if (this.args.onDidValidation) {
+ const onDidChangeMarkersHandler = editor.onDidChangeMarkers(() => {
+ const model = this.editor.getModel();
+
+ this.args.onDidValidation(
+ editor
+ .getModelMarkers({ resource: model.uri })
+ .map((item) => item.message),
+ this.editor
+ );
+ });
+ registerDestructor(this, onDidChangeMarkersHandler.dispose);
+ }
}
@action
@@ -155,7 +177,7 @@ export default class MonacoEditorComponent extends Component {
@action
invokeSendValue() {
- this.args.sendValue?.(this.editor.getValue());
+ this.args.sendValue?.(this.editor.getValue(), this.editor);
}
willDestroy() {
diff --git a/app/controllers/admin/indexes/item/documents/index.js b/app/controllers/admin/indexes/item/documents/index.js
index a56f66d..dfe9b21 100644
--- a/app/controllers/admin/indexes/item/documents/index.js
+++ b/app/controllers/admin/indexes/item/documents/index.js
@@ -3,6 +3,7 @@ import { action } from '@ember/object';
import { tracked } from '@glimmer/tracking';
import { Magnify, Table, /* MapOutline, */ CodeJson } from 'ember-mdi';
import { inject as service } from '@ember/service';
+import ActionInvoker from 'meiliadmin/lib/action-invoker';
export default class AdminIndexesItemDocumentsIndexController extends Controller {
@service router;
@@ -16,6 +17,7 @@ export default class AdminIndexesItemDocumentsIndexController extends Controller
@tracked hiddenFields = [];
@tracked dataView = 'table';
@tracked isAdvancedSearch = false;
+ @tracked errors;
queryParams = ['q', 'limit', 'offset', 'sort', 'attributesToRetrieve'];
@@ -27,7 +29,13 @@ export default class AdminIndexesItemDocumentsIndexController extends Controller
json: CodeJson,
};
- get search() {
+ constructor() {
+ super(...arguments);
+
+ this.invoker = new ActionInvoker();
+ }
+
+ get searchObject() {
return this.queryParams.reduce((properties, item) => {
properties[item] = this[item];
@@ -119,4 +127,13 @@ export default class AdminIndexesItemDocumentsIndexController extends Controller
sortAttibutes(items) {
this.attributesToRetrieve = items.filter(this.isItemChecked);
}
+
+ @action
+ search(value) {
+ const obj = JSON.parse(value);
+
+ this.queryParams.forEach((item) => {
+ this[item] = obj[item];
+ });
+ }
}
diff --git a/app/templates/admin/indexes/item/documents/index.hbs b/app/templates/admin/indexes/item/documents/index.hbs
index a34b3af..98438f6 100644
--- a/app/templates/admin/indexes/item/documents/index.hbs
+++ b/app/templates/admin/indexes/item/documents/index.hbs
@@ -22,16 +22,23 @@
{{#if this.isAdvancedSearch}}