mirror of
https://github.com/directus/directus.git
synced 2026-04-25 03:00:53 -04:00
Move preview defaults to app
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user