Files
rainloop-webmail-mirror/dev/Model/MessageSimple.js
2015-03-17 18:30:17 +04:00

92 lines
1.9 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.clear();
}
_.extend(MessageSimpleModel.prototype, AbstractModel.prototype);
MessageSimpleModel.prototype.selected = false;
MessageSimpleModel.prototype.folderFullNameRaw = '';
MessageSimpleModel.prototype.uid = '';
MessageSimpleModel.prototype.size = 0;
MessageSimpleModel.prototype.sender = '';
MessageSimpleModel.prototype.subject = '';
MessageSimpleModel.prototype.dateInUTC = 0;
MessageSimpleModel.prototype.clear = function ()
{
this.selected = false;
this.folderFullNameRaw = '';
this.uid = '';
this.size = 0;
this.sender = '';
this.subject = '';
this.dateInUTC = 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.dateInUTC = Utils.pInt(oJsonMessage.DateTimeStampInUTC);
bResult = true;
}
return bResult;
};
/**
* @static
* @param {AjaxJsonMessage} oJsonMessage
* @return {?MessageSimpleModel}
*/
MessageSimpleModel.newInstanceFromJson = function (oJsonMessage)
{
var oMessageModel = new MessageSimpleModel();
return oMessageModel.initByJson(oJsonMessage) ? oMessageModel : null;
};
module.exports = MessageSimpleModel;
}());