// 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 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($('
'));
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;
}