From c4b5a78b7eaabad387fbb577236d49c4ecd7f6c8 Mon Sep 17 00:00:00 2001 From: Christopher Ng Date: Thu, 5 Dec 2024 15:45:08 -0800 Subject: [PATCH] feat: Show first login date in user list Signed-off-by: Christopher Ng --- .../src/components/Users/UserListHeader.vue | 6 ++++++ apps/settings/src/components/Users/UserRow.vue | 6 ++++++ .../src/components/Users/UserSettingsDialog.vue | 14 ++++++++++++++ apps/settings/src/mixins/UserRowMixin.js | 17 +++++++++++++++++ apps/settings/src/store/users.js | 1 + 5 files changed, 44 insertions(+) diff --git a/apps/settings/src/components/Users/UserListHeader.vue b/apps/settings/src/components/Users/UserListHeader.vue index 99a4126924f..6bc547228a4 100644 --- a/apps/settings/src/components/Users/UserListHeader.vue +++ b/apps/settings/src/components/Users/UserListHeader.vue @@ -71,6 +71,12 @@ {{ t('settings', 'Storage location') }} + + {{ t('settings', 'First login') }} + + + {{ userFirstLogin }} + + {{ t('settings', 'Show storage path') }} + + {{ t('settings', 'Show first login') }} + @@ -164,6 +169,15 @@ export default { }, }, + showFirstLogin: { + get() { + return this.showConfig.showFirstLogin + }, + set(status) { + this.setShowConfig('showFirstLogin', status) + }, + }, + showLastLogin: { get() { return this.showConfig.showLastLogin diff --git a/apps/settings/src/mixins/UserRowMixin.js b/apps/settings/src/mixins/UserRowMixin.js index 6ed29cf0049..e475cf5e8e6 100644 --- a/apps/settings/src/mixins/UserRowMixin.js +++ b/apps/settings/src/mixins/UserRowMixin.js @@ -4,6 +4,7 @@ */ import { formatFileSize } from '@nextcloud/files' +import { useFormatDateTime } from '@nextcloud/vue' export default { props: { @@ -36,6 +37,12 @@ export default { default: () => [], }, }, + setup(props) { + const { formattedFullTime } = useFormatDateTime(props.user.firstLogin, { relativeTime: false }) + return { + formattedFullTime, + } + }, computed: { showConfig() { return this.$store.getters.getShowConfig @@ -120,6 +127,16 @@ export default { return userLang }, + userFirstLogin() { + if (this.user.firstLogin > 0) { + return this.formattedFullTime + } + if (this.user.firstLogin < 0) { + return t('settings', 'Unknown') + } + return t('settings', 'Never') + }, + /* LAST LOGIN */ userLastLoginTooltip() { if (this.user.lastLogin > 0) { diff --git a/apps/settings/src/store/users.js b/apps/settings/src/store/users.js index 15c40d77072..61473528ba6 100644 --- a/apps/settings/src/store/users.js +++ b/apps/settings/src/store/users.js @@ -40,6 +40,7 @@ const state = { showConfig: { showStoragePath: localStorage.getItem('account_settings__showStoragePath') === 'true', showUserBackend: localStorage.getItem('account_settings__showUserBackend') === 'true', + showFirstLogin: localStorage.getItem('account_settings__showFirstLogin') === 'true', showLastLogin: localStorage.getItem('account_settings__showLastLogin') === 'true', showNewUserForm: localStorage.getItem('account_settings__showNewUserForm') === 'true', showLanguages: localStorage.getItem('account_settings__showLanguages') === 'true',