Current Path : /var/www/html/clients/nkpgkx11.e-nk.ru/bitrix/js/main/core/ |
Current File : /var/www/html/clients/nkpgkx11.e-nk.ru/bitrix/js/main/core/core_access.js |
(function() { var BX = window.BX; if(BX.Access) return; BX.Access = { bInit: false, waitDiv: null, waitPopup: null, bDialogLoaded: false, selectedProvider: '', obSelected: {}, obCnt: {__providers_cnt: 0}, obAlreadySelected: {}, obSelectedBind: {}, popup: null, callback: null, obProviderNames: {}, arParams: {} } BX.Access.Init = function(arParams) { if(arParams) BX.Access.arParams = arParams; if(BX.Access.bInit) return; BX.Access.bInit = true; BX.ready(BX.delegate(function() { BX.Access.popup = BX.PopupWindowManager.create("BXUserRights", null, { autoHide: false, zIndex: 0, offsetLeft: 0, offsetTop: 0, draggable: {restrict:true}, closeByEsc: true, titleBar: {content: BX.create("span", {html: BX.message('js_access_title'), 'props': {'className': 'access-title-bar'}})}, closeIcon: { right : "12px", top : "10px"}, buttons: [ new BX.PopupWindowButton({ text : BX.message('js_access_select'), className : "popup-window-button-accept", events : { click : function() { this.popupWindow.close(); BX.Access.SaveLRU(); BX.Access.SaveSelected(); if(BX.Access.callback) BX.Access.callback(BX.Access.obSelected); }} }), new BX.PopupWindowButtonLink({ text: BX.message('js_access_close'), className: "popup-window-button-link-cancel", events: { click : function() { this.popupWindow.close(); }} }) ], content: '<div class="access-container"></div>', events: { onAfterPopupShow: function() { if(!BX.Access.bDialogLoaded) { BX.Access.showWait(this.contentContainer); BX.ajax.post( '/bitrix/tools/access_dialog.php', { lang: BX.message('LANGUAGE_ID'), site_id: BX.message('SITE_ID') || '', arParams: BX.Access.arParams }, BX.delegate(function(result) { this.setContent(result); BX.Access.closeWait(); BX.Access.bDialogLoaded = true; }, this) ); } else { BX.Access.ClearSelection(); } BX.onCustomEvent(BX.Access, "onAfterPopupShow", []); } } }); }, this)); } BX.Access.ShowForm = function(arParams) { if(!arParams.bind) arParams.bind = 'bind'; BX.Access.bind = arParams.bind; if(BX.Access.obSelectedBind[arParams.bind]) BX.Access.obAlreadySelected = BX.Access.obSelectedBind[arParams.bind]; else BX.Access.obAlreadySelected = {}; BX.Access.callback = arParams.callback; BX.Access.popup.params.zIndex = (BX.WindowManager? BX.WindowManager.GetZIndex() : 0); BX.Access.popup.show(); } BX.Access.showWait = function(div) { BX.Access.waitDiv = BX.Access.waitDiv || div; div = BX(div || BX.Access.waitDiv); if (!BX.Access.waitPopup) { BX.Access.waitPopup = new BX.PopupWindow('ur_wait', div, { autoHide: true, lightShadow: true, zIndex: (BX.WindowManager? BX.WindowManager.GetZIndex() : 2), content: BX.create('DIV', {props: {className: 'ur-wait'}}) }); } else { BX.Access.waitPopup.setBindElement(div); } var height = div.offsetHeight, width = div.offsetWidth; if (height > 0 && width > 0) { BX.Access.waitPopup.setOffset({ offsetTop: -parseInt(height/2+15), offsetLeft: parseInt(width/2-15) }); BX.Access.waitPopup.show(); } return BX.Access.waitPopup; } BX.Access.closeWait = function() { if(BX.Access.waitPopup) BX.Access.waitPopup.close(); } BX.Access.SelectProvider = function(id) { if(BX.Access.selectedProvider != '') { BX('access_btn_'+BX.Access.selectedProvider).className = 'access-provider-button'; BX('access_provider_'+BX.Access.selectedProvider).style.display = 'none'; } BX('access_btn_'+id).className = 'access-provider-button access-provider-button-selected'; BX('access_provider_'+id).style.display = ''; BX.Access.selectedProvider = id; BX.onCustomEvent(BX.Access, "onSelectProvider", [{'provider': id}]); } BX.Access.AddSelection = function(ob) { if(!BX.Access.obSelected[ob.provider]) { BX.Access.obSelected[ob.provider] = {}; BX.Access.obCnt[ob.provider] = 0; BX.Access.obCnt.__providers_cnt++; } if(!BX.Access.obSelected[ob.provider][ob.id]) { BX.Access.obSelected[ob.provider][ob.id] = BX.clone(ob); BX.Access.obCnt[ob.provider]++; BX('access_selected_title').style.display = 'none'; BX('access_selected_provider_'+ob.provider).style.display = ''; BX('access_selected_items_'+ob.provider).appendChild(BX.create('div', { props: { 'className':'bx-finder-box-selected-item', 'id': 'access_selected_item_'+ob.id }, html: '<a href="javascript:void(0);" onclick="BX.Access.RemoveSelection(\''+ob.provider+'\', \''+ob.id+'\')" class="bx-finder-box-selected-item-icon"></a><span class="bx-finder-box-selected-item-text">'+ob.name+'</span>' })); BX('access_sel_count_'+ob.provider).innerHTML = '('+BX.Access.obCnt[ob.provider]+')'; } } BX.Access.RemoveSelection = function(provider, id, bClearSelected) { delete BX.Access.obSelected[provider][id]; BX.Access.obCnt[provider]--; var item = BX('access_selected_item_'+id); item.parentNode.removeChild(item); if(BX.Access.obCnt[provider] == 0) { delete BX.Access.obSelected[provider]; BX.Access.obCnt.__providers_cnt--; BX('access_selected_provider_'+provider).style.display = 'none'; if(BX.Access.obCnt.__providers_cnt == 0) BX('access_selected_title').style.display = ''; } else { BX('access_sel_count_'+provider).innerHTML = '('+BX.Access.obCnt[provider]+')'; } BX.onCustomEvent(BX.Access, "onDeleteItem", [{'provider': provider, 'id': id}]); } BX.Access.ClearSelection = function() { for(var provider in BX.Access.obSelected) for(var id in BX.Access.obSelected[provider]) BX.Access.RemoveSelection(provider, id); BX.Access.obSelected = {}; } BX.Access.SaveLRU = function() { BX.ajax.post('/bitrix/tools/access_dialog.php', { LRU: BX.Access.obSelected, mode: 'save_lru', sessid: BX.bitrix_sessid() }); } BX.Access.SaveSelected = function() { if(!BX.Access.obSelectedBind[BX.Access.bind]) BX.Access.obSelectedBind[BX.Access.bind] = {}; for(var pr in BX.Access.obSelected) for(var id in BX.Access.obSelected[pr]) BX.Access.obSelectedBind[BX.Access.bind][id] = true; } BX.Access.SetSelected = function(obSel, bind) { if(!bind) bind = 'bind'; BX.Access.obSelectedBind[bind] = obSel; } BX.Access.DeleteSelected = function(id, bind) { if(!bind) bind = 'bind'; if(BX.Access.obSelectedBind[bind] && BX.Access.obSelectedBind[bind][id]) delete BX.Access.obSelectedBind[bind][id]; } BX.Access.GetProviderName = function(provider) { if(BX.Access.obProviderNames[provider]) return BX.Access.obProviderNames[provider]; return ''; } })();