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 @@ + + + + + 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'