This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/mixins/user-fields-validation.js.es6
Jarek Radosz fe588cc7f8
DEV: Fix function prototype deprecations (#8681)
* DEV: Fix the function prototype observers deprecation

DEPRECATION: Function prototype extensions have been deprecated, please migrate from function(){}.observes('foo') to observer('foo', function() {}). [deprecation id: function-prototype-extensions.observes] See https://deprecations.emberjs.com/v3.x/#toc_function-prototype-extensions-observes for more details.

* DEV: Fix the function prototype event listeners deprecation

DEPRECATION: Function prototype extensions have been deprecated, please migrate from function(){}.on('foo') to on('foo', function() {}). [deprecation id: function-prototype-extensions.on] See https://deprecations.emberjs.com/v3.x/#toc_function-prototype-extensions-on for more details.

* DEV: Simplify `default as` imports

Co-authored-by: Joffrey JAFFEUX <j.jaffeux@gmail.com>
2020-01-16 18:56:53 +01:00

41 lines
1.1 KiB
JavaScript

import { isEmpty } from "@ember/utils";
import EmberObject from "@ember/object";
import discourseComputed, { on } from "discourse-common/utils/decorators";
import Mixin from "@ember/object/mixin";
export default Mixin.create({
@on("init")
_createUserFields() {
if (!this.site) {
return;
}
let userFields = this.site.get("user_fields");
if (userFields) {
userFields = _.sortBy(userFields, "position").map(function(f) {
return EmberObject.create({ value: null, field: f });
});
}
this.set("userFields", userFields);
},
// Validate required fields
@discourseComputed("userFields.@each.value")
userFieldsValidation() {
let userFields = this.userFields;
if (userFields) {
userFields = userFields.filterBy("field.required");
}
if (!isEmpty(userFields)) {
const anyEmpty = userFields.any(uf => {
const val = uf.get("value");
return !val || isEmpty(val);
});
if (anyEmpty) {
return EmberObject.create({ failed: true });
}
}
return EmberObject.create({ ok: true });
}
});