From 7b257cd03856a0c7868d0b618c3e69d1b268fc59 Mon Sep 17 00:00:00 2001 From: Nitwel Date: Wed, 7 Oct 2020 18:51:23 +0200 Subject: [PATCH 1/4] add modified_on to files --- .../database/seeds/01-tables/07-files.yaml | 4 ++++ .../database/seeds/03-fields/05-files.yaml | 6 ++++++ .../components/file-info-drawer-detail.vue | 21 +++++++++++++++---- app/src/modules/files/routes/detail.vue | 1 + 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/api/src/database/seeds/01-tables/07-files.yaml b/api/src/database/seeds/01-tables/07-files.yaml index b68f211774..70e069dab6 100644 --- a/api/src/database/seeds/01-tables/07-files.yaml +++ b/api/src/database/seeds/01-tables/07-files.yaml @@ -35,6 +35,10 @@ columns: type: timestamp nullable: false default: '$now' + modified_on: + type: timestamp + nullable: false + default: '$now' charset: type: string length: 50 diff --git a/api/src/database/seeds/03-fields/05-files.yaml b/api/src/database/seeds/03-fields/05-files.yaml index f36cf0561e..f722d1f10f 100644 --- a/api/src/database/seeds/03-fields/05-files.yaml +++ b/api/src/database/seeds/03-fields/05-files.yaml @@ -91,3 +91,9 @@ fields: - collection: directus_files field: filesize display: filesize + - collection: directus_files + field: modified_on + interface: dateTime + locked: true + special: date-updated + width: full \ No newline at end of file diff --git a/app/src/modules/files/components/file-info-drawer-detail.vue b/app/src/modules/files/components/file-info-drawer-detail.vue index 37ee114347..da01f4cd3d 100644 --- a/app/src/modules/files/components/file-info-drawer-detail.vue +++ b/app/src/modules/files/components/file-info-drawer-detail.vue @@ -36,6 +36,11 @@
{{ creationDate }}
+
+
{{ $t('modified') }}
+
{{ modificationDate }}
+
+
{{ $t('checksum') }}
{{ file.checksum }}
@@ -123,14 +128,15 @@ export default defineComponent({ return bytes(props.file.filesize, { decimalPlaces: 2, unitSeparator: ' ' }); // { locale: i18n.locale.split('-')[0] } }); - const { creationDate } = useCreationDate(); + const { creationDate, modificationDate } = useDates(); const { user } = useUser(); const { folder } = useFolder(); - return { readableMimeType, size, creationDate, user, folder, marked }; + return { readableMimeType, size, creationDate, modificationDate, user, folder, marked }; - function useCreationDate() { + function useDates() { const creationDate = ref(null); + const modificationDate = ref(null); watch( () => props.file, @@ -141,11 +147,18 @@ export default defineComponent({ new Date(props.file.uploaded_on), String(i18n.t('date-fns_date_short')) ); + + if(props.file.modified_on) { + modificationDate.value = await localizedFormat( + new Date(props.file.modified_on), + String(i18n.t('date-fns_date_short')) + ); + } }, { immediate: true } ); - return { creationDate }; + return { creationDate, modificationDate }; } function useUser() { diff --git a/app/src/modules/files/routes/detail.vue b/app/src/modules/files/routes/detail.vue index e36f2a3533..f1f7ce25ef 100644 --- a/app/src/modules/files/routes/detail.vue +++ b/app/src/modules/files/routes/detail.vue @@ -274,6 +274,7 @@ export default defineComponent({ 'checksum', 'uploaded_by', 'uploaded_on', + 'modified_on', 'duration', 'folder', 'charset', From 6aab9a76eb1d3f7d93eed455fc70db9e84532951 Mon Sep 17 00:00:00 2001 From: Nitwel Date: Wed, 7 Oct 2020 19:10:16 +0200 Subject: [PATCH 2/4] add modified_by --- .../database/seeds/01-tables/07-files.yaml | 6 ++- .../database/seeds/03-fields/05-files.yaml | 8 ++- app/src/lang/en-US/index.json | 1 + .../components/file-info-drawer-detail.vue | 53 ++++++++++++++----- app/src/modules/files/routes/detail.vue | 1 + 5 files changed, 54 insertions(+), 15 deletions(-) diff --git a/api/src/database/seeds/01-tables/07-files.yaml b/api/src/database/seeds/01-tables/07-files.yaml index 70e069dab6..6bd3fa24b1 100644 --- a/api/src/database/seeds/01-tables/07-files.yaml +++ b/api/src/database/seeds/01-tables/07-files.yaml @@ -35,9 +35,13 @@ columns: type: timestamp nullable: false default: '$now' + modified_by: + type: uuid + references: + table: directus_users + column: id modified_on: type: timestamp - nullable: false default: '$now' charset: type: string diff --git a/api/src/database/seeds/03-fields/05-files.yaml b/api/src/database/seeds/03-fields/05-files.yaml index f722d1f10f..dd21764bbb 100644 --- a/api/src/database/seeds/03-fields/05-files.yaml +++ b/api/src/database/seeds/03-fields/05-files.yaml @@ -91,9 +91,15 @@ fields: - collection: directus_files field: filesize display: filesize + - collection: directus_files + field: modified_by + interface: user + locked: true + special: user-updated + width: half - collection: directus_files field: modified_on interface: dateTime locked: true special: date-updated - width: full \ No newline at end of file + width: half \ No newline at end of file diff --git a/app/src/lang/en-US/index.json b/app/src/lang/en-US/index.json index fa909b61c0..81065fd1bd 100644 --- a/app/src/lang/en-US/index.json +++ b/app/src/lang/en-US/index.json @@ -424,6 +424,7 @@ "modified": "Modified", "checksum": "Checksum", "owner": "Owner", + "edited_by": "Edited by", "folder": "Folder", "set_to_now": "Set to Now", diff --git a/app/src/modules/files/components/file-info-drawer-detail.vue b/app/src/modules/files/components/file-info-drawer-detail.vue index da01f4cd3d..b1a875b72f 100644 --- a/app/src/modules/files/components/file-info-drawer-detail.vue +++ b/app/src/modules/files/components/file-info-drawer-detail.vue @@ -36,21 +36,30 @@
{{ creationDate }}
-
-
{{ $t('modified') }}
-
{{ modificationDate }}
-
-
{{ $t('checksum') }}
{{ file.checksum }}
-
+
{{ $t('owner') }}
- - {{ user.name }} + + {{ user_created.name }} + +
+
+ +
+
{{ $t('modified') }}
+
{{ modificationDate }}
+
+ +
+
{{ $t('edited_by') }}
+
+ + {{ user_modified.name }}
@@ -129,10 +138,10 @@ export default defineComponent({ }); const { creationDate, modificationDate } = useDates(); - const { user } = useUser(); + const { user_created, user_modified } = useUser(); const { folder } = useFolder(); - return { readableMimeType, size, creationDate, modificationDate, user, folder, marked }; + return { readableMimeType, size, creationDate, modificationDate, user_created, user_modified, folder, marked }; function useDates() { const creationDate = ref(null); @@ -169,11 +178,12 @@ export default defineComponent({ }; const loading = ref(false); - const user = ref(null); + const user_created = ref(null); + const user_modified = ref(null); watch(() => props.file, fetchUser, { immediate: true }); - return { user }; + return { user_created, user_modified }; async function fetchUser() { if (!props.file) return null; @@ -190,11 +200,28 @@ export default defineComponent({ const { id, first_name, last_name, role } = response.data.data; - user.value = { + user_created.value = { id: props.file.uploaded_by, name: first_name + ' ' + last_name, link: `/users/${id}`, }; + + if (props.file.modified_by) { + const response = await api.get(`/users/${props.file.modified_by}`, { + params: { + fields: ['id', 'first_name', 'last_name', 'role'], + }, + }); + + const { id, first_name, last_name, role } = response.data.data; + + user_modified.value = { + id: props.file.modified_by, + name: first_name + ' ' + last_name, + link: `/users/${id}`, + }; + } + } finally { loading.value = false; } diff --git a/app/src/modules/files/routes/detail.vue b/app/src/modules/files/routes/detail.vue index f1f7ce25ef..e749ac012e 100644 --- a/app/src/modules/files/routes/detail.vue +++ b/app/src/modules/files/routes/detail.vue @@ -274,6 +274,7 @@ export default defineComponent({ 'checksum', 'uploaded_by', 'uploaded_on', + 'modified_by', 'modified_on', 'duration', 'folder', From a5e59d050e074a07219c787eeac5eb7175161882 Mon Sep 17 00:00:00 2001 From: Nitwel Date: Thu, 8 Oct 2020 10:39:46 +0200 Subject: [PATCH 3/4] add displays --- api/src/database/seeds/03-fields/05-files.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/api/src/database/seeds/03-fields/05-files.yaml b/api/src/database/seeds/03-fields/05-files.yaml index dd21764bbb..f9562bdb21 100644 --- a/api/src/database/seeds/03-fields/05-files.yaml +++ b/api/src/database/seeds/03-fields/05-files.yaml @@ -97,9 +97,11 @@ fields: locked: true special: user-updated width: half + display: user - collection: directus_files field: modified_on interface: dateTime locked: true special: date-updated - width: half \ No newline at end of file + width: half + display: dateTime \ No newline at end of file From 447c59ce2dadaccfc1c235095310bd66cd157411 Mon Sep 17 00:00:00 2001 From: Nitwel Date: Fri, 9 Oct 2020 14:05:00 +0200 Subject: [PATCH 4/4] clean code --- .../database/seeds/01-tables/07-files.yaml | 1 - .../database/seeds/03-fields/05-files.yaml | 2 +- .../components/file-info-drawer-detail.vue | 19 +++++++++---------- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/api/src/database/seeds/01-tables/07-files.yaml b/api/src/database/seeds/01-tables/07-files.yaml index 6bd3fa24b1..c084a846eb 100644 --- a/api/src/database/seeds/01-tables/07-files.yaml +++ b/api/src/database/seeds/01-tables/07-files.yaml @@ -42,7 +42,6 @@ columns: column: id modified_on: type: timestamp - default: '$now' charset: type: string length: 50 diff --git a/api/src/database/seeds/03-fields/05-files.yaml b/api/src/database/seeds/03-fields/05-files.yaml index f9562bdb21..ec54b8559e 100644 --- a/api/src/database/seeds/03-fields/05-files.yaml +++ b/api/src/database/seeds/03-fields/05-files.yaml @@ -104,4 +104,4 @@ fields: locked: true special: date-updated width: half - display: dateTime \ No newline at end of file + display: datetime \ No newline at end of file diff --git a/app/src/modules/files/components/file-info-drawer-detail.vue b/app/src/modules/files/components/file-info-drawer-detail.vue index b1a875b72f..fe18f51c0d 100644 --- a/app/src/modules/files/components/file-info-drawer-detail.vue +++ b/app/src/modules/files/components/file-info-drawer-detail.vue @@ -138,10 +138,10 @@ export default defineComponent({ }); const { creationDate, modificationDate } = useDates(); - const { user_created, user_modified } = useUser(); + const { userCreated, userModified } = useUser(); const { folder } = useFolder(); - return { readableMimeType, size, creationDate, modificationDate, user_created, user_modified, folder, marked }; + return { readableMimeType, size, creationDate, modificationDate, userCreated, userModified, folder, marked }; function useDates() { const creationDate = ref(null); @@ -157,12 +157,12 @@ export default defineComponent({ String(i18n.t('date-fns_date_short')) ); - if(props.file.modified_on) { + if (props.file.modified_on) { modificationDate.value = await localizedFormat( new Date(props.file.modified_on), String(i18n.t('date-fns_date_short')) ); - } + } }, { immediate: true } ); @@ -178,12 +178,12 @@ export default defineComponent({ }; const loading = ref(false); - const user_created = ref(null); - const user_modified = ref(null); + const userCreated = ref(null); + const userModified = ref(null); watch(() => props.file, fetchUser, { immediate: true }); - return { user_created, user_modified }; + return { userCreated, userModified }; async function fetchUser() { if (!props.file) return null; @@ -200,7 +200,7 @@ export default defineComponent({ const { id, first_name, last_name, role } = response.data.data; - user_created.value = { + userCreated.value = { id: props.file.uploaded_by, name: first_name + ' ' + last_name, link: `/users/${id}`, @@ -215,13 +215,12 @@ export default defineComponent({ const { id, first_name, last_name, role } = response.data.data; - user_modified.value = { + userModified.value = { id: props.file.modified_by, name: first_name + ' ' + last_name, link: `/users/${id}`, }; } - } finally { loading.value = false; }