diff --git a/app/src/components/globals/Card.vue b/app/src/components/globals/Card.vue index 6704b7f2..bdf8cc4c 100644 --- a/app/src/components/globals/Card.vue +++ b/app/src/components/globals/Card.vue @@ -84,6 +84,7 @@ export default { .card-footer { display: flex; justify-content: flex-end; + align-items: center; & > *:not(:first-child) { margin-left: .5rem; diff --git a/app/src/i18n/locales/en.json b/app/src/i18n/locales/en.json index 2e90353c..c5135659 100644 --- a/app/src/i18n/locales/en.json +++ b/app/src/i18n/locales/en.json @@ -131,6 +131,24 @@ "disable": "Disable", "disabled": "Disabled", "dns": "DNS", + "domain": { + "config": { + "edit": "Edit domain configuration", + "title": "Domain configuration" + }, + "dns": { + "auto_config": "Automatic DNS records configuration", + "auto_config_ignored": "ignored, won't be changed by Yunohost unless you check the overwrite option", + "auto_config_ok": "Automatic configuration seems to be OK!", + "edit": "Edit DNS configuration", + "info": "The automatic DNS records configuration is an experimental feature.
Consider saving your current DNS zone from your DNS registrar's interface before pushing records from here.", + "manual_config": "Suggested DNS records for manual configuration", + "push": "Push DNS records to registrar", + "push_force": "Overwrite existing records", + "push_force_confirm": "Are you sure you want to force push all suggested dns records? Be aware that it may overwrite manually or important default records set by you or your registrar.", + "push_force_warning": "It looks like some DNS records that YunoHost would have set are already in the registrar configuration. You can use the overwrite option if you know what you are doing." + } + }, "domain_add": "Add domain", "domain_add_dns_doc": "… and I have set my DNS correctly.", "domain_add_dyndns_doc": "… and I want a dynamic DNS service.", @@ -143,6 +161,8 @@ "domain_delete_forbidden_desc": "You cannot remove '{domain}' since it's the default domain, you need to choose another domain (or add a new one) and set it as the default domain to be able to remove this one.", "domain_dns_config": "DNS configuration", "domain_dns_longdesc": "View DNS configuration", + "domain_dns_push_failed_to_authenticate": "Failed to authenticate on registrar's API. Most probably the credentials are incorrect? (Error: {error})", + "domain_dns_push_not_applicable": "The automatic DNS records feature is not applicable to domain {domain},
You should manually configure your DNS records following the documentation and the suggested configuration below.", "domain_name": "Domain name", "domain_visit": "Visit", "domain_visit_url": "Visit {url}", @@ -374,9 +394,11 @@ "delete": "Delete domain '{name}'", "install_LE": "Install certificate for '{name}'", "manual_renew_LE": "Renew certificate for '{name}'", + "push_dns_changes": "Push DNS records to registrar for '{name}'", "regen_selfsigned": "Renew self-signed certificate for '{name}'", "revert_to_selfsigned": "Revert to self-signed certificate for '{name}'", - "set_default": "Set '{name}' as default domain" + "set_default": "Set '{name}' as default domain", + "update_config": "Update '{name}' configuration" }, "firewall": { "ports": "{action} port {port} ({protocol}, {connection})", diff --git a/app/src/router/routes.js b/app/src/router/routes.js index cc9e3575..83a94866 100644 --- a/app/src/router/routes.js +++ b/app/src/router/routes.js @@ -155,6 +155,16 @@ const routes = [ breadcrumb: ['domain-list', 'domain-info'] } }, + { + name: 'domain-config', + path: '/domains/:name/config', + component: () => import(/* webpackChunkName: "views/domain/dns" */ '@/views/domain/DomainConfig'), + props: true, + meta: { + args: { trad: 'config' }, + breadcrumb: ['domain-list', 'domain-info', 'domain-config'] + } + }, { name: 'domain-dns', path: '/domains/:name/dns', diff --git a/app/src/scss/main.scss b/app/src/scss/main.scss index 4e898462..566d0b6a 100644 --- a/app/src/scss/main.scss +++ b/app/src/scss/main.scss @@ -173,4 +173,5 @@ code { margin-bottom: 0; padding: 1rem; background-color: $light; + overflow: auto; } diff --git a/app/src/views/domain/DomainConfig.vue b/app/src/views/domain/DomainConfig.vue new file mode 100644 index 00000000..c11c0c4f --- /dev/null +++ b/app/src/views/domain/DomainConfig.vue @@ -0,0 +1,162 @@ + + + diff --git a/app/src/views/domain/DomainDns.vue b/app/src/views/domain/DomainDns.vue index be947c11..f3b53a09 100644 --- a/app/src/views/domain/DomainDns.vue +++ b/app/src/views/domain/DomainDns.vue @@ -1,18 +1,83 @@ + + diff --git a/app/src/views/domain/DomainInfo.vue b/app/src/views/domain/DomainInfo.vue index 44837eee..16680a69 100644 --- a/app/src/views/domain/DomainInfo.vue +++ b/app/src/views/domain/DomainInfo.vue @@ -18,10 +18,17 @@
+ +

{{ $t('domain.config.edit') }}

+ + {{ $t('domain.config.title') }} + +
+ -

{{ $t('domain_dns_longdesc') }}

- - {{ $t('domain_dns_config') }} +

{{ $t('domain.dns.edit') }}

+ + {{ $t('domain_dns_config') }}