Merge branch 'develop' into feature/login-nextjs
This commit is contained in:
commit
c02c69d222
@ -17,7 +17,7 @@
|
||||
"MakeRoomPrivateTitle": "将房间设为私密",
|
||||
"PeopleSelectorInfo": "只有房间管理员或协作空间管理员才能成为房间的所有者",
|
||||
"PublicRoomBarDescription": "所有人都可以通过链接进入此房间。外部用户拥有“仅查看”权限,可查看所有文件",
|
||||
"PublicRoomDescription": "邀请用户通过外部链接查看文档,无需注册。您也可以将此房间嵌入任意网络界面。",
|
||||
"PublicRoomDescription": "通过外部链接,邀请其他用户查看文档而无需注册。您也可以将此类房间嵌入任意的网络界面。",
|
||||
"PublicRoomSystemFoldersDescription": "不同完成阶段的表单副本存储在“系统”文件夹中。正在填写的表单存储在“处理中”文件夹中,填写完成的表单存储在“完成”文件夹中。",
|
||||
"PublicRoomSystemFoldersTitle": "系统文件夹",
|
||||
"ReviewRoomDescription": "请求审阅或评论文档",
|
||||
|
@ -33,8 +33,8 @@
|
||||
"DefaultColumnsOption": "默认(数量取决于屏幕宽度)",
|
||||
"Descending": "降序",
|
||||
"DisplayColumns": "显示文件行中的列",
|
||||
"DocspaceDescription": "嵌入整个协作空间,以支持用户与所有房间、文件和设置交互。",
|
||||
"EditorDescription": "嵌入编辑器,以支持用户通过对应的间编辑文件。",
|
||||
"DocspaceDescription": "嵌入整个协作空间,让用户能够与所有房间、文件和设置进行交互。",
|
||||
"EditorDescription": "嵌入编辑器,让用户能够从对应的房间编辑文件。",
|
||||
"ElementCalledAfterClicking": "点击后元素会被调用",
|
||||
"ElementItself": "元素本身",
|
||||
"EmbedCodeSuccessfullyCopied": "获取要插入的代码",
|
||||
@ -48,7 +48,7 @@
|
||||
"FileId": "文件 ID",
|
||||
"FilePreview": "文件预览",
|
||||
"FileSelector": "文件选择器",
|
||||
"FileSelectorDescription": "嵌入文件选择器,以支持用户访问可用文件列表中的任意文件。",
|
||||
"FileSelectorDescription": "嵌入文件选择器,让用户能够访问允许列表中的文件。",
|
||||
"FilesSearchDescription": "在打开的文件夹/房间内搜索文件。",
|
||||
"FileTypeDisplay": "文件类型显示",
|
||||
"FrameId": "帧 ID",
|
||||
@ -76,13 +76,13 @@
|
||||
"MenuDescription": "如果用户不需要进入其他板块,您可以关闭左侧菜单。",
|
||||
"MobileOnly": "仅移动设备",
|
||||
"Page": "显示页面(页数)",
|
||||
"PublicRoomDescription": "嵌入公共房间,支持用户无需注册即可查看其中储存的所有文档。",
|
||||
"PublicRoomDescription": "嵌入公共房间,让用户无需注册即可查看公共房间中的所有文档。",
|
||||
"RightPanelCollapsed": "右侧面板已收起",
|
||||
"RoomOrFolder": "房间或文件夹",
|
||||
"RoomOrFolderDescription": "可选择要显示的板块、房间或文件夹",
|
||||
"RoomPreview": "房间预览",
|
||||
"RoomSelector": "房间选择器",
|
||||
"RoomSelectorDescription": "嵌入房间选择器,支持用户访问可用房间列表中的任意房间。",
|
||||
"RoomSelectorDescription": "嵌入房间选择器,让用户能够访问允许列表中的房间。",
|
||||
"RoomTypeDisplay": "房间类型显示",
|
||||
"Rotate": "旋转",
|
||||
"Scale": "缩放",
|
||||
@ -104,5 +104,5 @@
|
||||
"SubtitleDescription": "包含当前目录的附加注释或描述的副标题。",
|
||||
"TabPlugins": "选项卡插件",
|
||||
"Viewer": "查看器",
|
||||
"ViewerDescription": "嵌入查看器,以支持用户打开文件,通过对应的房间查看。"
|
||||
"ViewerDescription": "嵌入查看器,让用户能够从对应的房间打开文件并进行查看。"
|
||||
}
|
||||
|
@ -84,13 +84,13 @@
|
||||
"DataBackup": "数据备份",
|
||||
"DataImport": "数据导入",
|
||||
"DataImportComplete": "数据导入完成",
|
||||
"DataImportDescription": "将第三方服务数据导入 ONLYOFFICE 协作空间。数据导入支持传输数据,例如所有用户、其个人和共享文档。",
|
||||
"DataImportDescription": "将第三方数据导入 ONLYOFFICE 协作空间。该功能可以转移数据,例如所有用户、他们的个人文件或与其共享的文件。",
|
||||
"DataImportProcessing": "数据导入处理",
|
||||
"Deactivate": "停用",
|
||||
"DeactivateOrDeletePortal": "停用或删除协作空间。",
|
||||
"DefaultSettings": "默认设置",
|
||||
"DefineQuotaPerRoom": "定义每个房间的配额",
|
||||
"DefineQuotaPerUser": "定义每位用户的配额",
|
||||
"DefineQuotaPerRoom": "设置每个房间的额度",
|
||||
"DefineQuotaPerUser": "设置每个用户的额度",
|
||||
"DeleteDocSpace": "删除协作空间",
|
||||
"DeleteDocSpaceInfo": "删除空间前,请确保已关闭自动计费。您可在 <1>Stripe 客户门户</1>中查看自动计费状态。",
|
||||
"DeleteTheme": "删除主题",
|
||||
@ -202,8 +202,8 @@
|
||||
"ProjectsDescription": "每个项目会被导入为一个房间,包含项目中所有的文档和用户。项目经理会成为房间的所有者",
|
||||
"QuotaPerRoom": "每个房间的配额",
|
||||
"QuotaPerUser": "每位用户的配额",
|
||||
"Quotas": "配额",
|
||||
"QuotasDescription": "您可以在此处设置用户和房间的存储空间配额。<1>帮助中心。</1>",
|
||||
"Quotas": "分配额度",
|
||||
"QuotasDescription": "您可以设置用户和房间的储存空间额度。 <1>帮助中心。</1>",
|
||||
"Recalculate": "重新计算",
|
||||
"RecoveryFileNotSelected": "恢复错误。未选择恢复文件",
|
||||
"RestoreBackup": "数据恢复",
|
||||
@ -232,8 +232,8 @@
|
||||
"SessionLifetime": "会话寿命",
|
||||
"SessionLifetimeMobileDescription": "通过会话生存期,可设置协作空间用户需要再输入凭据才能访问空间的时间(单位为分钟)。",
|
||||
"SessionLifetimeSettingDescription": "调整会话生命周期,可定义自动注销的时间段。保存后,会对所有用户执行注销。",
|
||||
"SetDefaultRoomQuota": "为协作空间中的房间设置默认存储空间配额。房间管理员后续可对每个房间单独调整。",
|
||||
"SetDefaultUserQuota": "为协作空间中的用户设置存储空间配额。用户配额会影响每位用户“我的文档”文件夹的存储空间上限。",
|
||||
"SetDefaultRoomQuota": "设置此协作空间中,房间的默认储存空间额度。房间管理员后续可对每个房间进行单独调整。",
|
||||
"SetDefaultUserQuota": "设置此协作空间的用户的储存空间额度。此操作会影响每位用户“我的文档”板块的储存空间限制。",
|
||||
"SettingPasswordDescription": "配置密码强度设置,强制使用更安全的强密码。",
|
||||
"SettingPasswordStrengthMobileDescription": "通过“密码强度设置”,确定密码阻止猜测和暴力攻击的有效性。",
|
||||
"SettingPasswordTittle": "密码强度设置",
|
||||
|
@ -24,7 +24,7 @@
|
||||
"LinkCopySuccess": "链接已复制到剪贴板中",
|
||||
"LinkHasExpiredAndHasBeenDisabled": "此链接过期,已被禁用",
|
||||
"LinkValidTime": "该链接仅在{{days_count}}天内有效。",
|
||||
"NewForm": "PDF表格",
|
||||
"NewForm": "PDF 表单",
|
||||
"Other": "其他",
|
||||
"OwnerChange": "变更所有者",
|
||||
"Presentations": "演示文稿",
|
||||
@ -42,7 +42,7 @@
|
||||
"RoleUserDescription": "用户仅可访问管理员已邀请其加入的房间。其不能创建房间、文件夹或文件。",
|
||||
"RoleViewer": "可查看",
|
||||
"RoleViewerDescription": "文件查看",
|
||||
"SearchByHeadOfGroup": "按群组负责人进行搜索",
|
||||
"SearchByHeadOfGroup": "按组长进行搜索",
|
||||
"SearchByOwner": "按所有者搜索",
|
||||
"Spreadsheets": "电子表格",
|
||||
"SubNewForm": "空白",
|
||||
|
@ -339,7 +339,7 @@ const FilesSelectorWrapper = ({
|
||||
isThirdParty={isThirdParty}
|
||||
rootThirdPartyId={rootThirdPartyId}
|
||||
roomsFolderId={roomsFolderId}
|
||||
currentFolderId={currentFolderId || 0}
|
||||
currentFolderId={currentFolderId}
|
||||
parentId={parentId}
|
||||
rootFolderType={rootFolderType || FolderType.Rooms}
|
||||
currentDeviceType={currentDeviceType}
|
||||
@ -485,7 +485,7 @@ export default inject(
|
||||
(rootFolderType === FolderType.Archive ||
|
||||
rootFolderType === FolderType.TRASH
|
||||
? undefined
|
||||
: selectedId !== selectionsWithoutEditing[0]?.id
|
||||
: selectedId === selectionsWithoutEditing[0]?.id
|
||||
? parentId
|
||||
: selectedId);
|
||||
|
||||
|
@ -53,6 +53,7 @@ const Accounts = (props) => {
|
||||
setPeopleBufferSelection,
|
||||
|
||||
showStorageInfo,
|
||||
standalone,
|
||||
} = props;
|
||||
|
||||
const navigate = useNavigate();
|
||||
@ -233,18 +234,22 @@ const Accounts = (props) => {
|
||||
</Text>
|
||||
{typeData}
|
||||
|
||||
<Text className={"info_field"} noSelect title={t("UserStatus")}>
|
||||
{t("UserStatus")}
|
||||
</Text>
|
||||
<Text
|
||||
className={"info_data first-row"}
|
||||
fontSize={"13px"}
|
||||
fontWeight={600}
|
||||
noSelect
|
||||
title={statusLabel}
|
||||
>
|
||||
{statusText}
|
||||
</Text>
|
||||
{!standalone && (
|
||||
<>
|
||||
<Text className={"info_field"} noSelect title={t("UserStatus")}>
|
||||
{t("UserStatus")}
|
||||
</Text>
|
||||
<Text
|
||||
className={"info_data first-row"}
|
||||
fontSize={"13px"}
|
||||
fontWeight={600}
|
||||
noSelect
|
||||
title={statusLabel}
|
||||
>
|
||||
{statusText}
|
||||
</Text>
|
||||
</>
|
||||
)}
|
||||
{showStorageInfo && (
|
||||
<>
|
||||
<Text
|
||||
@ -310,6 +315,7 @@ export default inject(
|
||||
accessRightsStore,
|
||||
infoPanelStore,
|
||||
currentQuotaStore,
|
||||
settingsStore,
|
||||
}) => {
|
||||
const { isOwner, isAdmin, id: selfId } = userStore.user;
|
||||
const { changeType: changeUserType, usersStore } = peopleStore;
|
||||
@ -323,6 +329,8 @@ export default inject(
|
||||
} = peopleStore.selectionStore;
|
||||
|
||||
const { showStorageInfo } = currentQuotaStore;
|
||||
const { standalone } = settingsStore;
|
||||
|
||||
return {
|
||||
isOwner,
|
||||
isAdmin,
|
||||
@ -335,6 +343,7 @@ export default inject(
|
||||
setPeopleSelection,
|
||||
setPeopleBufferSelection,
|
||||
showStorageInfo,
|
||||
standalone,
|
||||
};
|
||||
},
|
||||
)(
|
||||
|
@ -147,7 +147,7 @@ const Editor = ({
|
||||
)?.["Editor"] as {
|
||||
[key: string]: string;
|
||||
}
|
||||
)?.["FileLocation"];
|
||||
)?.["FileLocation"]; // t("FileLocation");
|
||||
|
||||
if (editorGoBack === "false" || user?.isVisitor || !user) {
|
||||
} else if (editorGoBack === "event") {
|
||||
@ -305,3 +305,4 @@ const Editor = ({
|
||||
};
|
||||
|
||||
export default Editor;
|
||||
|
||||
|
@ -126,6 +126,7 @@ export const StyledBody = styled.div`
|
||||
|
||||
max-width: 960px;
|
||||
width: 100vw;
|
||||
margin-bottom: 16px;
|
||||
|
||||
@media ${mobile} {
|
||||
margin: 0 auto;
|
||||
|
@ -155,7 +155,7 @@ const Login = ({
|
||||
: window.open(
|
||||
url,
|
||||
"login",
|
||||
"width=800,height=500,status=no,toolbar=no,menubar=no,resizable=yes,scrollbars=no",
|
||||
"width=800,height=500,status=no,toolbar=no,menubar=no,resizable=yes,scrollbars=no,popup=yes",
|
||||
);
|
||||
|
||||
const code: string = await getOAuthToken(tokenGetterWin);
|
||||
|
@ -107,6 +107,7 @@ export type UseFilesHelpersProps = {
|
||||
value: number | string | undefined | TBreadCrumb[],
|
||||
) => void;
|
||||
isRoomsOnly: boolean;
|
||||
isUserOnly?: boolean;
|
||||
rootThirdPartyId?: string;
|
||||
getRoomList?: (
|
||||
startIndex: number,
|
||||
@ -149,6 +150,7 @@ export type FilesSelectorProps = (
|
||||
value: number | string | undefined | TBreadCrumb[],
|
||||
) => void;
|
||||
isUserOnly?: boolean;
|
||||
openRoot?: boolean;
|
||||
isRoomsOnly: boolean;
|
||||
isThirdParty: boolean;
|
||||
rootThirdPartyId?: string;
|
||||
|
@ -65,6 +65,7 @@ const useFilesHelper = ({
|
||||
getRootData,
|
||||
onSetBaseFolderPath,
|
||||
isRoomsOnly,
|
||||
isUserOnly,
|
||||
rootThirdPartyId,
|
||||
getRoomList,
|
||||
getIcon,
|
||||
@ -145,7 +146,7 @@ const useFilesHelper = ({
|
||||
}
|
||||
}
|
||||
|
||||
const id = selectedItemId || "";
|
||||
const id = isUserOnly ? "@my" : selectedItemId || "";
|
||||
|
||||
filter.folder = id.toString();
|
||||
|
||||
@ -153,7 +154,7 @@ const useFilesHelper = ({
|
||||
folderId: string | number,
|
||||
isErrorPath = false,
|
||||
) => {
|
||||
if (initRef.current && getRootData) {
|
||||
if (initRef.current && getRootData && folderId !== "@my") {
|
||||
const folder = await getFolderInfo(folderId, true);
|
||||
|
||||
const isArchive = folder.rootFolderType === FolderType.Archive;
|
||||
@ -251,7 +252,7 @@ const useFilesHelper = ({
|
||||
// if (item.roomType) breadCrumbs[idx].isRoom = true;
|
||||
// });
|
||||
|
||||
if (!isThirdParty && !isRoomsOnly)
|
||||
if (!isThirdParty && !isRoomsOnly && !isUserOnly)
|
||||
breadCrumbs.unshift({ ...DEFAULT_BREAD_CRUMB });
|
||||
|
||||
onSetBaseFolderPath?.(isErrorPath ? [] : breadCrumbs);
|
||||
@ -312,6 +313,7 @@ const useFilesHelper = ({
|
||||
setIsNextPageLoading,
|
||||
searchValue,
|
||||
filterParam,
|
||||
isUserOnly,
|
||||
selectedItemId,
|
||||
getRootData,
|
||||
setSelectedItemSecurity,
|
||||
|
@ -76,6 +76,7 @@ const FilesSelector = ({
|
||||
onSetBaseFolderPath,
|
||||
isUserOnly,
|
||||
isRoomsOnly,
|
||||
openRoot,
|
||||
isThirdParty,
|
||||
rootThirdPartyId,
|
||||
roomsFolderId,
|
||||
@ -186,6 +187,7 @@ const FilesSelector = ({
|
||||
setIsRoot,
|
||||
searchValue,
|
||||
isRoomsOnly,
|
||||
|
||||
onSetBaseFolderPath,
|
||||
isInit,
|
||||
setIsInit,
|
||||
@ -211,6 +213,7 @@ const FilesSelector = ({
|
||||
getRootData,
|
||||
onSetBaseFolderPath,
|
||||
isRoomsOnly,
|
||||
isUserOnly,
|
||||
rootThirdPartyId,
|
||||
getRoomList,
|
||||
getIcon,
|
||||
@ -289,7 +292,7 @@ const FilesSelector = ({
|
||||
return;
|
||||
}
|
||||
|
||||
if (!currentFolderId) {
|
||||
if (!currentFolderId && !isUserOnly && !openRoot) {
|
||||
setSelectedItemType("rooms");
|
||||
return;
|
||||
}
|
||||
@ -311,9 +314,11 @@ const FilesSelector = ({
|
||||
currentFolderId,
|
||||
isRoomsOnly,
|
||||
isThirdParty,
|
||||
isUserOnly,
|
||||
parentId,
|
||||
roomsFolderId,
|
||||
rootFolderType,
|
||||
openRoot,
|
||||
setIsFirstLoad,
|
||||
]);
|
||||
|
||||
@ -439,10 +444,24 @@ const FilesSelector = ({
|
||||
);
|
||||
|
||||
React.useEffect(() => {
|
||||
if (selectedItemType === "rooms") getRoomList(0);
|
||||
if (selectedItemType === "rooms") {
|
||||
getRoomList(0);
|
||||
return;
|
||||
}
|
||||
if (openRoot && !selectedItemId) {
|
||||
getRootData();
|
||||
return;
|
||||
}
|
||||
if (selectedItemType === "files" && typeof selectedItemId !== "undefined")
|
||||
getFileList(0);
|
||||
}, [getFileList, getRoomList, selectedItemType, selectedItemId]);
|
||||
}, [
|
||||
getFileList,
|
||||
getRoomList,
|
||||
selectedItemType,
|
||||
selectedItemId,
|
||||
getRootData,
|
||||
openRoot,
|
||||
]);
|
||||
|
||||
const headerProps: TSelectorHeader = withHeader
|
||||
? { withHeader, headerProps: { headerLabel } }
|
||||
|
@ -126,7 +126,7 @@
|
||||
"Duplicate": "创建副本",
|
||||
"EditButton": "编辑",
|
||||
"Editing": "编辑",
|
||||
"Editor": "编辑器",
|
||||
"Editor": "可编辑",
|
||||
"Email": "电子邮件",
|
||||
"EmptyDescription": "之前邀请至协作空间或单独房间的用户列表将在此处展示。您可随时邀请这些用户进行协作。",
|
||||
"EmptyEmail": "没有解析邮件",
|
||||
@ -179,7 +179,7 @@
|
||||
"Groups": "群组",
|
||||
"GroupsNotFoundDescription": "没有与您的搜索条件匹配的群组。请调整搜索参数,或清除搜索字段查看完整的群组列表。",
|
||||
"HasFullAccess": "有完整的房间访问权限",
|
||||
"HeadOfGroup": "群组负责人",
|
||||
"HeadOfGroup": "组长",
|
||||
"HelpCenter": "帮助中心",
|
||||
"HideArticleMenu": "隐藏菜单",
|
||||
"Homepage": "主页",
|
||||
|
Loading…
Reference in New Issue
Block a user