// Piter Gavrinev 30.09.2024 (v3.2.1) const _MainPoint = "/Queries/AjaxDataSource/115732"; const _EventSourceURL = "/PSystem/news/eventandpress/"; const _NewsSourceURL = "/PSystem/news/newonsite/"; 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; let CurrentSearch = []; let CurretDates = []; $(function () { CreateMainPoint(); }); function RestartTab(id) { tab_id = id; LoadTab(CurretDates[id].from_date_val, CurretDates[id].to_date_val, true); //AjustDates(id); } function IsNetworkErrMsg(Err) { return $("
" + (IsEng ? "Error: " + Err + ", try refresh the page" : "Ошибка: " + Err + ", попробуйте обновить страницу") + "
"); } function CreateForm(id) { var form_indent = div("form-indent"); var searchTextControl = new AIC_SearchTextField(IsEng, IsEng ? "Search by section": "Поиск по разделу"); searchTextControl.click(function (text_fnd) { CurrentSearch[id] = text_fnd; RestartTab(id); }); const frm = $("
"); form_indent.append(frm); searchTextControl.AppendTo(frm); //if (id == 0) { const fw = div("filters_wrapper _block"); const fb = div("filters"); fw.append(fb); var datesRangeObj = div("", "DatesFilterRange_" + id); AjustDates(id, datesRangeObj); fb.append(datesRangeObj); frm.append(fw); //} return form_indent; } 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); 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"); $.each(data, function (index, d) { CurretDates[d.Part] = { from_date_val: null, to_date_val: null, done: false }; var itm = $("
"); itm.append(CreateForm(d.Part)); CurrentSearch[d.Part] = ""; itm.append(div("news-speeches_wrap")); rp.append(itm); }); $("a.tab").click(function (e) { var tabid = $(this).data("tabs-tab"); location.hash = "tab_" + tabid; }); rp.trigger('new-html'); if (!AutoTabSelect()) { LoadTab('', '', false); } }); } function AutoTabSelect() { var tabidSelect; 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); return ClickToTab(tabidSelect); } } return false; } function ClickToTab(tabidSelect) { var tabObj = $("a[data-tabs-tab='" + tabidSelect + "']"); if (tabObj.length !== 0) { tab_id = tabidSelect; setTimeout(function () { CurretDates.forEach(function (entry) { if (entry.done == false) { return ClickToTab(tabidSelect); } }); tabObj.click(); // }, 200) return true; } return false; } function AjustDates(id, dateRangeObj) { $.ajax({ url: _DatesSource, data: { IsEng: (!!IsEng), type: id, Tid: CurrentThemaID, vol: press_vol }, cache: false }).done(function (data) { CurretDates[id].from_date_val = data[0].DTMin; CurretDates[id].to_date_val = data[0].DTMax; const pu = $(".page-info_last-update"); if (pu.length !== 0) { pu.text(IsEng ? "Last updated on: " + moment(CurretDates[id].to_date_val).format("DD.MM.YYYY") : "Последнее обновление страницы: " + moment(CurretDates[id].to_date_val).format("DD.MM.YYYY")); } DatesControl = new AIC_TwoDateControlEXT(IsEng, IsEng ? "Choose period" : "Выберите период"); //dateRangeObj.empty(); DatesControl.AppendTo(dateRangeObj); DatesControl.SetDatesRange(CurretDates[id].from_date_val, CurretDates[id].to_date_val); CurretDates[id].done = true; DatesControl.click(function (fdate, tdate) { if (fdate !== null && tdate !== null) { CurretDates[id].from_date_val = fdate; CurretDates[id].to_date_val = tdate; LoadTab(CurretDates[id].from_date_val, CurretDates[id].to_date_val, true); } else { CurretDates[id].from_date_val = ''; CurretDates[id].to_date_val = ''; LoadTab(CurretDates[id].from_date_val, CurretDates[id].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).children(".news-speeches_wrap"); 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({ async: false, url: _EventSourceURL, data: { page: page, IsEng: (!!IsEng), type: tab_id, dateFrom: dateFrom, dateTo: dateTo, Tid: CurrentThemaID, vol: press_vol, phrase: CurrentSearch[tab_id] }, 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 (xhr, textStatus, errorThrown) { idiv.append(IsNetworkErrMsg(xhr.statusText)); _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({ async: false, url: _NewsSourceURL, data: { page: page, IsEng: (!!IsEng), dateFrom: dateFrom, dateTo: dateTo, Tid: CurrentThemaID, phrase: CurrentSearch[tab_id] }, 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 (xhr, textStatus, errorThrown) { idiv.append(IsNetworkErrMsg(xhr.statusText)); _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($('')); news_inner.append(rtp); if (k.ImageCId > 0) { news_inner.append(''); } else { // елси есть кроп то еего if (k.ImageId > 0) { news_inner.append(''); } } press_root.append(news_inner); return press_root; }