mirror of
https://github.com/wekan/wekan.git
synced 2025-12-17 07:50:12 +01:00
Include to Wekan packages directory contents, so that meteor command would build all directly.
This also simplifies build scripts. Thanks to xet7 !
This commit is contained in:
parent
6117097a93
commit
73e265d8fd
354 changed files with 36977 additions and 106 deletions
292
packages/meteor-useraccounts-core/lib/field.js
Normal file
292
packages/meteor-useraccounts-core/lib/field.js
Normal file
|
|
@ -0,0 +1,292 @@
|
|||
// ---------------------------------------------------------------------------------
|
||||
// Field object
|
||||
// ---------------------------------------------------------------------------------
|
||||
|
||||
Field = function(field) {
|
||||
check(field, FIELD_PAT);
|
||||
_.defaults(this, field);
|
||||
|
||||
this.validating = new ReactiveVar(false);
|
||||
this.status = new ReactiveVar(null);
|
||||
};
|
||||
|
||||
if (Meteor.isClient) {
|
||||
Field.prototype.clearStatus = function() {
|
||||
return this.status.set(null);
|
||||
};
|
||||
}
|
||||
|
||||
if (Meteor.isServer) {
|
||||
Field.prototype.clearStatus = function() {
|
||||
// Nothing to do server-side
|
||||
return;
|
||||
};
|
||||
}
|
||||
|
||||
Field.prototype.fixValue = function(value) {
|
||||
if (this.type === "checkbox") {
|
||||
return !!value;
|
||||
}
|
||||
|
||||
if (this.type === "select") {
|
||||
// TODO: something working...
|
||||
return value;
|
||||
}
|
||||
|
||||
if (this.type === "radio") {
|
||||
// TODO: something working...
|
||||
return value;
|
||||
}
|
||||
|
||||
// Possibly applies required transformations to the input value
|
||||
if (this.trim) {
|
||||
value = value.trim();
|
||||
}
|
||||
|
||||
if (this.lowercase) {
|
||||
value = value.toLowerCase();
|
||||
}
|
||||
|
||||
if (this.uppercase) {
|
||||
value = value.toUpperCase();
|
||||
}
|
||||
|
||||
if (!!this.transform) {
|
||||
value = this.transform(value);
|
||||
}
|
||||
|
||||
return value;
|
||||
};
|
||||
|
||||
if (Meteor.isClient) {
|
||||
Field.prototype.getDisplayName = function(state) {
|
||||
var displayName = this.displayName;
|
||||
|
||||
if (_.isFunction(displayName)) {
|
||||
displayName = displayName();
|
||||
} else if (_.isObject(displayName)) {
|
||||
displayName = displayName[state] || displayName["default"];
|
||||
}
|
||||
|
||||
if (!displayName) {
|
||||
displayName = capitalize(this._id);
|
||||
}
|
||||
|
||||
return displayName;
|
||||
};
|
||||
}
|
||||
|
||||
if (Meteor.isClient) {
|
||||
Field.prototype.getPlaceholder = function(state) {
|
||||
var placeholder = this.placeholder;
|
||||
|
||||
if (_.isObject(placeholder)) {
|
||||
placeholder = placeholder[state] || placeholder["default"];
|
||||
}
|
||||
|
||||
if (!placeholder) {
|
||||
placeholder = capitalize(this._id);
|
||||
}
|
||||
|
||||
return placeholder;
|
||||
};
|
||||
}
|
||||
|
||||
Field.prototype.getStatus = function() {
|
||||
return this.status.get();
|
||||
};
|
||||
|
||||
if (Meteor.isClient) {
|
||||
Field.prototype.getValue = function(templateInstance) {
|
||||
if (this.type === "checkbox") {
|
||||
return !!(templateInstance.$("#at-field-" + this._id + ":checked").val());
|
||||
}
|
||||
|
||||
if (this.type === "radio") {
|
||||
return templateInstance.$("[name=at-field-"+ this._id + "]:checked").val();
|
||||
}
|
||||
|
||||
return templateInstance.$("#at-field-" + this._id).val();
|
||||
};
|
||||
}
|
||||
|
||||
if (Meteor.isClient) {
|
||||
Field.prototype.hasError = function() {
|
||||
return this.negativeValidation && this.status.get();
|
||||
};
|
||||
}
|
||||
|
||||
if (Meteor.isClient) {
|
||||
Field.prototype.hasIcon = function() {
|
||||
if (this.showValidating && this.isValidating()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (this.negativeFeedback && this.hasError()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (this.positiveFeedback && this.hasSuccess()) {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
if (Meteor.isClient) {
|
||||
Field.prototype.hasSuccess = function() {
|
||||
return this.positiveValidation && this.status.get() === false;
|
||||
};
|
||||
}
|
||||
|
||||
if (Meteor.isClient)
|
||||
Field.prototype.iconClass = function() {
|
||||
if (this.isValidating()) {
|
||||
return AccountsTemplates.texts.inputIcons["isValidating"];
|
||||
}
|
||||
|
||||
if (this.hasError()) {
|
||||
return AccountsTemplates.texts.inputIcons["hasError"];
|
||||
}
|
||||
|
||||
if (this.hasSuccess()) {
|
||||
return AccountsTemplates.texts.inputIcons["hasSuccess"];
|
||||
}
|
||||
};
|
||||
|
||||
if (Meteor.isClient) {
|
||||
Field.prototype.isValidating = function() {
|
||||
return this.validating.get();
|
||||
};
|
||||
}
|
||||
|
||||
if (Meteor.isClient) {
|
||||
Field.prototype.setError = function(err) {
|
||||
check(err, Match.OneOf(String, undefined, Boolean));
|
||||
|
||||
if (err === false) {
|
||||
return this.status.set(false);
|
||||
}
|
||||
|
||||
return this.status.set(err || true);
|
||||
};
|
||||
}
|
||||
|
||||
if (Meteor.isServer) {
|
||||
Field.prototype.setError = function(err) {
|
||||
// Nothing to do server-side
|
||||
return;
|
||||
};
|
||||
}
|
||||
|
||||
if (Meteor.isClient) {
|
||||
Field.prototype.setSuccess = function() {
|
||||
return this.status.set(false);
|
||||
};
|
||||
}
|
||||
|
||||
if (Meteor.isServer) {
|
||||
Field.prototype.setSuccess = function() {
|
||||
// Nothing to do server-side
|
||||
return;
|
||||
};
|
||||
}
|
||||
|
||||
if (Meteor.isClient) {
|
||||
Field.prototype.setValidating = function(state) {
|
||||
check(state, Boolean);
|
||||
return this.validating.set(state);
|
||||
};
|
||||
}
|
||||
|
||||
if (Meteor.isServer) {
|
||||
Field.prototype.setValidating = function(state) {
|
||||
// Nothing to do server-side
|
||||
return;
|
||||
};
|
||||
}
|
||||
|
||||
if (Meteor.isClient) {
|
||||
Field.prototype.setValue = function(templateInstance, value) {
|
||||
if (this.type === "checkbox") {
|
||||
templateInstance.$("#at-field-" + this._id).prop('checked', true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.type === "radio") {
|
||||
templateInstance.$("[name=at-field-"+ this._id + "]").prop('checked', true);
|
||||
return;
|
||||
}
|
||||
|
||||
templateInstance.$("#at-field-" + this._id).val(value);
|
||||
};
|
||||
}
|
||||
|
||||
Field.prototype.validate = function(value, strict) {
|
||||
check(value, Match.OneOf(undefined, String, Boolean));
|
||||
this.setValidating(true);
|
||||
this.clearStatus();
|
||||
|
||||
if (_.isUndefined(value) || value === '') {
|
||||
if (!!strict) {
|
||||
if (this.required) {
|
||||
this.setError(AccountsTemplates.texts.requiredField);
|
||||
this.setValidating(false);
|
||||
|
||||
return AccountsTemplates.texts.requiredField;
|
||||
} else {
|
||||
this.setSuccess();
|
||||
this.setValidating(false);
|
||||
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
this.clearStatus();
|
||||
this.setValidating(false);
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
var valueLength = value.length;
|
||||
var minLength = this.minLength;
|
||||
if (minLength && valueLength < minLength) {
|
||||
this.setError(AccountsTemplates.texts.minRequiredLength + ": " + minLength);
|
||||
this.setValidating(false);
|
||||
|
||||
return AccountsTemplates.texts.minRequiredLength + ": " + minLength;
|
||||
}
|
||||
|
||||
var maxLength = this.maxLength;
|
||||
if (maxLength && valueLength > maxLength) {
|
||||
this.setError(AccountsTemplates.texts.maxAllowedLength + ": " + maxLength);
|
||||
this.setValidating(false);
|
||||
|
||||
return AccountsTemplates.texts.maxAllowedLength + ": " + maxLength;
|
||||
}
|
||||
|
||||
if (this.re && valueLength && !value.match(this.re)) {
|
||||
this.setError(this.errStr);
|
||||
this.setValidating(false);
|
||||
|
||||
return this.errStr;
|
||||
}
|
||||
|
||||
if (this.func) {
|
||||
var result = this.func(value);
|
||||
var err = result === true ? this.errStr || true : result;
|
||||
|
||||
if (_.isUndefined(result)) {
|
||||
return err;
|
||||
}
|
||||
|
||||
this.status.set(err);
|
||||
this.setValidating(false);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
this.setSuccess();
|
||||
this.setValidating(false);
|
||||
|
||||
return false;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue