Merge branch 'release/v2.6.0' of https://github.com/ONLYOFFICE/DocSpace-client into release/v2.6.0

This commit is contained in:
Timofey Boyko 2024-07-17 15:02:51 +03:00
commit cf8258ca9e
30 changed files with 101 additions and 50 deletions

View File

@ -27,10 +27,11 @@
import { observer, inject } from "mobx-react";
//import { useLocation } from "react-router-dom";
import { Events, FileExtensions } from "@docspace/shared/enums";
import RootFolderContainer from "./RootFolderContainer";
import EmptyFilterContainer from "./EmptyFilterContainer";
import EmptyFolderContainer from "./EmptyFolderContainer";
import { Events } from "@docspace/shared/enums";
import RoomNoAccessContainer from "./RoomNoAccessContainer";
const linkStyles = {
@ -65,9 +66,12 @@ const EmptyContainer = ({
const event = new Event(Events.CREATE);
const isPDF = format === FileExtensions.PDF;
const payload = {
extension: format,
id: -1,
edit: isPDF,
};
event.payload = payload;

View File

@ -34,6 +34,7 @@ import RoomTypeListLoader from "@docspace/shared/skeletons/create-edit-room/Room
import { RoomsTypeValues } from "@docspace/shared/utils/common";
const StyledRoomTypeList = styled.div`
margin-top: 20px;
width: 100%;
display: flex;
flex-direction: column;

View File

@ -54,6 +54,7 @@ const StyledSetRoomParams = styled.div`
flex-direction: column;
width: 100%;
gap: 22px;
margin-top: 20px;
.icon-editor_text {
margin-bottom: 6px;

View File

@ -118,12 +118,11 @@ const ScrollList = styled.div`
? "auto"
: props.offsetTop && `calc(100% - ${props.offsetTop}px)`};
${!isMobile() &&
css`
.row-item {
.row-item {
@media not ${mobile} {
width: 448px !important;
}
`}
}
`;
const StyledBlock = styled.div`
@ -264,7 +263,7 @@ const StyledInviteInput = styled.div`
.append {
display: ${(props) => (props.isShowCross ? "flex" : "none")};
align-items: center;
padding-right: 8px;
padding-inline-end: 8px;
cursor: default;
}
@ -342,8 +341,8 @@ const StyledInviteInputContainer = styled.div`
overflow-x: hidden;
}
.scroll-body > div {
justify-content: left;
padding-left: 16px;
justify-content: flex-start;
padding-inline-start: 16px;
}
}
}
@ -373,7 +372,7 @@ const StyledDropDown = styled(DropDown)`
.email-list_add-button {
display: flex;
margin-left: auto;
margin-inline-start: auto;
align-items: center;
gap: 4px;
@ -381,8 +380,13 @@ const StyledDropDown = styled(DropDown)`
color: #4781d1;
}
svg path {
fill: #4781d1;
svg {
${({ theme }) =>
theme.interfaceDirection === "rtl" && "transform: scaleX(-1);"};
path {
fill: #4781d1;
}
}
}
}

View File

@ -314,7 +314,7 @@ const useFiles = ({
fromTemplate: true,
title: gallerySelected.attributes.name_form,
openEditor: !isFormRoom,
edit: true,
edit: !isFormRoom,
};
event.payload = payload;

View File

@ -26,6 +26,7 @@
import { useRef } from "react";
import { withTranslation } from "react-i18next";
import { useTheme } from "styled-components";
import { Text } from "@docspace/shared/components/text";
import { Tooltip } from "@docspace/shared/components/tooltip";
@ -48,6 +49,7 @@ const AccountsItemTitle = ({
return <></>;
}
const theme = useTheme();
const itemTitleRef = useRef();
const isPending =
@ -113,7 +115,7 @@ const AccountsItemTitle = ({
className="sso-badge"
label={t("Common:SSO")}
color={"#FFFFFF"}
backgroundColor="#22C386"
backgroundColor={theme.isBase ? "#22C386" : "#2E5E4C"}
fontSize={"9px"}
fontWeight={800}
noHover
@ -132,7 +134,7 @@ const AccountsItemTitle = ({
className="ldap-badge"
label={t("Common:LDAP")}
color={"#FFFFFF"}
backgroundColor="#8570BD"
backgroundColor={theme.isBase ? "#8570BD" : "#544C6A"}
fontSize={"9px"}
fontWeight={800}
noHover

View File

@ -26,6 +26,7 @@
import { useRef } from "react";
import { withTranslation } from "react-i18next";
import { useTheme } from "styled-components";
import { Text } from "@docspace/shared/components/text";
import { ContextMenuButton } from "@docspace/shared/components/context-menu-button";
import { Avatar, AvatarSize } from "@docspace/shared/components/avatar";
@ -43,6 +44,7 @@ const GroupsItemTitle = ({
getGroupContextOptions,
}) => {
const itemTitleRef = useRef();
const theme = useTheme();
const getContextOptions = () =>
getGroupContextOptions(t, infoPanelSelection, true);
@ -88,7 +90,7 @@ const GroupsItemTitle = ({
className="ldap-badge"
label={t("Common:LDAP")}
color={"#FFFFFF"}
backgroundColor="#8570BD"
backgroundColor={theme.isBase ? "#8570BD" : "#544C6A"}
fontSize={"9px"}
fontWeight={800}
noHover

View File

@ -26,7 +26,7 @@
import React from "react";
import { inject, observer } from "mobx-react";
import styled, { css } from "styled-components";
import styled, { css, useTheme } from "styled-components";
import { withTranslation } from "react-i18next";
import { useNavigate, useLocation } from "react-router-dom";
@ -97,6 +97,7 @@ const Badges = ({
}) => {
const navigate = useNavigate();
const location = useLocation();
const theme = useTheme();
const onClickPaid = () => {
if (filter.payments === PaymentsType.Paid) return;
@ -130,7 +131,7 @@ const Badges = ({
className="accounts-badge"
label={t("Common:LDAP")}
color={"#FFFFFF"}
backgroundColor="#8570BD"
backgroundColor={theme.isBase ? "#8570BD" : "#544C6A"}
fontSize={"9px"}
fontWeight={800}
noHover
@ -143,7 +144,7 @@ const Badges = ({
className="accounts-badge"
label={t("SSO")}
color={"#FFFFFF"}
backgroundColor="#22C386"
backgroundColor={theme.isBase ? "#22C386" : "#2E5E4C"}
fontSize={"9px"}
fontWeight={800}
noHover
@ -155,7 +156,7 @@ const Badges = ({
<StyledPaidBadge
className="paid-badge accounts-badge"
label={t("Paid")}
backgroundColor={"#EDC409"}
backgroundColor={theme.isBase ? "#EDC409" : "#A38A1A"}
fontSize={"9px"}
fontWeight={800}
lineHeight={"13px"}

View File

@ -29,7 +29,7 @@ import ArrowPathReactSvgUrl from "PUBLIC_DIR/images/arrow.path.react.svg?url";
import ActionsHeaderTouchReactSvgUrl from "PUBLIC_DIR/images/actions.header.touch.react.svg?url";
import React from "react";
import { inject, observer } from "mobx-react";
import styled, { css } from "styled-components";
import styled, { css, useTheme } from "styled-components";
import { useNavigate, useLocation } from "react-router-dom";
import { withTranslation } from "react-i18next";
import Headline from "@docspace/shared/components/headline/Headline";
@ -189,6 +189,7 @@ const SectionHeaderContent = (props) => {
const navigate = useNavigate();
const location = useLocation();
const theme = useTheme();
const [state, setState] = React.useState({
header: "",
@ -390,7 +391,7 @@ const SectionHeaderContent = (props) => {
</div>
{isNeedPaidIcon ? (
<Badge
backgroundColor="#EDC409"
backgroundColor={theme.isBase ? "#EDC409" : "#A38A1A"}
label={t("Common:Paid")}
fontWeight="700"
className="settings-section_badge"

View File

@ -28,6 +28,7 @@ import React from "react";
import { observer } from "mobx-react";
import { useTranslation } from "react-i18next";
import { useTheme } from "styled-components";
import { Text } from "@docspace/shared/components/text";
import { HelpButton } from "@docspace/shared/components/help-button";
@ -53,6 +54,7 @@ const CommonWhiteLabel = ({
isEqualText,
isSaving,
}) => {
const theme = useTheme();
const { t } = useTranslation(["Settings", "Profile", "Common"]);
return (
@ -66,7 +68,7 @@ const CommonWhiteLabel = ({
{!isSettingPaid && (
<Badge
className="paid-badge"
backgroundColor="#EDC409"
backgroundColor={theme.isBase ? "#EDC409" : "#A38A1A"}
label={t("Common:Paid")}
isPaidBadge={true}
/>

View File

@ -73,6 +73,7 @@ const WhiteLabel = (props) => {
resetIsInit,
standalone,
theme,
} = props;
const navigate = useNavigate();
const location = useLocation();
@ -278,7 +279,7 @@ const WhiteLabel = (props) => {
<Badge
className="paid-badge"
fontWeight="700"
backgroundColor="#EDC409"
backgroundColor={theme.isBase ? "#EDC409" : "#A38A1A"}
label={t("Common:Paid")}
isPaidBadge={true}
/>

View File

@ -26,6 +26,7 @@
import CombinedShapeSvgUrl from "PUBLIC_DIR/images/combined.shape.svg?url";
import React, { useState, useEffect, useCallback } from "react";
import { useTheme } from "styled-components";
import { withTranslation } from "react-i18next";
import { HelpButton } from "@docspace/shared/components/help-button";
import { FieldContainer } from "@docspace/shared/components/field-container";
@ -96,6 +97,8 @@ const DNSSettings = (props) => {
const [isError, setIsError] = useState(false);
const [errorText, setErrorText] = useState("");
const theme = useTheme();
useEffect(() => {
setDocumentTitle(t("DNSSettings"));
@ -287,7 +290,7 @@ const DNSSettings = (props) => {
<Badge
className="paid-badge"
fontWeight="700"
backgroundColor="#EDC409"
backgroundColor={theme.isBase ? "#EDC409" : "#A38A1A"}
label={t("Common:Paid")}
isPaidBadge={true}
/>

View File

@ -504,7 +504,7 @@ class AutomaticBackup extends React.PureComponent {
</Text>
{!isEnableAuto && (
<Badge
backgroundColor="#EDC409"
backgroundColor={theme.isBase ? "#EDC409" : "#A38A1A"}
label={t("Common:Paid")}
fontWeight="700"
className="auto-backup_badge"

View File

@ -92,7 +92,7 @@ const ToggleAutoSync = ({
</Text>
{!isLdapAvailable && (
<Badge
backgroundColor="#EDC409"
backgroundColor={theme.isBase ? "#EDC409" : "#A38A1A"}
label={t("Common:Paid")}
className="toggle-caption_title_badge"
isPaidBadge={true}

View File

@ -87,7 +87,7 @@ const ToggleLDAP = ({
</Text>
{!isLdapAvailable && (
<Badge
backgroundColor="#EDC409"
backgroundColor={theme.isBase ? "#EDC409" : "#A38A1A"}
label={t("Common:Paid")}
className="toggle-caption_title_badge"
isPaidBadge={true}

View File

@ -25,7 +25,7 @@
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
import React from "react";
import styled, { css } from "styled-components";
import styled, { css, useTheme } from "styled-components";
import { inject, observer } from "mobx-react";
import { useTranslation } from "react-i18next";
import { Text } from "@docspace/shared/components/text";
@ -73,6 +73,8 @@ const StyledWrapper = styled.div`
const ToggleSSO = ({ enableSso, ssoToggle, isSSOAvailable }) => {
const { t } = useTranslation("SingleSignOn");
const theme = useTheme();
return (
<StyledWrapper>
<ToggleButton
@ -94,7 +96,7 @@ const ToggleSSO = ({ enableSso, ssoToggle, isSSOAvailable }) => {
</Text>
{!isSSOAvailable && (
<Badge
backgroundColor="#EDC409"
backgroundColor={theme.isBase ? "#EDC409" : "#A38A1A"}
label={t("Common:Paid")}
fontWeight="700"
className="toggle-caption_title_badge"

View File

@ -294,7 +294,7 @@ class ThirdPartyServices extends React.Component {
</Text>
<Badge
className="paid-badge"
backgroundColor="#EDC409"
backgroundColor={theme.isBase ? "#EDC409" : "#A38A1A"}
fontWeight="700"
label={t("Common:Paid")}
isPaidBadge={true}

View File

@ -29,7 +29,7 @@ import { Text } from "@docspace/shared/components/text";
import { saveToSessionStorage, getFromSessionStorage } from "../../../utils";
import { TextInput } from "@docspace/shared/components/text-input";
import { SaveCancelButtons } from "@docspace/shared/components/save-cancel-buttons";
import styled from "styled-components";
import styled, { useTheme } from "styled-components";
import { Button } from "@docspace/shared/components/button";
import { toastr } from "@docspace/shared/components/toast";
import { UnavailableStyles } from "../../../utils/commonSettingsStyles";
@ -191,6 +191,8 @@ const HistoryMainContent = (props) => {
const isLoginHistoryPage = window.location.pathname.includes("login-history");
const theme = useTheme();
useEffect(() => {
getSettings();
}, []);
@ -315,7 +317,7 @@ const HistoryMainContent = (props) => {
<Badge
className="paid-badge"
fontWeight="700"
backgroundColor="#EDC409"
backgroundColor={theme.isBase ? "#EDC409" : "#A38A1A"}
label={t("Common:Paid")}
isPaidBadge={true}
/>

View File

@ -27,6 +27,7 @@
import { useTranslation } from "react-i18next";
import { inject, observer } from "mobx-react";
import { Trans } from "react-i18next";
import { useTheme } from "styled-components";
import { isMobile } from "@docspace/shared/utils";
import { Text } from "@docspace/shared/components/text";
@ -54,6 +55,7 @@ const QuotaPerItemsComponent = ({ isStatisticsAvailable }) => {
};
const QuotasComponent = (props) => {
const { t } = useTranslation("Settings");
const theme = useTheme();
const { isStatisticsAvailable } = props;
@ -66,7 +68,7 @@ const QuotasComponent = (props) => {
{!isStatisticsAvailable && (
<Badge
backgroundColor="#EDC409"
backgroundColor={theme.isBase ? "#EDC409" : "#A38A1A"}
label={t("Common:Paid")}
className="paid-badge"
isPaidBadge

View File

@ -26,6 +26,7 @@
import { inject, observer } from "mobx-react";
import { useTranslation } from "react-i18next";
import { useTheme } from "styled-components";
import { Text } from "@docspace/shared/components/text";
import { Badge } from "@docspace/shared/components/badge";
@ -45,7 +46,9 @@ const buttonProps = {
};
const StatisticsComponent = (props) => {
const { t } = useTranslation("Settings");
const theme = useTheme();
const { isStatisticsAvailable } = props;
const iconElement = (
id,
icon,
@ -89,7 +92,7 @@ const StatisticsComponent = (props) => {
</StyledMainTitle>
{!isStatisticsAvailable && (
<Badge
backgroundColor="#EDC409"
backgroundColor={theme.isBase ? "#EDC409" : "#A38A1A"}
label={t("Common:Paid")}
className="paid-badge"
isPaidBadge

View File

@ -25,7 +25,7 @@
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
import React from "react";
import styled from "styled-components";
import styled, { useTheme } from "styled-components";
import { Text } from "@docspace/shared/components/text";
import { Badge } from "@docspace/shared/components/badge";
@ -91,6 +91,8 @@ const MobileCategoryWrapper = (props) => {
badgeLabel,
} = props;
const theme = useTheme();
const onClickProp = isDisabled ? {} : { onClick: onClickLink };
const onHrefProp = isDisabled ? {} : { href: url };
@ -107,7 +109,7 @@ const MobileCategoryWrapper = (props) => {
</Link>
{withPaidBadge && (
<Badge
backgroundColor="#EDC409"
backgroundColor={theme.isBase ? "#EDC409" : "#A38A1A"}
label={badgeLabel}
isPaidBadge={true}
className="paid-badge"

View File

@ -228,7 +228,7 @@ const MainProfile = (props) => {
className="sso-badge"
label={t("Common:SSO")}
color={"#FFFFFF"}
backgroundColor="#22C386"
backgroundColor={theme.isBase ? "#22C386" : "#2E5E4C"}
fontSize={"9px"}
fontWeight={800}
noHover
@ -242,7 +242,7 @@ const MainProfile = (props) => {
className="sso-badge"
label={t("Common:LDAP")}
color={"#FFFFFF"}
backgroundColor="#8570BD"
backgroundColor={theme.isBase ? "#8570BD" : "#544C6A"}
fontSize={"9px"}
fontWeight={800}
noHover
@ -268,7 +268,7 @@ const MainProfile = (props) => {
className="sso-badge"
label={t("Common:SSO")}
color={"#FFFFFF"}
backgroundColor="#22C386"
backgroundColor={theme.isBase ? "#22C386" : "#2E5E4C"}
fontSize={"9px"}
fontWeight={800}
noHover
@ -287,7 +287,7 @@ const MainProfile = (props) => {
className="ldap-badge"
label={t("Common:LDAP")}
color={"#FFFFFF"}
backgroundColor="#8570BD"
backgroundColor={theme.isBase ? "#8570BD" : "#544C6A"}
fontSize={"9px"}
fontWeight={800}
noHover

View File

@ -104,6 +104,7 @@ import {
UrlActionType,
EmployeeType,
FilesSelectorFilterTypes,
FileExtensions,
} from "@docspace/shared/enums";
import FilesFilter from "@docspace/shared/api/files/filter";
import { getFileLink, getFolderLink } from "@docspace/shared/api/files";
@ -2123,9 +2124,12 @@ class ContextOptionsStore {
onCreate = (format) => {
const event = new Event(Events.CREATE);
const isPDf = format === FileExtensions.PDF;
const payload = {
extension: format,
id: -1,
edit: isPDf,
};
event.payload = payload;

View File

@ -39,7 +39,7 @@ import { TFile } from "@docspace/shared/api/files/types";
const StyledWrapper = styled.div`
${NoUserSelect}
margin-top: 16px;
height: 100%;
display: flex;
flex-direction: column;

View File

@ -119,6 +119,9 @@ const useSelectFolderDialog = ({}: UseSelectFolderDialogProps) => {
if (!selectedItemSecurity) return false;
if ("Create" in selectedItemSecurity && !selectedItemSecurity.Create)
return true;
return "CopyTo" in selectedItemSecurity
? !selectedItemSecurity?.CopyTo
: !selectedItemSecurity.Copy;
@ -136,4 +139,3 @@ const useSelectFolderDialog = ({}: UseSelectFolderDialogProps) => {
};
export default useSelectFolderDialog;

View File

@ -270,6 +270,7 @@ const LoginContainer = styled.div<{
align-items: center;
justify-content: center;
width: 100%;
max-width: 386px;
height: ${(props) => (props.type === "invitation" ? "26.56px" : "44px")};
padding-bottom: ${(props) =>
props.type === "invitation" ? "16px" : "40px"};

View File

@ -27,6 +27,7 @@
import React from "react";
import { ReactSVG } from "react-svg";
import { useTranslation } from "react-i18next";
import { useTheme } from "styled-components";
import RightArrowReactSvgUrl from "PUBLIC_DIR/images/right.arrow.react.svg?url";
import ArrowLeftReactUrl from "PUBLIC_DIR/images/arrow-left.react.svg?url";
@ -69,6 +70,7 @@ const DropDownItem = (props: DropDownItemProps) => {
} = props;
const { t } = useTranslation(["Common"]);
const theme = useTheme();
const { withToggle, checked, onClick, onClickSelectedItem, label, ...rest } =
props;
@ -168,7 +170,7 @@ const DropDownItem = (props: DropDownItemProps) => {
fontSize="9px"
isHovered={false}
borderRadius="50px"
backgroundColor="#533ED1"
backgroundColor={theme.isBase ? "#533ED1" : "#5447A3"}
label={t("Common:BetaLabel")}
/>
</WrapperBadge>

View File

@ -140,7 +140,7 @@ const Footer = React.memo(
isDisabled={
!withFooterInput
? disableSubmitButton
: disableSubmitButton && !currentFooterInputValue.trim()
: disableSubmitButton || !currentFooterInputValue.trim()
}
onClick={onSubmit}
/>

View File

@ -583,3 +583,12 @@ export const enum LDAPCertificateProblem {
CertUntrustedCa = -2146762478,
CertUnrecognizedError = -2146762477,
}
export enum FileExtensions {
PDF = "pdf",
DOC = "doc",
DOCX = "docx",
DOCXF = "docxf",
XLSX = "xlsx",
PPTX = "pptx",
}

View File

@ -605,7 +605,7 @@ const Dark: TTheme = {
padding: "1px",
lineHeight: "0.8",
overflow: "hidden",
color: black,
color: white,
backgroundColor: "#F59931",
disableBackgroundColor: "#858585",
},
@ -1113,21 +1113,21 @@ const Dark: TTheme = {
},
administrator: {
fill: "#F59931",
fill: "#A15B1D",
stroke: darkBlack,
color: black,
color: white,
},
guest: {
fill: "#575757",
stroke: darkBlack,
color: black,
color: white,
},
owner: {
fill: "#EDC409",
fill: "#A38A1A",
stroke: darkBlack,
color: black,
color: white,
},
editContainer: {