Merge branch 'develop' into feature/login-nextjs
This commit is contained in:
commit
9fbfe2be15
@ -35,8 +35,8 @@ import { observer, inject } from "mobx-react";
|
||||
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { GroupParams } from "./types";
|
||||
import { createGroup } from "@docspace/shared/api/groups";
|
||||
import { GroupParams } from "./types";
|
||||
import GroupNameParam from "./sub-components/GroupNameParam";
|
||||
import HeadOfGroup from "./sub-components/HeadOfGroupParam";
|
||||
import MembersParam from "./sub-components/MembersParam";
|
||||
@ -104,88 +104,88 @@ const CreateGroupDialog = ({
|
||||
});
|
||||
};
|
||||
|
||||
if (selectGroupMangerPanelIsVisible)
|
||||
return (
|
||||
<SelectGroupManagerPanel
|
||||
isVisible={selectGroupMangerPanelIsVisible}
|
||||
onClose={onHideSelectGroupManagerPanel}
|
||||
onParentPanelClose={onClose}
|
||||
setGroupManager={setGroupManager}
|
||||
/>
|
||||
);
|
||||
|
||||
if (selectMembersPanelIsVisible)
|
||||
return (
|
||||
<SelectGroupMembersPanel
|
||||
isVisible={selectMembersPanelIsVisible}
|
||||
onClose={onHideSelectMembersPanel}
|
||||
onParentPanelClose={onClose}
|
||||
groupManager={groupParams.groupManager}
|
||||
groupMembers={groupParams.groupMembers}
|
||||
setGroupMembers={setGroupMembers}
|
||||
/>
|
||||
);
|
||||
|
||||
return (
|
||||
<ModalDialog
|
||||
displayType={ModalDialogType.aside}
|
||||
withBodyScroll
|
||||
visible={visible}
|
||||
onClose={onClose}
|
||||
withFooterBorder
|
||||
// isScrollLocked={isScrollLocked}
|
||||
// isOauthWindowOpen={isOauthWindowOpen}
|
||||
>
|
||||
<ModalDialog.Header>
|
||||
{t("PeopleTranslations:CreateGroup")}
|
||||
</ModalDialog.Header>
|
||||
<>
|
||||
<ModalDialog
|
||||
displayType={ModalDialogType.aside}
|
||||
withBodyScroll
|
||||
visible={visible}
|
||||
onClose={onClose}
|
||||
withFooterBorder
|
||||
// isScrollLocked={isScrollLocked}
|
||||
// isOauthWindowOpen={isOauthWindowOpen}
|
||||
>
|
||||
<ModalDialog.Header>
|
||||
{t("PeopleTranslations:CreateGroup")}
|
||||
</ModalDialog.Header>
|
||||
|
||||
<ModalDialog.Body>
|
||||
<GroupNameParam
|
||||
groupName={groupParams.groupName}
|
||||
onChangeGroupName={onChangeGroupName}
|
||||
/>
|
||||
<HeadOfGroup
|
||||
groupManager={groupParams.groupManager}
|
||||
<ModalDialog.Body>
|
||||
<GroupNameParam
|
||||
groupName={groupParams.groupName}
|
||||
onChangeGroupName={onChangeGroupName}
|
||||
/>
|
||||
<HeadOfGroup
|
||||
groupManager={groupParams.groupManager}
|
||||
setGroupManager={setGroupManager}
|
||||
groupMembers={groupParams.groupMembers}
|
||||
setGroupMembers={setGroupMembers}
|
||||
onShowSelectGroupManagerPanel={onShowSelectGroupManagerPanel}
|
||||
/>
|
||||
<MembersParam
|
||||
groupManager={groupParams.groupManager}
|
||||
groupMembers={groupParams.groupMembers}
|
||||
setGroupMembers={setGroupMembers}
|
||||
onShowSelectMembersPanel={onShowSelectMembersPanel}
|
||||
/>
|
||||
</ModalDialog.Body>
|
||||
|
||||
<ModalDialog.Footer>
|
||||
<Button
|
||||
id="create-group-modal_submit"
|
||||
tabIndex={5}
|
||||
label={t("Common:Create")}
|
||||
size={ButtonSize.normal}
|
||||
primary
|
||||
scale
|
||||
onClick={onCreateGroup}
|
||||
isDisabled={
|
||||
!groupParams.groupName ||
|
||||
(!groupParams.groupManager && !groupParams.groupMembers.length)
|
||||
}
|
||||
isLoading={isLoading}
|
||||
/>
|
||||
<Button
|
||||
id="create-group-modal_cancel"
|
||||
tabIndex={5}
|
||||
label={t("Common:CancelButton")}
|
||||
size={ButtonSize.normal}
|
||||
scale
|
||||
isDisabled={isLoading}
|
||||
onClick={onClose}
|
||||
/>
|
||||
</ModalDialog.Footer>
|
||||
</ModalDialog>
|
||||
|
||||
{selectGroupMangerPanelIsVisible && (
|
||||
<SelectGroupManagerPanel
|
||||
isVisible={selectGroupMangerPanelIsVisible}
|
||||
onClose={onHideSelectGroupManagerPanel}
|
||||
onParentPanelClose={onClose}
|
||||
setGroupManager={setGroupManager}
|
||||
groupMembers={groupParams.groupMembers}
|
||||
setGroupMembers={setGroupMembers}
|
||||
onShowSelectGroupManagerPanel={onShowSelectGroupManagerPanel}
|
||||
/>
|
||||
<MembersParam
|
||||
)}
|
||||
|
||||
{selectMembersPanelIsVisible && (
|
||||
<SelectGroupMembersPanel
|
||||
isVisible={selectMembersPanelIsVisible}
|
||||
onClose={onHideSelectMembersPanel}
|
||||
onParentPanelClose={onClose}
|
||||
groupManager={groupParams.groupManager}
|
||||
groupMembers={groupParams.groupMembers}
|
||||
setGroupMembers={setGroupMembers}
|
||||
onShowSelectMembersPanel={onShowSelectMembersPanel}
|
||||
/>
|
||||
</ModalDialog.Body>
|
||||
|
||||
<ModalDialog.Footer>
|
||||
<Button
|
||||
id="create-group-modal_submit"
|
||||
tabIndex={5}
|
||||
label={t("Common:Create")}
|
||||
size={ButtonSize.normal}
|
||||
primary
|
||||
scale
|
||||
onClick={onCreateGroup}
|
||||
isDisabled={
|
||||
!groupParams.groupName ||
|
||||
(!groupParams.groupManager && !groupParams.groupMembers.length)
|
||||
}
|
||||
isLoading={isLoading}
|
||||
/>
|
||||
<Button
|
||||
id="create-group-modal_cancel"
|
||||
tabIndex={5}
|
||||
label={t("Common:CancelButton")}
|
||||
size={ButtonSize.normal}
|
||||
scale
|
||||
isDisabled={isLoading}
|
||||
onClick={onClose}
|
||||
/>
|
||||
</ModalDialog.Footer>
|
||||
</ModalDialog>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
|
@ -155,87 +155,87 @@ const EditGroupDialog = ({
|
||||
.finally(() => setFetchMembersIsLoading(false));
|
||||
}, [group.id]);
|
||||
|
||||
if (selectGroupMangerPanelIsVisible)
|
||||
return (
|
||||
<SelectGroupManagerPanel
|
||||
isVisible={selectGroupMangerPanelIsVisible}
|
||||
onClose={onHideSelectGroupManagerPanel}
|
||||
onParentPanelClose={onClose}
|
||||
setGroupManager={setGroupManager}
|
||||
/>
|
||||
);
|
||||
|
||||
if (selectMembersPanelIsVisible)
|
||||
return (
|
||||
<SelectGroupMembersPanel
|
||||
isVisible={selectMembersPanelIsVisible}
|
||||
onClose={onHideSelectMembersPanel}
|
||||
onParentPanelClose={onClose}
|
||||
groupManager={groupParams.groupManager}
|
||||
groupMembers={groupParams.groupMembers}
|
||||
setGroupMembers={setGroupMembers}
|
||||
/>
|
||||
);
|
||||
|
||||
return (
|
||||
<ModalDialog
|
||||
displayType="aside"
|
||||
withBodyScroll
|
||||
visible={visible}
|
||||
onClose={onClose}
|
||||
withFooterBorder
|
||||
// isScrollLocked={isScrollLocked}
|
||||
// isOauthWindowOpen={isOauthWindowOpen}
|
||||
>
|
||||
<ModalDialog.Header>
|
||||
{t("PeopleTranslations:EditGroup")}
|
||||
</ModalDialog.Header>
|
||||
<>
|
||||
<ModalDialog
|
||||
displayType="aside"
|
||||
withBodyScroll
|
||||
visible={visible}
|
||||
onClose={onClose}
|
||||
withFooterBorder
|
||||
// isScrollLocked={isScrollLocked}
|
||||
// isOauthWindowOpen={isOauthWindowOpen}
|
||||
>
|
||||
<ModalDialog.Header>
|
||||
{t("PeopleTranslations:EditGroup")}
|
||||
</ModalDialog.Header>
|
||||
|
||||
<ModalDialog.Body>
|
||||
<GroupNameParam
|
||||
groupName={groupParams.groupName}
|
||||
onChangeGroupName={onChangeGroupName}
|
||||
/>
|
||||
<HeadOfGroup
|
||||
groupManager={groupParams.groupManager}
|
||||
setGroupManager={setGroupManager}
|
||||
groupMembers={groupParams.groupMembers}
|
||||
setGroupMembers={setGroupMembers}
|
||||
onShowSelectGroupManagerPanel={onShowSelectGroupManagerPanel}
|
||||
/>
|
||||
{!isFetchMembersLoading && (
|
||||
<MembersParam
|
||||
<ModalDialog.Body>
|
||||
<GroupNameParam
|
||||
groupName={groupParams.groupName}
|
||||
onChangeGroupName={onChangeGroupName}
|
||||
/>
|
||||
<HeadOfGroup
|
||||
groupManager={groupParams.groupManager}
|
||||
setGroupManager={setGroupManager}
|
||||
groupMembers={groupParams.groupMembers}
|
||||
setGroupMembers={setGroupMembers}
|
||||
onShowSelectMembersPanel={onShowSelectMembersPanel}
|
||||
onShowSelectGroupManagerPanel={onShowSelectGroupManagerPanel}
|
||||
/>
|
||||
)}
|
||||
</ModalDialog.Body>
|
||||
{!isFetchMembersLoading && (
|
||||
<MembersParam
|
||||
groupManager={groupParams.groupManager}
|
||||
groupMembers={groupParams.groupMembers}
|
||||
setGroupMembers={setGroupMembers}
|
||||
onShowSelectMembersPanel={onShowSelectMembersPanel}
|
||||
/>
|
||||
)}
|
||||
</ModalDialog.Body>
|
||||
|
||||
<ModalDialog.Footer>
|
||||
<Button
|
||||
id="edit-group-modal_submit"
|
||||
tabIndex={5}
|
||||
label={t("Common:SaveButton")}
|
||||
size="normal"
|
||||
primary
|
||||
scale
|
||||
onClick={onEditGroup}
|
||||
isDisabled={notEnoughGroupParamsToEdit || groupParamsNotChanged}
|
||||
isLoading={isCreateGroupLoading}
|
||||
<ModalDialog.Footer>
|
||||
<Button
|
||||
id="edit-group-modal_submit"
|
||||
tabIndex={5}
|
||||
label={t("Common:SaveButton")}
|
||||
size="normal"
|
||||
primary
|
||||
scale
|
||||
onClick={onEditGroup}
|
||||
isDisabled={notEnoughGroupParamsToEdit || groupParamsNotChanged}
|
||||
isLoading={isCreateGroupLoading}
|
||||
/>
|
||||
<Button
|
||||
id="edit-group-modal_cancel"
|
||||
tabIndex={5}
|
||||
label={t("Common:CancelButton")}
|
||||
size="normal"
|
||||
scale
|
||||
isDisabled={isCreateGroupLoading}
|
||||
onClick={onClose}
|
||||
/>
|
||||
</ModalDialog.Footer>
|
||||
</ModalDialog>
|
||||
|
||||
{selectGroupMangerPanelIsVisible && (
|
||||
<SelectGroupManagerPanel
|
||||
isVisible={selectGroupMangerPanelIsVisible}
|
||||
onClose={onHideSelectGroupManagerPanel}
|
||||
onParentPanelClose={onClose}
|
||||
setGroupManager={setGroupManager}
|
||||
/>
|
||||
<Button
|
||||
id="edit-group-modal_cancel"
|
||||
tabIndex={5}
|
||||
label={t("Common:CancelButton")}
|
||||
size="normal"
|
||||
scale
|
||||
isDisabled={isCreateGroupLoading}
|
||||
onClick={onClose}
|
||||
)}
|
||||
|
||||
{selectMembersPanelIsVisible && (
|
||||
<SelectGroupMembersPanel
|
||||
isVisible={selectMembersPanelIsVisible}
|
||||
onClose={onHideSelectMembersPanel}
|
||||
onParentPanelClose={onClose}
|
||||
groupManager={groupParams.groupManager}
|
||||
groupMembers={groupParams.groupMembers}
|
||||
setGroupMembers={setGroupMembers}
|
||||
/>
|
||||
</ModalDialog.Footer>
|
||||
</ModalDialog>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
|
@ -59,8 +59,10 @@ const SelectGroupManagerPanel = ({
|
||||
onParentPanelClose={onParentPanelClose}
|
||||
setDataItems={onSelectGroupManager}
|
||||
accessOptions={accessOptions}
|
||||
isEncrypted={true}
|
||||
isEncrypted
|
||||
defaultAccess={ShareAccessRights.FullAccess}
|
||||
withoutBackground
|
||||
withBlur={false}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
|
@ -84,6 +84,8 @@ const SelectGroupMembersPanel = ({
|
||||
withAccessRights={false}
|
||||
isEncrypted
|
||||
defaultAccess={ShareAccessRights.FullAccess}
|
||||
withoutBackground
|
||||
withBlur={false}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
|
@ -1798,6 +1798,14 @@ class ContextOptionsStore {
|
||||
isSeparator: true,
|
||||
disabled: !deleteItems || isRootThirdPartyFolder,
|
||||
},
|
||||
{
|
||||
key: "remove-from-recent",
|
||||
label: t("RemoveFromList"),
|
||||
icon: RemoveOutlineSvgUrl,
|
||||
onClick: () =>
|
||||
this.filesActionsStore.onClickRemoveFromRecent(selection),
|
||||
disabled: !this.treeFoldersStore.isRecentTab,
|
||||
},
|
||||
{
|
||||
key: "delete",
|
||||
label: t("Common:Delete"),
|
||||
|
@ -28,6 +28,10 @@
|
||||
|
||||
const path = require("path");
|
||||
const pkg = require("./package.json");
|
||||
const BannerPlugin = require("webpack").BannerPlugin;
|
||||
const TerserPlugin = require("terser-webpack-plugin");
|
||||
|
||||
const version = pkg.version;
|
||||
|
||||
const nextConfig = {
|
||||
basePath: "/doceditor",
|
||||
@ -56,8 +60,52 @@ const nextConfig = {
|
||||
},
|
||||
};
|
||||
|
||||
const getBuildDate = () => {
|
||||
const timeElapsed = Date.now();
|
||||
const today = new Date(timeElapsed);
|
||||
return JSON.stringify(today.toISOString().split(".")[0] + "Z");
|
||||
};
|
||||
|
||||
const getBuildYear = () => {
|
||||
const timeElapsed = Date.now();
|
||||
const today = new Date(timeElapsed);
|
||||
return today.getFullYear();
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
webpack(config) {
|
||||
config.devtool = "source-map";
|
||||
|
||||
if (config.mode === "production") {
|
||||
config.optimization = {
|
||||
splitChunks: { chunks: "all" },
|
||||
minimize: true,
|
||||
minimizer: [
|
||||
new TerserPlugin({
|
||||
terserOptions: {
|
||||
format: {
|
||||
comments: /\*\s*\(c\)\s+Copyright\s+Ascensio\s+System\s+SIA/i,
|
||||
},
|
||||
},
|
||||
extractComments: false,
|
||||
}),
|
||||
],
|
||||
};
|
||||
|
||||
config.plugins.push(
|
||||
new BannerPlugin({
|
||||
raw: true,
|
||||
banner: `/*
|
||||
* (c) Copyright Ascensio System SIA 2009-${getBuildYear()}. All rights reserved
|
||||
*
|
||||
* https://www.onlyoffice.com/
|
||||
*
|
||||
* Version: ${version} (build: ${getBuildDate()})
|
||||
*/`,
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
// Grab the existing rule that handles SVG imports
|
||||
const fileLoaderRule = config.module.rules.find((rule) =>
|
||||
rule.test?.test?.(".svg"),
|
||||
|
@ -122,7 +122,7 @@ const template: Template = (
|
||||
|
||||
const page = `
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<html lang="en" translate="no">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title> ${documentTitle} </title>
|
||||
@ -132,6 +132,7 @@ const template: Template = (
|
||||
content="width=device-width, initial-scale=1, shrink-to-fit=no, user-scalable=no, viewport-fit=cover"
|
||||
/>
|
||||
<meta name="theme-color" content="#000000" />
|
||||
<meta name="google" content="notranslate" />
|
||||
<link rel="stylesheet preload" href=${fontsCssUrl} as="style" type="text/css" crossorigin/>
|
||||
|
||||
<link id="favicon" rel="shortcut icon" href=${favicon} />
|
||||
|
@ -34,6 +34,7 @@ const { CleanWebpackPlugin } = require("clean-webpack-plugin");
|
||||
const ExternalTemplateRemotesPlugin = require("external-remotes-plugin");
|
||||
const CopyPlugin = require("copy-webpack-plugin");
|
||||
const TerserPlugin = require("terser-webpack-plugin");
|
||||
const BannerPlugin = require("webpack").BannerPlugin;
|
||||
|
||||
const minifyJson = require("@docspace/shared/utils/minifyJson");
|
||||
const sharedDeps = require("@docspace/shared/constants/sharedDependencies");
|
||||
@ -42,6 +43,7 @@ const baseConfig = require("./webpack.base.js");
|
||||
const runtime = require("../../runtime.json");
|
||||
const pkg = require("../package.json");
|
||||
const deps = pkg.dependencies || {};
|
||||
const version = pkg.version;
|
||||
const dateHash = runtime?.date || "";
|
||||
|
||||
for (let dep in sharedDeps) {
|
||||
@ -169,13 +171,35 @@ const clientConfig = {
|
||||
],
|
||||
};
|
||||
|
||||
const getBuildDate = () => {
|
||||
const timeElapsed = Date.now();
|
||||
const today = new Date(timeElapsed);
|
||||
return JSON.stringify(today.toISOString().split(".")[0] + "Z");
|
||||
};
|
||||
|
||||
const getBuildYear = () => {
|
||||
const timeElapsed = Date.now();
|
||||
const today = new Date(timeElapsed);
|
||||
return today.getFullYear();
|
||||
};
|
||||
|
||||
module.exports = (env, argv) => {
|
||||
if (argv.mode === "production") {
|
||||
clientConfig.devtool = "source-map";
|
||||
clientConfig.mode = "production";
|
||||
clientConfig.optimization = {
|
||||
splitChunks: { chunks: "all" },
|
||||
minimize: !env.minimize,
|
||||
minimizer: [new TerserPlugin()],
|
||||
minimizer: [
|
||||
new TerserPlugin({
|
||||
terserOptions: {
|
||||
format: {
|
||||
comments: /\*\s*\(c\)\s+Copyright\s+Ascensio\s+System\s+SIA/i,
|
||||
},
|
||||
},
|
||||
extractComments: false,
|
||||
}),
|
||||
],
|
||||
};
|
||||
} else {
|
||||
clientConfig.mode = "development";
|
||||
@ -200,6 +224,16 @@ module.exports = (env, argv) => {
|
||||
}`
|
||||
),
|
||||
}),
|
||||
new BannerPlugin({
|
||||
raw: true,
|
||||
banner: `/*
|
||||
* (c) Copyright Ascensio System SIA 2009-${getBuildYear()}. All rights reserved
|
||||
*
|
||||
* https://www.onlyoffice.com/
|
||||
*
|
||||
* Version: ${version} (build: ${getBuildDate()})
|
||||
*/`,
|
||||
}),
|
||||
];
|
||||
|
||||
return merge(baseConfig, clientConfig);
|
||||
|
@ -146,6 +146,16 @@ const SubMenu = (props: {
|
||||
|
||||
if (subMenuRef.current) {
|
||||
subMenuRef.current.style.top = "0px";
|
||||
|
||||
const submenuRects = subMenuRef.current.getBoundingClientRect();
|
||||
|
||||
if (submenuRects.bottom > viewport.height) {
|
||||
const submenuMargin = 16;
|
||||
const topOffset = submenuRects.bottom - viewport.height + submenuMargin;
|
||||
|
||||
subMenuRef.current.style.top = `${-1 * topOffset}px`;
|
||||
}
|
||||
|
||||
if (isRtl) {
|
||||
if (subListWidth < parseInt(`${containerOffset.left}`, 10)) {
|
||||
subMenuRef.current.style.left = `${-1 * subListWidth}px`;
|
||||
|
@ -427,11 +427,11 @@ const FilterBlock = ({
|
||||
const isEqualFilter = () => {
|
||||
let isEqual = true;
|
||||
|
||||
if (
|
||||
filterValues.length === 0 ||
|
||||
selectedFilterValue.length > filterValues.length
|
||||
)
|
||||
return !isEqual;
|
||||
// if (
|
||||
// filterValues.length === 0 ||
|
||||
// selectedFilterValue.length > filterValues.length
|
||||
// )
|
||||
// return !isEqual;
|
||||
|
||||
if (
|
||||
(selectedFilterValue.length === 0 && filterValues.length > 0) ||
|
||||
@ -477,7 +477,7 @@ const FilterBlock = ({
|
||||
return !isEqual;
|
||||
};
|
||||
|
||||
const showFooter = isEqualFilter();
|
||||
const showFooter = isLoading ? false : isEqualFilter();
|
||||
|
||||
const filterBlockComponent = (
|
||||
<>
|
||||
|
Loading…
Reference in New Issue
Block a user