HM-56. Добавлена страница для просмотра логов с фильтрацией, пагинацией (#20)

This commit is contained in:
Nikolay
2020-07-19 16:19:39 +03:00
committed by GitHub
parent d01ee79202
commit 47fe69bc65
20 changed files with 520 additions and 10 deletions

View File

@ -64,7 +64,7 @@ class RouteService extends EmitService {
/**
* Метод перехода по маршрутам
* @param {string} url - принимает маршрут для перехода
* @param {query} query - объект с парами ключ-значение для url
* @param {Object<string, string>} query - объект с парами ключ-значение для url
* @example
* // Переход по заданному url
* _.goTo('/users', {
@ -73,12 +73,33 @@ class RouteService extends EmitService {
* });
* // Это создаст строку в url - site.ru/users?key=testApi&author=Petrov
*/
goTo = (url, query) => {
const urlWithQuery = makeUrlWithQuery(url, query);
goTo = (url, query = {}) => {
const prepareQuery = Object.entries(query)
.reduce((memo, [key, value]) => {
if (value) {
memo[key] = value;
}
return memo;
}, {});
const urlWithQuery = makeUrlWithQuery(url, prepareQuery);
this.history.pushState({}, '', urlWithQuery);
this.generateNext();
}
/**
* Обновляет query в url сохраняя текущий url
* @param {Object<string, string>} newQuery - объект с новыми query ключами-значениями
* @param {boolean} isClear - указать true, чтобы очистить предыдущий query, иначе параметры
* смерджатся с приоритетом у нового query
*/
pushQuery = (newQuery, isClear = false) => {
const {url, query} = this.getUrlData();
this.goTo(url, {
...(isClear ? {} : query),
...newQuery,
});
}
/**
* С помощью этого метода подписываемся на событие изменения роута.
* @param {RouterListener} listener - слушатель для события изменения роута