mirror of
https://github.com/AdguardTeam/AdGuardHome.git
synced 2024-12-15 03:02:07 +03:00
Merge pull request #65 in DNS/adguard-dns from fix/strings to master
* commit 'd591ea6264bb287a6e57f815a0bc75b7b920bb87': Makefile -- run npm build whenever any .js file changes inside client/ fix strings Fix strings Fix strings
This commit is contained in:
commit
e2295c1a11
5
Makefile
5
Makefile
@ -4,7 +4,8 @@ NATIVE_GOARCH = $(shell unset GOARCH; go env GOARCH)
|
||||
mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))
|
||||
mkfile_dir := $(patsubst %/,%,$(dir $(mkfile_path)))
|
||||
GOPATH := $(mkfile_dir)/build/gopath
|
||||
STATIC := build/static/index.html
|
||||
JSFILES = $(shell find client -path client/node_modules -prune -o -type f -name '*.js')
|
||||
STATIC = build/static/index.html
|
||||
|
||||
.PHONY: all build clean
|
||||
all: build
|
||||
@ -15,7 +16,7 @@ client/node_modules: client/package.json client/package-lock.json
|
||||
npm --prefix client install
|
||||
touch client/node_modules
|
||||
|
||||
$(STATIC): client/node_modules
|
||||
$(STATIC): $(JSFILES) client/node_modules
|
||||
npm --prefix client run build-prod
|
||||
|
||||
AdguardDNS: $(STATIC) *.go
|
||||
|
@ -297,7 +297,7 @@ export const setRules = rules => async (dispatch) => {
|
||||
.replace(/^\n/g, '')
|
||||
.replace(/\n\s*\n/g, '\n');
|
||||
await apiClient.setRules(replacedLineEndings);
|
||||
dispatch(addSuccessToast('Custom rules saved'));
|
||||
dispatch(addSuccessToast('Updated the custom filtering rules'));
|
||||
dispatch(setRulesSuccess());
|
||||
} catch (error) {
|
||||
dispatch(addErrorToast({ error }));
|
||||
@ -456,7 +456,7 @@ export const setUpstream = url => async (dispatch) => {
|
||||
dispatch(setUpstreamRequest());
|
||||
try {
|
||||
await apiClient.setUpstream(url);
|
||||
dispatch(addSuccessToast('Upstream DNS servers saved'));
|
||||
dispatch(addSuccessToast('Updated the upstream DNS servers'));
|
||||
dispatch(setUpstreamSuccess());
|
||||
} catch (error) {
|
||||
dispatch(addErrorToast({ error }));
|
||||
|
@ -6,7 +6,7 @@ import map from 'lodash/map';
|
||||
import Card from '../ui/Card';
|
||||
|
||||
const Clients = props => (
|
||||
<Card title="Top blocked domains" subtitle="in the last 24 hours" bodyType="card-table" refresh={props.refreshButton}>
|
||||
<Card title="Top blocked domains" subtitle="for the last 24 hours" bodyType="card-table" refresh={props.refreshButton}>
|
||||
<ReactTable
|
||||
data={map(props.topBlockedDomains, (value, prop) => (
|
||||
{ ip: prop, domain: value }
|
||||
|
@ -6,7 +6,7 @@ import map from 'lodash/map';
|
||||
import Card from '../ui/Card';
|
||||
|
||||
const Clients = props => (
|
||||
<Card title="Top clients" subtitle="in the last 24 hours" bodyType="card-table" refresh={props.refreshButton}>
|
||||
<Card title="Top clients" subtitle="for the last 24 hours" bodyType="card-table" refresh={props.refreshButton}>
|
||||
<ReactTable
|
||||
data={map(props.topClients, (value, prop) => (
|
||||
{ ip: prop, count: value }
|
||||
@ -15,7 +15,7 @@ const Clients = props => (
|
||||
Header: 'IP',
|
||||
accessor: 'ip',
|
||||
}, {
|
||||
Header: 'Request count',
|
||||
Header: 'Requests count',
|
||||
accessor: 'count',
|
||||
}]}
|
||||
showPagination={false}
|
||||
|
@ -7,13 +7,13 @@ import Tooltip from '../ui/Tooltip';
|
||||
const tooltipType = 'tooltip-custom--narrow';
|
||||
|
||||
const Counters = props => (
|
||||
<Card title="General statistics" subtitle="in the last 24 hours" bodyType="card-table" refresh={props.refreshButton}>
|
||||
<Card title="General statistics" subtitle="for the last 24 hours" bodyType="card-table" refresh={props.refreshButton}>
|
||||
<table className="table card-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
DNS Queries
|
||||
<Tooltip text="A number of DNS quieries processed in the last 24 hours" type={tooltipType} />
|
||||
<Tooltip text="A number of DNS quieries processed for the last 24 hours" type={tooltipType} />
|
||||
</td>
|
||||
<td className="text-right">
|
||||
<span className="text-muted">
|
||||
@ -23,8 +23,8 @@ const Counters = props => (
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Blocked by filters
|
||||
<Tooltip text="A number of DNS requests blocked by filters" type={tooltipType} />
|
||||
Blocked by <a href="#filters">Filters</a>
|
||||
<Tooltip text="A number of DNS requests blocked by adblock filters and hosts blocklists" type={tooltipType} />
|
||||
</td>
|
||||
<td className="text-right">
|
||||
<span className="text-muted">
|
||||
@ -35,7 +35,7 @@ const Counters = props => (
|
||||
<tr>
|
||||
<td>
|
||||
Blocked malware/phishing
|
||||
<Tooltip text="A number of DNS requests blocked" type={tooltipType} />
|
||||
<Tooltip text="A number of DNS requests blocked by the AdGuard browsing security module" type={tooltipType} />
|
||||
</td>
|
||||
<td className="text-right">
|
||||
<span className="text-muted">
|
||||
|
@ -6,7 +6,7 @@ import map from 'lodash/map';
|
||||
import Card from '../ui/Card';
|
||||
|
||||
const QueriedDomains = props => (
|
||||
<Card title="Top queried domains" subtitle="in the last 24 hours" bodyType="card-table" refresh={props.refreshButton}>
|
||||
<Card title="Top queried domains" subtitle="for the last 24 hours" bodyType="card-table" refresh={props.refreshButton}>
|
||||
<ReactTable
|
||||
data={map(props.topQueriedDomains, (value, prop) => (
|
||||
{ ip: prop, count: value }
|
||||
@ -15,7 +15,7 @@ const QueriedDomains = props => (
|
||||
Header: 'IP',
|
||||
accessor: 'ip',
|
||||
}, {
|
||||
Header: 'Request count',
|
||||
Header: 'Requests count',
|
||||
accessor: 'count',
|
||||
}]}
|
||||
showPagination={false}
|
||||
|
@ -5,7 +5,7 @@ import PropTypes from 'prop-types';
|
||||
import Card from '../ui/Card';
|
||||
|
||||
const Statistics = props => (
|
||||
<Card title="Statistics" subtitle="Last 24 hours" bodyType="card-graph" refresh={props.refreshButton}>
|
||||
<Card title="Statistics" subtitle="for the last 24 hours" bodyType="card-graph" refresh={props.refreshButton}>
|
||||
{props.history ?
|
||||
<ResponsiveLine
|
||||
data={props.history}
|
||||
|
@ -39,11 +39,11 @@ class Filters extends Component {
|
||||
width: 90,
|
||||
className: 'text-center',
|
||||
}, {
|
||||
Header: 'Filter name',
|
||||
Header: 'Name',
|
||||
accessor: 'name',
|
||||
Cell: ({ value }) => (<div className="logs__row logs__row--overflow"><span className="logs__text" title={value}>{value}</span></div>),
|
||||
}, {
|
||||
Header: 'Host file URL',
|
||||
Header: 'Filter URL',
|
||||
accessor: 'url',
|
||||
Cell: ({ value }) => (<div className="logs__row logs__row--overflow"><a href={value} target='_blank' rel='noopener noreferrer' className="link logs__text">{value}</a></div>),
|
||||
}, {
|
||||
@ -51,7 +51,7 @@ class Filters extends Component {
|
||||
accessor: 'rulesCount',
|
||||
className: 'text-center',
|
||||
}, {
|
||||
Header: 'Last time update',
|
||||
Header: 'Last time updated',
|
||||
accessor: 'lastUpdated',
|
||||
className: 'text-center',
|
||||
}, {
|
||||
@ -73,7 +73,7 @@ class Filters extends Component {
|
||||
<div className="row">
|
||||
<div className="col-md-12">
|
||||
<Card
|
||||
title="Blocking filters and hosts files"
|
||||
title="Filters and hosts blocklists"
|
||||
subtitle="AdGuard DNS understands basic adblock rules and hosts files syntax."
|
||||
>
|
||||
<ReactTable
|
||||
@ -104,7 +104,7 @@ class Filters extends Component {
|
||||
addFilter={this.props.addFilter}
|
||||
isFilterAdded={this.props.filtering.isFilterAdded}
|
||||
title="New filter subscription"
|
||||
inputDescription="Enter valid URL or file path of the filter into field above. You will be subscribed to that filter."
|
||||
inputDescription="Enter a valid URL to a filter subscription or a hosts file."
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
|
@ -51,10 +51,10 @@ class Logs extends Component {
|
||||
|
||||
if (userRules.match(preparedBlockingRule)) {
|
||||
this.props.setRules(userRules.replace(`${blockingRule}`, ''));
|
||||
this.props.addSuccessToast(`Removing rule from custom list: ${blockingRule}`);
|
||||
this.props.addSuccessToast(`Rule removed from the custom filtering rules: ${blockingRule}`);
|
||||
} else if (!userRules.match(preparedUnblockingRule)) {
|
||||
this.props.setRules(`${userRules}${lineEnding}${unblockingRule}\n`);
|
||||
this.props.addSuccessToast(`Adding rule to custom list: ${unblockingRule}`);
|
||||
this.props.addSuccessToast(`Rule added to the custom filtering rules: ${unblockingRule}`);
|
||||
}
|
||||
|
||||
this.props.getFilteringStatus();
|
||||
|
@ -27,7 +27,7 @@ export default class Upstream extends Component {
|
||||
return (
|
||||
<Card
|
||||
title="Upstream DNS servers"
|
||||
subtitle="If you keep this field empty, AdGuard will use <a href='https://1.1.1.1/' target='_blank'>Cloudflare DNS</a> as an upstream."
|
||||
subtitle="If you keep this field empty, AdGuard will use <a href='https://1.1.1.1/' target='_blank'>Cloudflare DNS</a> as an upstream. Use tls:// prefix for DNS over TLS servers."
|
||||
bodyType="card-body box-body--settings"
|
||||
>
|
||||
<div className="row">
|
||||
|
@ -17,7 +17,7 @@ export default class Settings extends Component {
|
||||
safebrowsing: {
|
||||
enabled: false,
|
||||
title: 'Use AdGuard browsing security web service',
|
||||
subtitle: 'AdGuard DNS will check if domain is blacklisted by the browsing security web service (sb.adtidy.org). It will use privacy-safe lookup API to do the check.',
|
||||
subtitle: 'AdGuard DNS will check if domain is blacklisted by the browsing security web service. It will use privacy-friendly lookup API to perform the check: only a short prefix of the domain name SHA256 hash is sent to the server.',
|
||||
},
|
||||
parental: {
|
||||
enabled: false,
|
||||
@ -27,7 +27,7 @@ export default class Settings extends Component {
|
||||
safesearch: {
|
||||
enabled: false,
|
||||
title: 'Enforce safe search',
|
||||
subtitle: 'AdGuard DNS can enforce safe search in the major search engines: Google, Bing, Yandex.',
|
||||
subtitle: 'AdGuard DNS can enforce safe search in the following search engines: Google, Bing, Yandex.',
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -34,8 +34,20 @@ export const normalizeLogs = logs => logs.map((log) => {
|
||||
};
|
||||
});
|
||||
|
||||
const STATS_NAMES = {
|
||||
avg_processing_time: 'Average processing time',
|
||||
blocked_filtering: 'Blocked by filters',
|
||||
dns_queries: 'DNS queries',
|
||||
replaced_parental: 'Blocked adult websites',
|
||||
replaced_safebrowsing: 'Blocked malware/phishing',
|
||||
replaced_safesearch: 'Enforced safe search',
|
||||
};
|
||||
|
||||
export const normalizeHistory = history => Object.keys(history).map((key) => {
|
||||
const id = key.replace(/_/g, ' ').replace(/^\w/, c => c.toUpperCase());
|
||||
let id = STATS_NAMES[key];
|
||||
if (!id) {
|
||||
id = key.replace(/_/g, ' ').replace(/^\w/, c => c.toUpperCase());
|
||||
}
|
||||
|
||||
const dayAgo = subHours(Date.now(), 24);
|
||||
|
||||
|
@ -19,12 +19,6 @@ import (
|
||||
"github.com/miekg/dns"
|
||||
)
|
||||
|
||||
// top domains/clients/blocked stats in the last 24 hours
|
||||
|
||||
// on start we read the saved stats from the last 24 hours and add them to the stats
|
||||
|
||||
// stats are counted using hourly LRU, rotating hourly and keeping last 24 hours
|
||||
|
||||
type hourTop struct {
|
||||
domains gcache.Cache
|
||||
blocked gcache.Cache
|
||||
|
Loading…
Reference in New Issue
Block a user