/** * @file * A Backbone Model subclass that enforces validation when calling set(). */ (function (Drupal, Backbone) { Drupal.quickedit.BaseModel = Backbone.Model.extend(/** @lends Drupal.quickedit.BaseModel# */{ /** * @constructs * * @augments Backbone.Model * * @param {object} options * Options for the base model- * * @return {Drupal.quickedit.BaseModel} * A quickedit base model. */ initialize(options) { this.__initialized = true; return Backbone.Model.prototype.initialize.call(this, options); }, /** * Set a value on the model * * @param {object|string} key * The key to set a value for. * @param {*} val * The value to set. * @param {object} [options] * Options for the model. * * @return {*} * The result of `Backbone.Model.prototype.set` with the specified * parameters. */ set(key, val, options) { if (this.__initialized) { // Deal with both the "key", value and {key:value}-style arguments. if (typeof key === 'object') { key.validate = true; } else { if (!options) { options = {}; } options.validate = true; } } return Backbone.Model.prototype.set.call(this, key, val, options); }, }); }(Drupal, Backbone));