From e79dfc0822e70809cdc8da14c40a8b6402e97ee2 Mon Sep 17 00:00:00 2001 From: NGPixel Date: Wed, 28 Mar 2018 00:02:32 -0400 Subject: [PATCH] feat: admin - groups single view --- client/components/admin.vue | 36 +++++------ client/components/{ => admin}/admin-api.vue | 0 client/components/{ => admin}/admin-auth.vue | 0 .../{ => admin}/admin-dashboard.vue | 0 client/components/{ => admin}/admin-dev.vue | 0 .../components/{ => admin}/admin-editor.vue | 0 .../components/{ => admin}/admin-general.vue | 0 .../{ => admin}/admin-groups-edit.vue | 63 ++++++++++++++----- .../components/{ => admin}/admin-groups.vue | 0 .../components/{ => admin}/admin-locale.vue | 0 .../components/{ => admin}/admin-logging.vue | 0 .../{ => admin}/admin-rendering.vue | 0 .../components/{ => admin}/admin-search.vue | 0 client/components/{ => admin}/admin-stats.vue | 0 .../components/{ => admin}/admin-storage.vue | 0 .../components/{ => admin}/admin-system.vue | 0 client/components/{ => admin}/admin-theme.vue | 0 client/components/{ => admin}/admin-users.vue | 0 .../{ => admin}/admin-utilities.vue | 0 client/components/editor.vue | 6 +- .../components/{ => editor}/editor-code.vue | 2 +- .../{ => editor}/editor-modal-access.vue | 0 .../{ => editor}/editor-modal-properties.vue | 0 server/graph/resolvers/group.js | 3 + server/graph/schemas/group.graphql | 4 +- 25 files changed, 76 insertions(+), 38 deletions(-) rename client/components/{ => admin}/admin-api.vue (100%) rename client/components/{ => admin}/admin-auth.vue (100%) rename client/components/{ => admin}/admin-dashboard.vue (100%) rename client/components/{ => admin}/admin-dev.vue (100%) rename client/components/{ => admin}/admin-editor.vue (100%) rename client/components/{ => admin}/admin-general.vue (100%) rename client/components/{ => admin}/admin-groups-edit.vue (71%) rename client/components/{ => admin}/admin-groups.vue (100%) rename client/components/{ => admin}/admin-locale.vue (100%) rename client/components/{ => admin}/admin-logging.vue (100%) rename client/components/{ => admin}/admin-rendering.vue (100%) rename client/components/{ => admin}/admin-search.vue (100%) rename client/components/{ => admin}/admin-stats.vue (100%) rename client/components/{ => admin}/admin-storage.vue (100%) rename client/components/{ => admin}/admin-system.vue (100%) rename client/components/{ => admin}/admin-theme.vue (100%) rename client/components/{ => admin}/admin-users.vue (100%) rename client/components/{ => admin}/admin-utilities.vue (100%) rename client/components/{ => editor}/editor-code.vue (99%) rename client/components/{ => editor}/editor-modal-access.vue (100%) rename client/components/{ => editor}/editor-modal-properties.vue (100%) diff --git a/client/components/admin.vue b/client/components/admin.vue index 327e25ca..59ea4986 100644 --- a/client/components/admin.vue +++ b/client/components/admin.vue @@ -91,24 +91,24 @@ const router = new VueRouter({ base: '/a', routes: [ { path: '/', redirect: '/dashboard' }, - { path: '/dashboard', component: () => import(/* webpackChunkName: "admin" */ './admin-dashboard.vue') }, - { path: '/general', component: () => import(/* webpackChunkName: "admin" */ './admin-general.vue') }, - { path: '/locale', component: () => import(/* webpackChunkName: "admin" */ './admin-locale.vue') }, - { path: '/stats', component: () => import(/* webpackChunkName: "admin" */ './admin-stats.vue') }, - { path: '/theme', component: () => import(/* webpackChunkName: "admin" */ './admin-theme.vue') }, - { path: '/groups', component: () => import(/* webpackChunkName: "admin" */ './admin-groups.vue') }, - { path: '/groups/:id', component: () => import(/* webpackChunkName: "admin" */ './admin-groups-edit.vue') }, - { path: '/users', component: () => import(/* webpackChunkName: "admin" */ './admin-users.vue') }, - { path: '/auth', component: () => import(/* webpackChunkName: "admin" */ './admin-auth.vue') }, - { path: '/rendering', component: () => import(/* webpackChunkName: "admin" */ './admin-rendering.vue') }, - { path: '/editor', component: () => import(/* webpackChunkName: "admin" */ './admin-editor.vue') }, - { path: '/logging', component: () => import(/* webpackChunkName: "admin" */ './admin-logging.vue') }, - { path: '/search', component: () => import(/* webpackChunkName: "admin" */ './admin-search.vue') }, - { path: '/storage', component: () => import(/* webpackChunkName: "admin" */ './admin-storage.vue') }, - { path: '/api', component: () => import(/* webpackChunkName: "admin" */ './admin-api.vue') }, - { path: '/system', component: () => import(/* webpackChunkName: "admin" */ './admin-system.vue') }, - { path: '/utilities', component: () => import(/* webpackChunkName: "admin" */ './admin-utilities.vue') }, - { path: '/dev', component: () => import(/* webpackChunkName: "admin-dev" */ './admin-dev.vue') } + { path: '/dashboard', component: () => import(/* webpackChunkName: "admin" */ './admin/admin-dashboard.vue') }, + { path: '/general', component: () => import(/* webpackChunkName: "admin" */ './admin/admin-general.vue') }, + { path: '/locale', component: () => import(/* webpackChunkName: "admin" */ './admin/admin-locale.vue') }, + { path: '/stats', component: () => import(/* webpackChunkName: "admin" */ './admin/admin-stats.vue') }, + { path: '/theme', component: () => import(/* webpackChunkName: "admin" */ './admin/admin-theme.vue') }, + { path: '/groups', component: () => import(/* webpackChunkName: "admin" */ './admin/admin-groups.vue') }, + { path: '/groups/:id', component: () => import(/* webpackChunkName: "admin" */ './admin/admin-groups-edit.vue') }, + { path: '/users', component: () => import(/* webpackChunkName: "admin" */ './admin/admin-users.vue') }, + { path: '/auth', component: () => import(/* webpackChunkName: "admin" */ './admin/admin-auth.vue') }, + { path: '/rendering', component: () => import(/* webpackChunkName: "admin" */ './admin/admin-rendering.vue') }, + { path: '/editor', component: () => import(/* webpackChunkName: "admin" */ './admin/admin-editor.vue') }, + { path: '/logging', component: () => import(/* webpackChunkName: "admin" */ './admin/admin-logging.vue') }, + { path: '/search', component: () => import(/* webpackChunkName: "admin" */ './admin/admin-search.vue') }, + { path: '/storage', component: () => import(/* webpackChunkName: "admin" */ './admin/admin-storage.vue') }, + { path: '/api', component: () => import(/* webpackChunkName: "admin" */ './admin/admin-api.vue') }, + { path: '/system', component: () => import(/* webpackChunkName: "admin" */ './admin/admin-system.vue') }, + { path: '/utilities', component: () => import(/* webpackChunkName: "admin" */ './admin/admin-utilities.vue') }, + { path: '/dev', component: () => import(/* webpackChunkName: "admin-dev" */ './admin/admin-dev.vue') } ] }) diff --git a/client/components/admin-api.vue b/client/components/admin/admin-api.vue similarity index 100% rename from client/components/admin-api.vue rename to client/components/admin/admin-api.vue diff --git a/client/components/admin-auth.vue b/client/components/admin/admin-auth.vue similarity index 100% rename from client/components/admin-auth.vue rename to client/components/admin/admin-auth.vue diff --git a/client/components/admin-dashboard.vue b/client/components/admin/admin-dashboard.vue similarity index 100% rename from client/components/admin-dashboard.vue rename to client/components/admin/admin-dashboard.vue diff --git a/client/components/admin-dev.vue b/client/components/admin/admin-dev.vue similarity index 100% rename from client/components/admin-dev.vue rename to client/components/admin/admin-dev.vue diff --git a/client/components/admin-editor.vue b/client/components/admin/admin-editor.vue similarity index 100% rename from client/components/admin-editor.vue rename to client/components/admin/admin-editor.vue diff --git a/client/components/admin-general.vue b/client/components/admin/admin-general.vue similarity index 100% rename from client/components/admin-general.vue rename to client/components/admin/admin-general.vue diff --git a/client/components/admin-groups-edit.vue b/client/components/admin/admin-groups-edit.vue similarity index 71% rename from client/components/admin-groups-edit.vue rename to client/components/admin/admin-groups-edit.vue index 9f2f989f..1cab4afb 100644 --- a/client/components/admin-groups-edit.vue +++ b/client/components/admin/admin-groups-edit.vue @@ -4,7 +4,7 @@ .headline.blue--text.text--darken-2 Edit Group .subheading.grey--text {{group.name}} v-btn(color='primary', fab, absolute, bottom, right, small, to='/groups'): v-icon arrow_upward - v-tabs(color='grey lighten-4', fixed-tabs, slider-color='primary', show-arrows) + v-tabs(v-model='tab', color='grey lighten-4', fixed-tabs, slider-color='primary', show-arrows) v-tab(key='properties') Properties v-tab(key='rights') Permissions v-tab(key='users') Users @@ -32,7 +32,39 @@ v-btn(color='red', dark, @click='deleteGroup') Delete v-tab-item(key='rights', :transition='false', :reverse-transition='false') - v-card Test + v-card + v-card-title.pb-0 + v-btn(color='primary') + v-icon(left) add + | Add Rule + v-spacer + v-btn(flat) + v-icon(left) vertical_align_bottom + | Import Rules + v-list(dense, two-line) + v-list-tile.grey.lighten-5.px-2 + v-list-tile-avatar(color='red'): v-icon(color='white') remove_circle + v-list-tile-content + v-list-tile-title /javascript/* + v-list-tile-sub-title.caption #[strong WRITE] + v-list-tile-action + v-btn(icon): v-icon(color='grey') delete + v-divider(inset).my-0 + v-list-tile.grey.lighten-5.px-2 + v-list-tile-avatar(color='green'): v-icon(color='white') check + v-list-tile-content + v-list-tile-title /javascript/* + v-list-tile-sub-title.caption #[strong WRITE] + v-list-tile-action + v-btn(icon): v-icon(color='grey') delete + v-divider(inset).my-0 + v-list-tile.grey.lighten-5.px-2 + v-list-tile-avatar(color='green'): v-icon(color='white') check + v-list-tile-content + v-list-tile-title /javascript/* + v-list-tile-sub-title.caption #[strong READ] + v-list-tile-action + v-btn(icon): v-icon(color='grey') delete v-tab-item(key='users', :transition='false', :reverse-transition='false') v-card @@ -41,7 +73,7 @@ v-icon(left) assignment_ind | Assign User v-data-table( - :items='users', + :items='group.users', :headers='headers', :search='search', :pagination.sync='pagination', @@ -52,9 +84,7 @@ tr(:active='props.selected') td.text-xs-right {{ props.item.id }} td {{ props.item.name }} - td {{ props.item.userCount }} - td {{ props.item.createdAt | moment('calendar') }} - td {{ props.item.updatedAt | moment('calendar') }} + td {{ props.item.email }} td v-menu(bottom, right, min-width='200') v-btn(icon, slot='activator'): v-icon.grey--text.text--darken-1 more_horiz @@ -70,7 +100,7 @@