autocompletes for attribute detail

This commit is contained in:
zadam 2020-07-26 00:04:34 +02:00
parent 3261fea67f
commit a3a2f1a2b4
3 changed files with 22 additions and 6 deletions

6
package-lock.json generated
View File

@ -5366,9 +5366,9 @@
}
},
"jasmine": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.6.0.tgz",
"integrity": "sha512-9PSggisk7ZKMGDBjky0wHq4vG7SdWWSBDKF2LkikG97mFgKjzPytl3jIZERsWRI8nuGZ5JCaQIEEVS0De61yGA==",
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.6.1.tgz",
"integrity": "sha512-Jqp8P6ZWkTVFGmJwBK46p+kJNrZCdqkQ4GL+PGuBXZwK1fM4ST9BizkYgIwCFqYYqnTizAy6+XG2Ej5dFrej9Q==",
"dev": true,
"requires": {
"fast-glob": "^2.2.6",

View File

@ -33,9 +33,9 @@ function initAttributeNameAutocomplete({ $el, attributeType, open }) {
}
}
async function initLabelValueAutocomplete({ $el, open }) {
async function initLabelValueAutocomplete({ $el, open, nameCallback }) {
if (!$el.hasClass("aa-input")) {
const attributeName = $el.parent().parent().find('.attribute-name').val();
const attributeName = nameCallback();
if (attributeName.trim() === "") {
return;
@ -74,4 +74,4 @@ async function initLabelValueAutocomplete({ $el, open }) {
export default {
initAttributeNameAutocomplete,
initLabelValueAutocomplete
}
}

View File

@ -3,6 +3,7 @@ import treeCache from "../services/tree_cache.js";
import treeService from "../services/tree.js";
import linkService from "../services/link.js";
import BasicWidget from "./basic_widget.js";
import attributeAutocompleteService from "../services/attribute_autocomplete.js";
import noteAutocompleteService from "../services/note_autocomplete.js";
import promotedAttributeDefinitionParser from '../services/promoted_attribute_definition_parser.js';
@ -157,9 +158,24 @@ export default class AttributeDetailWidget extends BasicWidget {
this.$attrInputName = this.$widget.find('.attr-input-name');
this.$attrInputName.on('keyup', () => this.updateAttributeInEditor());
this.$attrInputName.on('focus', () => {
attributeAutocompleteService.initAttributeNameAutocomplete({
$el: this.$attrInputName,
attributeType: () => ['relation', 'relation-definition'].includes(this.attrType) ? 'relation' : 'label',
open: true
});
});
this.$attrRowValue = this.$widget.find('.attr-row-value');
this.$attrInputValue = this.$widget.find('.attr-input-value');
this.$attrInputValue.on('keyup', () => this.updateAttributeInEditor());
this.$attrInputValue.on('focus', () => {
attributeAutocompleteService.initLabelValueAutocomplete({
$el: this.$attrInputValue,
open: true,
nameCallback: () => this.$attrInputName.val()
});
});
this.$attrRowPromoted = this.$widget.find('.attr-row-promoted');
this.$attrInputPromoted = this.$widget.find('.attr-input-promoted');