%PDF- %PDF-
| Direktori : /home/riacommer/public_html/admin/vendor/parsleyjs/src/parsley/factory/ |
| Current File : /home/riacommer/public_html/admin/vendor/parsleyjs/src/parsley/factory/options.js |
define('parsley/factory/options', [
'parsley/utils'
], function (ParsleyUtils) {
var ParsleyOptionsFactory = function (defaultOptions, globalOptions, userOptions, namespace) {
this.__class__ = 'OptionsFactory';
this.__id__ = ParsleyUtils.hash(4);
this.formOptions = null;
this.fieldOptions = null;
this.staticOptions = $.extend(true, {}, defaultOptions, globalOptions, userOptions, { namespace: namespace });
};
ParsleyOptionsFactory.prototype = {
get: function (parsleyInstance) {
if ('undefined' === typeof parsleyInstance.__class__)
throw new Error('Parsley Instance expected');
switch (parsleyInstance.__class__) {
case 'Parsley':
return this.staticOptions;
case 'ParsleyForm':
return this.getFormOptions(parsleyInstance);
case 'ParsleyField':
case 'ParsleyFieldMultiple':
return this.getFieldOptions(parsleyInstance);
default:
throw new Error('Instance ' + parsleyInstance.__class__ + ' is not supported');
}
},
getFormOptions: function (formInstance) {
this.formOptions = ParsleyUtils.attr(formInstance.$element, this.staticOptions.namespace);
// not deep extend, since formOptions is a 1 level deep object
return $.extend({}, this.staticOptions, this.formOptions);
},
getFieldOptions: function (fieldInstance) {
this.fieldOptions = ParsleyUtils.attr(fieldInstance.$element, this.staticOptions.namespace);
if (null === this.formOptions && 'undefined' !== typeof fieldInstance.parent)
this.formOptions = this.getFormOptions(fieldInstance.parent);
// not deep extend, since formOptions and fieldOptions is a 1 level deep object
return $.extend({}, this.staticOptions, this.formOptions, this.fieldOptions);
}
};
return ParsleyOptionsFactory;
});