diff --git a/public/js/components/Form/Form.js b/public/js/components/Form/Form.js
index 7620f85c8..9a729b88f 100644
--- a/public/js/components/Form/Form.js
+++ b/public/js/components/Form/Form.js
@@ -9,7 +9,8 @@ export default {
$registerToForm: component => {
if (this.inputs.indexOf(component) < 0)
this.inputs.push(component);
- }
+ },
+ $clearValidationForName: this.clearValidationForName
};
},
props: {
@@ -110,48 +111,9 @@ export default {
clearValidation() {
this.inputs.forEach(input => input.clearValidation());
},
- send(promise) {
- return new Promise((resolve, reject) => {
- promise.then(result => {
- if (result?.status == 200 && result.data) {
- if (typeof result.data !== 'object' || !result.data.hasOwnProperty('retval'))
- // TODO(chris): IMPLEMENT! Error in API
- return reject(result);
- if (result.data.error)
- // TODO(chris): IMPLEMENT! Error in API
- return reject(result);
- const data = result.data.retval;
- // TODO(chris): check for something better/add new standardized return value
- if (result.data.code == 1)
- this.setFeedback(true, data);
- return resolve(data);
- }
- // TODO(chris): IMPLEMENT! Wrong result object
- reject(result);
- }).catch(result => {
- if (result?.response?.status == 400 && result.response.data) {
- if (typeof result.response.data !== 'object' || !result.response.data.hasOwnProperty('retval'))
- // TODO(chris): IMPLEMENT! Error in API
- return reject(result);
- this.clearValidation();
- const remaining = this.setFeedback(
- false,
- result.response.data.retval
- );
- if (remaining) {
- result.response.data.retval = remaining;
- return reject(result);
- }
- } else if (result?.response?.status == 500) {
- if (this.$fhcAlert)
- this.$fhcAlert.handleSystemError(result);
- else
- return reject(result);
- } else {
- return reject(result);
- }
- });
- });
+ clearValidationForName(name) {
+ (this.sortedInputs[name.split('.')[0] + name.split('.').slice(1).map(p => `[${p}]`).join("")] || this.sortedInputs['_default'] || [])
+ .forEach(input => input.clearValidation());
}
},
template: `
diff --git a/public/js/components/Form/Input.js b/public/js/components/Form/Input.js
index 4fc565dbb..991ffac8a 100644
--- a/public/js/components/Form/Input.js
+++ b/public/js/components/Form/Input.js
@@ -8,7 +8,8 @@ export default {
FhcFragment
},
inject: [
- '$registerToForm'
+ '$registerToForm',
+ '$clearValidationForName'
],
props: {
bsFeedback: Boolean,
@@ -126,7 +127,6 @@ export default {
case 'number':
case 'password':
case 'textarea':
- case 'textarea+':
if (!c.includes('form-control'))
classes.push('form-control');
break;
@@ -180,6 +180,9 @@ export default {
this.valid = undefined;
this.feedback = [];
},
+ clearValidationForThisName() {
+ this.$clearValidationForName(this.name);
+ },
setFeedback(valid, feedback) {
if (!feedback)
feedback = [];
@@ -213,9 +216,9 @@ export default {
template: `