%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/mail.blacklist.list/templates/.default/ |
| Current File : //home/bitrix/www/bitrix/components/bitrix/mail.blacklist.list/templates/.default/script.js |
;(function ()
{
BX.namespace('BX.Mail.Blacklist.List');
BX.Mail.Blacklist.List = function (options)
{
this.gridId = options.gridId;
this.mailAddBtn = document.querySelector('[data-role="blacklist-create-btn"]');
this.addEventHandlers();
this.popupButtonSave = new BX.PopupWindowButton({
text: BX.message('MAIL_BLACKLIST_LIST_POPUP_BTN_ADD'),
className: "popup-window-button-accept",
events: {click: BX.delegate(this.onAddMailClick, this)}
});
this.popupButtonClose = new BX.PopupWindowButton({
text: BX.message('MAIL_BLACKLIST_LIST_POPUP_BTN_CLOSE'),
className: "popup-window-button-close",
events: {click: BX.delegate(this.closePopup, this)}
});
this.popupEmailsList = this.getPopupInstance();
BX.Mail.Blacklist.Repository.add(this);
};
BX.Mail.Blacklist.List.prototype = {
addEventHandlers: function ()
{
BX.bind(this.mailAddBtn, 'click', BX.delegate(this.onMailAddBtnClick, this));
},
onAddMailClick: function ()
{
BX.ajax.runComponentAction('bitrix:mail.blacklist.list', 'addMails', {
mode: 'class',
data: new FormData(this.formBlacklist)
}).then(
function ()
{
var textarea = this.getMailsTextArea();
if (textarea && textarea.value)
{
textarea.value = '';
}
this.reloadGrid.bind(this, {apply_filter: 'Y'})()
}.bind(this),
this.reloadGrid.bind(this, {hasAjaxDeleteError: 1, apply_filter: 'Y'})
);
},
getMailsTextArea: function()
{
if (!this.textarea)
{
this.textarea = document.querySelector('[data-role="blacklist-mails-textarea"]');
}
return this.textarea;
},
onDeleteClick: function (id)
{
if (!window.confirm(BX.message('MAIL_BLACKLIST_LIST_AJAX_DELETE_CONFIRM')))
{
return false;
}
BX.ajax.runComponentAction('bitrix:mail.blacklist.list', 'delete', {
mode: 'class',
data: {id: id}
}).then(
this.reloadGrid.bind(this, {apply_filter: 'Y'}),
this.reloadGrid.bind(this, {hasAjaxDeleteError: 1, apply_filter: 'Y'})
);
},
onMailAddBtnClick: function ()
{
this.popupEmailsList.show();
},
closePopup: function (e)
{
this.popupEmailsList.close(e)
},
getPopupInstance: function ()
{
if (this.popupEmailsList)
{
return this.popupEmailsList;
}
this.popupEmailsList = new BX.PopupWindow('bx-messenger-popup-settings', null, {
autoHide: true,
zIndex: 200,
offsetLeft: -200,
offsetTop: -220,
overlay: {opacity: 50, backgroundColor: "#000000"},
buttons: [this.popupButtonSave, this.popupButtonClose],
draggable: {restrict: true},
closeByEsc: true,
events: {
onAfterPopupShow: function ()
{
if (!this.isInited)
{
BX.ajax.runComponentAction('bitrix:mail.blacklist.list', 'getPopupContent', {
mode: 'class'
}).then(
function (result)
{
if (result.data && result.data.html)
{
this.popupEmailsList.setContent(result.data.html);
this.formBlacklist = document.querySelector('[name="form-add-mails-to-blacklist"]');
}
}.bind(this)
);
this.isInited = true;
}
}.bind(this)
},
titleBar: BX.message('MAIL_BLACKLIST_LIST_POPUP_TITLE'),
closeIcon: true,
contentColor: "white",
content: BX.create("div", {props: {className: 'mail-blacklist-popup-wrapper'}})
});
return this.popupEmailsList;
},
reloadGrid: function (options)
{
this.popupEmailsList.close();
var gridObject = BX.Main.gridManager.getById(this.gridId);
if (gridObject.hasOwnProperty('instance'))
{
gridObject.instance.reloadTable('POST', options);
}
}
};
BX.Mail.Blacklist.Repository = {
repo: [],
add: function (list)
{
this.repo[list.gridId] = list;
},
getById: function (id)
{
return this.repo[id];
}
};
BX.Mail.Blacklist.List.onDeleteClick = function (gridId, gridElementId)
{
var List = BX.Mail.Blacklist.Repository.getById(gridId);
List.onDeleteClick(gridElementId);
}
})();