mirror of
https://github.com/directus/directus.git
synced 2026-01-30 02:07:57 -05:00
Merge branch 'main' into aggregation
This commit is contained in:
@@ -1,3 +1,2 @@
|
||||
node_modules
|
||||
dist
|
||||
app/vite.config.js
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
const defaultRules = {
|
||||
// No console statements in production
|
||||
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
||||
'no-console': process.env.NODE_ENV !== 'development' ? 'error' : 'off',
|
||||
// No debugger statements in production
|
||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
||||
// Enforce prettier formating
|
||||
'no-debugger': process.env.NODE_ENV !== 'development' ? 'error' : 'off',
|
||||
// Enforce prettier formatting
|
||||
'prettier/prettier': 'error',
|
||||
};
|
||||
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
dist
|
||||
node_modules
|
||||
app/src/lang/translations/*.yaml
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "directus",
|
||||
"version": "9.0.0-rc.75",
|
||||
"version": "9.0.0-rc.76",
|
||||
"license": "GPL-3.0-only",
|
||||
"homepage": "https://github.com/directus/directus#readme",
|
||||
"description": "Directus is a real-time API and App dashboard for managing SQL database content.",
|
||||
@@ -66,14 +66,14 @@
|
||||
"example.env"
|
||||
],
|
||||
"dependencies": {
|
||||
"@directus/app": "9.0.0-rc.75",
|
||||
"@directus/drive": "9.0.0-rc.75",
|
||||
"@directus/drive-azure": "9.0.0-rc.75",
|
||||
"@directus/drive-gcs": "9.0.0-rc.75",
|
||||
"@directus/drive-s3": "9.0.0-rc.75",
|
||||
"@directus/format-title": "9.0.0-rc.75",
|
||||
"@directus/schema": "9.0.0-rc.75",
|
||||
"@directus/specs": "9.0.0-rc.75",
|
||||
"@directus/app": "9.0.0-rc.76",
|
||||
"@directus/drive": "9.0.0-rc.76",
|
||||
"@directus/drive-azure": "9.0.0-rc.76",
|
||||
"@directus/drive-gcs": "9.0.0-rc.76",
|
||||
"@directus/drive-s3": "9.0.0-rc.76",
|
||||
"@directus/format-title": "9.0.0-rc.76",
|
||||
"@directus/schema": "9.0.0-rc.76",
|
||||
"@directus/specs": "9.0.0-rc.76",
|
||||
"@godaddy/terminus": "^4.9.0",
|
||||
"argon2": "^0.28.1",
|
||||
"async": "^3.2.0",
|
||||
@@ -102,7 +102,7 @@
|
||||
"graphql": "^15.5.0",
|
||||
"graphql-compose": "^9.0.1",
|
||||
"icc": "^2.0.0",
|
||||
"inquirer": "^8.1.0",
|
||||
"inquirer": "^8.1.1",
|
||||
"joi": "^17.3.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"js2xmlparser": "^4.0.1",
|
||||
@@ -125,6 +125,7 @@
|
||||
"otplib": "^12.0.1",
|
||||
"pino": "^6.11.3",
|
||||
"pino-colada": "^2.1.0",
|
||||
"prettier": "^2.3.1",
|
||||
"qs": "^6.9.4",
|
||||
"rate-limiter-flexible": "^2.2.2",
|
||||
"resolve-cwd": "^3.0.0",
|
||||
@@ -138,7 +139,7 @@
|
||||
"connect-memcached": "^1.0.0",
|
||||
"connect-redis": "^6.0.0",
|
||||
"connect-session-knex": "^2.1.0",
|
||||
"ioredis": "^4.27.2",
|
||||
"ioredis": "^4.27.6",
|
||||
"keyv-memcache": "^1.2.5",
|
||||
"memcached": "^2.2.2",
|
||||
"mysql": "^2.18.1",
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* eslint-disable no-console */
|
||||
|
||||
import getDatabase from '../../../database';
|
||||
|
||||
export default async function count(collection: string): Promise<void> {
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* eslint-disable no-console */
|
||||
|
||||
import runMigrations from '../../../database/migrations/run';
|
||||
import installSeeds from '../../../database/seeds/run';
|
||||
import getDatabase from '../../../database';
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* eslint-disable no-console */
|
||||
|
||||
import run from '../../../database/migrations/run';
|
||||
import getDatabase from '../../../database';
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* eslint-disable no-console */
|
||||
|
||||
import argon2 from 'argon2';
|
||||
import chalk from 'chalk';
|
||||
import execa from 'execa';
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* eslint-disable no-console */
|
||||
|
||||
import { getSchema } from '../../../utils/get-schema';
|
||||
import { RolesService } from '../../../services';
|
||||
import getDatabase from '../../../database';
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* eslint-disable no-console */
|
||||
|
||||
import { getSchema } from '../../../utils/get-schema';
|
||||
import { UsersService } from '../../../services';
|
||||
import getDatabase from '../../../database';
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* eslint-disable no-console */
|
||||
|
||||
import argon2 from 'argon2';
|
||||
import { getSchema } from '../../../utils/get-schema';
|
||||
import { UsersService } from '../../../services';
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
/* eslint-disable no-console */
|
||||
|
||||
import program from 'commander';
|
||||
import start from '../start';
|
||||
import bootstrap from './commands/bootstrap';
|
||||
|
||||
@@ -28,7 +28,11 @@ export default function getDatabase(): Knex {
|
||||
if (env.DB_CLIENT && env.DB_CLIENT === 'sqlite3') {
|
||||
requiredEnvVars.push('DB_FILENAME');
|
||||
} else if (env.DB_CLIENT && env.DB_CLIENT === 'oracledb') {
|
||||
requiredEnvVars.push('DB_USER', 'DB_PASSWORD', 'DB_CONNECT_STRING');
|
||||
if (!env.DB_CONNECT_STRING) {
|
||||
requiredEnvVars.push('DB_HOST', 'DB_PORT', 'DB_DATABASE', 'DB_USER', 'DB_PASSWORD');
|
||||
} else {
|
||||
requiredEnvVars.push('DB_USER', 'DB_PASSWORD', 'DB_CONNECT_STRING');
|
||||
}
|
||||
} else {
|
||||
if (env.DB_CLIENT === 'pg') {
|
||||
if (!env.DB_CONNECTION_STRING) {
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import { Knex } from 'knex';
|
||||
// @ts-ignore
|
||||
import Client_Oracledb from 'knex/lib/dialects/oracledb';
|
||||
import env from '../../env';
|
||||
|
||||
async function oracleAlterUrl(knex: Knex, type: string): Promise<void> {
|
||||
@@ -10,7 +12,7 @@ async function oracleAlterUrl(knex: Knex, type: string): Promise<void> {
|
||||
}
|
||||
|
||||
export async function up(knex: Knex): Promise<void> {
|
||||
if (env.DB_CLIENT === 'oracledb') {
|
||||
if (knex.client instanceof Client_Oracledb) {
|
||||
await oracleAlterUrl(knex, 'CLOB');
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import { Knex } from 'knex';
|
||||
// @ts-ignore
|
||||
import Client_Oracledb from 'knex/lib/dialects/oracledb';
|
||||
import env from '../../env';
|
||||
|
||||
async function oracleAlterCollections(knex: Knex, type: string): Promise<void> {
|
||||
@@ -10,7 +12,7 @@ async function oracleAlterCollections(knex: Knex, type: string): Promise<void> {
|
||||
}
|
||||
|
||||
export async function up(knex: Knex): Promise<void> {
|
||||
if (env.DB_CLIENT === 'oracledb') {
|
||||
if (knex.client instanceof Client_Oracledb) {
|
||||
await oracleAlterCollections(knex, 'CLOB');
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* eslint-disable no-console */
|
||||
|
||||
import formatTitle from '@directus/format-title';
|
||||
import fse from 'fs-extra';
|
||||
import { Knex } from 'knex';
|
||||
|
||||
@@ -50,6 +50,7 @@ const defaults: Record<string, any> = {
|
||||
CACHE_TTL: '10m',
|
||||
CACHE_NAMESPACE: 'system-cache',
|
||||
CACHE_AUTO_PURGE: false,
|
||||
CACHE_CONTROL_S_MAXAGE: '0',
|
||||
|
||||
OAUTH_PROVIDERS: '',
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ import { RequestHandler } from 'express';
|
||||
import cache from '../cache';
|
||||
import env from '../env';
|
||||
import asyncHandler from '../utils/async-handler';
|
||||
import { getCacheControlHeader } from '../utils/get-cache-headers';
|
||||
import { getCacheKey } from '../utils/get-cache-key';
|
||||
|
||||
const checkCacheMiddleware: RequestHandler = asyncHandler(async (req, res, next) => {
|
||||
@@ -17,18 +18,11 @@ const checkCacheMiddleware: RequestHandler = asyncHandler(async (req, res, next)
|
||||
const cachedData = await cache.get(key);
|
||||
|
||||
if (cachedData) {
|
||||
// Set cache-control header, but only for the public role
|
||||
if (env.CACHE_AUTO_PURGE !== true && !!req.accountability?.role === false) {
|
||||
const expiresAt = await cache.get(`${key}__expires_at`);
|
||||
const maxAge = `max-age=${expiresAt - Date.now()}`;
|
||||
res.setHeader('Cache-Control', `public, ${maxAge}`);
|
||||
} else {
|
||||
// This indicates that the browser/proxy is allowed to cache, but has to revalidate with
|
||||
// the server before use. At this point, we don't include Last-Modified, so it'll always
|
||||
// recreate the local cache. This does NOT mean that cache is disabled all together, as
|
||||
// Directus is still pulling the value from it's internal cache.
|
||||
res.setHeader('Cache-Control', 'no-cache');
|
||||
}
|
||||
const cacheExpiryDate = (await cache.get(`${key}__expires_at`)) as number | null;
|
||||
const cacheTTL = cacheExpiryDate ? cacheExpiryDate - Date.now() : null;
|
||||
|
||||
res.setHeader('Cache-Control', getCacheControlHeader(req, cacheTTL));
|
||||
res.setHeader('Vary', 'Origin, Cache-Control');
|
||||
|
||||
return res.json(cachedData);
|
||||
} else {
|
||||
|
||||
@@ -7,6 +7,7 @@ import env from '../env';
|
||||
import asyncHandler from '../utils/async-handler';
|
||||
import { getCacheKey } from '../utils/get-cache-key';
|
||||
import { parse as toXML } from 'js2xmlparser';
|
||||
import { getCacheControlHeader } from '../utils/get-cache-headers';
|
||||
|
||||
export const respond: RequestHandler = asyncHandler(async (req, res) => {
|
||||
if (
|
||||
@@ -19,20 +20,12 @@ export const respond: RequestHandler = asyncHandler(async (req, res) => {
|
||||
const key = getCacheKey(req);
|
||||
await cache.set(key, res.locals.payload, ms(env.CACHE_TTL as string));
|
||||
await cache.set(`${key}__expires_at`, Date.now() + ms(env.CACHE_TTL as string));
|
||||
|
||||
const noCacheRequested =
|
||||
req.headers['cache-control']?.includes('no-cache') || req.headers['Cache-Control']?.includes('no-cache');
|
||||
|
||||
// Set cache-control header
|
||||
if (env.CACHE_AUTO_PURGE !== true && noCacheRequested === false) {
|
||||
const maxAge = `max-age=${ms(env.CACHE_TTL as string)}`;
|
||||
const access = !!req.accountability?.role === false ? 'public' : 'private';
|
||||
res.setHeader('Cache-Control', `${access}, ${maxAge}`);
|
||||
}
|
||||
|
||||
if (noCacheRequested) {
|
||||
res.setHeader('Cache-Control', 'no-cache');
|
||||
}
|
||||
res.setHeader('Cache-Control', getCacheControlHeader(req, ms(env.CACHE_TTL as string)));
|
||||
res.setHeader('Vary', 'Origin, Cache-Control');
|
||||
} else {
|
||||
// Don't cache anything by default
|
||||
res.setHeader('Cache-Control', 'no-cache');
|
||||
res.setHeader('Vary', 'Origin, Cache-Control');
|
||||
}
|
||||
|
||||
if (req.sanitizedQuery.export) {
|
||||
|
||||
@@ -9,6 +9,7 @@ import logger from '../../logger';
|
||||
import { AbstractServiceOptions, Accountability, SchemaOverview } from '../../types';
|
||||
import getMailer from '../../mailer';
|
||||
import { Transporter, SendMailOptions } from 'nodemailer';
|
||||
import prettier from 'prettier';
|
||||
|
||||
const liquidEngine = new Liquid({
|
||||
root: [path.resolve(env.EXTENSIONS_PATH, 'templates'), path.resolve(__dirname, 'templates')],
|
||||
@@ -61,6 +62,11 @@ export class MailService {
|
||||
html = await this.renderTemplate(template.name, templateData);
|
||||
}
|
||||
|
||||
if (typeof html === 'string') {
|
||||
// Some email clients start acting funky when line length exceeds 75 characters. See #6074
|
||||
html = prettier.format(html as string, { parser: 'html', printWidth: 70, tabWidth: 0 });
|
||||
}
|
||||
|
||||
try {
|
||||
await this.mailer.sendMail({ ...emailOptions, from, html });
|
||||
} catch (error) {
|
||||
|
||||
@@ -24,7 +24,7 @@ import { clone } from 'lodash';
|
||||
*
|
||||
* The conversion is lifted straight from `ms`.
|
||||
*/
|
||||
export function adjustDate(date: Date, adjustment: string) {
|
||||
export function adjustDate(date: Date, adjustment: string): Date | undefined {
|
||||
date = clone(date);
|
||||
|
||||
const subtract = adjustment.startsWith('-');
|
||||
|
||||
42
api/src/utils/get-cache-headers.ts
Normal file
42
api/src/utils/get-cache-headers.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import env from '../env';
|
||||
import { Request } from 'express';
|
||||
|
||||
/**
|
||||
* Returns the Cache-Control header for the current request
|
||||
*
|
||||
* @param req Express request object
|
||||
* @param ttl TTL of the cache in ms
|
||||
*/
|
||||
export function getCacheControlHeader(req: Request, ttl: number | null): string {
|
||||
// When the resource / current request isn't cached
|
||||
if (ttl === null) return 'no-cache';
|
||||
|
||||
// When the API cache can invalidate at any moment
|
||||
if (env.CACHE_AUTO_PURGE === true) return 'no-cache';
|
||||
|
||||
const noCacheRequested =
|
||||
req.headers['cache-control']?.includes('no-cache') || req.headers['Cache-Control']?.includes('no-cache');
|
||||
|
||||
// When the user explicitly asked to skip the cache
|
||||
if (noCacheRequested) return 'no-cache';
|
||||
|
||||
// Cache control header uses seconds for everything
|
||||
const ttlSeconds = Math.round(ttl / 1000);
|
||||
|
||||
const access = !!req.accountability?.role === false ? 'public' : 'private';
|
||||
|
||||
let headerValue = `${access}, max-age=${ttlSeconds}`;
|
||||
|
||||
// When the s-maxage flag should be included
|
||||
if (env.CACHE_CONTROL_S_MAXAGE !== false) {
|
||||
// Default to regular max-age flag when true
|
||||
if (env.CACHE_CONTROL_S_MAXAGE === true) {
|
||||
headerValue += `, s-maxage=${ttlSeconds}`;
|
||||
} else {
|
||||
// Set to custom value
|
||||
headerValue += `, s-maxage=${env.CACHE_CONTROL_S_MAXAGE}`;
|
||||
}
|
||||
}
|
||||
|
||||
return headerValue;
|
||||
}
|
||||
@@ -5,8 +5,6 @@ import logger from '../logger';
|
||||
* Check if url matches allow list either exactly or by domain+path
|
||||
*/
|
||||
export default function isUrlAllowed(url: string, allowList: string | string[]): boolean {
|
||||
console.log(url, allowList);
|
||||
|
||||
const urlAllowList = toArray(allowList);
|
||||
|
||||
if (urlAllowList.includes(url)) return true;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@directus/app",
|
||||
"version": "9.0.0-rc.75",
|
||||
"version": "9.0.0-rc.76",
|
||||
"private": false,
|
||||
"description": "Directus is an Open-Source Headless CMS & API for Managing Custom Databases",
|
||||
"author": "Rijk van Zanten <rijk@rngr.org>",
|
||||
@@ -28,8 +28,8 @@
|
||||
},
|
||||
"gitHead": "24621f3934dc77eb23441331040ed13c676ceffd",
|
||||
"devDependencies": {
|
||||
"@directus/docs": "9.0.0-rc.75",
|
||||
"@directus/format-title": "9.0.0-rc.75",
|
||||
"@directus/docs": "9.0.0-rc.76",
|
||||
"@directus/format-title": "9.0.0-rc.76",
|
||||
"@fullcalendar/core": "^5.7.2",
|
||||
"@fullcalendar/daygrid": "^5.7.2",
|
||||
"@fullcalendar/interaction": "^5.7.2",
|
||||
@@ -38,7 +38,7 @@
|
||||
"@popperjs/core": "^2.9.2",
|
||||
"@rollup/plugin-yaml": "^3.0.0",
|
||||
"@sindresorhus/slugify": "^2.1.0",
|
||||
"@tinymce/tinymce-vue": "^4.0.0",
|
||||
"@tinymce/tinymce-vue": "^4.0.3",
|
||||
"@types/base-64": "^1.0.0",
|
||||
"@types/bytes": "^3.1.0",
|
||||
"@types/codemirror": "^5.60.0",
|
||||
@@ -62,7 +62,7 @@
|
||||
"base-64": "^1.0.0",
|
||||
"codemirror": "^5.61.1",
|
||||
"copyfiles": "^2.4.1",
|
||||
"cropperjs": "^1.5.11",
|
||||
"cropperjs": "^1.5.12",
|
||||
"date-fns": "^2.21.1",
|
||||
"dompurify": "^2.2.9",
|
||||
"escape-string-regexp": "^5.0.0",
|
||||
@@ -79,7 +79,7 @@
|
||||
"pretty-ms": "^7.0.1",
|
||||
"qrcode": "^1.4.4",
|
||||
"rimraf": "^3.0.2",
|
||||
"sass": "^1.34.1",
|
||||
"sass": "^1.35.1",
|
||||
"tinymce": "^5.7.1",
|
||||
"typescript": "^4.2.4",
|
||||
"vite": "^2.3.7",
|
||||
|
||||
@@ -274,7 +274,12 @@ export default defineComponent({
|
||||
url: url.value,
|
||||
});
|
||||
|
||||
emit('input', response.data.data);
|
||||
if (props.multiple) {
|
||||
emit('input', [response.data.data]);
|
||||
} else {
|
||||
emit('input', response.data.data);
|
||||
}
|
||||
|
||||
activeDialog.value = null;
|
||||
url.value = '';
|
||||
} catch (err) {
|
||||
|
||||
@@ -20,10 +20,12 @@ export async function registerDisplays(app: App): Promise<void> {
|
||||
const result = await import(/* @vite-ignore */ `${getRootPath()}extensions/displays/${displayName}/index.js`);
|
||||
displays.push(result.default);
|
||||
} catch (err) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(`Couldn't load custom displays "${displayName}":`, err);
|
||||
}
|
||||
});
|
||||
} catch {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(`Couldn't load custom displays`);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<interface-select-multiple-checkbox
|
||||
v-else
|
||||
:choices="items"
|
||||
@input="emit('input', $event)"
|
||||
@input="$emit('input', $event)"
|
||||
:value="value"
|
||||
:disabled="disabled"
|
||||
/>
|
||||
|
||||
@@ -100,6 +100,7 @@ export default defineComponent({
|
||||
const resultsArray = get(result.data, props.resultsPath);
|
||||
|
||||
if (Array.isArray(resultsArray) === false) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(`Expected results type of array, "${typeof resultsArray}" recieved`);
|
||||
return;
|
||||
} else {
|
||||
@@ -108,6 +109,7 @@ export default defineComponent({
|
||||
.filter((val: unknown) => val);
|
||||
}
|
||||
} catch (err) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(err);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -4,9 +4,8 @@
|
||||
ref="editorElement"
|
||||
:init="editorOptions"
|
||||
:disabled="disabled"
|
||||
model-events="change keydown blur focus paste ExecCommand SetContent"
|
||||
model-events="change keydown blur focus paste ExecCommand"
|
||||
v-model="internalValue"
|
||||
@change="onChange"
|
||||
@onFocusIn="setFocus(true)"
|
||||
@onFocusOut="setFocus(false)"
|
||||
/>
|
||||
@@ -242,6 +241,7 @@ export default defineComponent({
|
||||
editorRef,
|
||||
imageToken
|
||||
);
|
||||
|
||||
const {
|
||||
mediaDrawerOpen,
|
||||
mediaSelection,
|
||||
@@ -344,9 +344,6 @@ export default defineComponent({
|
||||
closeCodeDrawer,
|
||||
saveCode,
|
||||
sourceCodeButton,
|
||||
onChange(a: any) {
|
||||
console.log(a);
|
||||
},
|
||||
};
|
||||
|
||||
function setup(editor: any) {
|
||||
@@ -374,9 +371,12 @@ export default defineComponent({
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
<style lang="scss">
|
||||
@import 'tinymce/skins/ui/oxide/skin.css';
|
||||
@import './tinymce-overrides.css';
|
||||
</style>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import '@/styles/mixins/form-grid';
|
||||
|
||||
.body {
|
||||
|
||||
@@ -26,7 +26,7 @@ type UsableImage = {
|
||||
imageButton: ImageButton;
|
||||
};
|
||||
|
||||
export default function useImage(editor: Ref<any>, imageToken: Ref<string>): UsableImage {
|
||||
export default function useImage(editor: Ref<any>, imageToken: Ref<string | undefined>): UsableImage {
|
||||
const imageDrawerOpen = ref(false);
|
||||
const imageSelection = ref<ImageSelection | null>(null);
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ type UsableMedia = {
|
||||
mediaButton: MediaButton;
|
||||
};
|
||||
|
||||
export default function useMedia(editor: Ref<any>, imageToken: Ref<string>): UsableMedia {
|
||||
export default function useMedia(editor: Ref<any>, imageToken: Ref<string | undefined>): UsableMedia {
|
||||
const mediaDrawerOpen = ref(false);
|
||||
const mediaSelection = ref<MediaSelection | null>(null);
|
||||
const openMediaTab = ref(['video']);
|
||||
@@ -151,7 +151,8 @@ export default function useMedia(editor: Ref<any>, imageToken: Ref<string>): Usa
|
||||
}
|
||||
|
||||
function onMediaSelect(media: Record<string, any>) {
|
||||
const source = addTokenToURL(getPublicURL() + 'assets/' + media.id, imageToken.value);
|
||||
const url = getPublicURL() + 'assets/' + media.id;
|
||||
const source = imageToken.value ? addTokenToURL(url, imageToken.value) : url;
|
||||
|
||||
mediaSelection.value = {
|
||||
source,
|
||||
|
||||
@@ -9,6 +9,7 @@ import { computed, defineComponent, PropType } from 'vue';
|
||||
import { Field } from '@/types';
|
||||
|
||||
export default defineComponent({
|
||||
emits: ['input'],
|
||||
props: {
|
||||
fieldData: {
|
||||
type: Object as PropType<Field>,
|
||||
|
||||
@@ -23,10 +23,12 @@ export async function registerInterfaces(app: App): Promise<void> {
|
||||
);
|
||||
interfaces.push(result.default);
|
||||
} catch (err) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(`Couldn't load custom interface "${interfaceName}":`, err);
|
||||
}
|
||||
});
|
||||
} catch {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(`Couldn't load custom interfaces`);
|
||||
}
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
:collection="relatedCollection.collection"
|
||||
:primary-key="currentPrimaryKey"
|
||||
:edits="edits"
|
||||
:circular-field="relation.meta.one_field"
|
||||
:circular-field="relation.meta?.one_field"
|
||||
@input="stageEdits"
|
||||
/>
|
||||
|
||||
@@ -325,7 +325,7 @@ export default defineComponent({
|
||||
});
|
||||
|
||||
const relatedCollection = computed(() => {
|
||||
return collectionsStore.getCollection(relation.value.related_collection)!;
|
||||
return collectionsStore.getCollection(relation.value.related_collection!)!;
|
||||
});
|
||||
|
||||
const { primaryKeyField: relatedPrimaryKeyField } = useCollection(relatedCollection.value.collection);
|
||||
|
||||
@@ -420,7 +420,6 @@ export default defineComponent({
|
||||
};
|
||||
});
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
error.value = err;
|
||||
previewItems.value = [];
|
||||
} finally {
|
||||
|
||||
@@ -26,6 +26,7 @@ export async function setLanguage(lang: Language): Promise<boolean> {
|
||||
i18n.global.mergeLocaleMessage(lang, translations);
|
||||
loadedLanguages.push(lang);
|
||||
} catch (err) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(err);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: إنشاء دور أو صلاحية
|
||||
create_user: إضافة مستخدم
|
||||
create_webhook: إنشاء Webhook
|
||||
invite_users: دعوة مستخدمين
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
invite: دعوة
|
||||
email_already_invited: البريد الإلكتروني {email} تم دعوته مسبقاً
|
||||
emails: البريد الإلكتروني
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: Създаване на роля
|
||||
create_user: Създаване на потребител
|
||||
create_webhook: Създаване на уеб-кука
|
||||
invite_users: Покана към потребители
|
||||
email_examples: 'admin@example.com, potrebitel@example.com...'
|
||||
invite: Покана
|
||||
email_already_invited: Вече е изпратена покана в пощата на "{email}"
|
||||
emails: E-пощи
|
||||
|
||||
@@ -16,7 +16,6 @@ create_role: Crea un rol
|
||||
create_user: Crear usuari
|
||||
create_webhook: Crear Webhook
|
||||
invite_users: Convidar usuaris
|
||||
email_examples: 'admin@exemple.com, usuari@exemple.com...'
|
||||
invite: Convida
|
||||
emails: Correus electrònics
|
||||
connection_excellent: Connexió excel·lent
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: Vytvořit roli
|
||||
create_user: Vytvořit uživatele
|
||||
create_webhook: Vytvořit webhook
|
||||
invite_users: Pozvat uživatele
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
invite: Pozvat
|
||||
email_already_invited: E-mail "{email}" již byl pozván
|
||||
emails: E-mail
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: Opret Rolle
|
||||
create_user: Opret bruger
|
||||
create_webhook: Opret Webhook
|
||||
invite_users: Inviter brugere
|
||||
email_examples: 'admin@eksempel.dk, bruger@eksempel.dk...'
|
||||
invite: Inviter
|
||||
emails: E-mail
|
||||
connection_excellent: Udmærket forbindelse
|
||||
|
||||
@@ -20,7 +20,7 @@ create_role: Rolle erstellen
|
||||
create_user: Benutzer erstellen
|
||||
create_webhook: Webhook erstellen
|
||||
invite_users: Benutzer einladen
|
||||
email_examples: 'admin@beispiel.org, benutzer@beispiel.org...'
|
||||
email_examples: "admin{'@'}beispiel.de, benutzer{'@'}beispiel.de..."
|
||||
invite: Einladen
|
||||
email_already_invited: E-Mail "{email}" wurde bereits eingeladen
|
||||
emails: E-Mails
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: Δημιουργία ρόλου
|
||||
create_user: Δημιουργία Χρήστη
|
||||
create_webhook: Δημιουργία Webhook
|
||||
invite_users: Πρόσκληση Χρηστών
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
invite: Πρόσκληση
|
||||
email_already_invited: To email "{email}" έχει ήδη προσκληθεί
|
||||
emails: Emails
|
||||
|
||||
@@ -19,7 +19,7 @@ create_role: Create Role
|
||||
create_user: Create User
|
||||
create_webhook: Create Webhook
|
||||
invite_users: Invite Users
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
email_examples: "admin{'@'}example.com, user{'@'}example.com..."
|
||||
invite: Invite
|
||||
email_already_invited: Email "{email}" has already been invited
|
||||
emails: Emails
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: Crear rol
|
||||
create_user: Crear Usuario
|
||||
create_webhook: Crear un gancho web
|
||||
invite_users: Invitar Usuarios
|
||||
email_examples: 'admin@ejemplo.com, usuario@ejemplo.com...'
|
||||
invite: Invita
|
||||
email_already_invited: El correo electrónico "{email}" ya fue invitado con anterioridad
|
||||
emails: Correos electrónicos
|
||||
@@ -906,9 +905,23 @@ interfaces:
|
||||
presentation-divider:
|
||||
divider: Separador
|
||||
description: Etiqueta y divide los campos en secciones
|
||||
title_placeholder: Ingresar un título...
|
||||
inline_title: Título seguido por línea
|
||||
inline_title_label: Mostrar título seguido por línea
|
||||
margin_top: Margen superior
|
||||
margin_top_label: Aumentar Margen Superior
|
||||
select-dropdown:
|
||||
description: Seleccione un valor de una lista desplegable
|
||||
choices_placeholder: Agregar una nueva opción
|
||||
allow_other: Permitir otro
|
||||
allow_other_label: Permitir otros valores
|
||||
allow_none: Permitir "Nada"
|
||||
allow_none_label: Permitir "Sin selección"
|
||||
choices_name_placeholder: Ingrese un nombre...
|
||||
choices_value_placeholder: Ingresa un valor...
|
||||
select-multiple-dropdown:
|
||||
select-multiple-dropdown: Lista Desplegable (Múltiple)
|
||||
description: Seleccione múltiples valores de una lista de selección
|
||||
file:
|
||||
file: Archivo
|
||||
description: Seleccionar o subir un archivo
|
||||
@@ -917,14 +930,39 @@ interfaces:
|
||||
description: Seleccionar o subir múltiples archivos
|
||||
input-hash:
|
||||
hash: Hash
|
||||
description: Introduzca un valor para ser cifrado
|
||||
masked: Enmascarado
|
||||
masked_label: Ocultar los valores reales
|
||||
select-icon:
|
||||
icon: Ícono
|
||||
description: Seleccione un ícono de la lista desplegable
|
||||
search_for_icon: Buscar un ícono...
|
||||
file-image:
|
||||
image: Imagen
|
||||
description: Seleccionar o subir una imagen
|
||||
system-interface:
|
||||
interface: Interfaz
|
||||
description: Seleccionar una interfaz existente
|
||||
placeholder: Seleccionar una interfaz...
|
||||
system-interface-options:
|
||||
interface-options: Opciones de Interfaz
|
||||
description: Una ventana modal para seleccionar opciones de una interfaz
|
||||
list-m2m:
|
||||
many-to-many: Muchos a Muchos
|
||||
description: Seleccionar múltiples elementos de unión relacionados
|
||||
select-dropdown-m2o:
|
||||
many-to-one: Muchos a Uno
|
||||
description: Seleccionar un elemento único relacionado
|
||||
display_template: Plantilla de Presentación
|
||||
input-rich-text-md:
|
||||
markdown: Markdown
|
||||
description: Ingresar y previsualizar Markdown
|
||||
customSyntax: Bloques personalizados
|
||||
customSyntax_label: Añadir tipos de sintaxis personalizados
|
||||
customSyntax_add: Añadir sintaxis personalizada
|
||||
box: Bloque / Alineación
|
||||
imageToken: Token de Imagen
|
||||
imageToken_label: Qué token (estático) añadir a las fuentes de la imagen
|
||||
slider:
|
||||
slider: Deslizador
|
||||
description: Seleccionar un número usando un deslizador
|
||||
@@ -943,6 +981,8 @@ interfaces:
|
||||
alphabetize: Alfabetización
|
||||
alphabetize_label: Forzar Orden Alfabético
|
||||
add_tags: Agregar etiquetas...
|
||||
input:
|
||||
mask: Enmascarado
|
||||
boolean:
|
||||
toggle: Alternar
|
||||
label_default: Habilitado
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: Crear Rol
|
||||
create_user: Crear usuario
|
||||
create_webhook: Crear un webhook(conección)
|
||||
invite_users: Invitar usuarios
|
||||
email_examples: 'admin@ejemplo.com, usuario@ejemplo.com...'
|
||||
invite: Invitar
|
||||
email_already_invited: El correo electrónico "{email}" ya ha sido invitado
|
||||
emails: Correos electrónicos
|
||||
@@ -906,9 +905,23 @@ interfaces:
|
||||
presentation-divider:
|
||||
divider: Separador
|
||||
description: Etiqueta y divide los campos en secciones
|
||||
title_placeholder: Ingresar un título...
|
||||
inline_title: Título seguido por línea
|
||||
inline_title_label: Mostrar título seguido por línea
|
||||
margin_top: Margen superior
|
||||
margin_top_label: Aumentar Margen Superior
|
||||
select-dropdown:
|
||||
description: Seleccione un valor de una lista desplegable
|
||||
choices_placeholder: Agregar una nueva opción
|
||||
allow_other: Permitir otro
|
||||
allow_other_label: Permitir otros valores
|
||||
allow_none: Permitir "Nada"
|
||||
allow_none_label: Permitir "Sin selección"
|
||||
choices_name_placeholder: Ingrese un nombre...
|
||||
choices_value_placeholder: Ingrese un valor...
|
||||
select-multiple-dropdown:
|
||||
select-multiple-dropdown: Lista Desplegable (Múltiple)
|
||||
description: Seleccione múltiples valores de una lista de selección
|
||||
file:
|
||||
file: Archivo
|
||||
description: Seleccionar o subir un archivo
|
||||
@@ -917,14 +930,39 @@ interfaces:
|
||||
description: Seleccionar o subir múltiples archivos
|
||||
input-hash:
|
||||
hash: Hash
|
||||
description: Introduzca un valor para ser cifrado
|
||||
masked: Enmascarado
|
||||
masked_label: Ocultar los valores reales
|
||||
select-icon:
|
||||
icon: Icono
|
||||
description: Seleccione un ícono de la lista desplegable
|
||||
search_for_icon: Buscar un ícono...
|
||||
file-image:
|
||||
image: Imagen
|
||||
description: Seleccionar o subir una imagen
|
||||
system-interface:
|
||||
interface: Interfaz
|
||||
description: Seleccionar una interfaz existente
|
||||
placeholder: Seleccionar una interfaz...
|
||||
system-interface-options:
|
||||
interface-options: Opciones de Interfaz
|
||||
description: Una ventana modal para seleccionar opciones de una interfaz
|
||||
list-m2m:
|
||||
many-to-many: Muchos a Muchos
|
||||
description: Seleccionar múltiples elementos de unión relacionados
|
||||
select-dropdown-m2o:
|
||||
many-to-one: Muchos a Uno
|
||||
description: Seleccionar un elemento único relacionado
|
||||
display_template: Plantilla de Presentación
|
||||
input-rich-text-md:
|
||||
markdown: Markdown
|
||||
description: Ingresar y previsualizar Markdown
|
||||
customSyntax: Bloques personalizados
|
||||
customSyntax_label: Añadir tipos de sintaxis personalizados
|
||||
customSyntax_add: Añadir sintaxis personalizada
|
||||
box: Bloque / Alineación
|
||||
imageToken: Token de Imagen
|
||||
imageToken_label: Qué token (estático) añadir a las fuentes de la imagen
|
||||
slider:
|
||||
slider: Deslizador
|
||||
description: Seleccionar un número usando un deslizador
|
||||
@@ -943,6 +981,8 @@ interfaces:
|
||||
alphabetize: Alfabetización
|
||||
alphabetize_label: Forzar Orden Alfabético
|
||||
add_tags: Agregar etiquetas...
|
||||
input:
|
||||
mask: Enmascarado
|
||||
boolean:
|
||||
toggle: Alternar
|
||||
label_default: Habilitado
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: Crear Rol
|
||||
create_user: Crear Usuario
|
||||
create_webhook: Crear Webhook
|
||||
invite_users: Invitar Usuarios
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
invite: Invitar
|
||||
email_already_invited: El correo electrónico "{email}" ya ha sido invitado
|
||||
emails: Correos Electrónicos
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: Loo roll
|
||||
create_user: Loo kasutaja
|
||||
create_webhook: Loo veebikonks
|
||||
invite_users: Kutsu kasutajaid
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
invite: Kutsu
|
||||
email_already_invited: Meilile "{email}" on kutse juba saadetud
|
||||
emails: E-mail
|
||||
@@ -855,7 +854,6 @@ template: Mall
|
||||
translation: Tõlge
|
||||
value: Väärtus
|
||||
view_project: Näita projekti
|
||||
weeks: { }
|
||||
report_error: Raporteeri viga
|
||||
interfaces:
|
||||
presentation-links:
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: Luo rooli
|
||||
create_user: Luo käyttäjä
|
||||
create_webhook: Luo webhook
|
||||
invite_users: Kutsu käyttäjiä
|
||||
email_examples: 'yllapitaja@example.com, kayttaja@example.com...'
|
||||
invite: Kutsu
|
||||
email_already_invited: Sähköposti "{email}" on jo kutsuttu
|
||||
emails: Sähköpostit
|
||||
|
||||
@@ -20,7 +20,7 @@ create_role: Créer un rôle
|
||||
create_user: Créer un utilisateur
|
||||
create_webhook: Créer un webhook
|
||||
invite_users: Inviter des utilisateurs
|
||||
email_examples: 'admin@exemple.com, utilisateur@exemple.com...'
|
||||
email_examples: "admin{'@'}example.com, user{'@'}example.com..."
|
||||
invite: Inviter
|
||||
email_already_invited: '"{email}" a déjà été invité'
|
||||
emails: E-mails
|
||||
|
||||
@@ -20,7 +20,7 @@ create_role: भूमिका बनाएं
|
||||
create_user: यूजर बनाएं
|
||||
create_webhook: Webhook बनाएं
|
||||
invite_users: यूज़र आमंत्रित करें
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
email_examples: "good"
|
||||
invite: आमंत्रित करें
|
||||
email_already_invited: ईमेल "{email}" पहले ही आमंत्रित किया जा चुका है
|
||||
emails: इमेल्स
|
||||
|
||||
@@ -15,7 +15,6 @@ create_role: Szerepkör létrehozása
|
||||
create_user: Felhasználó létrehozása
|
||||
create_webhook: Webhook létrehozása
|
||||
invite_users: Felhasználók meghívása
|
||||
email_examples: 'admin@example.com, felhaszalo@pelda.hu...'
|
||||
invite: Meghívás
|
||||
emails: Emailek
|
||||
connection_excellent: Kiváló kapcsolat
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: Buat Peran
|
||||
create_user: Buat User
|
||||
create_webhook: Buat Webhook
|
||||
invite_users: Undang Pengguna Lain
|
||||
email_examples: 'admin@website.com, user@website.com...'
|
||||
invite: Undang
|
||||
email_already_invited: Email "{email}" sudah diundang
|
||||
emails: Surel
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: Crea ruolo
|
||||
create_user: Crea utente
|
||||
create_webhook: Crea webhook
|
||||
invite_users: Invita utenti
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
invite: Invita
|
||||
email_already_invited: Email "{email}" è già stata invitata
|
||||
emails: Email
|
||||
|
||||
@@ -17,7 +17,6 @@ create_role: Kurti vaidmenį
|
||||
create_user: Sukurti vartotojo paskyrą
|
||||
create_webhook: Sukurti Webhook'ą
|
||||
invite_users: Pakviesti vartotojus
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
invite: Pakviesti
|
||||
emails: El. pašto adresai
|
||||
connection_excellent: Puiki ryšio kokybė
|
||||
|
||||
@@ -20,7 +20,7 @@ create_role: Үүрэг үүсгэх
|
||||
create_user: Хэрэглэгч үүсгэх
|
||||
create_webhook: Webhook үүсгэх
|
||||
invite_users: Хэрэглэгч урих
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
email_examples: "admin{'@'}example.com, user{'@'}example.com..."
|
||||
invite: Урих
|
||||
email_already_invited: '"{email}" имэйл хаягийг өмнө нь урьсан байна'
|
||||
emails: Имэйл
|
||||
@@ -43,6 +43,22 @@ logoutReason:
|
||||
SIGN_OUT: Сайтаас гарсан
|
||||
SESSION_EXPIRED: Холболтын хугацаа дууссан
|
||||
public: Нийтийн
|
||||
public_description: Нэвтэрч ороогүй үед API- ны ямар өгөгдөл авч болохыг удирдана.
|
||||
not_allowed: Зөвшөөрөгдөөгүй
|
||||
directus_version: Directus хувилбар
|
||||
node_version: Node хувилбар
|
||||
node_uptime: Node ажиллаж буй хугацаа
|
||||
os_type: Үйлдлийн системийн төрөл
|
||||
os_version: Үйлдлийн системийн хувилбар
|
||||
os_uptime: Үйлдлийн системийн ажиллаж буй хугацаа
|
||||
os_totalmem: Үйлдлийн системийн санах ой
|
||||
archive: Архивлах
|
||||
archive_confirm: Та энэ мэдээллийг архивлахыг хүсч байна уу?
|
||||
archive_confirm_count: >-
|
||||
Ямар нэг зүйл сонгогдоогүй | Та үүнийг архивлахдаа итгэлтэй байна уу? | Та энэ {count}
|
||||
зүйлсийг архивлахдаа итгэлтэй байна уу?
|
||||
reset_system_permissions_to: 'Системийн зөвшөөрлийг буцааж хэвэнд нь оруулах:'
|
||||
reset_system_permissions_copy: Энэ үйлдлийг хийснээр өмнө нь тохируулсан зөвшөөрлийн тохиргоо дарагдана. Хийх үү?
|
||||
fields:
|
||||
directus_fields:
|
||||
translation: Талбарын нэрний орчуулга
|
||||
|
||||
@@ -11,6 +11,7 @@ add_field: Voeg Veld Toe
|
||||
role_name: Rol Naam
|
||||
db_only_click_to_configure: 'Alleen in de Database: Klik om te configureren '
|
||||
show_archived_items: Toon Gearchiveerde Items
|
||||
edited: Waarde bewerkt
|
||||
required: Vereist
|
||||
required_for_app_access: Vereist voor toegang tot de app
|
||||
requires_value: Vereist waarde
|
||||
@@ -19,8 +20,9 @@ create_role: Maak rol
|
||||
create_user: Gebruiker Aanmaken
|
||||
create_webhook: Webhook Aanmaken
|
||||
invite_users: Gebruikers Uitnodigen
|
||||
email_examples: 'admin@example.nl, gebruiker@example.nl...'
|
||||
email_examples: "admin{'@'}voorbeeld.nl, gebruiker{'@'}voorbeeld.nl..."
|
||||
invite: Nodig uit
|
||||
email_already_invited: E-mailadres "{email}" is al uitgenodigd
|
||||
emails: E-mails
|
||||
connection_excellent: Uitstekende Verbinding
|
||||
connection_good: Goede Verbinding
|
||||
@@ -80,9 +82,12 @@ validationError:
|
||||
nnull: Waarde kan niet "null" zijn
|
||||
required: Waarde is vereist
|
||||
unique: Waarde moet uniek zijn
|
||||
regex: Waarde heeft niet de juiste vorm
|
||||
all_access: Alle toegang
|
||||
no_access: Geen toegang
|
||||
use_custom: Gebruik aangepaste
|
||||
allow_null_value: NULL waarde toestaan
|
||||
enter_value_to_replace_nulls: Voer een nieuwe waarde in om alle NULL's in dit veld te vervangen.
|
||||
field_standard: Standaard
|
||||
field_presentation: Presentatie & Aliasen
|
||||
field_file: Enkel bestand
|
||||
@@ -137,6 +142,7 @@ decimal: Decimaal
|
||||
float: Float
|
||||
integer: Integer
|
||||
json: JSON
|
||||
xml: XML
|
||||
string: String
|
||||
text: Tekst
|
||||
time: Tijd
|
||||
@@ -145,6 +151,11 @@ uuid: UUID
|
||||
hash: Hash
|
||||
not_available_for_type: Niet beschikbaar voor dit type
|
||||
create_translations: Vertalingen aanmaken
|
||||
auto_refresh: Automatische verversen
|
||||
refresh_interval: Verversingsinterval
|
||||
no_refresh: Niet verversen
|
||||
refresh_interval_seconds: Ververs onmiddellijk | Elke seconde | Elke {seconds} seconden
|
||||
refresh_interval_minutes: Elke minuut | Elke {minutes} minuten
|
||||
auto_generate: Genereer automatisch
|
||||
this_will_auto_setup_fields_relations: Dit zal automatisch alle vereiste velden en relaties instellen.
|
||||
click_here: Klik hier
|
||||
@@ -152,7 +163,9 @@ to_manually_setup_translations: om de vertalingen handmatig in te stellen.
|
||||
click_to_manage_translated_fields: >-
|
||||
Er zijn nog geen vertaalde velden. Klik hier om ze aan te maken. | Er is één vertaald veld. Klik hier om het te beheren. | Er zijn {count} vertaalde velden. Klik hier om ze te beheren.
|
||||
fields_group: Veld-Groep
|
||||
no_collections_found: Geen collecties gevonden.
|
||||
new_data_alert: 'Het volgende wordt aangemaakt in uw datamodel:'
|
||||
search_collection: Collectie doorzoeken...
|
||||
new_field: 'Nieuw veld'
|
||||
new_collection: 'Nieuwe collectie'
|
||||
add_m2o_to_collection: 'Many-to-one toevoegen aan "{collection}"'
|
||||
@@ -219,6 +232,7 @@ item_delete_success: Item Verwijderd | Items Verwijderd
|
||||
this_collection: Deze collectie
|
||||
related_collection: Gerelateerde collecties
|
||||
related_collections: Gerelateerde collecties
|
||||
translations_collection: Vertalingscollectie
|
||||
languages_collection: Talen Collectie
|
||||
export_data: Gegevens exporteren
|
||||
format: Format
|
||||
@@ -305,6 +319,10 @@ save_and_create_new: Opslaan en nieuwe aanmaken
|
||||
save_and_stay: Sla op en blijf bewerken
|
||||
save_as_copy: Sla op als een kopie
|
||||
add_existing: Bestaande toevoegen
|
||||
creating_items: Items aanmaken
|
||||
enable_create_button: Aanmaakknop inschakelen
|
||||
selecting_items: Items selecteren
|
||||
enable_select_button: Selecteerknop inschakelen
|
||||
comments: Reacties
|
||||
no_comments: Nog geen reacties
|
||||
click_to_expand: Klik om uit te breiden
|
||||
@@ -319,6 +337,7 @@ interface_not_found: 'Interface "{interface}" niet gevonden.'
|
||||
reset_interface: Interface resetten
|
||||
display_not_found: 'Display "{display}" niet gevonden.'
|
||||
reset_display: Reset Display
|
||||
list-m2a: Bouwer (M2A)
|
||||
item_count: 'Geen items | Één item | {count} items'
|
||||
no_items_copy: Er zijn nog geen items in deze collectie.
|
||||
file_count: 'Geen bestanden | Één Bestand | {count} bestanden'
|
||||
@@ -384,6 +403,9 @@ errors:
|
||||
ITEM_LIMIT_REACHED: Item limiet bereikt
|
||||
ITEM_NOT_FOUND: Item niet gevonden
|
||||
ROUTE_NOT_FOUND: Niet gevonden
|
||||
RECORD_NOT_UNIQUE: Verdubbelde waarde gedetecteerd
|
||||
USER_SUSPENDED: Gebruiker geschorst
|
||||
CONTAINS_NULL_VALUES: Veld bevat NULL waarden
|
||||
UNKNOWN: Onverwachte fout
|
||||
INTERNAL_SERVER_ERROR: Onverwachte fout
|
||||
value_hashed: Waarde veilig opgeslagen
|
||||
@@ -461,6 +483,8 @@ operators:
|
||||
has: Bevat enkele van deze keys
|
||||
loading: Aan het laden...
|
||||
drop_to_upload: Sleep hier om te uploaden
|
||||
item: Item
|
||||
items: Items
|
||||
upload_file: Upload Bestand
|
||||
upload_file_indeterminate: Bestand uploaden...
|
||||
upload_file_success: Bestand geüpload
|
||||
@@ -478,6 +502,8 @@ value_unique: Waarde moet uniek zijn
|
||||
all_activity: Alle activiteiten
|
||||
create_item: Item aanmaken
|
||||
display_template: Weergavesjabloon
|
||||
language_display_template: Taalweergavesjabloon
|
||||
translations_display_template: Vertalingsweergavesjabloon
|
||||
n_items_selected: 'Geen Items Geselecteerd | 1 Item Geselecteerd | {n} Items Geselecteerd'
|
||||
per_page: Per pagina
|
||||
all_files: Alle bestanden
|
||||
@@ -508,8 +534,19 @@ toggle: Schakel
|
||||
icon_on: Icoon aan
|
||||
icon_off: Icoon Uit
|
||||
label: Label
|
||||
image_url: Afbeeldings-url
|
||||
alt_text: Alternatieve tekst
|
||||
media: Media
|
||||
width: Breedte
|
||||
height: Hoogte
|
||||
source: Bron
|
||||
url_placeholder: Voer een URL in...
|
||||
display_text: Weergegeven tekst
|
||||
display_text_placeholder: Enter weergegeven tekst...
|
||||
unlimited: Onbeperkt
|
||||
open_link_in: Open link in
|
||||
new_tab: Nieuw tabblad
|
||||
current_tab: Huidig tabblad
|
||||
wysiwyg_options:
|
||||
aligncenter: Align Center
|
||||
alignjustify: Align Justify
|
||||
@@ -529,7 +566,10 @@ wysiwyg_options:
|
||||
bullist: Opsomming
|
||||
numlist: Genummerde lijst
|
||||
hr: Horizontale lijn
|
||||
link: Link toevoegen/bewerken
|
||||
unlink: Link verwijderen
|
||||
media: Media toevoegen/bewerken
|
||||
image: Afbeelding toevoegen/bewerken
|
||||
copy: Kopieer
|
||||
cut: Knippen
|
||||
paste: Plakken
|
||||
@@ -551,6 +591,7 @@ wysiwyg_options:
|
||||
selectall: Alles selecteren
|
||||
table: Tabel
|
||||
visualaid: Onzichtbare elementen weergeven
|
||||
source_code: Broncode bewerken
|
||||
fullscreen: Volledig scherm
|
||||
directionality: Richting
|
||||
dropdown: Keuzemenu
|
||||
@@ -563,6 +604,8 @@ adding_user: Gebruiker toevoegen
|
||||
unknown_user: Onbekende gebruiker
|
||||
creating_in: 'Item maken in {collection}'
|
||||
editing_in: 'Item bewerken in {collection}'
|
||||
creating_unit: '{unit} aan het aanmaken'
|
||||
editing_unit: '{unit} aan het bewerken'
|
||||
editing_in_batch: '{count} items aan het wijzigen'
|
||||
no_options_available: Geen opties beschikbaar
|
||||
settings_data_model: Data model
|
||||
@@ -570,8 +613,11 @@ settings_permissions: Rollen & Permissies
|
||||
settings_project: Project Instellingen
|
||||
settings_webhooks: Webhooks
|
||||
settings_presets: Voorkeuren & Bladwijzers
|
||||
one_or_more_options_are_missing: Eén of meer opties ontbreken
|
||||
scope: Bereik
|
||||
select: Selecteer...
|
||||
layout: Lay-out
|
||||
tree_view: Boomstructuurweergave
|
||||
changes_are_permanent: Wijzigingen zijn permanent
|
||||
preset_search_placeholder: Zoekterm...
|
||||
editing_preset: Voorkeur aan het Wijzigen
|
||||
@@ -818,7 +864,11 @@ interfaces:
|
||||
presentation-divider:
|
||||
divider: Scheidingslijn
|
||||
select-dropdown:
|
||||
choices_name_placeholder: Voer een naam in...
|
||||
choices_value_placeholder: Voer een waarde in...
|
||||
select-multiple-dropdown:
|
||||
select-multiple-dropdown: Dropdown (meerdere)
|
||||
description: Selecteer meerdere waarden in een dropdown
|
||||
file:
|
||||
file: Bestand
|
||||
description: Selecteer of upload een bestand
|
||||
@@ -827,14 +877,41 @@ interfaces:
|
||||
description: Selecteer of upload meerdere bestanden
|
||||
input-hash:
|
||||
hash: Hash
|
||||
description: Voer een waarde in om te hashen
|
||||
masked: Gemaskeerd
|
||||
masked_label: Verberg de echte waarden
|
||||
select-icon:
|
||||
icon: Icoon
|
||||
description: Selecteer een waarde in een dropdown
|
||||
search_for_icon: Zoek naar een icoon...
|
||||
file-image:
|
||||
image: Afbeelding
|
||||
description: Selecteer of upload een afbeelding
|
||||
system-interface:
|
||||
interface: Interface
|
||||
description: Selecteer een bestaande interface
|
||||
placeholder: Selecteer een interface...
|
||||
system-interface-options:
|
||||
interface-options: Interface-opties
|
||||
description: Een modal voor het selecteren van een interface
|
||||
list-m2m:
|
||||
description: Selecteer meerdere gerelateerde items
|
||||
select-dropdown-m2o:
|
||||
description: Selecteer één gerelateerd item
|
||||
display_template: Weergavesjabloon
|
||||
input-rich-text-md:
|
||||
markdown: Markdown
|
||||
customSyntax: Aangepaste blokken
|
||||
box: Blok / Inline
|
||||
imageToken: Afbeeldingstoken
|
||||
presentation-notice:
|
||||
notice: Melding
|
||||
description: Een korte melding weergeven
|
||||
select-radio:
|
||||
radio-buttons: Keuzerondjes
|
||||
list:
|
||||
repeater: Herhaler
|
||||
edit_fields: Velden bewerken
|
||||
slider:
|
||||
slider: Schuifregelaar
|
||||
description: Selecteer een nummer met een slider
|
||||
@@ -853,8 +930,15 @@ interfaces:
|
||||
alphabetize: Alfabetische volgorde
|
||||
alphabetize_label: Alfabetische volgorde forceren
|
||||
add_tags: Tags toevoegen...
|
||||
input:
|
||||
mask: Gemaskeerd
|
||||
mask_label: Verberg de werkelijke waarde
|
||||
clear_label: Opslaan als lege tekst
|
||||
minimum_value: Minimale waarde
|
||||
maximum_value: Maximale waarde
|
||||
boolean:
|
||||
toggle: Schakel
|
||||
label_placeholder: Voer een label in...
|
||||
label_default: Ingeschakeld
|
||||
translations:
|
||||
display_template: Weergavesjabloon
|
||||
@@ -867,6 +951,11 @@ interfaces:
|
||||
auto: Automatisch
|
||||
dropdown: Keuzemenu
|
||||
modal: Modal
|
||||
input-rich-text-html:
|
||||
wysiwyg: WYSIWYG
|
||||
toolbar: Werkbalk
|
||||
custom_formats: Aangepaste vorm
|
||||
options_override: Overschrijf opties
|
||||
displays:
|
||||
boolean:
|
||||
boolean: Boolean
|
||||
@@ -969,3 +1058,5 @@ layouts:
|
||||
comfortable: Comfortabel
|
||||
compact: Compact
|
||||
cozy: Knus
|
||||
calendar:
|
||||
calendar: Kalender
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: Opprett rolle
|
||||
create_user: Opprett bruker
|
||||
create_webhook: Lag Webhook
|
||||
invite_users: Invitere brukere
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
invite: Inviter
|
||||
emails: E-post
|
||||
connection_excellent: Utmerket tilkobling
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: Stwórz rolę
|
||||
create_user: Utwórz użytkownika
|
||||
create_webhook: Stwórz webhook
|
||||
invite_users: Zaproś użytkowników
|
||||
email_examples: 'admin@example.com, użytkownik@example.com...'
|
||||
invite: Zaproś
|
||||
email_already_invited: E-mail "{email}" został już zaproszony
|
||||
emails: E-maile
|
||||
@@ -855,7 +854,6 @@ template: Szablon
|
||||
translation: Tłumaczenia
|
||||
value: Wartość
|
||||
view_project: Zobacz projekt
|
||||
weeks: { }
|
||||
report_error: Zgłoś błąd
|
||||
interfaces:
|
||||
presentation-links:
|
||||
|
||||
@@ -20,7 +20,7 @@ create_role: Criar Função
|
||||
create_user: Criar usuário
|
||||
create_webhook: Criar Webhook
|
||||
invite_users: Convidar Usuários
|
||||
email_examples: 'admin@example.com, usuário@example.com...'
|
||||
email_examples: "admin{'@'}exemplo.com, usuário{'@'}exemplo.com..."
|
||||
invite: Convidar
|
||||
email_already_invited: Um convite já foi enviado para o email "{email}"
|
||||
emails: Emails
|
||||
@@ -503,6 +503,8 @@ value_unique: O valor deve ser único
|
||||
all_activity: Todas as atividades
|
||||
create_item: Criar item
|
||||
display_template: Modelo de exibição
|
||||
language_display_template: Modelo de Exibição do Idioma
|
||||
translations_display_template: Modelos de Exibição da Aplicação
|
||||
n_items_selected: 'Não há itens selecionados | 1 item selecionado | {n} itens selecionados'
|
||||
per_page: Por página
|
||||
all_files: Todos os arquivos
|
||||
@@ -784,8 +786,12 @@ save_current_datetime: Salvar data/hora atual
|
||||
block: Bloco
|
||||
inline: Em linha
|
||||
comment: Comentário
|
||||
relational_triggers: Gatilhos Relacionais
|
||||
referential_action_field_label_m2o: Ao Excluir de {collection}...
|
||||
referential_action_field_label_o2m: Em Desmarcar {collection}...
|
||||
referential_action_no_action: Evitar a exclusão
|
||||
referential_action_cascade: Excluir o item {collection} (cascade)
|
||||
referential_action_set_default: Definir {field} para o seu valor padrão
|
||||
choose_action: Escolha uma ação
|
||||
continue: Continuar
|
||||
continue_as: >-
|
||||
@@ -996,6 +1002,7 @@ interfaces:
|
||||
add_tags: Adicionar tags...
|
||||
input:
|
||||
input: Entrada
|
||||
description: Digite manualmente um valor
|
||||
trim: Recortar
|
||||
trim_label: Remover espaços do início e fim
|
||||
mask: Mascarado
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: Criar estatuto
|
||||
create_user: Criar utilizador
|
||||
create_webhook: Criar webhook
|
||||
invite_users: Convidar utlizadores
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
invite: Convidar
|
||||
email_already_invited: Este e-mail já foi convidado
|
||||
emails: Emails
|
||||
|
||||
@@ -18,7 +18,6 @@ create_role: Creează Rol
|
||||
create_user: Creează utilizator
|
||||
create_webhook: Creează Webhook
|
||||
invite_users: Invită utilizatori
|
||||
email_examples: 'admin@exemplu.com, utilizator@exemplu.com...'
|
||||
invite: Invită
|
||||
emails: E-mailuri
|
||||
connection_excellent: Conexiune excelentă
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: Создать Роль
|
||||
create_user: Создать Пользователя
|
||||
create_webhook: Создать Веб-хук
|
||||
invite_users: Пригласить Пользователей
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
invite: Пригласить
|
||||
email_already_invited: На адрес "{email}" уже было отправлено приглашение
|
||||
emails: Email-адреса
|
||||
|
||||
@@ -5,6 +5,7 @@ duplicate_field: Dupliraj
|
||||
half_width: Pola širine
|
||||
full_width: Puna širina
|
||||
fill_width: Popunjeno
|
||||
field_name_translations: Prevodi Polja
|
||||
enter_password_to_enable_tfa: Unesite vašu lozinku kako biste uključili dvostruku potvrdu autentičnosti
|
||||
add_field: Dodaj Polje
|
||||
role_name: Naziv uloge
|
||||
@@ -14,9 +15,12 @@ edited: Vrijednost izmijenjena
|
||||
required: Obavezno
|
||||
required_for_app_access: Obavezno za pristup aplikaciji
|
||||
requires_value: Zahtijeva vrijednost
|
||||
create_preset: Napravi Izgled
|
||||
create_role: Napravi ulogu
|
||||
create_user: Napravi korisnika
|
||||
create_webhook: Napravi Webhook
|
||||
invite_users: Pozovi korisnike
|
||||
email_examples: "admin{'@'}primjer.com, user{'@'}primjer.com..."
|
||||
invite: Pozovi
|
||||
email_already_invited: Na ovu "{email}" adresu je već poslat poziv
|
||||
emails: Email adrese
|
||||
@@ -42,6 +46,12 @@ public: Javno
|
||||
public_description: Kontroliše koji podaci sa API su dostupni bez potrebe za provjerom autentičnosti korisnika.
|
||||
not_allowed: Nije dozvoljeno
|
||||
directus_version: Directus verzija
|
||||
node_version: Node Verzija
|
||||
node_uptime: Node Aktivno vrijeme rada
|
||||
os_type: OS tip
|
||||
os_version: OS Verzija
|
||||
os_uptime: OS Aktivno vrijeme rada
|
||||
os_totalmem: OS Memorija
|
||||
archive: Arhiviraj
|
||||
archive_confirm: Da li ste sigurni da želite da arhivirate ovu stavku?
|
||||
archive_confirm_count: >-
|
||||
@@ -75,9 +85,12 @@ validationError:
|
||||
regex: Vrijednost ne sadrži ispravan format
|
||||
all_access: Potpun Pristup
|
||||
no_access: Bez Pristupa
|
||||
use_custom: Koristi Prilagođen
|
||||
nullable: Prazno
|
||||
allow_null_value: Dozvoli NULL vrijednost
|
||||
enter_value_to_replace_nulls: Molimo unesite novu vrijednost kako biste zamijenili sve NULL vrijednosti u sklopu ovog polja.
|
||||
field_standard: Uobičajeno
|
||||
field_presentation: Prezentacija & Pseudonimi
|
||||
field_file: Single File
|
||||
field_files: Multiple Files
|
||||
field_m2o: M2O Relacija
|
||||
@@ -88,8 +101,12 @@ field_translations: Prevodi
|
||||
item_permissions: Dozvole na stavkama
|
||||
field_permissions: Dozvole na Poljima
|
||||
field_validation: Validacija Polja
|
||||
field_presets: Podrazumijevani Izgledi Polja
|
||||
permissions_for_role: 'Sve stavke {role} Role mogu {action}.'
|
||||
fields_for_role: 'Sva polja {role} Role mogu {action}.'
|
||||
validation_for_role: 'Polje {action} upravlja ulogom {role}.'
|
||||
presets_for_role: 'Podrazumijevane vrijednosti polja za ulogu {role}.'
|
||||
presentation_and_aliases: Prezentacija & Pseudonimi
|
||||
revision_post_update: Ovako će ova stavka izgledati nakon ažuriranja...
|
||||
changes_made: Postoje specifične izmjene koji su napravljene...
|
||||
no_relational_data: Zapamtite da ovo ne uključuje relacione podatke.
|
||||
@@ -107,12 +124,15 @@ camera: Kamera
|
||||
exposure: Ekspozicija
|
||||
shutter: Okidač
|
||||
iso: ISO
|
||||
focal_length: Žižna Daljina
|
||||
schema_setup_key: Naziv kolone ovog polja u bazi i API ključ
|
||||
create_field: Kreiraj Polje
|
||||
creating_new_field: 'Novo Polje ({collection})'
|
||||
field_in_collection: '{field} ({collection})'
|
||||
reset_page_preferences: Resetuj Podešavanja Stranice
|
||||
hidden_field: Sakriveno Polje
|
||||
hidden_on_detail: Sakriveno u sekciji Detalji
|
||||
disabled_editing_value: Onemogući izmjenu vrijednosti
|
||||
key: Ključ
|
||||
alias: Alias
|
||||
bigInteger: Big Integer
|
||||
@@ -134,18 +154,24 @@ not_available_for_type: Nije Dostupno za ovaj Tip
|
||||
create_translations: Kreiraj Prevode
|
||||
auto_refresh: Automatsko osvjеžavanjе
|
||||
refresh_interval: Period Osvježavanja
|
||||
no_refresh: Bey osvježavanja
|
||||
refresh_interval_seconds: Trenutno Osvježavanje | Svake Sekunde | Svakih {seconds} Sekundi
|
||||
refresh_interval_minutes: Svake Minute | Svakih {minutes} Minuta
|
||||
auto_generate: Automatsko generisanje
|
||||
this_will_auto_setup_fields_relations: Ovo će automatski podesiti sva obavezna polja i relacije.
|
||||
click_here: Klikni ovdje
|
||||
to_manually_setup_translations: za ručno podešavanje prevoda.
|
||||
click_to_manage_translated_fields: >-
|
||||
Trenutno ne postoje prevedena polja. Kliknite ovdje da ih kreirate. | Postoji jedno prevedeno polje. Kliknite ovdje za uređivanje. | Postoji {count} prevedenih polja. Kliknite ovdje da uređivanje.
|
||||
fields_group: Grupe Polja
|
||||
no_collections_found: Kolekcije nisu pronađene.
|
||||
new_data_alert: 'Sljedeće će biti kreirano u sklopu Modela Podataka:'
|
||||
search_collection: Pretraži Kolekciju...
|
||||
new_field: 'Novo Polje'
|
||||
new_collection: 'Nova Kolekcija'
|
||||
add_m2o_to_collection: 'Dodaj Many-to-One relaciju na "{collection}"'
|
||||
add_o2m_to_collection: 'Dodaj One-to-Many relaciju na "{collection}"'
|
||||
add_m2m_to_collection: 'Dodaj Many-to-Many relaciju na "{collection}"'
|
||||
choose_a_type: Izaberi Tip...
|
||||
determined_by_relationship: Određeno Relacijom
|
||||
add_note: Dodaj korisnu napomenu korisnicima...
|
||||
@@ -153,18 +179,30 @@ default_value: Podrazumijevana Vrijednost
|
||||
standard_field: Standardno Polje
|
||||
single_file: Single File
|
||||
multiple_files: Multiple Files
|
||||
m2o_relationship: Many to One Relacija
|
||||
o2m_relationship: One to Many Relacija
|
||||
m2m_relationship: Many to Many Relacija
|
||||
m2a_relationship: Many to Any Relacija
|
||||
invalid_item: Nevažeća Stavka
|
||||
next: Sljedeća
|
||||
field_name: Naziv Polja
|
||||
translations: Prevodi
|
||||
note: Napomena
|
||||
enter_a_value: Unesi vrijednost...
|
||||
enter_a_placeholder: Unesi rezervni tekst...
|
||||
length: Dužina
|
||||
precision_scale: Preciznost & Skaliranje
|
||||
readonly: Samo za čitanje
|
||||
unique: Jedinstveno
|
||||
updated_on: Ažurirano
|
||||
updated_by: Ažurirano od strane
|
||||
primary_key: Primarni Ključ
|
||||
foreign_key: Strani Ključ
|
||||
finish_setup: Završi podešavanje
|
||||
dismiss: Ignoriši
|
||||
raw_value: Vrijednost
|
||||
edit_raw_value: Izmijeni Vrijednost
|
||||
enter_raw_value: Unesi vrijednost...
|
||||
clear_value: Obriši vrijednost
|
||||
reset_to_default: Vrati na podrazumijevano
|
||||
undo_changes: Poništi izmjene
|
||||
@@ -173,15 +211,19 @@ show_all_activity: Prikaži svu aktivnost
|
||||
page_not_found: Stranica nijе pronađеna
|
||||
page_not_found_body: Stranica koju tražite nije moguće pronaći.
|
||||
confirm_revert: Potvrdi Vraćanje
|
||||
confirm_revert_body: Ova akcija će vratiti stavku na odabrano stanje.
|
||||
display: Prikaz
|
||||
settings_update_success: Podešavanja ažurirana
|
||||
title: Naslov
|
||||
revision_delta_created: Kreiran
|
||||
revision_delta_created_externally: Eksterno Napravljeno
|
||||
revision_delta_updated: 'Ažurirano 1 Polje | Ažuirano {count} Polja'
|
||||
revision_delta_deleted: Obrisano
|
||||
revision_delta_reverted: Vraćeno na staro
|
||||
revision_delta_other: Revizija
|
||||
revision_delta_by: '{date} po {user}'
|
||||
private_user: Privatni Korisnik
|
||||
revision_preview: Pregled Revizija
|
||||
updates_made: Napravljena Ažuriranja
|
||||
leave_comment: Ostavi komentar...
|
||||
post_comment_success: Komentar objavljen
|
||||
@@ -189,7 +231,9 @@ item_create_success: Stavka Kreirana | Stavke Kreirane
|
||||
item_update_success: Stavka Ažurirana | Stavke Ažurirane
|
||||
item_delete_success: Stavka Obrisana | Stavke Obrisane
|
||||
this_collection: Ova Kolekcija
|
||||
related_collection: Povezane Kolekcije
|
||||
related_collections: Povezane Kolekcije
|
||||
translations_collection: Prevod Kolekcije
|
||||
languages_collection: Jezička Kolekcija
|
||||
export_data: Izvoz Podataka
|
||||
format: Format
|
||||
@@ -205,6 +249,7 @@ submit: Pošalji
|
||||
move_to_folder: Prebaci u fasciklu
|
||||
move: Premjesti
|
||||
system: Sistem
|
||||
add_field_related: Dodaj Polje u Povezanu Kolekciju
|
||||
interface: Interfejs
|
||||
today: Danas
|
||||
yesterday: Juče
|
||||
@@ -249,20 +294,28 @@ zoom: Uvеćanjе
|
||||
download: Preuzmi
|
||||
open: Otvori
|
||||
open_in_new_window: Otvori u Novom Prozoru
|
||||
foreground_color: Primarna Boja
|
||||
background_color: Boja Pozadine
|
||||
upload_from_device: Otpremi Fajl sa Uređaja
|
||||
choose_from_library: Odaberi Fajl iz Biblioteke
|
||||
import_from_url: Uvezi Fajl sa URL adrese
|
||||
replace_from_device: Zamijeni Fajl iz Uređaja
|
||||
replace_from_library: Zamijeni Fajl iz Biblioteke
|
||||
replace_from_url: Zamijeni Fajl sa URL-a
|
||||
no_file_selected: Nema odabranih fajlova
|
||||
download_file: Preuzmi Fajl
|
||||
collection_key: Ključ Kolekcije
|
||||
name: Ime
|
||||
primary_key_field: Polje za Primarni Ključ
|
||||
type: Tip
|
||||
creating_new_collection: Kreiranje Nove Kolekcije
|
||||
created_by: Kreirao
|
||||
created_on: Kreirano
|
||||
creating_collection_info: Imenuj kolekciju i podesi polje kao jedinstveni "ključ"...
|
||||
creating_collection_system: Omogući ili preimenuj bilo koji od ponuđenih neobaveznih polja.
|
||||
auto_increment_integer: Povećavajući broj
|
||||
generated_uuid: Kreiran UUID
|
||||
manual_string: Ručno unešen niz znakova
|
||||
save_and_create_new: Sačuvaj i Napravi Novi
|
||||
save_and_stay: Sačuvaj i Ostani
|
||||
save_as_copy: Sačuvaj kao Kopiju
|
||||
@@ -285,12 +338,15 @@ interface_not_found: 'Interfejs "{interface}" nije pronađen.'
|
||||
reset_interface: Resetuj Interfejs
|
||||
display_not_found: 'Prikaz "{display}" nije pronađen.'
|
||||
reset_display: Resetuj Prikaz
|
||||
list-m2a: Kreiranje (M2A)
|
||||
item_count: 'Nema Stavki | Jedna Stavka | {count} stavki'
|
||||
no_items_copy: Trenutno ne postoji nijedna stavka u ovoj kolekciji.
|
||||
file_count: 'Nema Fajlova | Jedan Fajl | {count} Fajlova'
|
||||
no_files_copy: Ovdje nema fajlova.
|
||||
user_count: 'Nema Korisnika | Jedan Korisnik | {count} Korisnika'
|
||||
no_users_copy: Ne postoji nijedan korisnik u ovoj roli.
|
||||
webhooks_count: 'Ne postoje Webhooks | Jedan Webhook | {count} Webhooks'
|
||||
no_webhooks_copy: Trenutno ne postoji nijedan "webhook".
|
||||
all_items: Sve Stavke
|
||||
csv: CSV
|
||||
no_collections: Nema Kolekcija
|
||||
@@ -301,8 +357,10 @@ relationship_not_setup: Relacija nije konfigurisana ispravno
|
||||
display_template_not_setup: Šablon za grafički prikaz nije ispravno konfigurisan
|
||||
collection_field_not_setup: Polje u kolekciji nije ispravno konfigurisano
|
||||
select_a_collection: Izaberi Kolekciju
|
||||
active: Aktivan
|
||||
users: Korisnici
|
||||
activity: Aktivnost
|
||||
webhooks: Webhooks
|
||||
field_width: Širina Polja
|
||||
add_filter: Dodaj Filter
|
||||
upper_limit: Gornja granica...
|
||||
@@ -312,6 +370,7 @@ documentation: Dokumentacija
|
||||
sidebar: Bočna traka
|
||||
duration: Trajanje
|
||||
charset: Set karaktera
|
||||
second: Sekundi
|
||||
file_moved: Fajl je premješten
|
||||
collection_created: Kolekcija Napravljena
|
||||
modified_on: Izmijenjeno
|
||||
@@ -319,6 +378,7 @@ card_size: Veličina Kartice
|
||||
sort_field: Polje za Sortiranje
|
||||
add_sort_field: Dodaj Polje za Sortiranje
|
||||
sort: Sortiranje
|
||||
status: Status
|
||||
toggle_manual_sorting: Uključi Ručno Sortiranje
|
||||
bookmark_doesnt_exist: Oznaka ne postoji
|
||||
bookmark_doesnt_exist_copy: Oznaku koju pokušavate otvoriti nije moguće pronaći.
|
||||
@@ -327,6 +387,7 @@ select_an_item: Odaberi stavku...
|
||||
edit: Izmijeni
|
||||
enabled: Omogućen
|
||||
disable_tfa: Isključi 2FA
|
||||
tfa_scan_code: Skenirajte kod unutar aplikacije za autentikaciju kako biste kompletirali podešavanje 2FA
|
||||
enter_otp_to_disable_tfa: Unesite OTP kako biste isključili 2FA
|
||||
create_account: Napravi Korisnički nalog
|
||||
account_created_successfully: Korisnički nalog je uspješno kreiran
|
||||
@@ -338,6 +399,9 @@ errors:
|
||||
FORBIDDEN: Zabranjeno
|
||||
INVALID_CREDENTIALS: Pogrešno korisničko ime ili lozinka
|
||||
INVALID_OTP: Pogrešna jednokratna lozinka
|
||||
INVALID_PAYLOAD: Neispravan oblik objekta za slanje
|
||||
INVALID_QUERY: Neispravan upit
|
||||
ITEM_LIMIT_REACHED: Ograničenje stavke je dostignuto
|
||||
ITEM_NOT_FOUND: Stavka nije pronađena
|
||||
ROUTE_NOT_FOUND: Nije pronađeno
|
||||
RECORD_NOT_UNIQUE: Detektovana je dupla vrijednost
|
||||
@@ -345,10 +409,12 @@ errors:
|
||||
CONTAINS_NULL_VALUES: Polje sadrži null vrijednosti
|
||||
UNKNOWN: Neočekivana greška
|
||||
INTERNAL_SERVER_ERROR: Neočekivana greška
|
||||
value_hashed: Vrijednost je Sigurno Skladištena
|
||||
bookmark_name: Naziv oznake...
|
||||
create_bookmark: Napravi Oznaku
|
||||
edit_bookmark: Ažuriraj Oznaku
|
||||
bookmarks: Oznake
|
||||
presets: Izgledi
|
||||
unexpected_error: Neočekivana greška
|
||||
unexpected_error_copy: Desila se neočekivana greška. Molimo pokušajte kasnije.
|
||||
copy_details: Kopiraj Detalje
|
||||
@@ -362,6 +428,7 @@ square: Kvadrat
|
||||
free: Slobodan
|
||||
flip_horizontal: Okreni Horizontalno
|
||||
flip_vertical: Okreni Vertikalno
|
||||
aspect_ratio: Omjer
|
||||
rotate: Rotiraj
|
||||
all_users: Svi korisnici
|
||||
delete_collection: Obriši Kolekciju
|
||||
@@ -380,18 +447,22 @@ show_hidden_collections: Prikaži Sakrivene Kolekcije
|
||||
hide_hidden_collections: Sakrij Sakrivene Kolekcije
|
||||
unmanaged_collections: Nekonfigurisane Kolekcije
|
||||
system_collections: Sistemske Kolekcije
|
||||
placeholder: Rezervisano mjesto
|
||||
icon_left: Ikonica Lijevo
|
||||
icon_right: Ikonica Desno
|
||||
count_other_revisions: '{count} Ostalih Revizija'
|
||||
font: Font
|
||||
sans_serif: Sans Serif
|
||||
serif: Serif
|
||||
monospace: Fiksni razmak
|
||||
divider: Djelilac
|
||||
color: Boja
|
||||
circle: Krug
|
||||
empty_item: Prazna Stavka
|
||||
log_in_with: 'Prijavite se sa {provider}'
|
||||
advanced_filter: Napredni Filter
|
||||
delete_advanced_filter: Obriši Filter
|
||||
change_advanced_filter_operator: Izmijeni Operator
|
||||
operators:
|
||||
eq: Jednako
|
||||
neq: Nije jednako
|
||||
@@ -415,7 +486,13 @@ loading: Učitavanje...
|
||||
drop_to_upload: Prenesi za Otpremanje
|
||||
item: Stavka
|
||||
items: Stavke
|
||||
upload_file: Otpremi Fajl
|
||||
upload_file_indeterminate: Otpremanje Fajla...
|
||||
upload_file_success: Fajl Otpremljen
|
||||
upload_files_indeterminate: 'Otpremanje fajlova {done}/{total}'
|
||||
upload_files_success: '{count} Fajlova Otpremljeno'
|
||||
upload_pending: Otpremanje na Čekanju
|
||||
drag_file_here: Prevuci Fajl ovdje
|
||||
click_to_browse: Klikni za Pretraživanje
|
||||
layout_options: Opcije Izgleda
|
||||
rows: Redova
|
||||
@@ -440,38 +517,64 @@ replace_file: Zamijeni Fajl
|
||||
no_results: Nema rezultata
|
||||
no_results_copy: Prilagodi ili obriši filtere pretrage kako biste vidjeli rezultate.
|
||||
clear_filters: Poništi Filtere
|
||||
saves_automatically: Spašeno Automatski
|
||||
role: Uloga
|
||||
user: Korisnik
|
||||
no_presets: Nema Izgleda
|
||||
no_presets_copy: Trenutno ne postoje sačuvane oznake ili podrazumijevani setovi izgleda.
|
||||
no_presets_cta: Dodaj Izgled
|
||||
create: Kreiraj
|
||||
on_create: Na Kreiranje
|
||||
on_update: Na Ažuriranje
|
||||
read: Čitanje
|
||||
update: Ažuriranje
|
||||
select_fields: Odaberi Polja
|
||||
format_text: Formatiraj Tekst
|
||||
bold: Podebljano
|
||||
toggle: Isključi / Uključi
|
||||
icon_on: Ikonica Na
|
||||
icon_off: Bez Ikonice
|
||||
label: Oznaka
|
||||
image_url: Url slike
|
||||
alt_text: Alternativni tekst
|
||||
media: Medij
|
||||
width: Širina
|
||||
height: Visina
|
||||
source: Izvor
|
||||
url_placeholder: Unesi url...
|
||||
display_text: Prikaži tekst
|
||||
display_text_placeholder: Unesi tekst za prikaz...
|
||||
tooltip: Pomoćni prozor
|
||||
tooltip_placeholder: Unesi vrijednost u prozoru za pomoć...
|
||||
unlimited: Neograničeno
|
||||
open_link_in: Otvori vezu u
|
||||
new_tab: Nova kartica
|
||||
current_tab: Trenutna kartica
|
||||
wysiwyg_options:
|
||||
aligncenter: Poravnanje po sredini
|
||||
alignjustify: Blok Poravnanje
|
||||
alignleft: Lijevo poravnanje
|
||||
alignnone: Bez Poravnanja
|
||||
alignright: Desno poravnanje
|
||||
forecolor: Primarna Boja
|
||||
backcolor: Boja Pozadine
|
||||
bold: Podebljano
|
||||
italic: Kurziv
|
||||
underline: Podvučeno
|
||||
strikethrough: Precrtano
|
||||
subscript: Indeks
|
||||
superscript: Natpis
|
||||
codeblock: Kod
|
||||
blockquote: Citat
|
||||
bullist: Tačkasta Lista
|
||||
numlist: Numerisana lista
|
||||
hr: Vodoravno pravilo
|
||||
link: Dodaj/Uredi Vezu
|
||||
unlink: Ukloni link
|
||||
media: Dodaj/Uredi Multimediju
|
||||
image: Dodaj/Uredi Sliku
|
||||
copy: Kopiraj
|
||||
cut: Isjeci
|
||||
paste: Nalijepi
|
||||
heading: Naslov
|
||||
h1: Zaglavlje 1
|
||||
@@ -483,6 +586,7 @@ wysiwyg_options:
|
||||
fontselect: Odaberi Pismo
|
||||
fontsizeselect: Odaberi Veličinu Pisma
|
||||
indent: Uvlačenje
|
||||
outdent: Uvlačenje
|
||||
undo: Poništi
|
||||
redo: Vrati poništeno
|
||||
remove: Ukloni
|
||||
@@ -492,8 +596,10 @@ wysiwyg_options:
|
||||
visualaid: Pregledaj Nevidljive elemente
|
||||
source_code: Uredi Izvorni Kod
|
||||
fullscreen: Pun ekran
|
||||
directionality: Usmjerenost
|
||||
dropdown: Padajuća lista
|
||||
choices: Izbori
|
||||
choices_option_configured_incorrectly: Izbori su nepravilno konfigurisani
|
||||
deselect: Odznači
|
||||
deselect_all: Odznači sve
|
||||
other: Ostalo...
|
||||
@@ -503,120 +609,551 @@ creating_in: 'Kreiranje Stavke u {collection}'
|
||||
editing_in: 'Uređivanje Stavke u {collection}'
|
||||
creating_unit: 'Kreiranje {unit}'
|
||||
editing_unit: 'Uređivanje {unit}'
|
||||
editing_in_batch: 'Grupna izmjena {count} stavki'
|
||||
no_options_available: Nema dostupnih opcija
|
||||
settings_data_model: Model Podataka
|
||||
settings_permissions: Uloge & Dozvole
|
||||
settings_project: Podešavanje Projekta
|
||||
settings_webhooks: Webhooks
|
||||
settings_presets: Izgledi & Oznake
|
||||
one_or_more_options_are_missing: Jedna ili više opcija nedostaje
|
||||
scope: Opseg
|
||||
select: Odaberite...
|
||||
layout: Izgled
|
||||
tree_view: Izgled Stabla
|
||||
changes_are_permanent: Izmjene su trajne
|
||||
preset_name_placeholder: Služi kao podrazumijevana vrijednost kada je prazno...
|
||||
preset_search_placeholder: Upit za pretragu...
|
||||
editing_preset: Izmjena Izgleda
|
||||
layout_preview: Pregled Izgleda
|
||||
layout_setup: Podešavanje Izgleda
|
||||
unsaved_changes: Nesačuvane izmjene
|
||||
unsaved_changes_copy: Da li ste sigurni da želite da napustite ovu stranicu?
|
||||
discard_changes: Poništi Promjene
|
||||
keep_editing: Nastavi uređivanje
|
||||
page_help_collections_overview: '**Pregled Kolekcija** - Lista svih kolekcija kojima imate pristup.'
|
||||
page_help_collections_collection: >-
|
||||
**Pretraga Stavki** — Lista svih {collection} stavki kojima imate pristup. Prilagodite izgled, filtere, i način sortiranja kako odgovara vašim potrebama, pa čak i sačuvajte oznake ovih različitih konfiguracija za brzi pristup.
|
||||
page_help_collections_item: >-
|
||||
**Detalji Stavke** - Forma za pregled i uređivanje ove stavke. Ova bočna traka takođe sadrži kompletnu istoriju svih revizija, i ubačenih komentara.
|
||||
page_help_activity_collection: >-
|
||||
**Pregled Aktivnosti** - Sveobuhvatan popis svih korisničkih sistemskih aktivnosti i sadržaja.
|
||||
page_help_docs_global: >-
|
||||
**Pregled Dokumentacije** — Dokumenta prilagođena isključivo ovoj verziji projekta i šemi.
|
||||
page_help_files_collection: >-
|
||||
**Biblioteka Fajlova** — Lista svih stavki koje su skladištene unutar ovog projekta. Prilagodite izgled, filtere, i način sortiranja kako odgovara vašim potrebama, pa čak sačuvajte i oznake ovih različitih konfiguracija za brzi pristup.
|
||||
page_help_files_item: >-
|
||||
**Detalji Fajla** — Forma za uređivanje metapodataka fajla, izmjena originalnog stanja, i ažuriranje podešavanja pristupa.
|
||||
page_help_settings_project: "**Podešavanje Projekta** — Globalna konfiguraciona podešavanja projekta."
|
||||
page_help_settings_datamodel_collections: >-
|
||||
**Model Podataka: Kolekcije** — Lista svih dostupnih kolekcija. Ovo uključuje vidljive, sakrivene, i sistemske kolekcije, kao i neuređene tabele baze podataka koje mogu biti dodane.
|
||||
page_help_settings_datamodel_fields: >-
|
||||
**Model Podataka: Kolekcija** — Forma za uređivanje ove kolekcije i njenih odgovarajućih polja.
|
||||
page_help_settings_roles_collection: '**Pregled Uloga** — Prikazuje Administratorske, Javne i prilagođene Korisničke Uloge.'
|
||||
page_help_settings_roles_item: "**Detalji Uloge** — Upravljanje dozvolama uloga i druga podešavanja."
|
||||
page_help_settings_presets_collection: >-
|
||||
**Pregled Izgleda** — Lista svih kreiranih setova izgleda u sklopu projekta, uključujući: korisnik, uloga, i globalne oznake, kao i podrazumijevane preglede.
|
||||
page_help_settings_presets_item: >-
|
||||
**Detalji Izgleda** — Forma za upravljanje oznakama i podrazumijevanim setovima izgleda kolekcije.
|
||||
page_help_settings_webhooks_collection: '**Pregled Webhooks** — Lista svih dostupnih "webhooks" u sklopu projekta.'
|
||||
page_help_settings_webhooks_item: '**Detalji Webhook" — Forma za pravljenje i uređivanje "webhooks" u sklopu projekta.'
|
||||
page_help_users_collection: '**Direktorijum Korisnika** — Lista svih sistemskih korisnika u sklopu projekta.'
|
||||
page_help_users_item: >-
|
||||
**Detalji Korisnika** — Upravljajte informacijama vašeg korisničkog računa, ili pregledajte detalje ostalih korisnika.
|
||||
activity_feed: Pregled Aktivnosti
|
||||
add_new: Dodaj Novi
|
||||
create_new: Kreiraj Novi
|
||||
all: Svi
|
||||
none: Nijedan
|
||||
no_layout_collection_selected_yet: Nema još odabranog izgleda/kolekcije
|
||||
batch_delete_confirm: >-
|
||||
Ne postoje stavke koje su selektovane | Da li ste sigurni da želite da obrišete ovu stavku? Ova akcija je trajna i ne može biti poništena. | Da li ste sigurni da želite da obrišete ove {count} stavke? Ova akcija je trajna i ne može biti poništena.
|
||||
cancel: Odustani
|
||||
collection: Kolekcija
|
||||
collections: Kolekcije
|
||||
singleton: Singleton
|
||||
singleton_label: Tretiraj kao jedinstven objekat
|
||||
system_fields_locked: Sistemska polja su zaključana i ne mogu se uređivati
|
||||
fields:
|
||||
directus_activity:
|
||||
item: Primarni Ključ Stavke
|
||||
action: Akcija
|
||||
collection: Kolekcija
|
||||
timestamp: Akcija Na
|
||||
user: Akcija Od
|
||||
comment: Komentar
|
||||
user_agent: Korisnički Agent
|
||||
ip: IP adresa
|
||||
revisions: Revizije
|
||||
directus_collections:
|
||||
collection: Kolekcija
|
||||
icon: Ikonica
|
||||
note: Napomena
|
||||
display_template: Šablon za Prikaz
|
||||
hidden: Sakriveno
|
||||
singleton: Singleton
|
||||
translations: Prevodi Imena Kolekcije
|
||||
archive_app_filter: Filter za Arhivu
|
||||
archive_value: Arhiviraj Vrijednost
|
||||
unarchive_value: Poništi arhiviranje vrijednosti
|
||||
sort_field: Polje za Sortiranje
|
||||
accountability: Aktivnost & Praćenje Revizija
|
||||
directus_files:
|
||||
$thumbnail: Sličica
|
||||
title: Naslov
|
||||
description: Opis
|
||||
tags: Tagovi
|
||||
location: Lokacija
|
||||
storage: Skladište
|
||||
filename_disk: Ime Fajla (Disk)
|
||||
filename_download: Ime Fajla (Za preuzimanje)
|
||||
metadata: Meta podaci
|
||||
type: Mime Tip
|
||||
filesize: Veličina
|
||||
modified_by: Izmijenjeno Od
|
||||
modified_on: Izmijenjeno
|
||||
created_on: Kreirano
|
||||
created_by: Kreirao
|
||||
embed: Ugradi
|
||||
uploaded_by: Otpremljeno Od
|
||||
folder: Fascikla
|
||||
width: Širina
|
||||
uploaded_on: Otpremljeno
|
||||
height: Visina
|
||||
charset: Set karaktera
|
||||
duration: Trajanje
|
||||
directus_users:
|
||||
first_name: Ime
|
||||
last_name: Prezime
|
||||
email: Email adresa
|
||||
password: Lozinka
|
||||
avatar: Avatar
|
||||
location: Lokacija
|
||||
title: Naslov
|
||||
description: Opis
|
||||
tags: Tagovi
|
||||
language: Jezik
|
||||
theme: Tema
|
||||
tfa_secret: Dvostruka potvrda Autentičnosti
|
||||
status: Status
|
||||
role: Uloga
|
||||
token: Token
|
||||
last_page: Posljednja Stranica
|
||||
last_access: Posljednji Pristup
|
||||
directus_settings:
|
||||
project_name: Ime Projekta
|
||||
project_url: URL projekta
|
||||
project_color: Boja Projekta
|
||||
project_logo: Logotip Projekta
|
||||
public_foreground: Javna Pozadina
|
||||
public_background: Javna Pozadina
|
||||
public_note: Opis Projekta
|
||||
auth_password_policy: Polisa Lozinke za autentikaciju
|
||||
auth_login_attempts: Broj pokušaja prijave
|
||||
storage_asset_presets: Izgled prostora za skladištenje
|
||||
storage_asset_transform: Transformacija sredstava za skladištenje
|
||||
custom_css: Prilagođeni CSS
|
||||
directus_fields:
|
||||
collection: Ime Kolekcije
|
||||
icon: Ikonica Kolekcije
|
||||
note: Napomena
|
||||
hidden: Sakriveno
|
||||
singleton: Singleton
|
||||
translation: Prevodi Polja
|
||||
display_template: Šablon
|
||||
directus_roles:
|
||||
name: Naziv uloge
|
||||
icon: Ikonica Uloge
|
||||
description: Opis
|
||||
app_access: Potpun Pristup aplikaciji
|
||||
admin_access: Administratorski pristup
|
||||
ip_access: IP pristup
|
||||
enforce_tfa: Traži 2FA
|
||||
users: Svi korisnici ove Uloge
|
||||
module_list: Navigacija Modula
|
||||
collection_list: Navigacija Kolekcije
|
||||
field_options:
|
||||
directus_collections:
|
||||
track_activity_revisions: Prati Aktivnost & Revizije
|
||||
only_track_activity: Samo Prati Aktivnost
|
||||
do_not_track_anything: Bez praćenja
|
||||
no_fields_in_collection: 'Trenutno ne postoji nijedno polje u "{collection}" kolekciji'
|
||||
do_nothing: Ne radi ništa
|
||||
generate_and_save_uuid: Generiši i Sačuvaj UUID
|
||||
save_current_user_id: Sačuvaj ID vrijednost Trenutnog korisnika
|
||||
save_current_user_role: Sačuvaj Trenutnu Korisničku Ulogu
|
||||
save_current_datetime: Sačuvaj Trenutni Datum/Vrijeme
|
||||
block: Blok
|
||||
inline: Linijski
|
||||
comment: Komentar
|
||||
relational_triggers: Relacioni Okidači
|
||||
referential_action_field_label_m2o: Kod Brisanja {collection}...
|
||||
referential_action_field_label_o2m: Kod Poništenog odabira {collection}...
|
||||
referential_action_no_action: Zaustavi brisanje
|
||||
referential_action_cascade: Obriši {collection} stavku (kaskadno)
|
||||
referential_action_set_null: Poništi vrijednost {field} polja
|
||||
referential_action_set_default: Postavi {field} na njegovu podrazumijevanu vrijednost
|
||||
choose_action: Izaberi Radnju
|
||||
continue: Nastavi
|
||||
continue_as: >-
|
||||
<b>{name}</b> je trenutno autorizovan. Ukoliko prepoznajete ovaj korisnički račun, pritisnite nastavi.
|
||||
editing_role: '{role} Uloga'
|
||||
creating_webhook: Kreiranje Webhook-a
|
||||
default: Podrazumijevano
|
||||
delete: Obriši
|
||||
delete_are_you_sure: >-
|
||||
Ova akcija je trajna i ne može biti poništena. Da li ste sigurni da želite da nastavite?
|
||||
delete_field_are_you_sure: >-
|
||||
Da li ste sigurni da želite da obrišete polje "{field}"? Ova operacija ne može biti poništena.
|
||||
description: Opis
|
||||
done: Urađeno
|
||||
duplicate: Dupliraj
|
||||
email: Email adresa
|
||||
embed: Ugradi
|
||||
fallback_icon: IkonicaPrethodnog stanja
|
||||
field: Polje | Polja
|
||||
file: Fajl
|
||||
file_library: Biblioteka Fajlova
|
||||
forgot_password: Zaboravljena lozinka
|
||||
hidden: Sakriveno
|
||||
icon: Ikonica
|
||||
info: Informacija
|
||||
normal: Normalno
|
||||
success: Uspješno
|
||||
warning: Upozorenje
|
||||
danger: Opasnost
|
||||
junction_collection: Kolekcija spajanja
|
||||
latency: Latencija
|
||||
login: Prijavi se
|
||||
my_activity: Moja Aktivnost
|
||||
not_authenticated: Nije Autorizovan
|
||||
authenticated: Autorizovan
|
||||
options: Opcije
|
||||
otp: Kratkoročna Lozinka
|
||||
password: Lozinka
|
||||
permissions: Dozvole
|
||||
relationship: Relacija
|
||||
reset: Resetuj
|
||||
reset_password: Reset Lozinke
|
||||
revisions: Revizije
|
||||
revert: Vrati
|
||||
save: Sačuvaj
|
||||
schema: Šema
|
||||
search: Pretraga
|
||||
select_existing: Izaberite postojeće
|
||||
select_field_type: Odaberi tip polja
|
||||
select_interface: Odaberi Interfejs
|
||||
settings: Podešavanja
|
||||
sign_in: Prijavite se
|
||||
sign_out: Odjavite se
|
||||
sign_out_confirm: Da li ste sigurni da želite da se odjavite?
|
||||
something_went_wrong: Došlo je do greške.
|
||||
sort_direction: Smjer sortiranja
|
||||
sort_asc: Opadajuće sortiranje
|
||||
sort_desc: Rastuće sortiranje
|
||||
template: Šablon
|
||||
translation: Prevodi
|
||||
value: Vrijednost
|
||||
view_project: Pregledaj Projekat
|
||||
weeks: { }
|
||||
report_error: Prijavi Grešku
|
||||
interfaces:
|
||||
presentation-links:
|
||||
presentation-links: Linkovi dugmeta
|
||||
links: Linkovi
|
||||
description: Podesivi linkovi za otvaranje dinamičkih URL-ova
|
||||
style: Stil
|
||||
primary: Primarni
|
||||
link: Linkovi
|
||||
button: Dugmad
|
||||
error: Radnja se ne može izvršiti
|
||||
select-multiple-checkbox:
|
||||
checkboxes: Potvrdni okviri
|
||||
description: Odaberi između više opcija uz okvire za potvrdu
|
||||
allow_other: Omogući Druge
|
||||
show_more: 'Prikaži {count} više'
|
||||
items_shown: Stavki Prikazano
|
||||
input-code:
|
||||
code: Kod
|
||||
description: Napiši ili podijeli isječke koda
|
||||
line_number: Broj Linije
|
||||
placeholder: Unesite kod ovde...
|
||||
system-collection:
|
||||
collection: Kolekcija
|
||||
description: Odaberi između postojećih kolekcija
|
||||
include_system_collections: Uključi Sistemske Kolekcije
|
||||
system-collections:
|
||||
collections: Kolekcije
|
||||
description: Odaberi između postojećih kolekcija
|
||||
include_system_collections: Uključi Sistemske Kolekcije
|
||||
select-color:
|
||||
color: Boja
|
||||
description: Unesi ili odaberi vrijednost boje
|
||||
placeholder: Izaberi boju...
|
||||
preset_colors: Boje Izgleda
|
||||
preset_colors_add_label: Dodaj novu boju...
|
||||
name_placeholder: Unesite ime boje...
|
||||
datetime:
|
||||
datetime: Datum i vrijeme
|
||||
description: Unesi datume i vremena
|
||||
include_seconds: Uključujući Sekunde
|
||||
set_to_now: Postavi na Sadašnji
|
||||
use_24: Koristi 24-časovni Format
|
||||
system-display-template:
|
||||
display-template: Šablon za Prikaz
|
||||
description: Miješanje statičnih tekstualnih i dinamičkih vrijednosti polja
|
||||
collection_field: Polje Kolekcije
|
||||
collection_field_not_setup: Polje u kolekciji nije ispravno konfigurisano
|
||||
select_a_collection: Izaberi Kolekciju
|
||||
presentation-divider:
|
||||
divider: Djelilac
|
||||
description: Označi i podijeli polja u sekcije
|
||||
title_placeholder: Unesi naslov...
|
||||
inline_title: Linijski Naslov
|
||||
inline_title_label: Prikaži naslov u liniji
|
||||
margin_top: Gornja Margina
|
||||
margin_top_label: Povećaj Gornju Marginu
|
||||
select-dropdown:
|
||||
description: Odaberi vrijednost iz padajuće liste
|
||||
choices_placeholder: Dodaj novi odabir
|
||||
allow_other: Omogući Druge
|
||||
allow_other_label: Dozvoli Ostale Vrijednosti
|
||||
allow_none: Ne dozvoli
|
||||
allow_none_label: Dozvoli Bez Odabira
|
||||
choices_name_placeholder: Unesi ime...
|
||||
choices_value_placeholder: Unesi vrijednost...
|
||||
select-multiple-dropdown:
|
||||
select-multiple-dropdown: Padajuća lista (Više opcija)
|
||||
description: Odaberi više od jedne vrijednosti iz padajuće liste
|
||||
file:
|
||||
file: Fajl
|
||||
description: Odaberi ili otpremi fajl
|
||||
files:
|
||||
files: Fajlovi
|
||||
description: Odaberi ili otpremi više fajlova
|
||||
input-hash:
|
||||
hash: Hash
|
||||
description: Unesi vrijednost koja će biti sigurno skladištena
|
||||
masked: Maskirano
|
||||
masked_label: Sakrij "true" vrijednosti
|
||||
select-icon:
|
||||
icon: Ikonica
|
||||
description: Odaberi ikonicu iz padajuće liste
|
||||
search_for_icon: Traži ikonicu...
|
||||
file-image:
|
||||
image: Slika
|
||||
description: Odaberi ili otpremi sliku
|
||||
system-interface:
|
||||
interface: Interfejs
|
||||
description: Odaberi postojeći interfejs
|
||||
placeholder: Odaberi Interfejs...
|
||||
system-interface-options:
|
||||
interface-options: Opcije Interfejsa
|
||||
description: Modalni prozor za odabir opcija interfejsa
|
||||
list-m2m:
|
||||
many-to-many: Many to Many
|
||||
description: Odaberi više povezanih stavki
|
||||
select-dropdown-m2o:
|
||||
many-to-one: Many to One
|
||||
description: Odaberi samo jednu povezanu stavku
|
||||
display_template: Šablon za Prikaz
|
||||
input-rich-text-md:
|
||||
markdown: Smanjenje
|
||||
description: Unesi i pregledaj opcije smanjenja
|
||||
customSyntax: Prilagođeni Blokovi
|
||||
customSyntax_label: Dodaj prilagođene tipove sintakse
|
||||
customSyntax_add: Dodaj prilagođenu sintaksu
|
||||
box: Blok / Linijski
|
||||
imageToken: Token Fotografije
|
||||
imageToken_label: Koji (statični) token prikačiti na izvore slika
|
||||
presentation-notice:
|
||||
notice: Napomеna
|
||||
description: Prikaži kratku napomenu
|
||||
text: Unesi sadržaj napomene ovde...
|
||||
list-o2m:
|
||||
one-to-many: One to Many
|
||||
description: Odaberi više povezanih stavki
|
||||
no_collection: Kolekciju nije moguće pronaći
|
||||
select-radio:
|
||||
radio-buttons: Radio dugmići
|
||||
description: Odaberi jednu od više ponuđenih opcija
|
||||
list:
|
||||
repeater: Ponavljanje
|
||||
description: Napravi više upisa od postojeće strukture
|
||||
edit_fields: Izmijeni Polja
|
||||
add_label: '"Napravi Novi" Labela'
|
||||
field_name_placeholder: Unesi ime polja...
|
||||
field_note_placeholder: Unesi napomenu polja...
|
||||
slider:
|
||||
slider: Slajder
|
||||
description: Odaberi broj uz pomoć slajdera
|
||||
always_show_value: Uvijek prikaži vrijednost
|
||||
tags:
|
||||
tags: Tagovi
|
||||
description: Odaberi ili dodaj tagove
|
||||
whitespace: Razmak
|
||||
hyphen: Zamijeni sa crticom
|
||||
underscore: Zamijeni sa podrctanom linijom
|
||||
remove: Ukloni razmak
|
||||
capitalization: Uvećanje
|
||||
uppercase: Konvertuj velika slova
|
||||
lowercase: Konvertuj mala slova
|
||||
auto_formatter: Koristi automatski format naslova
|
||||
alphabetize: Po abecedi
|
||||
alphabetize_label: Abecedni red
|
||||
add_tags: Dodaj tagove...
|
||||
input:
|
||||
input: Unos
|
||||
description: Ručno unesite vrijednost
|
||||
trim: Odsjecanje
|
||||
trim_label: Odsjecanje sa početka i kraja
|
||||
mask: Maskirano
|
||||
mask_label: Sakrij pravu vrijednost
|
||||
clear: Poništena Vrijednost
|
||||
clear_label: Sačuvaj kao praznu sekvencu karaktera
|
||||
minimum_value: Minimalna Vrijednost
|
||||
maximum_value: Maksimalna Vrijednost
|
||||
step_interval: Interval
|
||||
slug: Slugify
|
||||
slug_label: Omogući unijetu vrijednost sigurnu u sklopu URL
|
||||
input-multiline:
|
||||
textarea: Polje Teksta
|
||||
description: Unesi višelinijski čisti-tekst
|
||||
boolean:
|
||||
toggle: Isključi / Uključi
|
||||
description: Prebaci između uključeno i isključeno
|
||||
label_placeholder: Unesi ime...
|
||||
label_default: Omogućen
|
||||
translations:
|
||||
display_template: Šablon za Prikaz
|
||||
no_collection: Nema Kolekcije
|
||||
list-o2m-tree-view:
|
||||
description: Prikaz Stabla za ugnježđene rekurzivne one-to-many stavke
|
||||
recursive_only: Interfejs u prikazu stabla radi samo u slučajevima rekurzivnih relacija.
|
||||
user:
|
||||
user: Korisnik
|
||||
description: Odaberi postojećeg directus korisnika
|
||||
select_mode: Način Odabira
|
||||
modes:
|
||||
auto: Automatski
|
||||
dropdown: Padajuća lista
|
||||
modal: Modalni
|
||||
input-rich-text-html:
|
||||
wysiwyg: WYSIWYG
|
||||
description: Uređivač teksta koji piše HTML sadržaj
|
||||
toolbar: Traka sa alatkama
|
||||
custom_formats: Prilagođeni Formati
|
||||
options_override: Opcije Prepisivanja
|
||||
input-autocomplete-api:
|
||||
input-autocomplete-api: Autokompletirani Ulaz (API)
|
||||
description: Tip pretrage za spoljašne API vrijednosti.
|
||||
results_path: Putanja Rezultata
|
||||
value_path: Putanja Vrijednosti
|
||||
trigger: Okidač
|
||||
rate: Ocjena
|
||||
displays:
|
||||
boolean:
|
||||
boolean: Boolean
|
||||
description: Prikaži uključena i isključena stanja
|
||||
label_on: Oznaka Uključeno
|
||||
label_on_placeholder: Unesi oznaku za uključeno...
|
||||
label_off: Oznaka Isključeno
|
||||
label_off_placeholder: Unesi oznaku za isključeno...
|
||||
icon_on: Ikonica Na
|
||||
icon_off: Bez Ikonice
|
||||
color_on: Boja Uključena
|
||||
color_off: Boja Isključena
|
||||
collection:
|
||||
collection: Kolekcija
|
||||
description: Prikaži kolekciju
|
||||
icon_label: Prikaži ikonicu kolekcije
|
||||
color:
|
||||
color: Boja
|
||||
description: Prikaži obojenu tačku
|
||||
default_color: Podrazumijevana Boja
|
||||
datetime:
|
||||
datetime: Datum i vrijeme
|
||||
description: Prikaži vrijednosti povezane sa vremenom
|
||||
format: Format
|
||||
format_note: >-
|
||||
Prilagođeni format prihvata __[Date Field Symbol Table](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table)__
|
||||
long: Dugo
|
||||
short: Kratko
|
||||
relative: Relativno
|
||||
relative_label: 'Prikaži relativno vrijeme, primjer: prije 5 minuta'
|
||||
file:
|
||||
file: Fajl
|
||||
description: Prikaži fajlove
|
||||
filesize:
|
||||
filesize: Veličina Fajla
|
||||
description: Prikaži veličinu fajla
|
||||
formatted-value:
|
||||
formatted-value: Formatirana Vrijednost
|
||||
description: Prikaži formatiranu verziju teksta
|
||||
format_title: Formatiraj Naslov
|
||||
format_title_label: Automatsko formatiranje naslova
|
||||
bold_label: Koristi podebljan stil
|
||||
formatted-json-value:
|
||||
formatted-json-value: Formatirana JSON vrijednost
|
||||
description: Prikaži formatiranu verziju objekta
|
||||
icon:
|
||||
icon: Ikonica
|
||||
description: Prikaži ikonicu
|
||||
filled: Popunjeno
|
||||
filled_label: Koristi popunjenu varijantu
|
||||
image:
|
||||
image: Slika
|
||||
description: Prikaži umanjeni pregled slike
|
||||
circle: Krug
|
||||
circle_label: Prikaži kao krug
|
||||
labels:
|
||||
labels: Oznake
|
||||
description: Prikaži jednu ili listu oznaka
|
||||
default_foreground: Podrazumijevana Početna pozadina
|
||||
default_background: Podrazumijevana Pozadina
|
||||
format_label: Formatiraj svaku oznaku
|
||||
show_as_dot: Prikaži kao Tačku
|
||||
choices_value_placeholder: Unesi vrijednost...
|
||||
choices_text_placeholder: Unesi tekst...
|
||||
mime-type:
|
||||
mime-type: MIME Tip
|
||||
description: Prikaži MIME-Tip fajla
|
||||
extension_only: Samo Nastavak
|
||||
extension_only_label: Samo prikaži nastavak fajla
|
||||
rating:
|
||||
rating: Ocjena
|
||||
description: Prikaži brojeve vizuelno u stilu zvjezdica relativno maksimalnoj vrijednosti
|
||||
simple: Jednostavan
|
||||
simple_label: Prikaži zvjezdice u jednostavnom formatu
|
||||
raw:
|
||||
raw: Vrijednost
|
||||
related-values:
|
||||
related-values: Povezane Vrijednosti
|
||||
description: Prikaži povezane vrijednosti
|
||||
user:
|
||||
user: Korisnik
|
||||
description: Prikaži directus korisnika
|
||||
avatar: Avatar
|
||||
name: Ime
|
||||
both: Oba
|
||||
circle_label: Prikaži korisnika u obliku kruga
|
||||
layouts:
|
||||
cards:
|
||||
cards: Kartice
|
||||
image_source: Izvor Slike
|
||||
image_fit: Uklapanje Slike
|
||||
crop: Isjecanje
|
||||
contain: Sadržano
|
||||
title: Naslov
|
||||
subtitle: Pod naslov
|
||||
tabular:
|
||||
tabular: Tabela
|
||||
fields: Polja
|
||||
spacing: Razmak
|
||||
comfortable: Udobno
|
||||
compact: Kompaktno
|
||||
cozy: Prijatno
|
||||
calendar:
|
||||
calendar: Kalendar
|
||||
start_date_field: Polje Početnog Datuma
|
||||
end_date_field: Polje Završnog Datuma
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: Skapa roll
|
||||
create_user: Skapa användare
|
||||
create_webhook: Skapa webhook
|
||||
invite_users: Bjud in användare
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
invite: Bjud in
|
||||
email_already_invited: E-postadressen "{email}" har redan blivit inbjuden
|
||||
emails: E-postadresser
|
||||
|
||||
@@ -19,7 +19,6 @@ create_role: สร้างบทบาท
|
||||
create_user: สร้างผู้ใช้งาน
|
||||
create_webhook: สร้างเว็บฮุก
|
||||
invite_users: เชิญชวนผู้ใช้งาน
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
invite: เชิญชวน
|
||||
emails: อีเมล
|
||||
connection_excellent: สัญญาณดีมาก
|
||||
|
||||
@@ -20,7 +20,6 @@ create_role: Rol Oluştur
|
||||
create_user: Kullanıcı Oluştur
|
||||
create_webhook: Webhook Oluşturun
|
||||
invite_users: Kullanıcıları Davet Et
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
invite: Davet et
|
||||
email_already_invited: '"{email}" bu e-posta zaten davet edildi'
|
||||
emails: E-postalar
|
||||
|
||||
@@ -19,7 +19,6 @@ create_role: Tạo vai trò (phân quyền)
|
||||
create_user: Tạo Người dùng
|
||||
create_webhook: Tạo Webhook
|
||||
invite_users: Mời Người dùng
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
invite: Mời
|
||||
emails: Email
|
||||
connection_excellent: Kết nối Tuyệt vời
|
||||
|
||||
@@ -18,7 +18,6 @@ create_role: 创建角色
|
||||
create_user: 创建用户
|
||||
create_webhook: 创建Web钩子
|
||||
invite_users: 邀请用户
|
||||
email_examples: 'admin@example.com, user@example.com...'
|
||||
invite: 邀请
|
||||
emails: 邮箱
|
||||
connection_excellent: 优秀的连接状态
|
||||
|
||||
@@ -21,10 +21,12 @@ export async function registerLayouts(app: App): Promise<void> {
|
||||
const result = await import(/* @vite-ignore */ `${getRootPath()}extensions/layouts/${layoutName}/index.js`);
|
||||
layouts.push(result.default);
|
||||
} catch (err) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(`Couldn't load custom layout "${layoutName}":`, err);
|
||||
}
|
||||
});
|
||||
} catch {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(`Couldn't load custom layouts`);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* eslint-disable no-console */
|
||||
|
||||
import { createPinia } from 'pinia';
|
||||
import { createApp } from 'vue';
|
||||
import { version } from '../package.json';
|
||||
|
||||
@@ -455,7 +455,7 @@ export default defineComponent({
|
||||
data: batchPrimaryKeys,
|
||||
});
|
||||
|
||||
await layoutState.refresh();
|
||||
await layoutState.value?.refresh?.();
|
||||
|
||||
selection.value = [];
|
||||
confirmDelete.value = false;
|
||||
@@ -482,7 +482,7 @@ export default defineComponent({
|
||||
confirmArchive.value = false;
|
||||
selection.value = [];
|
||||
|
||||
await layoutState.refresh();
|
||||
await layoutState.value?.refresh?.();
|
||||
} catch (err) {
|
||||
error.value = err;
|
||||
} finally {
|
||||
|
||||
@@ -26,8 +26,11 @@ const md = new MarkdownIt({
|
||||
if (lang && hljs.getLanguage(lang)) {
|
||||
try {
|
||||
return hljs.highlight(str, { language: lang }).value;
|
||||
} catch {
|
||||
} catch (err) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn('There was an error highlighting in Markdown');
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(err);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,7 +102,8 @@ export default defineComponent({
|
||||
|
||||
pageClass.value = attributes?.pageClass;
|
||||
|
||||
const htmlString = md.render(markdown);
|
||||
// Un-escape zero-width characters to allow breaking up character sequences automatically replaced by vite
|
||||
const htmlString = md.render(markdown).replaceAll('\\u200b', '\u200b');
|
||||
|
||||
html.value = htmlString;
|
||||
|
||||
|
||||
@@ -26,10 +26,12 @@ export async function loadModules(): Promise<void> {
|
||||
|
||||
modules.push(result.default);
|
||||
} catch (err) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(`Couldn't load custom module "${moduleName}":`, err);
|
||||
}
|
||||
});
|
||||
} catch {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(`Couldn't load custom modules`);
|
||||
}
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ export default defineComponent({
|
||||
|
||||
### Project details
|
||||
Directus Version: ${parsedInfo.value?.directus.version}
|
||||
Environment: ${import.meta.env.DEV}
|
||||
Environment: ${import.meta.env.MODE}
|
||||
OS: ${parsedInfo.value?.os.type} ${parsedInfo.value?.os.version}
|
||||
Node: ${parsedInfo.value?.node.version}
|
||||
`;
|
||||
|
||||
@@ -15,6 +15,7 @@ export function unexpectedError(error: Error | RequestError | APIError): void {
|
||||
|
||||
const message = (error as RequestError).response?.data?.errors?.[0]?.message || error.message || undefined;
|
||||
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(error);
|
||||
|
||||
store.add({
|
||||
|
||||
@@ -47,7 +47,7 @@ export default defineComponent({
|
||||
|
||||
### Project details
|
||||
Directus Version: ${parsedInfo.value?.directus.version}
|
||||
Environment: ${import.meta.env.DEV}
|
||||
Environment: ${import.meta.env.MODE}
|
||||
OS: ${parsedInfo.value?.os.type} ${parsedInfo.value?.os.version}
|
||||
Node: ${parsedInfo.value?.node.version}
|
||||
|
||||
|
||||
46
changelog.md
46
changelog.md
@@ -2,6 +2,52 @@
|
||||
|
||||
_Changes marked with a :warning: contain potential breaking changes depending on your use of the package._
|
||||
|
||||
## v9.0.0-rc.76 (June 14, 2021)
|
||||
|
||||
### :sparkles: New Features
|
||||
|
||||
- **API**
|
||||
- [#6221](https://github.com/directus/directus/pull/6221) Add support for date distance adjustment in `$NOW` filter variable ([@rijkvanzanten](https://github.com/rijkvanzanten))
|
||||
- [#6216](https://github.com/directus/directus/pull/6216) Added support for nodemailer ignoreTLS option ([@nichols-green](https://github.com/nichols-green))
|
||||
|
||||
### :rocket: Improvements
|
||||
|
||||
- **API**
|
||||
- [#6211](https://github.com/directus/directus/pull/6211) Optimized oracle schema overview query ([@aidenfoxx](https://github.com/aidenfoxx))
|
||||
|
||||
### :bug: Bug Fixes
|
||||
|
||||
- **API**
|
||||
- [#6267](https://github.com/directus/directus/pull/6267) Fix issue that would cause emails to be displayed incorrectly in certain email clients ([@rijkvanzanten](https://github.com/rijkvanzanten))
|
||||
- [#6225](https://github.com/directus/directus/pull/6225) Fix Oracle env error ([@aidenfoxx](https://github.com/aidenfoxx))
|
||||
- [#6208](https://github.com/directus/directus/pull/6208) Moved special check above localTypeMap check. ([@Oreilles](https://github.com/Oreilles))
|
||||
- [#6190](https://github.com/directus/directus/pull/6190) Fix type casting of boolean env var ([@rijkvanzanten](https://github.com/rijkvanzanten))
|
||||
- **App**
|
||||
- [#6264](https://github.com/directus/directus/pull/6264) Fixed issue that could cause the HTML interface to emit a change on first load ([@rijkvanzanten](https://github.com/rijkvanzanten))
|
||||
- [#6263](https://github.com/directus/directus/pull/6263) Fixed issue that would prevent the m2o from working on foreign keys with no meta row ([@rijkvanzanten](https://github.com/rijkvanzanten))
|
||||
- [#6262](https://github.com/directus/directus/pull/6262) Fixes issue that would prevent the layout from refreshing on batch operations ([@rijkvanzanten](https://github.com/rijkvanzanten))
|
||||
- [#6258](https://github.com/directus/directus/pull/6258) Fix collection selection in system-collections interface ([@nickrum](https://github.com/nickrum))
|
||||
- [#6236](https://github.com/directus/directus/pull/6236) Fix missing styling for WYSIWYG ([@masterwendu](https://github.com/masterwendu))
|
||||
- [#6212](https://github.com/directus/directus/pull/6212) Fix proxying to the app from a subpath ([@nickrum](https://github.com/nickrum))
|
||||
- **specs**
|
||||
- [#6179](https://github.com/directus/directus/pull/6179) Fix OpenAPI specs ([@paescuj](https://github.com/paescuj))
|
||||
|
||||
### :memo: Documentation
|
||||
|
||||
- [#6232](https://github.com/directus/directus/pull/6232) Update the app extension docs to work with Vue 3 ([@nickrum](https://github.com/nickrum))
|
||||
- [#6209](https://github.com/directus/directus/pull/6209) Add note on file env vars ([@rijkvanzanten](https://github.com/rijkvanzanten))
|
||||
|
||||
### :package: Dependency Updates
|
||||
|
||||
- [#6240](https://github.com/directus/directus/pull/6240) Bump cropperjs from 1.5.11 to 1.5.12 ([@dependabot[bot]](https://github.com/apps/dependabot))
|
||||
- [#6239](https://github.com/directus/directus/pull/6239) Bump npm-watch from 0.9.0 to 0.10.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
|
||||
- [#6238](https://github.com/directus/directus/pull/6238) Bump eslint-plugin-vue from 7.11.0 to 7.11.1 ([@dependabot[bot]](https://github.com/apps/dependabot))
|
||||
- [#6237](https://github.com/directus/directus/pull/6237) Bump aws-sdk from 2.926.0 to 2.927.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
|
||||
- [#6201](https://github.com/directus/directus/pull/6201) Bump rollup from 2.51.1 to 2.51.2 ([@dependabot[bot]](https://github.com/apps/dependabot))
|
||||
- [#6200](https://github.com/directus/directus/pull/6200) Bump eslint-plugin-vue from 7.10.0 to 7.11.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
|
||||
- [#6199](https://github.com/directus/directus/pull/6199) Bump aws-sdk from 2.925.0 to 2.926.0 ([@dependabot[bot]](https://github.com/apps/dependabot))
|
||||
- [#6198](https://github.com/directus/directus/pull/6198) Bump gatsby-source-filesystem from 3.7.0 to 3.7.1 ([@dependabot[bot]](https://github.com/apps/dependabot))
|
||||
|
||||
## v9.0.0-rc.75 (June 10, 2021)
|
||||
|
||||
### 🚨 App Extensions
|
||||
|
||||
@@ -2,6 +2,7 @@ const path = require('path');
|
||||
const fse = require('fs-extra');
|
||||
const dirTree = require('directory-tree');
|
||||
|
||||
// eslint-disable-next-line no-console
|
||||
console.log('Building docs...');
|
||||
|
||||
const tree = dirTree('.', {
|
||||
@@ -15,6 +16,7 @@ const index = `export default ${generateIndex(tree.children)};`;
|
||||
fse.ensureDirSync('dist');
|
||||
fse.writeFileSync('dist/index.js', index);
|
||||
|
||||
// eslint-disable-next-line no-console
|
||||
console.log('Built docs');
|
||||
|
||||
function generateIndex(tree) {
|
||||
|
||||
@@ -5,22 +5,25 @@
|
||||
|
||||
## Troubleshooting Steps
|
||||
|
||||
If you're experiencing issues or think you have found a problem in Directus, be sure to follow these steps before [Reporting a Bug](/contributing/introduction/#bug-reporting):
|
||||
If you're experiencing issues or think you have found a problem in Directus, be sure to follow these steps before
|
||||
[Reporting a Bug](/contributing/introduction/#bug-reporting):
|
||||
|
||||
1. Ensure your server/database meet the [minimum requirements](/guides/installation/cli/#_1-confirm-minimum-requirements)
|
||||
1. Ensure your server/database meet the
|
||||
[minimum requirements](/guides/installation/cli/#_1-confirm-minimum-requirements)
|
||||
2. Ensure you’re on the [latest version of Directus](https://github.com/directus/directus/releases/latest)
|
||||
3. Stop (`CTRL+C`) and restart the server (`npx directus start`)
|
||||
5. Run the database migration script: `directus database migrate:latest` (backup your database first)
|
||||
6. Disable any data-caching within your project
|
||||
7. Test any App issues with browser extensions and cache disabled (eg: Incognito Mode)
|
||||
8. Confirm the issue is not related to your own custom code
|
||||
9. Check for [existing Issues](https://github.com/directus/directus/issues?q=is%3Aissue) (and [Discussions](https://github.com/directus/directus/discussions)) that match your problem
|
||||
4. Run the database migration script: `directus database migrate:latest` (backup your database first)
|
||||
5. Disable any data-caching within your project
|
||||
6. Test any App issues with browser extensions and cache disabled (eg: Incognito Mode)
|
||||
7. Confirm the issue is not related to your own custom code
|
||||
8. Check for [existing Issues](https://github.com/directus/directus/issues?q=is%3Aissue) (and
|
||||
[Discussions](https://github.com/directus/directus/discussions)) that match your problem
|
||||
|
||||
::: tip Source Contributors
|
||||
Those who have installed from source should also remove all dependencies (`npx lerna clean -y`) and then reinstall them (`npm install`).
|
||||
:::
|
||||
::: tip Source Contributors Those who have installed from source should also remove all dependencies
|
||||
(`npx lerna clean -y`) and then reinstall them (`npm install`). :::
|
||||
|
||||
If you're still experiencing a problem after completing the above steps, you can chat through things on our [community support](#community-support) or [report a bug](/contributing/introduction/#bug-reporting).
|
||||
If you're still experiencing a problem after completing the above steps, you can chat through things on our
|
||||
[community support](#community-support) or [report a bug](/contributing/introduction/#bug-reporting).
|
||||
|
||||
## Community Support
|
||||
|
||||
|
||||
@@ -98,7 +98,7 @@ To be read by the Admin App, your custom display's Vue component must first be b
|
||||
recommend bundling your code using Rollup. To install this and the other development dependencies, run this command:
|
||||
|
||||
```bash
|
||||
npm i -D rollup @rollup/plugin-commonjs @rollup/plugin-node-resolve rollup-plugin-terser rollup-plugin-vue@5 vue-template-compiler
|
||||
npm i -D rollup @rollup/plugin-commonjs @rollup/plugin-node-resolve @rollup/plugin-replace rollup-plugin-terser rollup-plugin-vue @vue/compiler-sfc
|
||||
```
|
||||
|
||||
You can then use the following Rollup configuration within `rollup.config.js`:
|
||||
@@ -106,6 +106,7 @@ You can then use the following Rollup configuration within `rollup.config.js`:
|
||||
```js
|
||||
import { nodeResolve } from '@rollup/plugin-node-resolve';
|
||||
import commonjs from '@rollup/plugin-commonjs';
|
||||
import replace from '@rollup/plugin-replace';
|
||||
import { terser } from 'rollup-plugin-terser';
|
||||
import vue from 'rollup-plugin-vue';
|
||||
|
||||
@@ -115,7 +116,16 @@ export default {
|
||||
format: 'es',
|
||||
file: 'dist/index.js',
|
||||
},
|
||||
plugins: [vue(), nodeResolve(), commonjs(), terser()],
|
||||
plugins: [
|
||||
vue(),
|
||||
nodeResolve(),
|
||||
commonjs(),
|
||||
replace({
|
||||
'process\u200b.env.NODE_ENV': JSON.stringify('production'),
|
||||
preventAssignment: true,
|
||||
}),
|
||||
terser(),
|
||||
],
|
||||
};
|
||||
```
|
||||
|
||||
|
||||
@@ -55,6 +55,7 @@ for more info on what can go into this object.
|
||||
|
||||
<script>
|
||||
export default {
|
||||
emits: ['input'],
|
||||
props: {
|
||||
value: String,
|
||||
},
|
||||
@@ -88,7 +89,7 @@ To be read by the Admin App, your custom interface's Vue component must first be
|
||||
We recommend bundling your code using Rollup. To install this and the other development dependencies, run this command:
|
||||
|
||||
```bash
|
||||
npm i -D rollup @rollup/plugin-commonjs @rollup/plugin-node-resolve rollup-plugin-terser rollup-plugin-vue@5 vue-template-compiler
|
||||
npm i -D rollup @rollup/plugin-commonjs @rollup/plugin-node-resolve @rollup/plugin-replace rollup-plugin-terser rollup-plugin-vue @vue/compiler-sfc
|
||||
```
|
||||
|
||||
You can then use the following Rollup configuration within `rollup.config.js`:
|
||||
@@ -96,6 +97,7 @@ You can then use the following Rollup configuration within `rollup.config.js`:
|
||||
```js
|
||||
import { nodeResolve } from '@rollup/plugin-node-resolve';
|
||||
import commonjs from '@rollup/plugin-commonjs';
|
||||
import replace from '@rollup/plugin-replace';
|
||||
import { terser } from 'rollup-plugin-terser';
|
||||
import vue from 'rollup-plugin-vue';
|
||||
|
||||
@@ -105,7 +107,16 @@ export default {
|
||||
format: 'es',
|
||||
file: 'dist/index.js',
|
||||
},
|
||||
plugins: [vue(), nodeResolve(), commonjs(), terser()],
|
||||
plugins: [
|
||||
vue(),
|
||||
nodeResolve(),
|
||||
commonjs(),
|
||||
replace({
|
||||
'process\u200b.env.NODE_ENV': JSON.stringify('production'),
|
||||
preventAssignment: true,
|
||||
}),
|
||||
terser(),
|
||||
],
|
||||
};
|
||||
```
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@ To be read by the Admin App, your custom layouts's Vue component must first be b
|
||||
recommend bundling your code using Rollup. To install this and the other development dependencies, run this command:
|
||||
|
||||
```bash
|
||||
npm i -D rollup @rollup/plugin-commonjs @rollup/plugin-node-resolve rollup-plugin-terser rollup-plugin-vue@5 vue-template-compiler
|
||||
npm i -D rollup @rollup/plugin-commonjs @rollup/plugin-node-resolve @rollup/plugin-replace rollup-plugin-terser rollup-plugin-vue @vue/compiler-sfc
|
||||
```
|
||||
|
||||
You can then use the following Rollup configuration within `rollup.config.js`:
|
||||
@@ -139,6 +139,7 @@ You can then use the following Rollup configuration within `rollup.config.js`:
|
||||
```js
|
||||
import { nodeResolve } from '@rollup/plugin-node-resolve';
|
||||
import commonjs from '@rollup/plugin-commonjs';
|
||||
import replace from '@rollup/plugin-replace';
|
||||
import { terser } from 'rollup-plugin-terser';
|
||||
import vue from 'rollup-plugin-vue';
|
||||
|
||||
@@ -148,7 +149,16 @@ export default {
|
||||
format: 'es',
|
||||
file: 'dist/index.js',
|
||||
},
|
||||
plugins: [vue(), nodeResolve(), commonjs(), terser()],
|
||||
plugins: [
|
||||
vue(),
|
||||
nodeResolve(),
|
||||
commonjs(),
|
||||
replace({
|
||||
'process\u200b.env.NODE_ENV': JSON.stringify('production'),
|
||||
preventAssignment: true,
|
||||
}),
|
||||
terser(),
|
||||
],
|
||||
};
|
||||
```
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ export default {
|
||||
icon: 'box',
|
||||
routes: [
|
||||
{
|
||||
path: '/',
|
||||
path: '',
|
||||
component: ModuleComponent,
|
||||
},
|
||||
],
|
||||
@@ -35,7 +35,8 @@ export default {
|
||||
- `id` — The unique key for this module. It is good practice to scope proprietary interfaces with an author prefix.
|
||||
- `name` — The human-readable name for this module.
|
||||
- `icon` — An icon name from the material icon set, or the extended list of Directus custom icons.
|
||||
- `routes` — Details the routes in your module per the Vue router.
|
||||
- `routes` — Details the routes in your module. The routes are registered as nested routes with the module's `id`
|
||||
serving as the base path.
|
||||
|
||||
::: tip TypeScript
|
||||
|
||||
@@ -130,7 +131,7 @@ To be read by the Admin App, your custom module's Vue component must first be bu
|
||||
recommend bundling your code using Rollup. To install this and the other development dependencies, run this command:
|
||||
|
||||
```bash
|
||||
npm i -D rollup @rollup/plugin-commonjs @rollup/plugin-node-resolve rollup-plugin-terser rollup-plugin-vue@5 vue-template-compiler
|
||||
npm i -D rollup @rollup/plugin-commonjs @rollup/plugin-node-resolve @rollup/plugin-replace rollup-plugin-terser rollup-plugin-vue @vue/compiler-sfc
|
||||
```
|
||||
|
||||
You can then use the following Rollup configuration within `rollup.config.js`:
|
||||
@@ -138,6 +139,7 @@ You can then use the following Rollup configuration within `rollup.config.js`:
|
||||
```js
|
||||
import { nodeResolve } from '@rollup/plugin-node-resolve';
|
||||
import commonjs from '@rollup/plugin-commonjs';
|
||||
import replace from '@rollup/plugin-replace';
|
||||
import { terser } from 'rollup-plugin-terser';
|
||||
import vue from 'rollup-plugin-vue';
|
||||
|
||||
@@ -147,7 +149,16 @@ export default {
|
||||
format: 'es',
|
||||
file: 'dist/index.js',
|
||||
},
|
||||
plugins: [vue(), nodeResolve(), commonjs(), terser()],
|
||||
plugins: [
|
||||
vue(),
|
||||
nodeResolve(),
|
||||
commonjs(),
|
||||
replace({
|
||||
'process\u200b.env.NODE_ENV': JSON.stringify('production'),
|
||||
preventAssignment: true,
|
||||
}),
|
||||
terser(),
|
||||
],
|
||||
};
|
||||
```
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@directus/docs",
|
||||
"private": false,
|
||||
"version": "9.0.0-rc.75",
|
||||
"version": "9.0.0-rc.76",
|
||||
"description": "",
|
||||
"main": "dist/index.js",
|
||||
"scripts": {
|
||||
@@ -34,7 +34,7 @@
|
||||
"fs-extra": "^10.0.0",
|
||||
"lodash.get": "^4.4.2",
|
||||
"micromark": "^2.10.1",
|
||||
"npm-watch": "^0.9.0",
|
||||
"npm-watch": "^0.10.0",
|
||||
"slugify": "^1.5.3",
|
||||
"vuepress": "^1.7.1",
|
||||
"vuepress-plugin-clean-urls": "^1.1.2"
|
||||
|
||||
@@ -125,13 +125,14 @@ needs, you can extend the above environment variables to configure any of
|
||||
|
||||
## Cache
|
||||
|
||||
| Variable | Description | Default Value |
|
||||
| ------------------ | ----------------------------------------------------------------------- | ---------------- |
|
||||
| `CACHE_ENABLED` | Whether or not caching is enabled. | `false` |
|
||||
| `CACHE_TTL` | How long the cache is persisted. | `30m` |
|
||||
| `CACHE_AUTO_PURGE` | Automatically purge the cache on `create`/`update`/`delete` actions. | `false` |
|
||||
| `CACHE_NAMESPACE` | How to scope the cache data. | `directus-cache` |
|
||||
| `CACHE_STORE` | Where to store the cache data. Either `memory`, `redis`, or `memcache`. | `memory` |
|
||||
| Variable | Description | Default Value |
|
||||
| ------------------------ | -------------------------------------------------------------------------------------- | ---------------- |
|
||||
| `CACHE_ENABLED` | Whether or not caching is enabled. | `false` |
|
||||
| `CACHE_TTL` | How long the cache is persisted. | `30m` |
|
||||
| `CACHE_CONTROL_S_MAXAGE` | Whether to not to add the s-maxage expiration flag. Set to a number for a custom value | `0` |
|
||||
| `CACHE_AUTO_PURGE` | Automatically purge the cache on `create`/`update`/`delete` actions. | `false` |
|
||||
| `CACHE_NAMESPACE` | How to scope the cache data. | `directus-cache` |
|
||||
| `CACHE_STORE` | Where to store the cache data. Either `memory`, `redis`, or `memcache`. | `memory` |
|
||||
|
||||
Based on the `CACHE_STORE` used, you must also provide the following configurations:
|
||||
|
||||
|
||||
@@ -68,6 +68,27 @@ The storage implementation. See [Storage](#storage) for more information.
|
||||
|
||||
Defaults to an instance of `MemoryStorage` when in node.js, and `LocalStorage` when in browsers.
|
||||
|
||||
**NOTE:**
|
||||
|
||||
If you plan to use multiple SDK instances at once, keep in mind that they will share the Storage across them, leading to unpredictable behaviors. This scenario might be a case while writing tests.
|
||||
|
||||
For example, the SDK instance that executed last the `login()` method writes the resulting `access_token` into the Storage and **overwrites** any prior fetched `access_token` from any other SDK instance. That might mix up your test scenario by granting false access rights to your previous logged-in users.
|
||||
|
||||
Adding prefixes to your Storage instances would solve this error:
|
||||
|
||||
```js
|
||||
import { Directus, MemoryStorage } from "@directus/sdk";
|
||||
import { randomBytes } from "crypto";
|
||||
|
||||
// ...
|
||||
|
||||
const prefix = randomBytes(8).toString("hex");
|
||||
const storage = new MemoryStorage(prefix);
|
||||
const url = `http://${host}:${port}`;
|
||||
const directus = new Directus(url, { storage });
|
||||
|
||||
```
|
||||
|
||||
#### `options.transport`
|
||||
|
||||
The transport implementation. See [Transport](#transport) for more information.
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"docs",
|
||||
"api"
|
||||
],
|
||||
"version": "9.0.0-rc.75",
|
||||
"version": "9.0.0-rc.76",
|
||||
"command": {
|
||||
"bootstrap": {
|
||||
"npmClientArgs": [
|
||||
|
||||
503
package-lock.json
generated
503
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
10
package.json
10
package.json
@@ -10,7 +10,7 @@
|
||||
"lint": "npm-run-all --parallel --continue-on-error lint:*",
|
||||
"lint:eslint": "eslint .",
|
||||
"lint:stylelint": "stylelint \"**/*.{css,scss,vue}\"",
|
||||
"format": "prettier --write \"**/*.{js,ts,vue,md}\"",
|
||||
"format": "prettier --write \"**/*.{js,ts,vue,md,yaml}\"",
|
||||
"dev": "lerna run dev --stream --parallel",
|
||||
"build": "lerna run build",
|
||||
"release": "lerna publish --force-publish --exact",
|
||||
@@ -26,15 +26,15 @@
|
||||
"@types/listr": "^0.14.3",
|
||||
"@types/node": "^15.12.0",
|
||||
"@types/supertest": "^2.0.11",
|
||||
"@typescript-eslint/eslint-plugin": "^4.25.0",
|
||||
"@typescript-eslint/parser": "^4.26.0",
|
||||
"@typescript-eslint/eslint-plugin": "^4.27.0",
|
||||
"@typescript-eslint/parser": "^4.27.0",
|
||||
"axios": "^0.21.1",
|
||||
"dockerode": "^3.3.0",
|
||||
"eslint": "^7.27.0",
|
||||
"eslint-config-prettier": "^8.3.0",
|
||||
"eslint-plugin-prettier": "^3.4.0",
|
||||
"eslint-plugin-prettier-vue": "^3.1.0",
|
||||
"eslint-plugin-vue": "^7.11.0",
|
||||
"eslint-plugin-vue": "^7.11.1",
|
||||
"globby": "^11.0.3",
|
||||
"jest": "^27.0.4",
|
||||
"knex": "^0.95.6",
|
||||
@@ -65,7 +65,7 @@
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.{js,ts,vue}": "eslint --fix",
|
||||
"*.md": "prettier --write",
|
||||
"*.{md,yaml}": "prettier --write",
|
||||
"*.{css,scss,vue}": "stylelint --fix"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ async function main(run) {
|
||||
|
||||
process.exit(error ? 1 : 0);
|
||||
} catch (error) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(error);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@directus/cli",
|
||||
"version": "9.0.0-rc.75",
|
||||
"version": "9.0.0-rc.76",
|
||||
"description": "The official Directus CLI",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -41,8 +41,8 @@
|
||||
"author": "João Biondo <wolfulus@gmail.com>",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@directus/format-title": "9.0.0-rc.75",
|
||||
"@directus/sdk": "9.0.0-rc.75",
|
||||
"@directus/format-title": "9.0.0-rc.76",
|
||||
"@directus/sdk": "9.0.0-rc.76",
|
||||
"@types/yargs": "^17.0.0",
|
||||
"app-module-path": "^2.2.0",
|
||||
"chalk": "^4.1.0",
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
/* eslint-disable no-console */
|
||||
|
||||
const chalk = require('chalk');
|
||||
|
||||
module.exports = function checkRequirements() {
|
||||
const nodeVersion = process.versions.node;
|
||||
const major = +nodeVersion.split('.')[0];
|
||||
|
||||
if (major < 10) {
|
||||
if (major < 12) {
|
||||
console.error(`You are running ${chalk.red(`Node ${nodeVersion}`)}.`);
|
||||
console.error(`Directus requires ${chalk.green(`Node 10`)} and up.`);
|
||||
console.error(`Directus requires ${chalk.green(`Node 12`)} and up.`);
|
||||
console.error('Please update your Node version and try again.');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ async function create(directory) {
|
||||
const stat = await fse.stat(rootPath);
|
||||
|
||||
if (stat.isDirectory() === false) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(`Destination ${chalk.red(directory)} already exists and is not a directory.`);
|
||||
process.exit(1);
|
||||
}
|
||||
@@ -36,6 +37,7 @@ async function create(directory) {
|
||||
const files = await fse.readdir(rootPath);
|
||||
|
||||
if (files.length > 0) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(`Destination ${chalk.red(directory)} already exists and is not an empty directory.`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "create-directus-project",
|
||||
"version": "9.0.0-rc.75",
|
||||
"version": "9.0.0-rc.76",
|
||||
"description": "A small installer util that will create a directory, add boilerplate folders, and install Directus through npm.",
|
||||
"main": "lib/index.js",
|
||||
"bin": "./lib/index.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@directus/drive-azure",
|
||||
"version": "9.0.0-rc.75",
|
||||
"version": "9.0.0-rc.76",
|
||||
"description": "Azure Blob driver for @directus/drive",
|
||||
"license": "MIT",
|
||||
"main": "dist/index.js",
|
||||
@@ -35,7 +35,7 @@
|
||||
],
|
||||
"dependencies": {
|
||||
"@azure/storage-blob": "^12.6.0",
|
||||
"@directus/drive": "9.0.0-rc.75",
|
||||
"@directus/drive": "9.0.0-rc.76",
|
||||
"normalize-path": "^3.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@directus/drive-gcs",
|
||||
"version": "9.0.0-rc.75",
|
||||
"version": "9.0.0-rc.76",
|
||||
"description": "Google Cloud Storage driver for @directus/drive",
|
||||
"license": "MIT",
|
||||
"main": "dist/index.js",
|
||||
@@ -33,7 +33,7 @@
|
||||
"dev": "npm run build -- -w --preserveWatchOutput --incremental"
|
||||
},
|
||||
"dependencies": {
|
||||
"@directus/drive": "9.0.0-rc.75",
|
||||
"@directus/drive": "9.0.0-rc.76",
|
||||
"@google-cloud/storage": "^5.8.5",
|
||||
"normalize-path": "^3.0.0"
|
||||
},
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@directus/drive-s3",
|
||||
"version": "9.0.0-rc.75",
|
||||
"version": "9.0.0-rc.76",
|
||||
"description": "AWS S3 driver for @directus/drive",
|
||||
"license": "MIT",
|
||||
"main": "dist/index.js",
|
||||
@@ -34,8 +34,8 @@
|
||||
"dev": "npm run build -- -w --preserveWatchOutput --incremental"
|
||||
},
|
||||
"dependencies": {
|
||||
"@directus/drive": "9.0.0-rc.75",
|
||||
"aws-sdk": "^2.926.0",
|
||||
"@directus/drive": "9.0.0-rc.76",
|
||||
"aws-sdk": "^2.928.0",
|
||||
"normalize-path": "^3.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@directus/drive",
|
||||
"version": "9.0.0-rc.75",
|
||||
"version": "9.0.0-rc.76",
|
||||
"description": "Flexible and Fluent way to manage storage in Node.js.",
|
||||
"license": "MIT",
|
||||
"main": "dist/index.js",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@directus/format-title",
|
||||
"version": "9.0.0-rc.75",
|
||||
"version": "9.0.0-rc.76",
|
||||
"description": "Custom string formatter that converts any string into [Title Case](http://www.grammar-monster.com/lessons/capital_letters_title_case.htm)",
|
||||
"keywords": [
|
||||
"title-case",
|
||||
@@ -37,7 +37,7 @@
|
||||
"@rollup/plugin-json": "^4.1.0",
|
||||
"@rollup/plugin-node-resolve": "^13.0.0",
|
||||
"rimraf": "^3.0.2",
|
||||
"rollup": "^2.51.2",
|
||||
"rollup": "^2.52.0",
|
||||
"rollup-plugin-sourcemaps": "^0.6.3",
|
||||
"rollup-plugin-terser": "^7.0.2",
|
||||
"rollup-plugin-typescript2": "^0.30.0",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user