2014-05-24 06:14:16 +08:00
|
|
|
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
|
|
|
|
|
2014-08-20 23:03:12 +08:00
|
|
|
(function (module) {
|
|
|
|
|
|
|
|
'use strict';
|
|
|
|
|
|
|
|
var
|
|
|
|
ko = require('../External/ko.js'),
|
|
|
|
Enums = require('../Common/Enums.js')
|
|
|
|
;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param {*} oKoList
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function FilterConditionModel(oKoList)
|
|
|
|
{
|
|
|
|
this.parentList = oKoList;
|
|
|
|
|
|
|
|
this.field = ko.observable(Enums.FilterConditionField.From);
|
|
|
|
|
|
|
|
this.fieldOptions = [ // TODO i18n
|
|
|
|
{'id': Enums.FilterConditionField.From, 'name': 'From'},
|
|
|
|
{'id': Enums.FilterConditionField.Recipient, 'name': 'Recipient (To or CC)'},
|
|
|
|
{'id': Enums.FilterConditionField.To, 'name': 'To'},
|
|
|
|
{'id': Enums.FilterConditionField.Subject, 'name': 'Subject'}
|
|
|
|
];
|
|
|
|
|
|
|
|
this.type = ko.observable(Enums.FilterConditionType.EqualTo);
|
|
|
|
|
|
|
|
this.typeOptions = [ // TODO i18n
|
|
|
|
{'id': Enums.FilterConditionType.EqualTo, 'name': 'Equal To'},
|
|
|
|
{'id': Enums.FilterConditionType.NotEqualTo, 'name': 'Not Equal To'},
|
|
|
|
{'id': Enums.FilterConditionType.Contains, 'name': 'Contains'},
|
|
|
|
{'id': Enums.FilterConditionType.NotContains, 'name': 'Not Contains'}
|
|
|
|
];
|
|
|
|
|
|
|
|
this.value = ko.observable('');
|
|
|
|
|
|
|
|
this.template = ko.computed(function () {
|
|
|
|
|
|
|
|
var sTemplate = '';
|
|
|
|
switch (this.type())
|
|
|
|
{
|
|
|
|
default:
|
|
|
|
sTemplate = 'SettingsFiltersConditionDefault';
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return sTemplate;
|
|
|
|
|
|
|
|
}, this);
|
|
|
|
}
|
|
|
|
|
|
|
|
FilterConditionModel.prototype.removeSelf = function ()
|
|
|
|
{
|
|
|
|
this.parentList.remove(this);
|
|
|
|
};
|
|
|
|
|
|
|
|
module.exports = FilterConditionModel;
|
|
|
|
|
|
|
|
}(module));
|