%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/lists.list/templates/.default/ |
Current File : /home/bitrix/www/bitrix/components/bitrix/lists.list/templates/.default/script.js |
BX.namespace("BX.Lists"); BX.Lists.ListClass = (function () { var ListClass = function (parameters) { this.iblockTypeId = parameters.iblockTypeId; this.iblockId = parameters.iblockId; this.sectionId = parameters.sectionId; this.randomString = parameters.randomString; this.socnetGroupId = parameters.socnetGroupId; this.listAction = parameters.listAction; this.listActionAdd = parameters.listActionAdd; this.gridId = parameters.gridId; this.init(); }; ListClass.prototype.init = function () { this.ajaxUrl = '/bitrix/components/bitrix/lists.list/ajax.php'; this.actionButton = BX('lists-title-action'); this.addButton = BX('lists-title-action-add'); this.selectAddButton = BX('lists-title-action-select-add'); this.addPopupItems = []; this.addPopupObject = null; this.addPopupId = 'lists-title-add'; this.actionPopupItems = []; this.actionPopupObject = null; this.actionPopupId = 'lists-title-action'; this.actionItemChanges = false; BX.bind(this.actionButton, 'click', BX.delegate(this.showListAction, this)); BX.bind(this.selectAddButton, 'click', BX.delegate(this.showListAdd, this)); }; ListClass.prototype.showListAction = function () { if(!this.actionPopupItems.length) { for(var k = 0; k < this.listAction.length; k++) { var popupItems = { id: this.listAction[k].hasOwnProperty('id') ? this.listAction[k].id : '', text : this.listAction[k].text, onclick : this.listAction[k].action }; if(this.listAction[k].hasOwnProperty('items')) { popupItems.items = []; for(var i = 0; i < this.listAction[k].items.length; i++) { popupItems.items.push({ text: this.listAction[k].items[i].text, onclick: this.listAction[k].items[i].action }); } } this.actionPopupItems.push(popupItems); } } if(this.actionItemChanges) { if(this.actionPopupObject) { this.actionPopupObject.popupWindow.destroy(); BX.PopupMenu.destroy(this.actionPopupId); } } 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) } } ); this.actionItemChanges = false; } if(this.actionPopupObject) this.actionPopupObject.popupWindow.show(); }; ListClass.prototype.showListAdd = function () { if(!this.addPopupItems.length) { for(var k = 0; k < this.listActionAdd.length; k++) { this.addPopupItems.push({ text : this.listActionAdd[k].text, onclick : this.listActionAdd[k].action }); } } if(!BX.PopupMenu.getMenuById(this.addPopupId)) { var buttonRect = this.addButton.getBoundingClientRect(); this.addPopupObject = BX.PopupMenu.create( this.addPopupId, this.addButton, this.addPopupItems, { closeByEsc : true, angle: true, offsetLeft: buttonRect.width/2 } ); } if(this.addPopupObject) this.addPopupObject.popupWindow.show(); }; ListClass.prototype.addSection = function () { BX.Lists.modalWindow({ modalId: 'bx-lists-add-section', title: BX.message('CT_BLL_ADD_SECTION_POPUP_TITLE'), draggable: true, contentClassName: '', contentStyle: { width: '400px', padding: '25px 25px 50px 25px' }, events: { onPopupClose : function() { this.destroy(); } }, content: [ BX.create('span', { props: { id: 'lists-popup-error', className: 'bx-lists-popup-error' } }), BX.create('label', { props: { className: 'bx-lists-popup-label', "for": 'lists-section-name-input' }, children: [ BX.create('span', { props: { className: 'req' }, text: '*' }), BX.message('CT_BLL_ADD_SECTION_POPUP_INPUT_NAME') ] }), BX.create('input', { props: { id: 'lists-section-name-input', className: 'bx-lists-popup-input', type: 'text', value: '' }, style: { fontSize: '16px', marginTop: '10px' } }) ], buttons: [ BX.create('span', { text : BX.message("CT_BLL_ADD_SECTION_POPUP_BUTTON_ADD"), props: { className: 'webform-small-button webform-small-button-accept' }, events : { click : BX.delegate(function() { if(!BX('lists-section-name-input').value) { BX('lists-popup-error').innerHTML = BX.message("CT_BLL_ADD_SECTION_POPUP_ERROR_NAME"); BX.show(BX('lists-popup-error')); return false; } BX.hide(BX('lists-popup-error')); BX.Lists.ajax({ method: 'POST', dataType: 'json', url: BX.Lists.addToLinkParam(this.ajaxUrl, 'action', 'addSection'), data: { iblockTypeId: this.iblockTypeId, iblockId: this.iblockId, sectionId: this.sectionId, sectionName: BX('lists-section-name-input').value, socnetGroupId: this.socnetGroupId }, onsuccess: BX.delegate(function(result) { if(result.status == 'success') { BX.PopupWindowManager.getCurrentPopup().close(); var reloadParams = {}, gridObject; gridObject = BX.Main.gridManager.getById(this.gridId); if(gridObject.hasOwnProperty('instance')) gridObject.instance.reloadTable('POST', reloadParams); } else { result.errors = result.errors || [{}]; BX.Lists.showModalWithStatusAction({ status: 'error', message: result.errors.pop().message }); } }, this) }); }, this) } }), BX.create('span', { text : BX.message("CT_BLL_ADD_SECTION_POPUP_BUTTON_CLOSE"), props: { className: 'webform-small-button webform-button-cancel' }, events : { click : BX.delegate(function() { BX.PopupWindowManager.getCurrentPopup().close(); }, this) } }) ] }); }; ListClass.prototype.performActionBp = function (workflowId, elementId, action) { BX.Lists.ajax({ method: 'POST', dataType: 'json', url: BX.Lists.addToLinkParam(this.ajaxUrl, 'action', 'performActionBp'), data: { iblockTypeId: this.iblockTypeId, iblockId: this.iblockId, sectionId: this.sectionId, workflowId: workflowId, elementId: elementId, action: action, socnetGroupId: this.socnetGroupId, sessid: BX.bitrix_sessid() }, onsuccess: BX.delegate(function (result) { if(result.status == 'success') { BX.Lists.showModalWithStatusAction({ status: 'success', message: result.message }); setTimeout('location.reload()', 1000) } else { result.errors = result.errors || [{}]; BX.Lists.showModalWithStatusAction({ status: 'error', message: result.errors.pop().message }); } }, this) }); }; ListClass.prototype.editSection = function (currentSectionId) { if(!currentSectionId) return false; BX.Lists.ajax({ method: 'POST', dataType: 'json', url: BX.Lists.addToLinkParam(this.ajaxUrl, 'action', 'getSection'), data: { iblockTypeId: this.iblockTypeId, iblockId: this.iblockId, sectionId: this.sectionId, socnetGroupId: this.socnetGroupId, currentSectionId: currentSectionId }, onsuccess: BX.delegate(function(result) { if(result.status == 'success') { var sectionData = result.data; BX.Lists.modalWindow({ modalId: 'bx-lists-add-section', title: BX.message('CT_BLL_EDIT_SECTION_POPUP_TITLE'), draggable: true, contentClassName: '', contentStyle: { width: '400px', padding: '25px 25px 50px 25px' }, events: { onPopupClose : function() { this.destroy(); } }, content: [ BX.create('span', { props: { id: 'lists-popup-error', className: 'bx-lists-popup-error' } }), BX.create('label', { props: { className: 'bx-lists-popup-label', "for": 'lists-section-name-input' }, children: [ BX.create('span', { props: { className: 'req' }, text: '*' }), BX.message('CT_BLL_ADD_SECTION_POPUP_INPUT_NAME') ] }), BX.create('input', { props: { id: 'lists-section-name-input', className: 'bx-lists-popup-input', type: 'text', value: sectionData.NAME }, style: { fontSize: '16px', marginTop: '10px' } }) ], buttons: [ BX.create('span', { text : BX.message("CT_BLL_ADD_SECTION_POPUP_BUTTON_EDIT"), props: { className: 'webform-small-button webform-small-button-accept' }, events : { click : BX.delegate(function() { if(!BX('lists-section-name-input').value) { BX('lists-popup-error').innerHTML = BX.message("CT_BLL_ADD_SECTION_POPUP_ERROR_NAME"); BX.show(BX('lists-popup-error')); return false; } BX.hide(BX('lists-popup-error')); BX.Lists.ajax({ method: 'POST', dataType: 'json', url: BX.Lists.addToLinkParam(this.ajaxUrl, 'action', 'editSection'), data: { iblockTypeId: this.iblockTypeId, iblockId: this.iblockId, sectionId: this.sectionId, sectionName: BX('lists-section-name-input').value, socnetGroupId: this.socnetGroupId, currentSectionId: currentSectionId }, onsuccess: BX.delegate(function(result) { if(result.status == 'success') { BX.PopupWindowManager.getCurrentPopup().close(); var reloadParams = {}, gridObject; gridObject = BX.Main.gridManager.getById(this.gridId); if(gridObject.hasOwnProperty('instance')) gridObject.instance.reloadTable('POST', reloadParams); } else { result.errors = result.errors || [{}]; BX.Lists.showModalWithStatusAction({ status: 'error', message: result.errors.pop().message }); } }, this) }); }, this) } }), BX.create('span', { text : BX.message("CT_BLL_ADD_SECTION_POPUP_BUTTON_CLOSE"), props: { className: 'webform-small-button webform-button-cancel' }, events : { click : BX.delegate(function() { BX.PopupWindowManager.getCurrentPopup().close(); }, this) } }) ] }); } else { result.errors = result.errors || [{}]; BX.Lists.showModalWithStatusAction({ status: 'error', message: result.errors.pop().message }); } }, this) }); }; ListClass.prototype.deleteSection = function (gridId, sectionId) { BX.Lists.modalWindow({ modalId: 'bx-lists-migrate-list', title: BX.message('CT_BLL_DELETE_POPUP_TITLE'), draggable: true, contentClassName: '', contentStyle: { width: '400px', padding: '20px 20px 20px 20px' }, events: { onPopupClose : function() { this.destroy(); } }, content: BX.message('CT_BLL_TOOLBAR_SECTION_DELETE_WARNING'), buttons: [ BX.create('span', { text : BX.message("CT_BLL_DELETE_POPUP_ACCEPT_BUTTON"), props: { className: 'webform-small-button webform-small-button-accept' }, events : { click : BX.delegate(function() { BX.Lists.ajax({ method: 'POST', dataType: 'json', url: BX.Lists.addToLinkParam(this.ajaxUrl, 'action', 'deleteSection'), data: { iblockTypeId: this.iblockTypeId, iblockId: this.iblockId, sectionId: this.sectionId, socnetGroupId: this.socnetGroupId, sectionIdForDelete: sectionId }, onsuccess: BX.delegate(function(result) { if(result.status == 'success') { BX.Lists.showModalWithStatusAction({ status: 'success', message: result.message }); var reloadParams = {}, gridObject; gridObject = BX.Main.gridManager.getById(gridId); if(gridObject.hasOwnProperty('instance')) { gridObject.instance.reloadTable('POST', reloadParams); var rowObject = gridObject.instance.getRows().getById(sectionId); if(rowObject) rowObject.closeActionsMenu(); } } else { result.errors = result.errors || [{}]; BX.Lists.showModalWithStatusAction({ status: 'error', message: result.errors.pop().message }); } }, this) }); BX.PopupWindowManager.getCurrentPopup().close(); }, this) } }), BX.create('span', { text : BX.message("CT_BLL_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) } }) ] }); }; ListClass.prototype.deleteElement = function (gridId, elementId) { BX.Lists.modalWindow({ modalId: 'bx-lists-migrate-list', title: BX.message('CT_BLL_DELETE_POPUP_TITLE'), draggable: true, contentClassName: '', contentStyle: { width: '400px', padding: '20px 20px 20px 20px' }, events: { onPopupClose : function() { this.destroy(); } }, content: BX.message('CT_BLL_TOOLBAR_ELEMENT_DELETE_WARNING'), buttons: [ BX.create('span', { text : BX.message("CT_BLL_DELETE_POPUP_ACCEPT_BUTTON"), props: { className: 'webform-small-button webform-small-button-accept' }, events : { click : BX.delegate(function() { var reloadParams = {}, gridObject; reloadParams['action_button_'+gridId] = 'delete'; reloadParams['ID'] = [elementId]; gridObject = BX.Main.gridManager.getById(gridId); if(gridObject.hasOwnProperty('instance')) { gridObject.instance.reloadTable('POST', reloadParams); var rowObject = gridObject.instance.getRows().getById(elementId); if(rowObject) rowObject.closeActionsMenu(); } BX.PopupWindowManager.getCurrentPopup().close(); }, this) } }), BX.create('span', { text : BX.message("CT_BLL_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) } }) ] }); }; ListClass.prototype.toogleSectionGrid = function() { BX.Lists.ajax({ method: 'POST', dataType: 'json', url: BX.Lists.addToLinkParam(this.ajaxUrl, 'action', 'toogleSectionGrid'), data: { gridId: this.gridId }, onsuccess: BX.delegate(function(result) { if(result.status == 'success') { var text = BX.message('CT_BLL_SHOW_SECTION_GRID'); if(result.currentValue == 'Y') { text = BX.message('CT_BLL_HIDE_SECTION_GRID'); } for(var k = 0; k < this.actionPopupItems.length; k++) { if(this.actionPopupItems[k].hasOwnProperty('id') && this.actionPopupItems[k].id == 'showSectionGrid') { this.actionPopupItems[k].text = text; this.actionItemChanges = true; } } if(this.actionPopupObject) this.actionPopupObject.popupWindow.close(); if(BX.Main.gridManager.getById(this.gridId)) { BX.Main.gridManager.getById(this.gridId).instance.reload(); } } else { result.errors = result.errors || [{}]; BX.Lists.showModalWithStatusAction({ status: 'error', message: result.errors.pop().message }); } }, this) }); }; return ListClass; })();