Spiegel von
https://github.com/paviliondev/discourse-custom-wizard.git
synchronisiert 2024-11-26 19:10:29 +01:00
43 Zeilen
Kein EOL
1,2 KiB
JavaScript
43 Zeilen
Kein EOL
1,2 KiB
JavaScript
import Component from "@ember/component";
|
|
import { not } from "@ember/object/computed";
|
|
import { ajax } from "discourse/lib/ajax";
|
|
import { getToken } from "wizard/lib/ajax";
|
|
|
|
export default Component.extend({
|
|
classNameBindings: ['isValid', 'isInvalid'],
|
|
validMessageKey: null,
|
|
invalidMessageKey: null,
|
|
isValid: null,
|
|
isInvalid: not('isValid'),
|
|
layoutName: 'components/validator', // useful for sharing the template with extending components
|
|
init() {
|
|
this._super(...arguments);
|
|
|
|
if (this.get('validation.backend')) {
|
|
// set a function that can be called as often as it need to
|
|
// from the derived component
|
|
this.backendValidate = (params) => {
|
|
return ajax('/realtime-validations', {
|
|
data: {
|
|
validation: this.get('name'),
|
|
authenticity_token: getToken(),
|
|
...params
|
|
}
|
|
});
|
|
}
|
|
|
|
}
|
|
},
|
|
|
|
didInsertElement() {
|
|
this.appEvents.on('custom-wizard:validate', this, this.checkIsValid);
|
|
},
|
|
|
|
willDestroyElement() {
|
|
this.appEvents.off('custom-wizard:validate', this, this.checkIsValid);
|
|
},
|
|
|
|
checkIsValid() {
|
|
this.set('isValid', this.validate());
|
|
}
|
|
}); |