adding a button to the detail to explicitly save changes.

This commit is contained in:
zadam 2020-07-23 00:19:50 +02:00
parent 2c9565b4b3
commit aa4a645670
4 changed files with 21 additions and 4 deletions

View File

@ -203,7 +203,7 @@ function parser(tokens, str, allowEmptyRelations = false) {
attr.endIndex = tokens[i].endIndex;
}
else {
throw new Error(`Unrecognized attribute "${text}" in ${context(i)}`);
throw new Error(`Invalid attribute "${text}" in ${context(i)}`);
}
}

View File

@ -121,6 +121,8 @@ const TPL = `
</tr>
</table>
<button class="btn btn-primary btn-sm attr-save-changes-and-close-button" style="width: 100%; margin-top: 15px;">Save & close</button>
<div class="related-notes-container">
<br/>
@ -199,6 +201,13 @@ export default class AttributeDetailWidget extends BasicWidget {
this.$closeAttrDetailButton = this.$widget.find('.close-attr-detail-button');
this.$attrIsOwnedBy = this.$widget.find('.attr-is-owned-by');
this.$saveAndCloseButton = this.$widget.find('.attr-save-changes-and-close-button');
this.$saveAndCloseButton.on('click', async () => {
await this.triggerCommand('saveAttributes');
this.hide();
});
this.$closeAttrDetailButton.on('click', () => this.hide());
$(window).on('mouseup', e => {
@ -388,6 +397,10 @@ export default class AttributeDetailWidget extends BasicWidget {
if (this.attrType === 'label-definition') {
props.push(this.$attrInputLabelType.val());
if (this.$attrInputLabelType.val() === 'number' && this.$attrInputNumberPrecision.val() !== '') {
props.push('precision=' + this.$attrInputNumberPrecision.val());
}
} else if (this.attrType === 'relation-definition' && this.$attrInputInverseRelation.val().trim().length > 0) {
props.push("inverse=" + this.$attrInputInverseRelation.val());
}

View File

@ -17,7 +17,7 @@ const TPL = `
padding: 0 0 0 5px !important;
margin: 0 !important;
color: var(--muted-text-color);
max-height: 200px;
max-height: 100px;
overflow: auto;
}
@ -282,12 +282,12 @@ export default class AttributeEditorWidget extends TabAwareWidget {
}
async save() {
this.$saveAttributesButton.fadeOut();
const attributes = this.parseAttributes();
if (attributes) {
await server.put(`notes/${this.noteId}/attributes`, attributes, this.componentId);
this.$saveAttributesButton.fadeOut();
}
}

View File

@ -184,6 +184,10 @@ export default class AttributeListWidget extends TabAwareWidget {
}
}
async saveAttributesCommand() {
await this.attributeEditorWidget.save();
}
updateAttributeListCommand({attributes}) {
this.attributeEditorWidget.updateAttributeList(attributes);
}