🔖 Release/v1.0.5 (#757)
This commit is contained in:
@@ -1,3 +1,25 @@
|
|||||||
|
# Twake Drive v1.0.5
|
||||||
|
|
||||||
|
*Note: `-rc2` should be 1.0.6, but to align with internal release cycle numbering, we
|
||||||
|
will just continue 1.0.5 for this release. Canditates through `rc11` were hotfixes*
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- AntiVirus - Uploaded files are now scanned by ClamAV
|
||||||
|
- Reveal file in location
|
||||||
|
|
||||||
|
## Fixes and Improvements
|
||||||
|
|
||||||
|
- Push client error logs to the server logs
|
||||||
|
- Tolerate some configuration qwirks (like extra `/`s)
|
||||||
|
- Move operations now self-rename if target exists
|
||||||
|
- Minor UI fixes related to the search bar, pagination,
|
||||||
|
sorting by size, no more loading segment, and move
|
||||||
|
operation from a public link
|
||||||
|
- Email link when folder updated by public link fixed
|
||||||
|
- Fix download for Safari users who block popups
|
||||||
|
- Fix for OnlyOffice based on postgres
|
||||||
|
|
||||||
# Twake Drive v1.0.5-rc1
|
# Twake Drive v1.0.5-rc1
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
@@ -19,6 +41,7 @@
|
|||||||
- Fix file browser vertical borders (and fix react warning)
|
- Fix file browser vertical borders (and fix react warning)
|
||||||
- Fix only office filename getting overwritten at session end
|
- Fix only office filename getting overwritten at session end
|
||||||
|
|
||||||
|
|
||||||
# Twake Drive v1.0.4
|
# Twake Drive v1.0.4
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
@@ -43,6 +66,7 @@
|
|||||||
- Add collation fix.
|
- Add collation fix.
|
||||||
- Cli db seed tool
|
- Cli db seed tool
|
||||||
|
|
||||||
|
|
||||||
# Twake Drive v1.0.3
|
# Twake Drive v1.0.3
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
@@ -61,6 +85,7 @@
|
|||||||
- A large number of minor fixes
|
- A large number of minor fixes
|
||||||
- Translation of user notifications
|
- Translation of user notifications
|
||||||
|
|
||||||
|
|
||||||
# Twake Drive v1.0.2
|
# Twake Drive v1.0.2
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
@@ -74,6 +99,7 @@
|
|||||||
- Refactored starting docker-compose file
|
- Refactored starting docker-compose file
|
||||||
- Fix navigation for shared link view
|
- Fix navigation for shared link view
|
||||||
|
|
||||||
|
|
||||||
# Twake Drive v1.0.1
|
# Twake Drive v1.0.1
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
@@ -94,6 +120,7 @@
|
|||||||
- Malformed URL when you share a file
|
- Malformed URL when you share a file
|
||||||
- ...
|
- ...
|
||||||
|
|
||||||
|
|
||||||
# Twake Drive v2023.Q3.012
|
# Twake Drive v2023.Q3.012
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { getLogger, TdriveLogger, TdriveService } from "../../framework";
|
import { getLogger, TdriveLogger, TdriveService } from "../../framework";
|
||||||
|
import { getConfigOrDefault } from "../../../../utils/get-config";
|
||||||
import EmailPusherAPI from "./provider";
|
import EmailPusherAPI from "./provider";
|
||||||
import {
|
import {
|
||||||
EmailBuilderDataPayload,
|
EmailBuilderDataPayload,
|
||||||
@@ -42,7 +43,7 @@ export default class EmailPusherClass
|
|||||||
});
|
});
|
||||||
this.interface = this.configuration.get<string>("email_interface", "");
|
this.interface = this.configuration.get<string>("email_interface", "");
|
||||||
this.platformUrl = this.configuration.get<string>("platform_url", "");
|
this.platformUrl = this.configuration.get<string>("platform_url", "");
|
||||||
this.debug = this.configuration.get<boolean>("debug", false);
|
this.debug = getConfigOrDefault<boolean>("email-pusher.debug", true);
|
||||||
if (this.interface === "smtp") {
|
if (this.interface === "smtp") {
|
||||||
const useTLS = this.configuration.get<string>("smtp_tls", "false") == "true";
|
const useTLS = this.configuration.get<string>("smtp_tls", "false") == "true";
|
||||||
const smtpConfig: SMTPClientConfigType = {
|
const smtpConfig: SMTPClientConfigType = {
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { logger } from "../../../../../../core/platform/framework";
|
|||||||
import { Readable } from "stream";
|
import { Readable } from "stream";
|
||||||
import { StorageConnectorAPI, WriteMetadata } from "../../provider";
|
import { StorageConnectorAPI, WriteMetadata } from "../../provider";
|
||||||
import { randomUUID } from "crypto";
|
import { randomUUID } from "crypto";
|
||||||
|
import _ from "lodash";
|
||||||
|
|
||||||
export type S3Configuration = {
|
export type S3Configuration = {
|
||||||
id: string;
|
id: string;
|
||||||
@@ -22,8 +23,15 @@ export default class S3ConnectorService implements StorageConnectorAPI {
|
|||||||
id: string;
|
id: string;
|
||||||
|
|
||||||
constructor(S3Configuration: S3Configuration) {
|
constructor(S3Configuration: S3Configuration) {
|
||||||
this.client = new Minio.Client(S3Configuration);
|
const confCopy = _.cloneDeep(S3Configuration) as S3Configuration;
|
||||||
this.minioConfiguration = S3Configuration;
|
if (confCopy.port && typeof confCopy.port === "string") {
|
||||||
|
confCopy.port = parseInt(confCopy.port, 10);
|
||||||
|
}
|
||||||
|
if (confCopy.useSSL && typeof confCopy.useSSL === "string") {
|
||||||
|
confCopy.useSSL = !(!confCopy.useSSL || confCopy.useSSL === "false");
|
||||||
|
}
|
||||||
|
this.client = new Minio.Client(confCopy);
|
||||||
|
this.minioConfiguration = confCopy;
|
||||||
this.id = this.minioConfiguration.id;
|
this.id = this.minioConfiguration.id;
|
||||||
if (!this.id) {
|
if (!this.id) {
|
||||||
this.id = randomUUID();
|
this.id = randomUUID();
|
||||||
|
|||||||
@@ -50,8 +50,19 @@ export const isSharedWithMeFolder = (id: string) => {
|
|||||||
export const getVirtualFoldersNames = async (id: string, context: DriveExecutionContext) => {
|
export const getVirtualFoldersNames = async (id: string, context: DriveExecutionContext) => {
|
||||||
const configuration = new Configuration("drive");
|
const configuration = new Configuration("drive");
|
||||||
const defaultLang = configuration.get<string>("defaultLanguage") || "en";
|
const defaultLang = configuration.get<string>("defaultLanguage") || "en";
|
||||||
const user = await gr.services.users.get({ id: context.user?.id });
|
const locale = await (async () => {
|
||||||
const locale = user?.preferences?.locale || defaultLang;
|
try {
|
||||||
|
const user = await gr.services.users.get({ id: context.user?.id });
|
||||||
|
return user?.preferences?.locale || defaultLang;
|
||||||
|
} catch (error) {
|
||||||
|
logger.error(
|
||||||
|
{ error, context },
|
||||||
|
"Ignoring error getting user to translate root. This is expected from requests coming from applications as the user id is not a valid UUID for postgres. Defaulting to " +
|
||||||
|
defaultLang,
|
||||||
|
);
|
||||||
|
return defaultLang;
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
if (id.startsWith("user_")) {
|
if (id.startsWith("user_")) {
|
||||||
return gr.services.i18n.translate("virtual-folder.my-drive", locale);
|
return gr.services.i18n.translate("virtual-folder.my-drive", locale);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
export default {
|
export default {
|
||||||
current: /* @VERSION_DETAIL */ "1.0.5-rc1",
|
current: /* @VERSION_DETAIL */ "1.0.5",
|
||||||
minimal: {
|
minimal: {
|
||||||
web: /* @MIN_VERSION_WEB */ "1.0.5-rc1",
|
web: /* @MIN_VERSION_WEB */ "1.0.5",
|
||||||
mobile: /* @MIN_VERSION_MOBILE */ "1.0.5-rc1",
|
mobile: /* @MIN_VERSION_MOBILE */ "1.0.5",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
export default {
|
export default {
|
||||||
version: /* @VERSION */ '1.0.5-rc1',
|
version: /* @VERSION */ '1.0.5',
|
||||||
version_detail: /* @VERSION_DETAIL */ '1.0.5-rc1',
|
version_detail: /* @VERSION_DETAIL */ '1.0.5',
|
||||||
version_name: /* @VERSION_NAME */ 'Ghost-Dog',
|
version_name: /* @VERSION_NAME */ 'Ghost-Dog',
|
||||||
};
|
};
|
||||||
Reference in New Issue
Block a user