Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wiki-js
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
wiki-js
Commits
80ee45ae
You need to sign in or sign up before continuing.
Commit
80ee45ae
authored
Apr 05, 2020
by
NGPixel
Committed by
Nicolas Giard
Apr 05, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: admin edit user - activity panel
parent
1e4d5132
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
82 additions
and
49 deletions
+82
-49
admin-users-edit.vue
client/components/admin/admin-users-edit.vue
+45
-5
profile.vue
client/components/profile.vue
+10
-11
pages.vue
client/components/profile/pages.vue
+5
-3
profile.vue
client/components/profile/profile.vue
+21
-7
users-query-single.gql
client/graph/admin/users/users-query-single.gql
+0
-23
user.graphql
server/graph/schemas/user.graphql
+1
-0
No files found.
client/components/admin/admin-users-edit.vue
View file @
80ee45ae
...
...
@@ -148,7 +148,7 @@
v-tooltip(top)
template(v-slot:activator='{ on: tooltip }')
v-btn(icon, color='grey', x-small, v-on='{ ...menu, ...tooltip }', @click='focusField(`iptNewPassword`)')
v-icon mdi-
cached
v-icon mdi-
pencil
span
{{
$t
(
'admin:users.changePassword'
)
}}
v-card
v-text-field(
...
...
@@ -267,7 +267,7 @@
v-divider
v-list-item
v-list-item-avatar(size='32')
v-icon mdi-
account-badge-horizontal-outlin
e
v-icon mdi-
briefcas
e
v-list-item-content
v-list-item-title
{{
$t
(
'admin:users.jobTitle'
)
}}
v-list-item-subtitle
{{
user
.
jobTitle
}}
...
...
@@ -324,8 +324,21 @@
@keydown.enter='editPop.timezone = false'
@keydown.esc='editPop.timezone = false'
)
v-card.mt-3.animated.fadeInUp.wait-p4s
v-toolbar(color='primary', dense, dark, flat)
v-toolbar(color='teal', dark, dense, flat)
v-toolbar-title
.subtitle-1
{{
$t
(
'profile:activity.title'
)
}}
v-card-text.grey--text.text--darken-2
.caption.grey--text
{{
$t
(
'profile:activity.joinedOn'
)
}}
.body-2: strong
{{
user
.
createdAt
|
moment
(
'LLLL'
)
}}
.caption.grey--text.mt-3
{{
$t
(
'profile:activity.lastUpdatedOn'
)
}}
.body-2: strong
{{
user
.
updatedAt
|
moment
(
'LLLL'
)
}}
.caption.grey--text.mt-3
{{
$t
(
'profile:activity.lastLoginOn'
)
}}
.body-2: strong
{{
user
.
lastLoginAt
|
moment
(
'LLLL'
)
}}
v-card.mt-3.animated.fadeInUp.wait-p6s
v-toolbar(color='teal', dense, dark, flat)
v-icon.mr-2 mdi-file-document-box-multiple-outline
span Content
v-card-text
...
...
@@ -351,10 +364,12 @@ import gql from 'graphql-tag'
import
{
StatusIndicator
}
from
'vue-status-indicator'
import
userQuery
from
'gql/admin/users/users-query-single.gql'
import
groupsQuery
from
'gql/admin/users/users-query-groups.gql'
export
default
{
i18nOptions
:
{
namespaces
:
[
'admin'
,
'profile'
]
},
components
:
{
StatusIndicator
},
...
...
@@ -884,7 +899,32 @@ export default {
},
apollo
:
{
user
:
{
query
:
userQuery
,
query
:
gql
`
query ($id: Int!) {
users {
single(id: $id) {
id
name
email
providerKey
providerId
location
jobTitle
timezone
isSystem
isActive
isVerified
createdAt
updatedAt
lastLoginAt
groups {
id
name
}
}
}
}
`
,
variables
()
{
return
{
id
:
_
.
toSafeInteger
(
this
.
$route
.
params
.
id
)
...
...
client/components/profile.vue
View file @
80ee45ae
...
...
@@ -3,25 +3,24 @@
nav-header
v-navigation-drawer.pb-0(v-model='profileDrawerShown', app, fixed, clipped, left, permanent)
v-list(dense, nav)
v-list-item(to='/profile')
v-list-item(to='/profile'
, color='primary'
)
v-list-item-action: v-icon mdi-face-profile
v-list-item-content
v-list-item-title
Profile
v-list-item-title
{{
$t
(
'profile:title'
)
}}
//- v-list-item(to='/preferences', disabled)
//- v-list-item-action: v-icon(color='grey lighten-1') mdi-cog-outline
//- v-list-item-content
//- v-list-item-title Preferences
//- v-list-item-subtitle.caption.grey--text.text--lighten-1 Coming soon
v-list-item(to='/pages',
disabled
)
v-list-item-action: v-icon
(color='grey lighten-1') mdi-file-document
v-list-item(to='/pages',
color='primary'
)
v-list-item-action: v-icon
mdi-file-document-outline
v-list-item-content
v-list-item-title Pages
v-list-item-subtitle.caption.grey--text.text--lighten-1 Coming soon
v-list-item(to='/comments', disabled)
v-list-item-action: v-icon(color='grey lighten-1') mdi-message-reply-text
v-list-item-content
v-list-item-title Comments
v-list-item-subtitle.caption.grey--text.text--lighten-1 Coming soon
v-list-item-title
{{
$t
(
'profile:pages.title'
)
}}
//- v-list-item(to='/comments', disabled)
//- v-list-item-action: v-icon(color='grey lighten-1') mdi-message-reply-text
//- v-list-item-content
//- v-list-item-title
{{
$t
(
'profile:comments.title'
)
}}
//- v-list-item-subtitle.caption.grey--text.text--lighten-1 Coming soon
v-content
transition(name='profile-router')
...
...
client/components/profile/pages.vue
View file @
80ee45ae
...
...
@@ -2,9 +2,11 @@
v-container(fluid, fill-height, grid-list-lg)
v-layout(row wrap)
v-flex(xs12)
.headline.primary--text Pages
.subheading.grey--text List of pages I created or contributed
.profile-header
img.animated.fadeInUp(src='/svg/icon-file.svg', alt='Users', style='width: 80px;')
.profile-header-title
.headline.primary--text.animated.fadeInLeft
{{
$t
(
'profile:pages.title'
)
}}
.subheading.grey--text.animated.fadeInLeft
{{
$t
(
'profile:pages.subtitle'
)
}}
</
template
>
<
script
>
...
...
client/components/profile/profile.vue
View file @
80ee45ae
...
...
@@ -12,7 +12,7 @@
//- v-icon(left) mdi-earth
//- span
{{
$t
(
'profile:viewPublicProfile'
)
}}
v-flex(lg6 xs12)
v-card
v-card
.animated.fadeInUp
v-toolbar(color='primary', dark, dense, flat)
v-toolbar-title.subtitle-1
{{
$t
(
'profile:myInfo'
)
}}
v-list(two-line, dense)
...
...
@@ -117,32 +117,43 @@
v-model='editPop.timezone'
:close-on-content-click='false'
min-width='350'
max-width='350'
left
)
template(v-slot:activator='{ on }')
v-btn(text, color='grey', small, v-on='on', @click='focusField(`iptTimezone`)')
v-icon(left) mdi-pencil
span
{{
$t
(
'common:actions:edit'
)
}}
v-card
v-card
(flat)
v-select(
ref='iptTimezone'
:items='timezones'
v-model='user.timezone'
:label='$t(`profile:timezone`)'
solo
flat
dense
hide-details
append-icon='mdi-check'
@click:append='editPop.timezone = false'
@keydown.enter='editPop.timezone = false'
@keydown.esc='editPop.timezone = false'
style='height: 44px;'
)
v-card-chin
v-spacer
v-btn(
small
text
color='primary'
@click='editPop.timezone = false'
)
v-icon(left) mdi-check
span
{{
$t
(
'common:actions.ok'
)
}}
v-card-chin
v-spacer
v-btn.px-4(color='success', depressed, @click='saveProfile', :loading='saveLoading')
v-icon(left) mdi-content-save
span
{{
$t
(
'common:actions.save'
)
}}
v-card.mt-3
v-card.mt-3
.animated.fadeInUp.wait-p2s
v-toolbar(color='primary', dark, dense, flat)
v-toolbar-title
.subtitle-1
{{
$t
(
'profile:auth.title'
)
}}
...
...
@@ -209,7 +220,7 @@
//- v-img(:src='picture.url')
//- v-btn(outlined).mx-4 Upload Picture
//- v-btn(outlined, disabled) Remove Picture
v-card
v-card
.animated.fadeInUp.wait-p2s
v-toolbar(color='primary', dark, dense, flat)
v-toolbar-title
.subtitle-1
{{
$t
(
'profile:groups.title'
)
}}
...
...
@@ -221,7 +232,7 @@
v-list-item-content
v-list-item-title.body-2
{{
grp
}}
v-divider(v-if='idx < user.groups.length - 1')
v-card.mt-3
v-card.mt-3
.animated.fadeInUp.wait-p3s
v-toolbar(color='teal', dark, dense, flat)
v-toolbar-title
.subtitle-1
{{
$t
(
'profile:activity.title'
)
}}
...
...
@@ -249,6 +260,9 @@ import validate from 'validate.js'
import
PasswordStrength
from
'../common/password-strength.vue'
export
default
{
i18nOptions
:
{
namespaces
:
[
'profile'
,
'auth'
]
},
components
:
{
PasswordStrength
},
...
...
client/graph/admin/users/users-query-single.gql
deleted
100644 → 0
View file @
1e4d5132
query
(
$id
:
Int
!)
{
users
{
single
(
id
:
$id
)
{
id
name
email
providerKey
providerId
location
jobTitle
timezone
isSystem
isActive
isVerified
createdAt
updatedAt
groups
{
id
name
}
}
}
}
server/graph/schemas/user.graphql
View file @
80ee45ae
...
...
@@ -122,6 +122,7 @@ type User {
timezone
:
String
!
createdAt
:
Date
!
updatedAt
:
Date
!
lastLoginAt
:
Date
groups
:
[
Group
]!
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment