mirror of
https://github.com/AdguardTeam/AdGuardHome.git
synced 2025-04-30 13:11:37 +03:00
+ client: handle filters configuration
This commit is contained in:
parent
57bb04685f
commit
d0fc1dc54d
25 changed files with 745 additions and 460 deletions
client/src/helpers
|
@ -6,6 +6,7 @@ import addDays from 'date-fns/add_days';
|
|||
import subDays from 'date-fns/sub_days';
|
||||
import round from 'lodash/round';
|
||||
import axios from 'axios';
|
||||
import i18n from 'i18next';
|
||||
|
||||
import {
|
||||
STANDARD_DNS_PORT,
|
||||
|
@ -19,6 +20,21 @@ export const formatTime = (time) => {
|
|||
return dateFormat(parsedTime, 'HH:mm:ss');
|
||||
};
|
||||
|
||||
export const formatDateTime = (dateTime) => {
|
||||
const currentLanguage = i18n.languages[0] || 'en';
|
||||
const parsedTime = dateParse(dateTime);
|
||||
const options = {
|
||||
year: 'numeric',
|
||||
month: 'numeric',
|
||||
day: 'numeric',
|
||||
hour: 'numeric',
|
||||
minute: 'numeric',
|
||||
hour12: false,
|
||||
};
|
||||
|
||||
return parsedTime.toLocaleString(currentLanguage, options);
|
||||
};
|
||||
|
||||
export const normalizeLogs = logs => logs.map((log) => {
|
||||
const {
|
||||
time,
|
||||
|
@ -74,18 +90,38 @@ export const normalizeTopStats = stats => (
|
|||
);
|
||||
|
||||
export const normalizeFilteringStatus = (filteringStatus) => {
|
||||
const { enabled, filters, user_rules: userRules } = filteringStatus;
|
||||
const newFilters = filters ? filters.map((filter) => {
|
||||
const {
|
||||
id, url, enabled, lastUpdated: lastUpdated = Date.now(), name = 'Default name', rulesCount: rulesCount = 0,
|
||||
} = filter;
|
||||
const {
|
||||
enabled, filters, user_rules: userRules, interval,
|
||||
} = filteringStatus;
|
||||
const newFilters = filters
|
||||
? filters.map((filter) => {
|
||||
const {
|
||||
id,
|
||||
url,
|
||||
enabled,
|
||||
last_updated,
|
||||
name = 'Default name',
|
||||
rules_count: rules_count = 0,
|
||||
} = filter;
|
||||
|
||||
return {
|
||||
id, url, enabled, lastUpdated: formatTime(lastUpdated), name, rulesCount,
|
||||
};
|
||||
}) : [];
|
||||
return {
|
||||
id,
|
||||
url,
|
||||
enabled,
|
||||
lastUpdated: last_updated ? formatDateTime(last_updated) : '–',
|
||||
name,
|
||||
rulesCount: rules_count,
|
||||
};
|
||||
})
|
||||
: [];
|
||||
const newUserRules = Array.isArray(userRules) ? userRules.join('\n') : '';
|
||||
return { enabled, userRules: newUserRules, filters: newFilters };
|
||||
|
||||
return {
|
||||
enabled,
|
||||
userRules: newUserRules,
|
||||
filters: newFilters,
|
||||
interval,
|
||||
};
|
||||
};
|
||||
|
||||
export const getPercent = (amount, number) => {
|
||||
|
@ -241,3 +277,5 @@ export const secondsToMilliseconds = (seconds) => {
|
|||
|
||||
return seconds;
|
||||
};
|
||||
|
||||
export const normalizeRulesTextarea = text => text && text.replace(/^\n/g, '').replace(/\n\s*\n/g, '\n');
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue