%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/lists.element.edit/templates/.default/ |
| Current File : //home/bitrix/www/bitrix/components/bitrix/lists.element.edit/templates/.default/script.js |
BX.namespace("BX.Lists");
BX.Lists.ListsElementEditClass = (function ()
{
var ListsElementEditClass = function (parameters)
{
this.randomString = parameters.randomString;
this.urlTabBp = parameters.urlTabBp;
this.iblockTypeId = parameters.iblockTypeId;
this.iblockId = parameters.iblockId;
this.elementId = parameters.elementId;
this.socnetGroupId = parameters.socnetGroupId;
this.sectionId = parameters.sectionId;
this.jsClass = 'ListsElementEditClass_'+parameters.randomString;
this.elementUrl = parameters.elementUrl;
this.listAction = parameters.listAction;
this.isConstantsTuned = parameters.isConstantsTuned;
this.init();
};
ListsElementEditClass.prototype.init = function ()
{
this.ajaxUrl = '/bitrix/components/bitrix/lists.element.edit/ajax.php';
this.actionButton = BX('lists-title-action');
this.actionPopupItems = [];
this.actionPopupObject = null;
this.actionPopupId = 'lists-title-action';
BX.bind(this.actionButton, 'click', BX.delegate(this.showListAction, this));
if(this.isConstantsTuned) this.setConstants();
};
ListsElementEditClass.prototype.showListAction = function ()
{
if(!this.actionPopupItems.length)
{
for(var k = 0; k < this.listAction.length; k++)
{
this.actionPopupItems.push({
text : this.listAction[k].text,
onclick : this.listAction[k].action
});
}
}
if(!BX.PopupMenu.getMenuById(this.actionPopupId))
{
var buttonRect = this.actionButton.getBoundingClientRect();
this.actionPopupObject = BX.PopupMenu.create(
this.actionPopupId,
this.actionButton,
this.actionPopupItems,
{
closeByEsc : true,
angle: true,
offsetLeft: buttonRect.width/2,
events: {
onPopupShow: BX.proxy(function () {
BX.addClass(this.actionButton, 'webform-button-active');
}, this),
onPopupClose: BX.proxy(function () {
BX.removeClass(this.actionButton, 'webform-button-active');
}, this)
}
}
);
}
if(this.actionPopupObject) this.actionPopupObject.popupWindow.show();
};
ListsElementEditClass.prototype.completeWorkflow = function(workflowId, action)
{
BX.Lists.ajax({
method: 'POST',
dataType: 'json',
url: BX.Lists.addToLinkParam(this.ajaxUrl, 'action', 'completeWorkflow'),
data: {
workflowId: workflowId,
iblockTypeId: this.iblockTypeId,
elementId: this.elementId,
iblockId: this.iblockId,
socnetGroupId: this.socnetGroupId,
sectionId: this.sectionId,
action: action
},
onsuccess: BX.delegate(function (result)
{
if(result.status == 'success')
{
BX.Lists.showModalWithStatusAction({
status: 'success',
message: result.message
});
setTimeout(BX.delegate(function() {
document.location.href = this.urlTabBp
}, this), 1000);
}
else
{
result.errors = result.errors || [{}];
BX.Lists.showModalWithStatusAction({
status: 'error',
message: result.errors.pop().message
})
}
}, this)
});
};
ListsElementEditClass.prototype.setConstants = function()
{
BX.Lists.ajax({
method: 'POST',
dataType: 'json',
url: BX.Lists.addToLinkParam(this.ajaxUrl, 'action', 'isConstantsTuned'),
data: {
iblockTypeId: this.iblockTypeId,
iblockId: this.iblockId,
socnetGroupId: this.socnetGroupId,
sectionId: this.sectionId
},
onsuccess: BX.delegate(function (result)
{
if(result.status == 'success')
{
if(result.admin === false)
{
this.notifyAdmin();
}
else
{
this.fillConstants(result.templateData);
}
}
else
{
result.errors = result.errors || [{}];
BX.Lists.showModalWithStatusAction({
status: 'error',
message: result.errors.pop().message
})
}
}, this)
});
};
ListsElementEditClass.prototype.fillConstants = function(listTemplateId)
{
if(!listTemplateId)
{
return;
}
var content = '';
BX.Lists.ajax({
method: 'POST',
dataType: 'html',
url: BX.Lists.addToLinkParam(this.ajaxUrl, 'action', 'fillConstants'),
data: {
iblockId: this.iblockId,
listTemplateId: listTemplateId
},
onsuccess: BX.delegate(function (result)
{
content = BX.create('div', {
props: {
className: 'lists-fill-constants-content'
},
html: result
});
var modalWindow = BX.Lists.modalWindow({
modalId: 'bx-lists-popup',
withoutWindowManager: true,
title: BX.message("CT_BLEE_BIZPROC_CONSTANTS_FILL_TITLE"),
autoHide: false,
overlay: false,
draggable: true,
contentStyle: {
width: '600px',
paddingTop: '10px',
paddingBottom: '10px'
},
content: [content],
events : {
onPopupClose : function() {
this.destroy();
}
},
buttons: [
BX.create('a', {
text : BX.message("CT_BLEE_BIZPROC_SAVE_BUTTON"),
props: {
className: 'webform-small-button webform-small-button-accept'
},
events : {
click : BX.delegate(function (e)
{
var form = BX.findChild(content, {tag: 'FORM'}, true);
if (form)
{
form.modalWindow = modalWindow;
form.onsubmit(form, e);
}
})
}
}),
BX.create('a', {
text : BX.message("CT_BLEE_BIZPROC_CANCEL_BUTTON"),
props: {
className: 'webform-small-button webform-button-cancel'
},
events : {
click : BX.delegate(function (e) {
if(!!modalWindow) modalWindow.close();
}, this)
}
})
]
});
}, this)
});
};
ListsElementEditClass.prototype.notifyAdmin = function()
{
BX.Lists.ajax({
method: 'POST',
dataType: 'json',
url: BX.Lists.addToLinkParam(this.ajaxUrl, 'action', 'getListAdmin'),
data: {
iblockId: this.iblockId,
iblockTypeId: this.iblockTypeId,
socnetGroupId: this.socnetGroupId,
sectionId: this.sectionId
},
onsuccess: BX.delegate(function (result)
{
if(result.status == 'success')
{
var content = this.createHtmlNotifyAdmin(result.listAdmin);
BX('lists-notify-admin-popup-content').appendChild(content);
BX.Lists.modalWindow({
modalId: 'bx-lists-popup',
title: BX.message('CT_BLEE_BIZPROC_NOTIFY_TITLE'),
overlay: false,
draggable: true,
contentStyle: {
width: '600px',
paddingTop: '10px',
paddingBottom: '10px'
},
content: [BX('lists-notify-admin-popup-content')],
events : {
onPopupClose : function() {
BX('lists-notify-admin-popup').appendChild(BX('lists-notify-admin-popup-content'));
this.destroy();
}
},
buttons: [
BX.create('a', {
text : BX.message("CT_BLEE_BIZPROC_NOTIFY_ADMIN_BUTTON_CLOSE"),
props: {
className: 'webform-small-button webform-button-cancel'
},
events : {
click : BX.delegate(function (e) {
BX.PopupWindowManager.getCurrentPopup().close();
}, this)
}
})
]
});
}
else
{
result.errors = result.errors || [{}];
BX.Lists.showModalWithStatusAction({
status: 'error',
message: result.errors.pop().message
})
}
}, this)
});
};
ListsElementEditClass.prototype.notify = function (userId)
{
if(!BX('lists-notify-button-'+userId))
{
return;
}
BX('lists-notify-button-'+userId).setAttribute('onclick','');
BX.Lists.ajax({
method: 'POST',
dataType: 'json',
url: BX.Lists.addToLinkParam(this.ajaxUrl, 'action', 'notifyAdmin'),
data: {
iblockId: this.iblockId,
userId: userId,
iblockTypeId: this.iblockTypeId,
socnetGroupId: this.socnetGroupId,
sectionId: this.sectionId,
elementUrl: this.elementUrl
},
onsuccess: BX.delegate(function (result)
{
if(result.status == 'success')
{
BX.Lists.removeElement(BX('lists-notify-button-'+userId));
BX('lists-notify-success-'+userId).innerHTML = result.message;
}
else
{
BX('lists-notify-button-'+userId).setAttribute(
'onclick',
'BX.Lists["'+this.jsClass+'"].notify("'+userId+'");'
);
result.errors = result.errors || [{}];
BX.Lists.showModalWithStatusAction({
status: 'error',
message: result.errors.pop().message
})
}
}, this)
});
};
ListsElementEditClass.prototype.createHtmlNotifyAdmin = function(listAdmin)
{
if(!listAdmin)
{
return null;
}
var domElement;
domElement = BX.create('div', {
children: [
BX.create('span', {
props: {
className: 'lists-notify-question'
},
children: [
BX.create('span', {
props: {
innerHTML: '!',
className: 'icon'
}
}),
BX.create('span', {
props: {
innerHTML: BX.message('CT_BLEE_BIZPROC_SELECT_STAFF_SET_RESPONSIBLE')
}
})
]
}),
BX.create('p', {
html: BX.message('CT_BLEE_BIZPROC_NOTIFY_ADMIN_TEXT_ONE')
}),
BX.create('p', {
html: BX.message('CT_BLEE_BIZPROC_NOTIFY_ADMIN_TEXT_TWO')
}),
BX.create('span', {
props: {className: 'lists-notify-question-title'},
html: BX.message('CT_BLEE_BIZPROC_NOTIFY_ADMIN_MESSAGE')
})
]
});
for(var k in listAdmin)
{
var img;
if(listAdmin[k].img)
{
img = BX.create('img', {
attrs: {
src: listAdmin[k].img
}
});
}
domElement.appendChild(
BX.create('div', {
props: {className: 'lists-notify-question-item'},
children: [
BX.create('a', {
props: {className: 'lists-notify-question-item-avatar'},
attrs: {
href: 'javascript:void(0)'
},
children: [
BX.create('span', {
props: {
id: 'lists-notify-question-item-avatar-inner',
className: 'lists-notify-question-item-avatar-inner'
},
children: [img]
})
]
}),
BX.create('span', {
props: {className: 'lists-notify-question-item-info'},
children: [
BX.create('span', {
html: listAdmin[k].name
})
]
}),
BX.create('span', {
props: {
id: 'lists-notify-success-'+listAdmin[k].id,
className: 'lists-notify-success'
}
}),
BX.create('a', {
props: {
id: 'lists-notify-button-'+listAdmin[k].id,
className: 'webform-small-button lists-notify-small-button webform-small-button-blue'
},
attrs: {
href: 'javascript:void(0)',
onclick: 'BX.Lists["'+this.jsClass+'"].notify("'+listAdmin[k].id+'");'
},
html: BX.message('CT_BLEE_BIZPROC_NOTIFY_ADMIN_MESSAGE_BUTTON')
})
]
})
);
}
return domElement;
};
ListsElementEditClass.prototype.elementDelete = function(form_id, message)
{
var _form = document.getElementById(form_id);
var _flag = document.getElementById('action');
if(_form && _flag)
{
BX.Lists.modalWindow({
modalId: 'bx-lists-migrate-list',
title: BX.message('CT_BLEE_DELETE_POPUP_TITLE'),
contentClassName: '',
draggable: true,
contentStyle: {
width: '400px',
padding: '20px 20px 20px 20px'
},
events: {
onPopupClose : function() {
this.destroy();
}
},
content: message,
buttons: [
BX.create('span', {
text : BX.message("CT_BLEE_DELETE_POPUP_ACCEPT_BUTTON"),
props: {
className: 'webform-small-button webform-small-button-accept'
},
events : {
click : BX.delegate(function() {
BX.PopupWindowManager.getCurrentPopup().close();
_flag.value = 'delete';
_form.submit();
}, this)
}
}),
BX.create('span', {
text : BX.message("CT_BLEE_DELETE_POPUP_CANCEL_BUTTON"),
props: {
className: 'popup-window-button popup-window-button-link popup-window-button-link-cancel'
},
events : {
click : BX.delegate(function() {
BX.PopupWindowManager.getCurrentPopup().close();
}, this)
}
})
]
});
}
};
return ListsElementEditClass;
})();