Move preview defaults to app

This commit is contained in:
rijkvanzanten
2020-10-29 13:39:39 -04:00
parent d3ca132fad
commit 0f729a5d6b
2 changed files with 86 additions and 85 deletions

View File

@@ -1,84 +0,0 @@
table: directus_presets
defaults:
bookmark: null
user: null
role: null
collection: null
search: null
filters: '[]'
layout: tabular
layout_query: null
layout_options: null
data:
- collection: directus_files
layout: cards
layout_query:
cards:
sort: -uploaded_on
layout_options:
cards:
icon: insert_drive_file
title: '{{ title }}'
subtitle: '{{ type }} • {{ filesize }}'
size: 4
imageFit: crop
- collection: directus_users
layout: cards
layout_options:
cards:
icon: account_circle
title: '{{ first_name }} {{ last_name }}'
subtitle: '{{ email }}'
size: 4
- collection: directus_activity
layout: tabular
layout_query:
tabular:
sort: -timestamp
fields:
- action
- collection
- timestamp
- user
layout_options:
tabular:
widths:
action: 100
collection: 210
timestamp: 240
user: 240
- collection: directus_webhooks
layout: tabular
layout_query:
tabular:
fields:
- status
- name
- method
- url
layout_options:
tabular:
widths:
status: 36
name: 300
- collection: directus_roles
layout: tabular
layout_query:
tabular:
fields:
- icon
- name
- description
layout_options:
tabular:
widths:
icon: 36
name: 248
description: 500

View File

@@ -3,6 +3,7 @@ import { Preset } from '@/types';
import { useUserStore } from '@/stores/';
import api from '@/api';
import { nanoid } from 'nanoid';
import { merge } from 'lodash';
const defaultPreset: Omit<Preset, 'collection'> = {
bookmark: null,
@@ -15,6 +16,77 @@ const defaultPreset: Omit<Preset, 'collection'> = {
layout_options: null,
};
const systemDefaults: Record<string, Partial<Preset>> = {
directus_files: {
collection: 'directus_files',
layout: 'cards',
layout_query: {
cards: {
sort: '-uploaded_on',
},
},
layout_options: {
cards: {
icon: 'insert_drive_file',
title: '{{ title }}',
subtitle: '{{ type }} • {{ filesize }}',
size: 4,
imageFit: 'crop',
},
},
},
directus_users: {
collection: 'directus_users',
layout: 'cards',
layout_options: {
cards: {
icon: 'account_circle',
title: '{{ first_name }} {{ last_name }}',
subtitle: '{{ email }}',
size: 4,
},
},
},
directus_activity: {
collection: 'directus_activity',
layout: 'tabular',
layout_query: {
tabular: {
sort: '-timestamp',
fields: ['action', 'collection', 'timestamp', 'user'],
},
},
layout_options: {
tabular: {
widths: {
action: 100,
collection: 210,
timestamp: 240,
user: 240,
},
},
},
},
directus_roles: {
collection: 'directus_roles',
layout: 'tabular',
layout_query: {
tabular: {
fields: ['icon', 'name', 'description'],
},
},
layout_options: {
tabular: {
widths: {
icon: 36,
name: 248,
description: 500,
},
},
},
},
};
let currentUpdate: Record<number, string> = {};
export const usePresetsStore = createStore({
@@ -50,7 +122,20 @@ export const usePresetsStore = createStore({
}),
]);
this.state.collectionPresets = values.map((response) => response.data.data).flat();
const presets = values.map((response) => response.data.data).flat();
// Inject system defaults if they don't exist
for (const systemCollection of Object.keys(systemDefaults)) {
const existingGlobalDefault = presets.find((preset) => {
return preset.collection === systemCollection && !preset.user && !preset.role && !preset.bookmark;
});
if (!existingGlobalDefault) {
presets.push(merge({}, defaultPreset, systemDefaults[systemCollection]));
}
}
this.state.collectionPresets = presets;
},
async dehydrate() {
this.reset();