// Piter Gavrinev 20.01.2021 (v3.1) const _MainPoint = "/Queries/AjaxDataSource/115732"; const _EventSourceURL = "/Queries/AjaxDataSource/94875"; const _NewsSourceURL = "/Queries/AjaxDataSource/94876"; const _DatesSource = "/Queries/AjaxDataSource/104031"; let _PageLoadding = false; let _PageSize = 5; let from_date_val = ''; let to_date_val = ''; let last_big = true; let pageCounter = 0; let tab_id = 100; let IsEng = 0; let News_last_day; let DatesControl; $(function () { CreateMainPoint(); }); function RestartTab(id) { tab_id = id; from_date_val = ''; to_date_val = ''; LoadTab(from_date_val, to_date_val, true); AjustDates(); } function CreateTab(data, sw_tabs, num, RussName, EngName) { if (data.some(function (item) { return item.Part === num; })) { const nm = $("" + (IsEng ? EngName : RussName) + ""); nm.click(function () { RestartTab(num); }); if (num === 7) sw_tabs.append($("")); sw_tabs.append(nm); } } function CreateMainPoint() { tab_id = 0; const lang = $("meta[name='zoom:lang']").attr("content"); moment.locale(lang); IsEng = 0; if (lang === 'en') { IsEng = 1; } const rootPoint = $("#mainPoint"); const rp = $("
"); const sw_tabs = $("
"); rp.append(sw_tabs); rp.append($("
")); rootPoint.append(rp); $.ajax({ url: _MainPoint, data: {IsEng: (!!IsEng), Tid: CurrentThemaID, vol: press_vol} }).done(function (data) { if (data.length === 0) return; tab_id = data[0].Part; CreateTab(data, sw_tabs, 0, "Новости", "News"); CreateTab(data, sw_tabs, 4, "Пресс-релизы", "Press releases"); CreateTab(data, sw_tabs, 2, "Интервью", "Interview"); CreateTab(data, sw_tabs, 1, "Выступления", "Speeches"); CreateTab(data, sw_tabs, 7, "Новое на сайте", "What’s new"); const news_page_row = $("
"); const news_page_content = $("
"); const md_17 = $("
"); md_17.append($("
")); $.each(data, function (index, d) { var itm = $("
"); md_17.append(itm); }); news_page_content.append(md_17); news_page_row.append(news_page_content); rp.append(news_page_row); rp.trigger('new-html'); if (!AutoTabSelect()) { LoadTab('', '', false); AjustDates(); } }); } function AutoTabSelect() { var tabidSelect; $("a.tab").click(function (e) { var tabid = $(this).data("tabs-tab"); location.hash = "tab_" + tabid; }); if (location.hash != "") { const tsel_hasch = location.hash.substring(1); const _tid = tsel_hasch.indexOf("tab_") if (_tid !== -1) { tabidSelect = tsel_hasch.substring(_tid + 4); var tabObj = $("a[data-tabs-tab='" + tabidSelect + "']"); if (tabObj.length !== 0) { tab_id = tabidSelect; tabObj.click(); return true; } } } return false; } function AjustDates() { $.ajax({ url: _DatesSource, data: {IsEng: (!!IsEng), type: tab_id, Tid: CurrentThemaID, vol: press_vol}, cache: false }).done(function (data) { from_date_val = data[0].DTMin; to_date_val = data[0].DTMax; const pu = $(".page-info_last-update"); if (pu.length !== 0) { pu.text(IsEng ? "Last updated on: " + moment(to_date_val).format("DD/MM/YYYY") : "Последнее обновление страницы: " + moment(to_date_val).format("DD.MM.YYYY")); } DatesControl = new AIC_TwoDateControlEXT(IsEng); const dateRangeObj = $("#DatesFilterRange"); dateRangeObj.empty(); DatesControl.AppendTo(dateRangeObj); DatesControl.SetDatesRange(from_date_val, to_date_val); DatesControl.click(function (fdate, tdate) { if (fdate !== null && tdate !== null) { from_date_val = fdate; to_date_val = tdate; LoadTab(from_date_val, to_date_val, true); } else { from_date_val = ''; to_date_val = ''; LoadTab(from_date_val, to_date_val, true); } }); }); } function LoadTab(dateFrom, dateTo, reset) { const lang = $("meta[name='zoom:lang']").attr("content"); moment.locale(lang); pageCounter = 0; let loadPageText = 'Загрузить еще'; IsEng = 0; if (lang === 'en') { loadPageText = 'Load more'; IsEng = 1; } const idiv = $("#events_tab" + tab_id); const vrap = idiv.parent(); if (vrap.children(".more-button").length > 0 && reset === false) return; idiv.empty(); if (reset) { News_last_day = null; } if (vrap.children(".more-button").length === 0) { const nexButton = $(''); vrap.append(nexButton); nexButton.click(function () { if (_PageLoadding) return; _PageLoadding = true; pageCounter++; if (tab_id === 7) { NLoadPage(idiv, pageCounter, IsEng, from_date_val, to_date_val); } else { EPLoadPage(idiv, pageCounter, IsEng, tab_id, from_date_val, to_date_val); } }); } if (tab_id === 7) { NLoadPage(idiv, 0, IsEng, dateFrom, dateTo); } else { EPLoadPage(idiv, 0, IsEng, tab_id, dateFrom, dateTo); } } function EPLoadPage(idiv, page, IsEng, tab_id, dateFrom, dateTo) { const nexButton = idiv.parent().children(".more-button"); nexButton.addClass("_loading"); $.ajax({ url: _EventSourceURL, data: { page: page, IsEng: (!!IsEng), type: tab_id, dateFrom: dateFrom, dateTo: dateTo, Tid: CurrentThemaID, vol: press_vol }, cache: false }).done(function (data) { _PageLoadding = false; nexButton.removeClass("_loading"); if (data.length !== _PageSize) { nexButton.hide(); } else { nexButton.show(); } let firstOrImportant = false; const fo = data.filter(function (item) { return (item.ImageId > 0 || item.ImageCId > 0); }); // вставляем важную новость или новость с картинкой if (fo.length > 0 && page === 0) { // превая строка firstOrImportant = fo[0]; idiv.append(MakeEventRow(fo[0], true)); last_big = true; } $.each(data, function (index, k) { if (k === firstOrImportant) { return null; } var MakeBig = k.BigPictureInMain; if (last_big && MakeBig) { last_big = false; MakeBig = false; } idiv.append(MakeEventRow(k, MakeBig)); last_big = MakeBig; }); }).fail(function () { alert("Error load data"); _PageLoadding = false; }); } function decodeType(name, IsEng) { let tpName; switch (name) { case "events": tpName = IsEng ? 'News' : 'Новость'; break; case "performance": tpName = IsEng ? 'Speech' : 'Выступление'; break; case "interview": tpName = IsEng ? 'Interview' : 'Интервью'; break; case "press": tpName = IsEng ? 'Press release' : 'Пресс-релиз'; break; default: tpName = IsEng ? 'News' : 'Новость'; } return tpName; } function NLoadPage(idiv, page, IsEng, dateFrom, dateTo) { const more_button = idiv.parent().children(".more-button"); more_button.addClass("_loading"); $.ajax({ url: _NewsSourceURL, data: {page: page, IsEng: (!!IsEng), dateFrom: dateFrom, dateTo: dateTo, Tid: CurrentThemaID}, cache: false }).done(function (data) { _PageLoadding = false; more_button.removeClass("_loading"); if (data.length !== _PageSize) { more_button.hide(); } else { more_button.show(); } let divday = $('
'); $.each(data, function (index, k) { if (News_last_day !== k.DT) { News_last_day = k.DT; divday = $('
'); dt = $('
' + moment(k.DT).format("DD MMMM") + '
'); divday.append(dt); idiv.append(divday); } const press_root = $('
'); const row = $('
'); row.append($('
' + k.dateupdate + '
')); const titleInfo = $(''); row.append(titleInfo); if (k.Important !== 0) { row.append($('
')); } press_root.append(row); if (k.MenuTitle !== null) { press_root.append($('
' + k.MenuTitle.trim() + '
')); } divday.append(press_root); }); }).fail(function () { alert("Error load data"); _PageLoadding = false; }); } function MakeEventRow(k, IsImportantRow) { let dtm = moment(k.DT).format("DD MMMM YYYY"); if (moment(k.DT).format("DD.MM.YYYY") === moment().format("DD.MM.YYYY")) { dtm = IsEng === 1 ? "Today" : "Сегодня"; } let tpName = decodeType(k.TBLType, IsEng); let _link; if (k.TBLType === 'press') { _link = '/press/pr/?file=' + k.doc_htm; } else { _link = '/press/event/?id=' + k.doc_htm; } _link = (IsEng ? '/eng' + _link : _link); let press_root = $('
'); let bkgimg = ''; if (IsImportantRow) { if (k.ImageId > 0) { bkgimg = 'style="background-image:url(/legacy/PhotoStore/getimgid/' + k.ImageId + '.png);"'; } else { bkgimg = 'style="background-image:url(/legacy/PhotoStore/getimgid/' + k.ImageCId + '.png);"'; } } const news_inner = $('
'); const rtp = $('
'); rtp.append($('
' + dtm + '
' + tpName + '
')); rtp.append($('' + k.name_doc + '')); news_inner.append(rtp); if (k.ImageId > 0) { news_inner.append(''); } else { // елси есть кроп то еего if (k.ImageCId > 0) { news_inner.append(''); } } press_root.append(news_inner); return press_root; }