From b01af453cc27cdb89ac0482ec68108ec8a2835a5 Mon Sep 17 00:00:00 2001
From: Ildar Kamalov <i.kamalov@adguard.com>
Date: Fri, 17 Jan 2020 15:03:47 +0300
Subject: [PATCH] + client: handle default blocking mode

---
 client/src/__locales/en.json                      | 6 +++++-
 client/src/components/Settings/Dns/Config/Form.js | 6 +++++-
 client/src/helpers/constants.js                   | 1 +
 client/src/reducers/dnsConfig.js                  | 2 +-
 4 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/client/src/__locales/en.json b/client/src/__locales/en.json
index 18e2d059..9de02278 100644
--- a/client/src/__locales/en.json
+++ b/client/src/__locales/en.json
@@ -191,6 +191,7 @@
     "query_log_retention_confirm": "Are you sure you want to change query log retention? If you decrease the interval value, some data will be lost",
     "dns_config": "DNS server configuration",
     "blocking_mode": "Blocking mode",
+    "default": "Default",
     "nxdomain": "NXDOMAIN",
     "null_ip": "Null IP",
     "custom_ip": "Custom IP",
@@ -203,7 +204,10 @@
     "rate_limit_desc": "The number of requests per second that a single client is allowed to make (0: unlimited)",
     "blocking_ipv4_desc": "IP address to be returned for a blocked A request",
     "blocking_ipv6_desc": "IP address to be returned for a blocked AAAA request",
-    "blocking_mode_desc": "<0>NXDOMAIN – Respond with NXDOMAIN code;</0> <0>Null IP – Respond with zero IP address (0.0.0.0 for A; :: for AAAA);</0> <0>Custom IP - Respond with a manually set IP address.</0>",
+    "blocking_mode_default": "Default: Respond with NXDOMAIN when blocked by Adblock-style rule; respond with the IP address specified in the rule when blocked by /etc/hosts-style rule",
+    "blocking_mode_nxdomain": "NXDOMAIN: Respond with NXDOMAIN code",
+    "blocking_mode_null_ip": "Null IP: Respond with zero IP address (0.0.0.0 for A; :: for AAAA)",
+    "blocking_mode_custom_ip": "Custom IP: Respond with a manually set IP address",
     "upstream_dns_client_desc": "If you keep this field empty, AdGuard Home will use the servers configured in the <0>DNS settings</0>.",
     "source_label": "Source",
     "found_in_known_domain_db": "Found in the known domains database.",
diff --git a/client/src/components/Settings/Dns/Config/Form.js b/client/src/components/Settings/Dns/Config/Form.js
index 271ae3c5..580f09d4 100644
--- a/client/src/components/Settings/Dns/Config/Form.js
+++ b/client/src/components/Settings/Dns/Config/Form.js
@@ -83,7 +83,11 @@ let Form = ({
                         <Trans>blocking_mode</Trans>
                     </label>
                     <div className="form__desc form__desc--top">
-                        <Trans components={[<div key="0">text</div>]}>blocking_mode_desc</Trans>
+                        {Object.values(BLOCKING_MODES).map(mode => (
+                            <li key={mode}>
+                                <Trans >{`blocking_mode_${mode}`}</Trans>
+                            </li>
+                        ))}
                     </div>
                     <div className="custom-controls-stacked">
                         {getFields(processing, t)}
diff --git a/client/src/helpers/constants.js b/client/src/helpers/constants.js
index 38b19e21..f186bfaa 100644
--- a/client/src/helpers/constants.js
+++ b/client/src/helpers/constants.js
@@ -359,6 +359,7 @@ export const QUERY_LOG_INTERVALS_DAYS = [1, 7, 30, 90];
 export const FILTERS_INTERVALS_HOURS = [0, 1, 12, 24, 72, 168];
 
 export const BLOCKING_MODES = {
+    default: 'default',
     nxdomain: 'nxdomain',
     null_ip: 'null_ip',
     custom_ip: 'custom_ip',
diff --git a/client/src/reducers/dnsConfig.js b/client/src/reducers/dnsConfig.js
index d124db0f..87f59d36 100644
--- a/client/src/reducers/dnsConfig.js
+++ b/client/src/reducers/dnsConfig.js
@@ -39,7 +39,7 @@ const dnsConfig = handleActions(
     {
         processingGetConfig: false,
         processingSetConfig: false,
-        blocking_mode: BLOCKING_MODES.nxdomain,
+        blocking_mode: BLOCKING_MODES.default,
         ratelimit: 20,
         blocking_ipv4: DEFAULT_BLOCKING_IPV4,
         blocking_ipv6: DEFAULT_BLOCKING_IPV6,