From 9d66c42460dda63a6380ba0f30004fcd92a4f5c4 Mon Sep 17 00:00:00 2001 From: Busfreak Date: Fri, 10 Mar 2023 00:30:42 +0100 Subject: erste Version --- .../src/main/resources/app/lib/umr/FormUtils.js | 201 +++++++++++++++++++++ .../de/itc/onkostar/library/moduleContext.xml | 20 ++ .../src/main/resources/onkostar-config.properties | 1 + 3 files changed, 222 insertions(+) create mode 100644 DNPMPlugins/src/main/resources/app/lib/umr/FormUtils.js create mode 100644 DNPMPlugins/src/main/resources/de/itc/onkostar/library/moduleContext.xml create mode 100644 DNPMPlugins/src/main/resources/onkostar-config.properties (limited to 'DNPMPlugins/src/main/resources') diff --git a/DNPMPlugins/src/main/resources/app/lib/umr/FormUtils.js b/DNPMPlugins/src/main/resources/app/lib/umr/FormUtils.js new file mode 100644 index 0000000..7a8cbdd --- /dev/null +++ b/DNPMPlugins/src/main/resources/app/lib/umr/FormUtils.js @@ -0,0 +1,201 @@ +class FormUtils { + + constructor(context) { + this.context = context; + + if (!this.context.genericEditForm) { + console.error('Context does not contain "genericEditForm". Please use "new FormUtils(this)" or methods will return undefined values!'); + } + } + + /** + * Returns field with given name from main form if it exists + * @param fieldName + * @returns {undefined|*} + */ + getMainformField(fieldName) { + if (this.context.genericEditForm) { + const query = '[originalName=' + fieldName + ']'; + const fields = this.context.genericEditForm + .query(query) + .filter(e => e.ownerCt.xtype === 'form' || e.ownerCt.xtype === 'panel' && e.ownerCt.title.length !== 0); + + if (fields.length > 0) { + return this.context.genericEditForm.down('#' + fields[0].id); + } + console.error('Field with name "' + fieldName + '" not found in main form!'); + } + return undefined; + } + + /** + * Returns field with given field name found at given index within whole form. + * @param fieldName + * @param index + * @returns {undefined|*} + */ + getFieldAtIndex(fieldName, index) { + if (this.context.genericEditForm) { + const query = '[originalName=' + fieldName + ']'; + const fields = this.context.genericEditForm.query(query); + if (fields.length > index) { + return this.context.genericEditForm.down('#' + fields[index].id); + } + console.error('Field with name "' + fieldName + '" and index "' + index + '" not found!'); + } + return undefined; + } + + /** + * Returns field with given field name found in section with given name. + * @param fieldName + * @param sectionName + * @returns {undefined|*} + */ + getFieldInSection(fieldName, sectionName) { + if (this.genericEditForm) { + const query = '[originalName=' + fieldName + ']'; + const fields = this.context.genericEditForm + .query(query) + .filter(e => e.ownerCt.xtype === 'panel' && e.ownerCt.ownerCt.originalName === sectionName); + if (fields.length > 0) { + return this.context.genericEditForm.down('#' + fields[0].id); + } + console.error('Field with name "' + fieldName + '" not found in section with name "' + sectionName + '"!'); + } + return undefined; + } + + /** + * Returns value of field with given name from main form if it exists. + * @param fieldName + * @returns {undefined|*} + */ + getMainformFieldValue(fieldName) { + let mainformField = this.getMainformField(fieldName); + if (mainformField) { + return mainformField.getValue(); + } + return undefined; + } + + /** + * Updates field with given name to given new value. + * The field must reside in main form. + * @param fieldName + * @param newValue + * @returns {undefined|*} + */ + setMainformFieldValue(fieldName, newValue) { + let mainformField = this.getMainformField(fieldName); + if (mainformField) { + return mainformField.setValue(newValue); + } + } + + /** + * Returns value of field with given name in section with given name if it exists. + * @param fieldName + * @param sectionName + * @returns {undefined|*} + */ + getFieldValueInSection(fieldName, sectionName) { + let sectionField = this.getFieldInSection(fieldName, sectionName); + if (sectionField) { + return sectionField.getValue(); + } + return undefined; + } + + /** + * Updates field with given name in section with given name new value. + * The field must reside in main form. + * @param fieldName + * @param sectionName + * @param newValue + * @returns {undefined|*} + */ + setFieldValueInSection(fieldName, sectionName, newValue) { + let sectionField = this.getFieldInSection(fieldName, sectionName); + if (sectionField) { + return sectionField.setValue(newValue); + } + } + + /** + * Returns value of field with given field name found at given index within whole form. + * @param fieldName + * @param index + * @returns {undefined|*} + */ + getFieldValueAtIndex(fieldName, index) { + let field = this.getFieldAtIndex(fieldName, index); + if (field) { + return field.getValue(); + } + return undefined; + } + + /** + * Updates value of field with given field name found at given index within whole form. + * @param fieldName + * @param index + * @param newValue + * @returns {undefined|*} + */ + setFieldValueAtIndex(fieldName, index, newValue) { + let field = this.getFieldAtIndex(fieldName, index); + if (field) { + field.setValue(newValue); + } + } + + /** + * Returns all values for all fields with given name. + * @param fieldName + * @returns {*|*[]} + */ + getFieldValues(fieldName) { + if (this.context.genericEditForm) { + const query = '[originalName=' + fieldName + ']'; + const fields = this.context.genericEditForm.query(query); + return fields.map(f => this.context.genericEditForm.down('#' + f.id).getValue()); + } + return undefined; + } + + /** + * Counts blocks within given subform field name. + * @param subformFieldName + * @returns {undefined|*|number} + */ + subformBlockCount(subformFieldName) { + if (this.context.genericEditForm) { + const query = '[originalName=' + subformFieldName + ']'; + const elements = this.context.genericEditForm.query(query); + + if (elements.length === 0) return 0; + + return elements + .map(e => e.numberOfBlocks) + .reduce((sum, num) => sum + num); + } + return undefined; + } + + /** + * Returns subform field names for given subform name. + * @param subformName + * @returns {undefined|*} + */ + getSubformFieldNames(subformName) { + if (this.context.genericEditForm) { + const query = '[formName=' + subformName + ']'; + + return Ext.ComponentQuery + .query(query) + .map(e => e.originalName); + } + return undefined; + } +} \ No newline at end of file diff --git a/DNPMPlugins/src/main/resources/de/itc/onkostar/library/moduleContext.xml b/DNPMPlugins/src/main/resources/de/itc/onkostar/library/moduleContext.xml new file mode 100644 index 0000000..efcde36 --- /dev/null +++ b/DNPMPlugins/src/main/resources/de/itc/onkostar/library/moduleContext.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/DNPMPlugins/src/main/resources/onkostar-config.properties b/DNPMPlugins/src/main/resources/onkostar-config.properties new file mode 100644 index 0000000..b546687 --- /dev/null +++ b/DNPMPlugins/src/main/resources/onkostar-config.properties @@ -0,0 +1 @@ +onkostar-api=2.11.1.1 \ No newline at end of file -- cgit v1.2.3