mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-09-21 08:05:56 +08:00
73 lines
1.2 KiB
JavaScript
73 lines
1.2 KiB
JavaScript
|
|
||
|
(function () {
|
||
|
|
||
|
'use strict';
|
||
|
|
||
|
var
|
||
|
_ = require('_'),
|
||
|
ko = require('ko'),
|
||
|
|
||
|
Utils = require('Common/Utils')
|
||
|
;
|
||
|
|
||
|
/**
|
||
|
* @constructor
|
||
|
*/
|
||
|
function AbstractComponent()
|
||
|
{
|
||
|
this.disposable = [];
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @type {Array}
|
||
|
*/
|
||
|
AbstractComponent.prototype.disposable = [];
|
||
|
|
||
|
AbstractComponent.prototype.dispose = function ()
|
||
|
{
|
||
|
_.each(this.disposable, function (fFuncToDispose) {
|
||
|
if (fFuncToDispose && fFuncToDispose.dispose)
|
||
|
{
|
||
|
fFuncToDispose.dispose();
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
|
||
|
/**
|
||
|
* @param {AbstractComponent} fClassObject
|
||
|
* @param {string} sTemplateID
|
||
|
* @return {Object}
|
||
|
*/
|
||
|
AbstractComponent.componentExportHelper = function (fClassObject, sTemplateID) {
|
||
|
return {
|
||
|
viewModel: {
|
||
|
createViewModel: function(oParams, oCmponentInfo) {
|
||
|
|
||
|
oParams = oParams || {};
|
||
|
oParams.element = null;
|
||
|
|
||
|
if (oCmponentInfo.element)
|
||
|
{
|
||
|
oParams.element = $(oCmponentInfo.element);
|
||
|
|
||
|
Utils.i18nToNode(oParams.element);
|
||
|
|
||
|
if (!Utils.isUnd(oParams.inline) && ko.unwrap(oParams.inline))
|
||
|
{
|
||
|
oParams.element.css('display', 'inline-block');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return new fClassObject(oParams);
|
||
|
}
|
||
|
},
|
||
|
template: {
|
||
|
element: sTemplateID
|
||
|
}
|
||
|
};
|
||
|
};
|
||
|
|
||
|
module.exports = AbstractComponent;
|
||
|
|
||
|
}());
|