%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/socialnetwork.user_groups/templates/.default/ |
Current File : //home/bitrix/www/bitrix/components/bitrix/socialnetwork.user_groups/templates/.default/script.js |
BitrixSUG = function () { this.bLoadStarted = null; this.refreshUrl = null; this.mainFilterUsed = false; this.sortKey = 'alpha'; this.project = 'N'; }; BitrixSUG.prototype.init = function(params) { if (typeof params != 'undefined') { this.refreshUrl = (typeof params.refreshUrl != 'undefined' ? params.refreshUrl : top.location.href); this.project = (typeof params.project != 'undefined' && params.project == 'Y' ? 'Y' : 'N'); if ( typeof params.keyboardPageNavigation != 'undefined' && params.keyboardPageNavigation && typeof params.navId != 'undefined' ) { this.initKeyboardPageNavigation(params.navId); } } this.processNavigation(); BX.addCustomEvent("BX.SonetGroupList.Filter:beforeApply", BX.delegate(function(filterValues, filterPromise) { this.showRefreshFade(); }, this)); BX.addCustomEvent("BX.SonetGroupList.Filter:apply", BX.delegate(function(filterValues, filterPromise, filterParams) { if (typeof filterParams != 'undefined') { filterParams.autoResolve = false; } this.refresh({ useBXMainFilter: 'Y' }, filterPromise); }, this)); BX.addCustomEvent("BX.SonetGroupList.Filter:searchInput", BX.delegate(function(searchString) { if ( typeof searchString != 'undefined' && BX.util.trim(searchString).length > 0 ) { this.showRefreshFade(); } else { this.hideRefreshFade(); } }, this)); BX.addCustomEvent('SidePanel.Slider:onMessage', BX.delegate(function(event){ if (event.getEventId() == 'sonetGroupEvent') { var eventData = event.getData(); if ( BX.type.isNotEmptyString(eventData.code) && eventData.code == 'afterEdit' ) { BX.SocialnetworkUICommon.reload(); } } }, this)); }; BitrixSUG.prototype.sendRequest = function(params) { if ( typeof params == 'undefined' || typeof params.groupId == 'undefined' || parseInt(params.groupId) <= 0 ) { return false; } if ( typeof params.action == 'undefined' || !BX.util.in_array(params.action, ['REQUEST', 'FAVORITES']) ) { return false; } var requestParams = {}; if (params.action == 'FAVORITES') { requestParams.value = (typeof params.value != 'undefined' ? params.value : 'Y'); } BX.ajax({ url: '/bitrix/components/bitrix/socialnetwork.user_groups/ajax.php', method: 'POST', dataType: 'json', data: { sessid : BX.bitrix_sessid(), site : BX.message('SITE_ID'), groupId: parseInt(params.groupId), action : params.action, params : requestParams }, onsuccess: function(responseData) { if (typeof responseData.SUCCESS != 'undefined') { params.callback_success(responseData); } else { params.callback_failure(typeof responseData.ERROR != 'undefined' ? responseData.ERROR : BX('SONET_C33_T_F_REQUEST_ERROR')); } }, onfailure: function(responseData) { params.callback_failure(BX('SONET_C33_T_F_REQUEST_ERROR')); } }); return false; }; BitrixSUG.prototype.showRequestWait = function(target) { BX.addClass(target, 'popup-window-button-wait'); }; BitrixSUG.prototype.closeRequestWait = function(target) { BX.removeClass(target, 'popup-window-button-wait'); }; BitrixSUG.prototype.setFavorites = function(node, active) { if (BX(node)) { var flyingStar = node.cloneNode(); flyingStar.style.marginLeft = "-" + node.offsetWidth + "px"; node.parentNode.appendChild(flyingStar); new BX.easing({ duration: 200, start: { opacity: 100, scale: 100 }, finish: { opacity: 0, scale: 300 }, transition : BX.easing.transitions.linear, step: function(state) { flyingStar.style.transform = "scale(" + state.scale / 100 + ")"; flyingStar.style.opacity = state.opacity / 100; }, complete: function() { flyingStar.parentNode.removeChild(flyingStar); } }).animate(); if (!!active) { BX.addClass(node, 'sonet-groups-group-title-favorites-active'); BX.adjust(node, { attrs : {title : BX.message('SONET_C33_T_ACT_FAVORITES_REMOVE')} }); } else { BX.removeClass(node, 'sonet-groups-group-title-favorites-active'); BX.adjust(node, { attrs : {title : BX.message('SONET_C33_T_ACT_FAVORITES_ADD')} }); } } }; BitrixSUG.prototype.setRequestSent = function(node, sentNode, role) { if (BX(node)) { this.closeRequestWait(node); BX.addClass(node, 'sonet-groups-group-btn-sent'); } if ( typeof role != 'undefined' && role == 'Z' && BX(sentNode) ) { BX.addClass(sentNode, 'sonet-groups-group-desc-container-active'); } }; BitrixSUG.prototype.showRequestSent = function(sentNode) { if (BX(sentNode)) { BX.addClass(sentNode, 'sonet-groups-group-desc-container-active'); } }; BitrixSUG.prototype.showError = function(errorText) { var errorPopup = new BX.PopupWindow('ug-error' + Math.random(), window, { autoHide: true, lightShadow: false, zIndex: 2, content: BX.create('DIV', {props: {'className': 'sonet-groups-error-text-block'}, html: BX.message('SONET_C33_T_F_REQUEST_ERROR').replace('#ERROR#', errorText)}), closeByEsc: true, closeIcon: true }); errorPopup.show(); }; BitrixSUG.prototype.showSortMenu = function(params) { BX.PopupMenu.destroy('bx-sonet-groups-sort-menu'); BX.PopupMenu.show('bx-sonet-groups-sort-menu', params.bindNode, [ { text: BX.message('SONET_C33_T_F_SORT_ALPHA'), onclick: BX.proxy(function() { this.selectSortMenuItem({ text: BX.message('SONET_C33_T_F_SORT_ALPHA'), key: 'alpha', valueNode: params.valueNode }); BX.PopupMenu.destroy('bx-sonet-groups-sort-menu'); }, this) }, ( parseInt(params.userId) == BX.message('USER_ID') && parseInt(params.userId) > 0 ? { text: BX.message('SONET_C33_T_F_SORT_DATE_REQUEST'), onclick: BX.proxy(function() { this.selectSortMenuItem({ text: BX.message('SONET_C33_T_F_SORT_DATE_REQUEST'), key: 'date_request', valueNode: params.valueNode }); BX.PopupMenu.destroy('bx-sonet-groups-sort-menu'); }, this) } : null ), ( parseInt(params.userId) == BX.message('USER_ID') && parseInt(params.userId) > 0 ? { text: BX.message('SONET_C33_T_F_SORT_DATE_VIEW'), onclick: BX.proxy(function() { this.selectSortMenuItem({ text: BX.message('SONET_C33_T_F_SORT_DATE_VIEW'), key: 'date_view', valueNode: params.valueNode }); BX.PopupMenu.destroy('bx-sonet-groups-sort-menu'); }, this) } : null ), ( params.showMembersCountItem ? { text: BX.message('SONET_C33_T_F_SORT_MEMBERS_COUNT'), onclick: BX.proxy(function() { this.selectSortMenuItem({ text: BX.message('SONET_C33_T_F_SORT_MEMBERS_COUNT'), key: 'members_count', valueNode: params.valueNode }); BX.PopupMenu.destroy('bx-sonet-groups-sort-menu'); }, this) } : null ), { text: BX.message('SONET_C33_T_F_SORT_DATE_ACTIVITY'), onclick: BX.proxy(function() { this.selectSortMenuItem({ text: BX.message('SONET_C33_T_F_SORT_DATE_ACTIVITY'), key: 'date_activity', valueNode: params.valueNode }); BX.PopupMenu.destroy('bx-sonet-groups-sort-menu'); }, this) }, { text: BX.message('SONET_C33_T_F_SORT_DATE_CREATE'), onclick: BX.proxy(function() { this.selectSortMenuItem({ text: BX.message('SONET_C33_T_F_SORT_DATE_CREATE'), key: 'date_create', valueNode: params.valueNode }); BX.PopupMenu.destroy('bx-sonet-groups-sort-menu'); }, this) } ], { offsetLeft: 100, offsetTop: 0, lightShadow: false, angle: {position: 'top', offset : 50} }); return false; }; BitrixSUG.prototype.selectSortMenuItem = function(params) { this.setSortMenuItemText(params); var url = null; if (!BX.util.in_array(params.key, ['alpha', 'date_request', 'date_view', 'members_count', 'date_activity', 'date_create'])) { params.key = 'alpha'; } this.sortKey = params.key; switch(params.key) { case 'alpha': url = BX.message('filterAlphaUrl'); break; case 'date_request': url = BX.message('filterDateRequestUrl'); break; case 'date_view': url = BX.message('filterDateViewUrl'); break; case 'members_count': url = BX.message('filterMembersCountUrl'); break; case 'date_activity': url = BX.message('filterDateActivityUrl'); break; case 'date_create': url = BX.message('filterDateCreateUrl'); break; default: url = BX.message('filterAlphaUrl') } if (this.mainFilterUsed) { url += '&useBXMainFilter=Y' } this.refresh({ url: url }); }; BitrixSUG.prototype.setSortMenuItemText = function(params) { BX(params.valueNode).innerHTML = params.text; }; BitrixSUG.prototype.refresh = function(params, filterPromise) { if (this.bLoadStarted) { return; } var url = this.refreshUrl; if ( typeof params != 'undefined' && typeof params.url != 'undefined' ) { url = params.url; params.url = null; } this.bLoadStarted = true; this.showRefreshFade(); var useBXMainFilter = ( ( typeof params != 'undefined' && typeof params.useBXMainFilter != 'undefined' && params.useBXMainFilter == 'Y' ) || url.indexOf('&useBXMainFilter=Y') >= 0 ); if (typeof params == 'undefined') { params = {}; } params.order = this.sortKey; var urlParams = BX.ajax.prepareData(params); if (urlParams) { url += (url.indexOf('?') !== -1 ? "&" : "?") + urlParams; } this.bLoadStarted = false; BX.ajax({ url: url, method: 'GET', dataType: 'json', onsuccess: BX.delegate(function(data) { this.bLoadStarted = false; this.hideRefreshFade(); this.mainFilterUsed = useBXMainFilter; if ( typeof data != 'undefined' && typeof (data.PROPS) != 'undefined' ) { if (filterPromise) { filterPromise.fulfill(); } var loaderContainer = null; if (BX('sonet-groups-loader-loader-container')) { loaderContainer = BX('sonet-groups-loader-loader-container'); } BX.cleanNode('sonet-groups-content-container', false); if ( typeof data.PROPS.EMPTY != 'undefined' && (data.PROPS.EMPTY == 'Y') ) { BX.addClass(BX('sonet-groups-content-wrap'), 'no-groups'); BX('sonet-groups-content-container').appendChild(BX.create('DIV', { props: { id: 'sonet-groups-list-container', className: 'sonet-groups-list-container' }, children: [ BX.create('DIV', { props: { id: 'sonet-groups-loader-container', className: 'sonet-groups-loader-container' }, html: '<svg class="sonet-groups-loader-circular" viewBox="25 25 50 50"><circle class="sonet-groups-loader-path" cx="50" cy="50" r="20" fill="none" stroke-miterlimit="10"></circle></svg>' }), BX.create('DIV', { props: { className: 'sonet-groups-group-message' }, children: [ BX.create('DIV', { props: { className: 'sonet-groups-group-message-text' }, html: (this.project == 'Y' ? BX.message('SONET_C36_T_NO_GROUPS_PROJECT') : BX.message('SONET_C36_T_NO_GROUPS')) }) ] }) ] })); } else { BX.removeClass(BX('sonet-groups-content-wrap'), 'no-groups'); } if (loaderContainer) { BX('sonet-groups-list-container').appendChild(loaderContainer); } if ( typeof (data.PROPS.CONTENT) != 'undefined' && (data.PROPS.CONTENT.length > 0) ) { this.processAjaxBlock(data.PROPS); } this.processNavigation(); } else { if (filterPromise) { filterPromise.reject(); } this.showRefreshError(); } }, this), onfailure: BX.delegate(function(data) { this.bLoadStarted = false; if (filterPromise) { filterPromise.reject(); } this.hideRefreshFade(); this.showRefreshError(); }, this) }); return false; }; BitrixSUG.prototype.showRefreshFade = function() { if ( BX('sonet-groups-list-container') && !BX.hasClass(BX('sonet-groups-list-container'), 'sonet-groups-internal-mask') ) { BX.addClass(BX('sonet-groups-list-container'), 'sonet-groups-internal-mask'); var loaderContainer = BX('sonet-groups-loader-container'); if (loaderContainer) { BX.style(loaderContainer, 'display', 'block'); BX.removeClass(loaderContainer, 'sonet-groups-hide-loader'); setTimeout(function() { BX.addClass(loaderContainer, 'sonet-groups-show-loader'); }, 0); } } }; BitrixSUG.prototype.hideRefreshFade = function() { BX.removeClass(BX('sonet-groups-list-container'), 'sonet-groups-internal-mask'); var loaderContainer = BX('sonet-groups-loader-container'); if (loaderContainer) { BX.removeClass(loaderContainer, 'sonet-groups-show-loader'); BX.addClass(loaderContainer, 'sonet-groups-hide-loader'); } }; BitrixSUG.prototype.showRefreshError = function() { }; /* BitrixSUG.prototype._onAnimationEnd = function(event) { if ( 'animationName' in event && event.animationName && event.animationName === 'hideLoader' ) { var loaderContainer = BX('feed-loader-container'); BX.removeClass(loaderContainer, 'livefeed-show-loader'); BX.removeClass(loaderContainer, 'livefeed-hide-loader'); BX.style(loaderContainer, 'display', ''); } }; */ BitrixSUG.prototype.processAjaxBlock = function(block) { if (!block) { return; } var htmlWasInserted = false; var scriptsLoaded = false; insertHTML(); processInlineJS(); function insertHTML() { BX('sonet-groups-content-container').appendChild(BX.create('DIV', { props: {}, html: block.CONTENT })); htmlWasInserted = true; if (scriptsLoaded) { processInlineJS(); } } function processInlineJS() { scriptsLoaded = true; if (htmlWasInserted) { BX.ajax.processRequestData(block.CONTENT, { scriptsRunFirst: false, dataType: "HTML" }); } } }; BitrixSUG.prototype.initKeyboardPageNavigation = function(navId) { window.addEventListener("keydown", BX.delegate(function(event) { if ( (event.ctrlKey || event.metaKey) && [39, 37].indexOf(event.keyCode) !== -1 ) { var link = null; if (event.keyCode === 39) { link = BX(navId + '_next_page'); } if (event.keyCode === 37) { link = BX(navId + '_previous_page'); } if (link && link.href) { event.preventDefault(); event.stopImmediatePropagation(); this.refresh({ url: link.href + "&refreshAjax=Y" }); } } }, this), true); }; BitrixSUG.prototype.processNavigation = function() { var navContainer = BX('sonet-groups-nav-container'); if (!navContainer) { return; } var anchorsList = BX.findChildren(navContainer, { tagName: 'a' }, true); for (var i = 0; i < anchorsList.length; i++) { BX.bind(anchorsList[i], 'click', BX.delegate(function(e) { var link = e.currentTarget.href; if ( link && link.length > 0 ) { this.clickNavigation(link); e.preventDefault(); } }, this)); } }; BitrixSUG.prototype.clickNavigation = function(link) { this.refresh({ url: link + "&refreshAjax=Y" }); }; oSUG = new BitrixSUG; window.oSUG = oSUG;