mirror of
https://github.com/Readarr/Readarr
synced 2025-12-18 06:13:38 +01:00
48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
'use strict';
|
|
|
|
define(
|
|
['backbone.modelbinder'],
|
|
function (ModelBinder) {
|
|
|
|
return function () {
|
|
|
|
var originalOnRender = this.prototype.onRender;
|
|
var originalBeforeClose = this.prototype.onBeforeClose;
|
|
|
|
this.prototype.onRender = function () {
|
|
|
|
if (!this.model) {
|
|
throw 'View has no model for binding';
|
|
}
|
|
|
|
if (!this._modelBinder) {
|
|
this._modelBinder = new ModelBinder();
|
|
}
|
|
|
|
var options = {
|
|
changeTriggers: {'': 'change typeahead:selected typeahead:autocompleted', '[contenteditable]': 'blur', '[data-onkeyup]': 'keyup'}
|
|
};
|
|
|
|
this._modelBinder.bind(this.model, this.el, null, options);
|
|
|
|
if (originalOnRender) {
|
|
originalOnRender.call(this);
|
|
}
|
|
};
|
|
|
|
this.prototype.onBeforeClose = function () {
|
|
|
|
if (this._modelBinder) {
|
|
this._modelBinder.unbind();
|
|
delete this._modelBinder;
|
|
}
|
|
|
|
if (originalBeforeClose) {
|
|
originalBeforeClose.call(this);
|
|
}
|
|
};
|
|
|
|
return this;
|
|
};
|
|
}
|
|
);
|