diff --git a/app/src/helpers/dataStore.js b/app/src/helpers/dataStore.js
index c8e6a532..d6fe02bf 100644
--- a/app/src/helpers/dataStore.js
+++ b/app/src/helpers/dataStore.js
@@ -16,6 +16,10 @@ export default {
state.domains = domains
},
+ 'ADD_DOMAINS' (state, { domain }) {
+ state.domains.push(domain)
+ },
+
'SET_MAIN_DOMAIN' (state, response) {
state.main_domain = response.current_main_domain
},
@@ -102,8 +106,10 @@ export default {
'POST' ({ state, commit }, { uri, data, storeKey = uri }) {
return api.post(uri, data).then(responseData => {
- const data = responseData[storeKey] ? responseData[storeKey] : responseData
- commit('ADD_' + storeKey.toUpperCase(), data)
+ // FIXME api/domains returns null
+ if (responseData === null) responseData = data
+ responseData = responseData[storeKey] ? responseData[storeKey] : responseData
+ commit('ADD_' + storeKey.toUpperCase(), responseData)
return state[storeKey]
})
},
diff --git a/app/src/locales/en.json b/app/src/locales/en.json
index cc45267c..fa549593 100644
--- a/app/src/locales/en.json
+++ b/app/src/locales/en.json
@@ -123,7 +123,10 @@
"email_syntax": "Invalid email: Must be alphanumeric, underscore and dash characters only (e.g. someone@example.com, s0me-1@example.com)",
"groupname_syntax": "Invalid group name: Must be alphanumeric, underscore and space characters only",
"username_exists": "The user '{name}' already exists",
- "username_syntax": "Invalid username: Must be lower-case alphanumeric and underscore characters only"
+ "username_syntax": "Invalid username: Must be lower-case alphanumeric and underscore characters only",
+ "domain_syntax": "Invalid domain name: Must be lower-case alphanumeric, dot and dash characters only",
+ "dynDomain_syntax": "Invalid domain name: Must be lower-case alphanumeric and dash characters only"
+
},
"form_input_example": "Example: %s",
"from_to": "from %s to %s",
diff --git a/app/src/routes.js b/app/src/routes.js
index de5a0204..55bed698 100644
--- a/app/src/routes.js
+++ b/app/src/routes.js
@@ -2,7 +2,7 @@ import Home from './views/Home'
import Login from './views/Login'
import { UserList, UserCreate, UserInfo, UserEdit } from './views/user'
import { GroupList, GroupCreate } from './views/group'
-import { DomainList } from './views/domain'
+import { DomainList, DomainAdd } from './views/domain'
const routes = [
{ name: 'home', path: '/', component: Home },
@@ -93,6 +93,17 @@ const routes = [
{ name: 'domain-list', trad: 'domains' }
]
}
+ },
+ {
+ name: 'domain-add',
+ path: '/domains/add',
+ component: DomainAdd,
+ meta: {
+ breadcrumb: [
+ { name: 'domain-list', trad: 'domains' },
+ { name: 'domain-add', trad: 'domain_add' }
+ ]
+ }
}
]
diff --git a/app/src/views/domain/DomainAdd.vue b/app/src/views/domain/DomainAdd.vue
new file mode 100644
index 00000000..c2e581da
--- /dev/null
+++ b/app/src/views/domain/DomainAdd.vue
@@ -0,0 +1,169 @@
+
+
+
+
+ {{ $t('domain_add_panel_with_domain') }}
+
+
+
+
+
+
+
+
+
+ {{ this.error.domain }}
+
+
+
+
+
+
+ {{ $t('domain_add_panel_without_domain') }}
+
+
+
+ {{ $t('domain_add_dyndns_doc') }}
+
+
+
+
+
+ {{ this.error.dynDomain }}
+
+
+
+
+
+
+
+
+
diff --git a/app/src/views/domain/index.js b/app/src/views/domain/index.js
index ba3df3b9..19f029f7 100644
--- a/app/src/views/domain/index.js
+++ b/app/src/views/domain/index.js
@@ -1 +1,2 @@
export { default as DomainList } from './DomainList'
+export { default as DomainAdd } from './DomainAdd'