Merge branch 'main' into file-replace

This commit is contained in:
Nitwel
2020-10-19 19:53:54 +02:00
43 changed files with 356 additions and 214 deletions

View File

@@ -49,7 +49,7 @@
<v-list-item to="/activity?action=comment" exact>
<v-list-item-icon>
<v-icon name="notes" />
<v-icon name="chat_bubble_outline" />
</v-list-item-icon>
<v-list-item-content>
{{ $t('comment') }}

View File

@@ -12,7 +12,7 @@
<!-- @TODO add final design -->
<p class="type-label">User:</p>
<user-popover v-if="item.user" :user="item.user.id">
{{ item.user.first_name }} {{ item.user.last_name }}
{{ userName(item.user) }}
</user-popover>
<p class="type-label">Action:</p>
@@ -51,6 +51,7 @@ import { defineComponent, computed, toRefs, ref, watch } from '@vue/composition-
import { i18n } from '@/lang';
import router from '@/router';
import api from '@/api';
import { userName } from '@/utils/user-name';
type Values = {
[field: string]: any;
@@ -58,6 +59,7 @@ type Values = {
type ActivityRecord = {
user: {
email: string;
first_name: string;
last_name: string;
} | null;
@@ -97,6 +99,7 @@ export default defineComponent({
error,
close,
openItemLink,
userName,
};
async function loadActivity() {
@@ -107,6 +110,7 @@ export default defineComponent({
params: {
fields: [
'user.id',
'user.email',
'user.first_name',
'user.last_name',
'action',

View File

@@ -123,6 +123,7 @@ import marked from 'marked';
import localizedFormat from '@/utils/localized-format';
import api from '@/api';
import getRootPath from '@/utils/get-root-path';
import { userName } from '@/utils/user-name';
export default defineComponent({
inheritAttrs: false,
@@ -213,31 +214,31 @@ export default defineComponent({
try {
const response = await api.get(`/users/${props.file.uploaded_by}`, {
params: {
fields: ['id', 'first_name', 'last_name', 'role'],
fields: ['id', 'email', 'first_name', 'last_name', 'role'],
},
});
const { id, first_name, last_name, role } = response.data.data;
const user = response.data.data;
userCreated.value = {
id: props.file.uploaded_by,
name: first_name + ' ' + last_name,
link: `/users/${id}`,
name: userName(user),
link: `/users/${user.id}`,
};
if (props.file.modified_by) {
const response = await api.get(`/users/${props.file.modified_by}`, {
params: {
fields: ['id', 'first_name', 'last_name', 'role'],
fields: ['id', 'email', 'first_name', 'last_name', 'role'],
},
});
const { id, first_name, last_name, role } = response.data.data;
const user = response.data.data;
userModified.value = {
id: props.file.modified_by,
name: first_name + ' ' + last_name,
link: `/users/${id}`,
name: userName(user),
link: `/users/${user.id}`,
};
}
} finally {

View File

@@ -34,7 +34,7 @@
</v-list-item>
<v-list-item to="/files/mine" exact>
<v-list-item-icon><v-icon name="face" /></v-list-item-icon>
<v-list-item-icon><v-icon name="folder_shared" /></v-list-item-icon>
<v-list-item-content>{{ $t('my_files') }}</v-list-item-content>
</v-list-item>

View File

@@ -393,7 +393,7 @@ export default defineComponent({
}
function downloadFile() {
const filePath = getRootPath() + `assets/${props.primaryKey}?download=true`;
const filePath = getRootPath() + `assets/${props.primaryKey}?download`;
window.open(filePath, '_blank');
}

View File

@@ -49,7 +49,15 @@
<template #input>
<div class="label">
<span class="name" v-tooltip="field.name">{{ field.field }}</span>
<span class="name" v-tooltip="field.name">
{{ field.field }}
<v-icon
name="star"
class="required"
sup
v-if="field.schema && field.schema.is_nullable === false"
/>
</span>
<span v-if="field.meta" class="interface">{{ interfaceName }}</span>
<span v-else class="interface">{{ $t('db_only_click_to_configure') }}</span>
</div>
@@ -522,4 +530,10 @@ export default defineComponent({
--v-button-background-color: var(--danger);
--v-button-background-color-hover: var(--danger-125);
}
.required {
position: relative;
left: -8px;
color: var(--primary);
}
</style>

View File

@@ -373,7 +373,6 @@ export default defineComponent({
special: ['user-created'],
interface: 'user',
options: {
template: '{{first_name}} {{last_name}}',
display: 'both',
},
readonly: true,
@@ -407,7 +406,6 @@ export default defineComponent({
special: ['user-updated'],
interface: 'user',
options: {
template: '{{first_name}} {{last_name}}',
display: 'both',
},
readonly: true,

View File

@@ -103,11 +103,12 @@ import { TranslateResult } from 'vue-i18n';
import router from '@/router';
import ValueNull from '@/views/private/components/value-null';
import PresetsInfoSidebarDetail from './components/presets-info-sidebar-detail.vue';
import { userName } from '@/utils/user-name';
type PresetRaw = {
id: number;
bookmark: null | string;
user: null | { first_name: string; last_name: string };
user: null | { email: string; first_name: string; last_name: string };
role: null | { name: string };
collection: string;
layout: string;
@@ -173,7 +174,7 @@ export default defineComponent({
}
if (preset.user) {
scope = `${preset.user.first_name} ${preset.user.last_name}`;
scope = userName(preset.user);
}
const collection = collectionsStore.getCollection(preset.collection)?.name;
@@ -200,6 +201,7 @@ export default defineComponent({
fields: [
'id',
'bookmark',
'user.email',
'user.first_name',
'user.last_name',
'role.name',

View File

@@ -102,6 +102,7 @@ import { useCollectionsStore, usePresetsStore } from '@/stores';
import { getLayouts } from '@/layouts';
import router from '@/router';
import marked from 'marked';
import { userName } from '@/utils/user-name';
type User = {
id: number;
@@ -365,12 +366,12 @@ export default defineComponent({
try {
const response = await api.get(`/users`, {
params: {
fields: ['first_name', 'last_name', 'id'],
fields: ['email', 'first_name', 'last_name', 'id'],
},
});
users.value = response.data.data.map((user: any) => ({
name: user.first_name + ' ' + user.last_name,
name: userName(user),
id: user.id,
}));
} catch (err) {

View File

@@ -102,7 +102,7 @@
<div class="user-box" v-if="isNew === false">
<div class="avatar">
<v-skeleton-loader v-if="loading || previewLoading" />
<img v-else-if="avatarSrc" :src="avatarSrc" :alt="item.first_name" />
<img v-else-if="avatarSrc" :src="avatarSrc" :alt="item.email" />
<v-icon v-else name="account_circle" outline x-large />
</div>
<div class="user-box-content">
@@ -112,7 +112,7 @@
<v-skeleton-loader type="text" />
</template>
<template v-else-if="isNew === false">
<div class="name type-title">{{ item.first_name }} {{ item.last_name }}</div>
<div class="name type-title">{{ userName(item) }}</div>
<div class="email">{{ item.email }}</div>
<v-chip :class="item.status" small>{{ roleName }}</v-chip>
</template>
@@ -179,6 +179,7 @@ import { getRootPath } from '@/utils/get-root-path';
import useShortcut from '@/composables/use-shortcut';
import { isAllowed } from '@/utils/is-allowed';
import useCollection from '@/composables/use-collection';
import { userName } from '@/utils/user-name';
type Values = {
[field: string]: any;
@@ -255,7 +256,7 @@ export default defineComponent({
if (isNew.value === false && item.value !== null) {
const user = item.value as any;
return `${user.first_name} ${user.last_name}`;
return userName(user);
}
return i18n.t('adding_user');
@@ -334,6 +335,7 @@ export default defineComponent({
archiving,
archiveTooltip,
form,
userName,
};
function useBreadcrumb() {