Files
rainloop-webmail-mirror/dev/Model/MessageSimple.js
RainLoop Team 3090b44dae Interface fixes
2015-03-16 02:01:51 +04:00

93 lines
1.7 KiB
JavaScript

(function () {
'use strict';
var
_ = require('_'),
Utils = require('Common/Utils'),
MessageModel = require('Model/Message'),
AbstractModel = require('Knoin/AbstractModel')
;
/**
* @constructor
*/
function MessageSimpleModel()
{
AbstractModel.call(this, 'MessageSimpleModel');
this.selected = false;
this.folderFullNameRaw = '';
this.uid = '';
this.size = 0;
this.sender = '';
this.subject = '';
this.dateUTC = 0;
}
_.extend(MessageSimpleModel.prototype, AbstractModel.prototype);
/**
* @static
* @param {AjaxJsonMessage} oJsonMessage
* @return {?MessageSimpleModel}
*/
MessageSimpleModel.newInstanceFromJson = function (oJsonMessage)
{
var oMessageModel = new MessageSimpleModel();
return oMessageModel.initByJson(oJsonMessage) ? oMessageModel : null;
};
MessageSimpleModel.prototype.clear = function ()
{
this.selected = false;
this.folderFullNameRaw = '';
this.uid = '';
this.size = 0;
this.sender = '';
this.subject = '';
this.dateUTC = 0;
};
/**
* @param {AjaxJsonMessage} oJsonMessage
* @return {boolean}
*/
MessageSimpleModel.prototype.initByJson = function (oJsonMessage)
{
var bResult = false;
if (oJsonMessage && 'Object/Message' === oJsonMessage['@Object'])
{
this.selected = false;
this.folderFullNameRaw = oJsonMessage.Folder;
this.uid = oJsonMessage.Uid;
this.size = Utils.pInt(oJsonMessage.Size);
this.sender = MessageModel.emailsToLine(
MessageModel.initEmailsFromJson(oJsonMessage.From), true);
this.subject = oJsonMessage.Subject;
this.dateUTC = Utils.pInt(oJsonMessage.DateTimeStampInUTC);
bResult = true;
}
return bResult;
};
module.exports = MessageSimpleModel;
}());