File: /home/barbeatleanalyti/www/public_html/webmail/modules/MailWebclient/js/koBindings.js
'use strict';
var
_ = require('underscore'),
$ = require('jquery'),
ko = require('knockout'),
ModulesManager = require('%PathToCoreWebclientModule%/js/ModulesManager.js'),
ComposeMessageToAddressesFunc = ModulesManager.run('MailWebclient', 'getComposeMessageToAddresses')
;
if ($.isFunction(ComposeMessageToAddressesFunc))
{
ko.bindingHandlers.makeLinkComposeMailTo = {
'update': function (oElement, fValueAccessor, fAllBindingsAccessor, oViewModel, bindingContext) {
var
$Element = $(oElement),
sFullEmail = fValueAccessor()
;
$Element.show();
if (!$Element.hasClass('button'))
{
$Element.addClass('link');
}
$Element.click(function () {
ComposeMessageToAddressesFunc(sFullEmail);
});
}
};
}
ko.bindingHandlers.moveToFolderFilter = {
'init': function (oElement, fValueAccessor, allBindingsAccessor, viewModel, bindingContext) {
var
jqElement = $(oElement),
oCommand = fValueAccessor(),
jqContainer = $(oElement).find(oCommand['container']),
aOptions = _.isArray(oCommand['options']) ? oCommand['options'] : oCommand['options'](),
sFolderName = oCommand['value'] ? oCommand['value']() : '',
oFolderOption = _.find(aOptions, function (oOption) {
return oOption[oCommand['optionsValue']] === sFolderName;
})
;
if (!oFolderOption)
{
sFolderName = '';
oCommand['value']('');
}
jqElement.removeClass('expand');
jqContainer.empty();
_.each(aOptions, function (oOption) {
var jqOption = $('<span class="item"></span>')
.text(oOption[oCommand['optionsText']])
.data('value', oOption[oCommand['optionsValue']]);
if (sFolderName === oOption[oCommand['optionsValue']])
{
jqOption.addClass('selected');
}
oOption['jq'] = jqOption;
jqContainer.append(jqOption);
});
jqContainer.on('click', '.item', function () {
var sFolderName = $(this).data('value');
oCommand['value'](sFolderName);
});
jqElement.click(function () {
jqElement.toggleClass('expand');
if (jqElement.hasClass('expand'))
{
_.defer(function () {
$(document).one('click', function () {
jqElement.removeClass('expand');
});
});
}
});
},
'update': function (oElement, fValueAccessor) {
var
jqElement = $(oElement),
oCommand = fValueAccessor(),
aOptions = _.isArray(oCommand['options']) ? oCommand['options'] : oCommand['options'](),
sFolderName = oCommand['value'] ? oCommand['value']() : '',
oFolderOption = _.find(aOptions, function (oOption) {
return oOption[oCommand['optionsValue']] === sFolderName;
}),
jqText = jqElement.find('.link')
;
_.each(aOptions, function (oOption) {
if (oOption['jq'])
{
oOption['jq'].toggleClass('selected', sFolderName === oOption[oCommand['optionsValue']]);
}
});
if (oFolderOption)
{
jqText.text($.trim(oFolderOption[oCommand['optionsText']]));
}
}
};