From 6fe945fec8ad80f0bafb1e6da21d13003b5a3d82 Mon Sep 17 00:00:00 2001 From: Vladimir Khvan Date: Tue, 2 Apr 2024 18:30:45 +0500 Subject: [PATCH 001/176] Web: Client: JavascriptSDK: available editing option was added to files selector / filtering options were added --- .../public/locales/en/JavascriptSdk.json | 2 + .../FilesSelector/FilesSelector.types.ts | 1 + .../src/components/FilesSelector/index.tsx | 2 + .../JavascriptSDK/presets/FileSelector.js | 70 +++++++++++++++- packages/client/src/pages/Sdk/index.js | 1 + packages/shared/enums/index.ts | 13 +++ .../selectors/Files/FilesSelector.types.ts | 2 + .../selectors/Files/hooks/useFilesHelper.ts | 83 ++++++++++++++----- packages/shared/selectors/Files/index.tsx | 2 + 9 files changed, 151 insertions(+), 25 deletions(-) diff --git a/packages/client/public/locales/en/JavascriptSdk.json b/packages/client/public/locales/en/JavascriptSdk.json index 9c791b4136..2df4d72fc0 100644 --- a/packages/client/public/locales/en/JavascriptSdk.json +++ b/packages/client/public/locales/en/JavascriptSdk.json @@ -6,6 +6,7 @@ "AllTypes": "All types", "APILink": "API library", "Ascending": "Ascending", + "AvailableEditingHint": "You can select the section, room or folder you want to display in the selector. In this case, breadcrumbs will not be displayed.", "ButtonColor": "Button color", "ButtonCustomization": "Button customization", "ButtonText": "Button text", @@ -97,6 +98,7 @@ "SettingUpColumns": "Setting up Columns", "SettingUpColumnsDescription": "You can disable the ability for users to manage and customize file information columns in list view.", "SetUp": "Start setting up", + "ShowEditedFiles": "Show edited files in editor ONLYOFFICE", "SortOrder": "Sort order", "Subtitle": "Subtitle", "SubtitleDescription": "Subtitle with additional comments or descriptions for the current directory.", diff --git a/packages/client/src/components/FilesSelector/FilesSelector.types.ts b/packages/client/src/components/FilesSelector/FilesSelector.types.ts index 65ec6a8e0c..4d3892d5e4 100644 --- a/packages/client/src/components/FilesSelector/FilesSelector.types.ts +++ b/packages/client/src/components/FilesSelector/FilesSelector.types.ts @@ -140,4 +140,5 @@ export type FilesSelectorProps = { settings: unknown; roomsFolderId?: number; + availableForEditing?: boolean; }; diff --git a/packages/client/src/components/FilesSelector/index.tsx b/packages/client/src/components/FilesSelector/index.tsx index 0b6d17b9cc..d0c53c79f7 100644 --- a/packages/client/src/components/FilesSelector/index.tsx +++ b/packages/client/src/components/FilesSelector/index.tsx @@ -133,6 +133,7 @@ const FilesSelectorWrapper = ({ isRoomBackup, roomsFolderId, + availableForEditing = true, }: FilesSelectorProps) => { const { t }: { t: TTranslation } = useTranslation([ "Files", @@ -369,6 +370,7 @@ const FilesSelectorWrapper = ({ isMove || isCopy || isRestore ? "select-file-modal-cancel" : "" } getFilesArchiveError={getFilesArchiveError} + availableForEditing={availableForEditing} /> ); }; diff --git a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/FileSelector.js b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/FileSelector.js index a7a9da74d7..b15bd7bbb0 100644 --- a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/FileSelector.js +++ b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/FileSelector.js @@ -46,6 +46,7 @@ import { isTablet, isMobile } from "@docspace/shared/utils/device"; import { HelpButton } from "@docspace/shared/components/help-button"; import { Button } from "@docspace/shared/components/button"; +import { FilesSelectorExtendedFilterTypes } from "@docspace/shared/enums"; import GetCodeDialog from "../sub-components/GetCodeDialog"; import CodeBlock from "../sub-components/CodeBlock"; @@ -109,7 +110,7 @@ const FileSelector = (props) => { { value: "custom-types", label: t("SelectTypes") }, ]; - const [fileOptions, setFileOptions] = useState([ + const editingAvailableOptions = [ { key: FilesSelectorFilterTypes.DOCX, label: FilesSelectorFilterTypes.DOCX, @@ -127,7 +128,38 @@ const FileSelector = (props) => { key: FilesSelectorFilterTypes.XLSX, label: FilesSelectorFilterTypes.XLSX, }, - ]); + ]; + + const extendedOptions = [ + { + key: FilesSelectorExtendedFilterTypes.Documents, + label: t(`Common:${FilesSelectorExtendedFilterTypes.Documents}`), + }, + { + key: FilesSelectorExtendedFilterTypes.Presentations, + label: t( + `Translations:${FilesSelectorExtendedFilterTypes.Presentations}`, + ), + }, + { + key: FilesSelectorExtendedFilterTypes.Spreadsheets, + label: t(`Translations:${FilesSelectorExtendedFilterTypes.Spreadsheets}`), + }, + { + key: FilesSelectorExtendedFilterTypes.Images, + label: t(`Files:${FilesSelectorExtendedFilterTypes.Images}`), + }, + { + key: FilesSelectorExtendedFilterTypes.Media, + label: t(`Files:${FilesSelectorExtendedFilterTypes.Media}`), + }, + { + key: FilesSelectorExtendedFilterTypes.Archives, + label: t(`Files:${FilesSelectorExtendedFilterTypes.Archives}`), + }, + ]; + + const [fileOptions, setFileOptions] = useState(extendedOptions); const [widthDimension, setWidthDimension] = useState(dataDimensions[0]); const [heightDimension, setHeightDimension] = useState(dataDimensions[0]); @@ -171,6 +203,7 @@ const FileSelector = (props) => { filterParam: FilesSelectorFilterTypes.ALL, isButtonMode: selectedElementType === "button", buttonWithLogo: true, + availableForEditing: false, events: { onSelectCallback: (items) => { toastr.success(items[0].label); @@ -352,6 +385,24 @@ const FileSelector = (props) => { setConfig((config) => ({ ...config, withSearch: !config.withSearch })); }; + const toggleAvailableEditing = () => { + setFileOptions( + config.availableForEditing ? extendedOptions : editingAvailableOptions, + ); + setSelectedType( + config.availableForEditing + ? extendedOptions[0] + : editingAvailableOptions[0], + ); + setConfig((config) => ({ + ...config, + filterParam: config.availableForEditing + ? extendedOptions[0].key + : editingAvailableOptions[0].key, + availableForEditing: !config.availableForEditing, + })); + }; + // const toggleBreadCrumbs = () => { // setConfig((config) => ({ ...config, withBreadCrumbs: !config.withBreadCrumbs })); // }; @@ -705,6 +756,21 @@ const FileSelector = (props) => { // }} /> + + + } + /> + + {/* {selectedFileTypes.map((type) => ( ); break; diff --git a/packages/shared/enums/index.ts b/packages/shared/enums/index.ts index 5f3fb8ddd6..7ca5933859 100644 --- a/packages/shared/enums/index.ts +++ b/packages/shared/enums/index.ts @@ -512,3 +512,16 @@ export const enum WhiteLabelLogoType { AboutPage = 7, Notification = 8, } + +/** + * Enum for files selector filter extended. + * @readonly + */ +export const enum FilesSelectorExtendedFilterTypes { + Documents = "Documents", + Presentations = "Presentations", + Spreadsheets = "Spreadsheets", + Images = "Images", + Media = "Media", + Archives = "Archives", +} diff --git a/packages/shared/selectors/Files/FilesSelector.types.ts b/packages/shared/selectors/Files/FilesSelector.types.ts index 1dd7879fed..b23d381f06 100644 --- a/packages/shared/selectors/Files/FilesSelector.types.ts +++ b/packages/shared/selectors/Files/FilesSelector.types.ts @@ -118,6 +118,7 @@ export type UseFilesHelpersProps = { getIcon: (fileExst: string) => string; getFilesArchiveError: (name: string) => string; isInit: boolean; + availableForEditing?: boolean; }; export type TSelectedFileInfo = { @@ -197,4 +198,5 @@ export type FilesSelectorProps = ( isPanelVisible: boolean; currentDeviceType: DeviceType; getFilesArchiveError: (name: string) => string; + availableForEditing?: boolean; }; diff --git a/packages/shared/selectors/Files/hooks/useFilesHelper.ts b/packages/shared/selectors/Files/hooks/useFilesHelper.ts index 811a3c4738..c290891a5c 100644 --- a/packages/shared/selectors/Files/hooks/useFilesHelper.ts +++ b/packages/shared/selectors/Files/hooks/useFilesHelper.ts @@ -30,6 +30,7 @@ import { getFolder, getFolderInfo } from "../../../api/files"; import FilesFilter from "../../../api/files/filter"; import { ApplyFilterOption, + FilesSelectorExtendedFilterTypes, FilesSelectorFilterTypes, FilterType, FolderType, @@ -73,6 +74,7 @@ const useFilesHelper = ({ getFilesArchiveError, isInit, setIsInit, + availableForEditing = true, }: UseFilesHelpersProps) => { const requestRunning = React.useRef(false); const initRef = React.useRef(isInit); @@ -111,36 +113,70 @@ const useFilesHelper = ({ filter.withSubfolders = false; if (filterParam) { filter.applyFilterOption = ApplyFilterOption.Files; - switch (filterParam) { - case FilesSelectorFilterTypes.DOCX: - filter.extension = FilesSelectorFilterTypes.DOCX; - break; + if (availableForEditing) { + switch (filterParam) { + case FilesSelectorFilterTypes.DOCX: + filter.extension = FilesSelectorFilterTypes.DOCX; + break; - case FilesSelectorFilterTypes.IMG: - filter.filterType = FilterType.ImagesOnly; - break; + case FilesSelectorFilterTypes.IMG: + filter.filterType = FilterType.ImagesOnly; + break; - case FilesSelectorFilterTypes.BackupOnly: - filter.extension = "gz,tar"; - break; + case FilesSelectorFilterTypes.BackupOnly: + filter.extension = "gz,tar"; + break; - case FilesSelectorFilterTypes.DOCXF: - filter.filterType = FilterType.OFormTemplateOnly; - break; + case FilesSelectorFilterTypes.DOCXF: + filter.filterType = FilterType.OFormTemplateOnly; + break; - case FilesSelectorFilterTypes.XLSX: - filter.filterType = FilterType.SpreadsheetsOnly; - break; + case FilesSelectorFilterTypes.XLSX: + filter.filterType = FilterType.SpreadsheetsOnly; + break; - case FilesSelectorFilterTypes.PDF: - filter.extension = FilesSelectorFilterTypes.PDF; - break; + case FilesSelectorFilterTypes.PDF: + filter.extension = FilesSelectorFilterTypes.PDF; + break; - case FilesSelectorFilterTypes.ALL: - filter.filterType = FilterType.FilesOnly; - break; + case FilesSelectorFilterTypes.ALL: + filter.filterType = FilterType.FilesOnly; + break; - default: + default: + } + } else { + switch (filterParam) { + case FilesSelectorExtendedFilterTypes.Documents: + filter.filterType = FilterType.DocumentsOnly; + break; + + case FilesSelectorExtendedFilterTypes.Presentations: + filter.filterType = FilterType.PresentationsOnly; + break; + + case FilesSelectorExtendedFilterTypes.Spreadsheets: + filter.filterType = FilterType.SpreadsheetsOnly; + break; + + case FilesSelectorExtendedFilterTypes.Images: + filter.filterType = FilterType.ImagesOnly; + break; + + case FilesSelectorExtendedFilterTypes.Media: + filter.filterType = FilterType.MediaOnly; + break; + + case FilesSelectorExtendedFilterTypes.Archives: + filter.filterType = FilterType.ArchiveOnly; + break; + + case FilesSelectorFilterTypes.ALL: + filter.filterType = FilterType.FilesOnly; + break; + + default: + } } } @@ -329,6 +365,7 @@ const useFilesHelper = ({ setTotal, setItems, rootThirdPartyId, + availableForEditing, ], ); diff --git a/packages/shared/selectors/Files/index.tsx b/packages/shared/selectors/Files/index.tsx index ec5193b3a8..23211d6bdc 100644 --- a/packages/shared/selectors/Files/index.tsx +++ b/packages/shared/selectors/Files/index.tsx @@ -105,6 +105,7 @@ const FilesSelector = ({ withSearch: withSearchProp, withBreadCrumbs: withBreadCrumbsProp, filesSettings, + availableForEditing = true, }: FilesSelectorProps) => { const theme = useTheme(); const { t } = useTranslation(["Common"]); @@ -218,6 +219,7 @@ const FilesSelector = ({ getFilesArchiveError, isInit, setIsInit, + availableForEditing, }); const onSelectAction = React.useCallback( From d43999ef0eddf2c0b4aba00344601781f02a92f5 Mon Sep 17 00:00:00 2001 From: Vladimir Khvan Date: Tue, 9 Apr 2024 15:55:56 +0500 Subject: [PATCH 002/176] Web: Client: JavascriptSDK: file type selection was corrected --- .../developer-tools/JavascriptSDK/presets/FileSelector.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/FileSelector.js b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/FileSelector.js index b15bd7bbb0..db64ca319d 100644 --- a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/FileSelector.js +++ b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/FileSelector.js @@ -336,7 +336,7 @@ const FileSelector = (props) => { filterParam: e.target.value === FilesSelectorFilterTypes.ALL ? FilesSelectorFilterTypes.ALL - : selectedType, + : selectedType.key, }; }); }; From 80680ec4dcc07ee349bdc8ded55d8db4dff658cb Mon Sep 17 00:00:00 2001 From: Vladimir Khvan Date: Tue, 16 Apr 2024 15:44:48 +0500 Subject: [PATCH 003/176] Web: Client: JavascriptSDK: moved filter block from manager preset to component --- .../JavascriptSDK/presets/Manager.js | 441 +-------------- .../sub-components/FilterBlock.js | 512 ++++++++++++++++++ 2 files changed, 516 insertions(+), 437 deletions(-) create mode 100644 packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/sub-components/FilterBlock.js diff --git a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Manager.js b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Manager.js index 66621ae171..d8894715ac 100644 --- a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Manager.js +++ b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Manager.js @@ -41,8 +41,6 @@ import FilesSelectorInput from "SRC_DIR/components/FilesSelectorInput"; import { objectToGetParams, loadScript } from "@docspace/shared/utils/common"; import { inject, observer } from "mobx-react"; -import { isTablet, isMobile } from "@docspace/shared/utils/device"; - import { HelpButton } from "@docspace/shared/components/help-button"; import GetCodeDialog from "../sub-components/GetCodeDialog"; @@ -68,80 +66,7 @@ import HeaderDarkUrl from "PUBLIC_DIR/images/sdk-presets_header_dark.png?url"; const showPreviewThreshold = 720; -// import { FilterType, RoomsType } from "@docspace/shared/enums"; - -// import { ToggleButton } from "@docspace/shared/components/toggle-button"; - -// import styled from "styled-components"; -// import { DropDown } from "@docspace/shared/components/drop-down"; -// import Filter from "@docspace/shared/api/people/filter"; -// import { getUserList, getMembersList } from "@docspace/shared/api/people"; -// import { DropDownItem } from "@docspace/shared/components/drop-down-item"; -// import { Avatar } from "@docspace/shared/components/avatar"; -// import Base from "@docspace/shared/themes/base"; - -// const UserInputContainer = styled.div` -// position: relative; -// display: flex; -// align-items: center; -// width: 100%; - -// .header_aside-panel { -// max-width: 100% !important; -// } -// `; - -// const UserInput = styled.div` -// width: 100%; -// width: -moz-available; -// width: -webkit-fill-available; -// width: fill-available; - -// .input-link { -// height: 32px; - -// > input { -// height: 30px; -// } -// } -// `; - -// const StyledDropDown = styled(DropDown)` -// ${(props) => props.width && `width: ${props.width}px`}; -// left: 0; - -// .list-item { -// display: flex; -// align-items: center; -// gap: 8px; -// height: 48px; - -// .list-item_content { -// text-overflow: ellipsis; -// overflow: hidden; -// } -// } -// `; - -// const SearchItemText = styled(Text)` -// line-height: 16px; - -// text-overflow: ellipsis; -// overflow: hidden; -// font-size: ${(props) => -// props.theme.getCorrectFontSize(props.primary ? "14px" : props.info ? "11px" : "12px")}; -// font-weight: ${(props) => (props.primary || props.info ? "600" : "400")}; - -// color: ${(props) => -// (props.primary && !props.disabled) || props.info -// ? props.theme.text.color -// : props.theme.text.emailColor}; -// ${(props) => props.info && `margin-left: auto`} -// `; - -// SearchItemText.defaultProps = { theme: Base }; - -// const minSearchValue = 3; +import { FilterBlock } from "../sub-components/FilterBlock"; import { SDKContainer, @@ -208,53 +133,6 @@ const Manager = (props) => { expirationDate: t("LimitByTime").toLowerCase(), }; - // const roomTypeOptions = [ - // { - // key: "room-type-collaboration", - // label: t("CreateEditRoomDialog:CollaborationRoomTitle"), - // roomType: RoomsType.EditingRoom, - // }, - // { key: "room-type-public", label: t("Files:PublicRoom"), roomType: RoomsType.PublicRoom }, - // { - // key: "room-type-custom", - // label: t("CreateEditRoomDialog:CustomRoomTitle"), - // roomType: RoomsType.CustomRoom, - // }, - // ]; - - // const filterOptions = [ - // { key: "filter-type-all", label: t("Files:AllFiles"), typeKey: FilterType.FilesOnly }, - // { - // key: "filter-type-documents", - // label: t("Common:Documents"), - // typeKey: FilterType.DocumentsOnly, - // }, - // { - // key: "filter-type-folders", - // label: t("Translations:Folders"), - // typeKey: FilterType.FoldersOnly, - // }, - // { - // key: "filter-type-spreadsheets", - // label: t("Translations:Spreadsheets"), - // typeKey: FilterType.SpreadsheetsOnly, - // }, - // { key: "filter-type-archives", label: t("Files:Archives"), typeKey: FilterType.ArchiveOnly }, - // { - // key: "filter-type-presentations", - // label: t("Translations:Presentations"), - // typeKey: FilterType.PresentationsOnly, - // }, - // { key: "filter-type-images", label: t("Filse:Images"), typeKey: FilterType.ImagesOnly }, - // { key: "filter-type-media", label: t("Files:Media"), typeKey: FilterType.MediaOnly }, - // { - // key: "filter-type-forms-templates", - // label: t("Files:FormsTemplates"), - // typeKey: FilterType.OFormTemplateOnly, - // }, - // { key: "filter-type-forms", label: t("Files:Forms"), typeKey: FilterType.OFormOnly }, - // ]; - const [sortBy, setSortBy] = useState(dataSortBy[0]); const [sortOrder, setSortOrder] = useState(dataSortOrder[0]); const [widthDimension, setWidthDimension] = useState(dataDimensions[0]); @@ -278,22 +156,6 @@ const Manager = (props) => { const [selectedLink, setSelectedLink] = useState(null); - // const [filterBy, setFilterBy] = useState({ - // key: "filter-type-default", - // label: t("Common:SelectAction"), - // default: true, - // }); - // const [author, setAuthor] = useState(""); - - // const searchRef = useRef(); - // const [searchPanelVisible, setSearchPanelVisible] = useState(false); - // const [usersList, setUsersList] = useState([]); - // const dropDownMaxHeight = usersList.length > 5 ? { maxHeight: 240 } : {}; - // const [isUserFilterSet, setIsUserFilterSet] = useState(false); - // const [isTypeFilterSet, setIsTypeFilterSet] = useState(false); - // const [selectedUser, setSelectedUser] = useState(null); - // const [selectedType, setSelectedType] = useState(null); - const [config, setConfig] = useState({ mode: "manager", width: `${width}${widthDimension.label}`, @@ -406,10 +268,6 @@ const Manager = (props) => { setSelectedLink(null); setSharedLinks(null); } - // setAuthor(""); - // setUsersList([]); - // setIsUserFilterSet(false); - // setIsTypeFilterSet(false); setConfig((config) => { return { ...config, ...newConfig }; @@ -584,128 +442,6 @@ const Manager = (props) => { setShowPreview(isEnoughWidthForPreview); }; - // const onFilterSelect = (option) => { - // setFilterBy(option); - // setConfig((config) => ({ - // ...config, - // filter: { - // ...config.filter, - // filterType: option.typeKey, - // }, - // })); - // }; - - // const closeInviteInputPanel = (e) => { - // if (e?.target?.tagName?.toUpperCase() === "INPUT") return; - - // setSearchPanelVisible(false); - // }; - - // const openInviteInputPanel = () => { - // setSearchPanelVisible(true); - // }; - - // const onKeyDown = (event) => { - // const keyCode = event.code; - - // const isAcceptableEvents = - // keyCode === "ArrowUp" || keyCode === "ArrowDown" || keyCode === "Enter"; - - // if (isAcceptableEvents && author.length > 2) return; - - // event.stopPropagation(); - // }; - - // const searchByQuery = async (value) => { - // const query = value.trim(); - - // if (query.length >= minSearchValue) { - // const filter = Filter.getFilterWithOutDisabledUser(); - // filter.search = query; - - // // const users = await getMembersList(roomId, filter); - // const users = await getUserList(filter); - - // setUsersList(users.items); - // } - - // if (!query) { - // closeInviteInputPanel(); - // setInputValue(""); - // setUsersList([]); - // } - // }; - - // const debouncedSearch = useCallback( - // debounce((value) => searchByQuery(value), 300), - // [], - // ); - - // const onChangeAuthor = (e) => { - // const value = e.target.value; - // const clearValue = value.trim(); - - // setAuthor(value); - - // if (clearValue.length < minSearchValue) { - // setUsersList([]); - // return; - // } - - // if ((!!usersList.length || clearValue.length >= minSearchValue) && !searchPanelVisible) { - // openInviteInputPanel(); - // } - - // debouncedSearch(clearValue); - // }; - // const getItemContent = (item) => { - // const { avatar, displayName, email, id } = item; - - // const addUser = () => { - // closeInviteInputPanel(); - // setAuthor(""); - // setUsersList([]); - // setSelectedUser(displayName); - // setConfig((config) => ({ - // ...config, - // filter: - // "id" in config - // ? { ...config.filter, authorType: `user_${item.id}` } - // : { ...config.filter, subjectId: item.id }, - // })); - // }; - - // return ( - // - // - //
- // {displayName} - // {email} - //
- //
- // ); - // }; - - // const foundUsers = usersList.map((user) => getItemContent(user)); - - // const toggleMembers = (e) => { - // if (!e.target.checked) { - // const filtered = { ...config.filter }; - // delete filtered.subjectId; - // setConfig((config) => ({ ...config, filter: filtered })); - // } - // setIsUserFilterSet(e.target.checked); - // }; - - // const toggleAuthor = (e) => { - // if (!e.target.checked) { - // const filtered = { ...config.filter }; - // delete filtered.authorType; - // setConfig((config) => ({ ...config, filter: filtered })); - // } - // setIsUserFilterSet(e.target.checked); - // }; - useEffect(() => { window.addEventListener("resize", onResize); return () => { @@ -1088,178 +824,9 @@ const Manager = (props) => { {t("AdvancedDisplay")} - {/* - {"id" in config ? ( - <> - */} + + + {t("AdvancedDisplay")} - + - + From c308e5560e67b781b923ae02669e328d931fdaec Mon Sep 17 00:00:00 2001 From: Vladimir Khvan Date: Tue, 23 Apr 2024 15:54:47 +0500 Subject: [PATCH 013/176] Web: Client: JavascriptSDK: corrected translations for fileSelector presets --- packages/client/src/pages/Sdk/index.js | 42 ++++++++++++++++++++++---- public/locales/en/Common.json | 5 ++- 2 files changed, 38 insertions(+), 9 deletions(-) diff --git a/packages/client/src/pages/Sdk/index.js b/packages/client/src/pages/Sdk/index.js index cafead0ebe..190edb567f 100644 --- a/packages/client/src/pages/Sdk/index.js +++ b/packages/client/src/pages/Sdk/index.js @@ -59,11 +59,31 @@ const Sdk = ({ const [isDataReady, setIsDataReady] = useState(false); const formatsDescription = { - DOCX: t("Common:SelectDOCXFormat"), - DOCXF: t("Common:SelectDOCXFFormat"), - BackupOnly: t("Common:SelectBackupOnlyFormat"), - IMG: t("Common:SelectIMGFormat"), - XLSX: t("Common:SelectXLSXFormat"), + DOCX: t("Common:SelectExtensionFiles", { extension: ".DOCX" }), + DOCXF: t("Common:SelectExtensionFiles", { extension: ".DOCXF" }), + XLSX: t("Common:SelectExtensionFiles", { extension: ".XLSX" }), + BackupOnly: t("Common:SelectExtensionFiles", { + extension: t("Settings:Backup").toLowerCase(), + }), + IMG: t("Common:SelectTypeFiles", { type: t("Files:Images").toLowerCase() }), + Documents: t("Common:SelectTypeFiles", { + type: t("Common:Documents").toLowerCase(), + }), + Spreadsheets: t("Common:SelectTypeFiles", { + type: t("Translations:Spreadsheets").toLowerCase(), + }), + Presentations: t("Common:SelectTypeFiles", { + type: t("Translations:Presentations").toLowerCase(), + }), + Images: t("Common:SelectTypeFiles", { + type: t("Files:Images").toLowerCase(), + }), + Media: t("Common:SelectExtensionFiles", { + extension: t("Files:Media").toLowerCase(), + }), + Archives: t("Common:SelectTypeFiles", { + type: t("Files:Archives").toLowerCase(), + }), }; useEffect(() => { @@ -288,6 +308,8 @@ const Sdk = ({ default: component = ; } + + console.log(frameConfig?.filterParam); return component; }; @@ -327,4 +349,12 @@ export default inject( getFilePrimaryLink, }; }, -)(withTranslation(["JavascriptSdk", "Common"])(observer(Sdk))); +)( + withTranslation([ + "JavascriptSdk", + "Common", + "Settings", + "Translations", + "Files", + ])(observer(Sdk)), +); diff --git a/public/locales/en/Common.json b/public/locales/en/Common.json index ce9c1936ee..b7a2e67637 100644 --- a/public/locales/en/Common.json +++ b/public/locales/en/Common.json @@ -346,18 +346,17 @@ "SearchEmptyRoomsDescription": "No rooms match this filter. Try a different one or clear filter to view all rooms.", "SelectAction": "Select", "SelectAll": "Select all", - "SelectBackupOnlyFormat": "Select backup only file", "SelectDOCXFFormat": "Select .DOCXF file", "SelectDOCXFormat": "Select .DOCX file", + "SelectExtensionFiles": "Select {{extension}} files", "SelectFile": "Select file", "SelectFiles": "Select files", "SelectFromDocSpace": "Select from DocSpace", "SelectFolder": "Select folder", - "SelectIMGFormat": "Select IMG file", "SelectorEmptyScreenHeader": "No files and folders here yet", "SelectPDFFormat": "Select .PDF file", "SelectRoom": "Select room", - "SelectXLSXFormat": "Select .XLSX file", + "SelectTypeFiles": "Select {{type}}", "SendButton": "Send", "Sending": "Sending...", "SendRequest": "Send request", From ef81c98bdce9b2dd223e1ef12b4e5cab6eee1a61 Mon Sep 17 00:00:00 2001 From: Vladimir Khvan Date: Tue, 23 Apr 2024 15:55:39 +0500 Subject: [PATCH 014/176] Web: Client: JavascriptSDK: removed console.log --- packages/client/src/pages/Sdk/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/client/src/pages/Sdk/index.js b/packages/client/src/pages/Sdk/index.js index 190edb567f..e40fcad43a 100644 --- a/packages/client/src/pages/Sdk/index.js +++ b/packages/client/src/pages/Sdk/index.js @@ -309,7 +309,6 @@ const Sdk = ({ component = ; } - console.log(frameConfig?.filterParam); return component; }; From 8b4bb07568a63219c044e1ebd66b002f370cf845 Mon Sep 17 00:00:00 2001 From: Alexey Safronov Date: Fri, 26 Apr 2024 16:42:07 +0400 Subject: [PATCH 015/176] Translations: Common: Removed old key 'SelectIMGFormat' --- i18next/common.babel | 1410 ++++++++++++++++++++++++- public/locales/ar-SA/Common.json | 5 +- public/locales/az/Common.json | 5 +- public/locales/bg/Common.json | 5 +- public/locales/cs/Common.json | 5 +- public/locales/de/Common.json | 5 +- public/locales/el-GR/Common.json | 5 +- public/locales/en/Common.json | 9 +- public/locales/es/Common.json | 5 +- public/locales/fi/Common.json | 5 +- public/locales/fr/Common.json | 5 +- public/locales/hy-AM/Common.json | 5 +- public/locales/it/Common.json | 5 +- public/locales/ja-JP/Common.json | 5 +- public/locales/ko-KR/Common.json | 5 +- public/locales/lo-LA/Common.json | 4 +- public/locales/lv/Common.json | 5 +- public/locales/nl/Common.json | 5 +- public/locales/pl/Common.json | 5 +- public/locales/pt-BR/Common.json | 5 +- public/locales/pt/Common.json | 5 +- public/locales/ro/Common.json | 5 +- public/locales/ru/Common.json | 5 +- public/locales/si/Common.json | 4 +- public/locales/sk/Common.json | 5 +- public/locales/sl/Common.json | 5 +- public/locales/sr-Latn-RS/Common.json | 5 +- public/locales/tr/Common.json | 5 +- public/locales/uk-UA/Common.json | 5 +- public/locales/vi/Common.json | 5 +- public/locales/zh-CN/Common.json | 5 +- 31 files changed, 1472 insertions(+), 90 deletions(-) diff --git a/i18next/common.babel b/i18next/common.babel index d304929ceb..c28b7e370c 100644 --- a/i18next/common.babel +++ b/i18next/common.babel @@ -7958,6 +7958,134 @@ + + CreatePDFForm + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + Culture_ar-SA @@ -16406,6 +16534,134 @@ + + EditPDFForm + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + Email @@ -21270,6 +21526,134 @@ + + Fill + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + FillFormButton @@ -21910,6 +22294,262 @@ + + FromDevice + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + + + FromDocSpace + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + FullAccess @@ -26518,6 +27158,134 @@ + + Later + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + LearnMore @@ -39702,6 +40470,134 @@ + + Reconnect + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + ReconnectStorage @@ -43926,6 +44822,134 @@ + + SelectExtensionFiles + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + SelectFile @@ -44311,7 +45335,7 @@ - SelectIMGFormat + SelectFromDocSpace @@ -44566,6 +45590,134 @@ + + SelectPDFFormat + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + SelectRoom @@ -44694,6 +45846,134 @@ + + SelectTypeFiles + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + SelectXLSXFormat @@ -54422,6 +55702,134 @@ + + UploadReadyPDFForm + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + User diff --git a/public/locales/ar-SA/Common.json b/public/locales/ar-SA/Common.json index 96a9d23269..e6086c1656 100644 --- a/public/locales/ar-SA/Common.json +++ b/public/locales/ar-SA/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "من نحن", "AboutCompanyTitle": "نبذة تعريفية عن البرنامج", "AccessDenied": "المحاولة مرفوضة", @@ -345,7 +345,6 @@ "SelectDOCXFormat": "اختيار ملف .DOCX", "SelectFile": "اختيار ملف", "SelectFiles": "اختر الملفات", - "SelectIMGFormat": "اخترملف IMG", "SelectorEmptyScreenHeader": "لا يوجد ملفات أو مجلدات بعد", "SelectRoom": "اختر الغرفة", "SelectXLSXFormat": "اختر ملف XLSX", @@ -436,4 +435,4 @@ "Yes": "نعم", "Yesterday": "أمس", "You": "أنت" -} \ No newline at end of file +} diff --git a/public/locales/az/Common.json b/public/locales/az/Common.json index 0aa681d224..f841860ebe 100644 --- a/public/locales/az/Common.json +++ b/public/locales/az/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "Haqqında", "AboutCompanyTitle": "Proqram haqqında", "AccessDenied": "Giriş qadağandır", @@ -346,7 +346,6 @@ "SelectFile": "Faylı seçin", "SelectFiles": "Faylları seçin", "SelectFolder": "Qovluq seç", - "SelectIMGFormat": "IMG faylını seçin", "SelectorEmptyScreenHeader": "Burada hələ heç bir fayl və ya qovluq yoxdur", "SelectRoom": "Otaq seçin", "SelectXLSXFormat": ".XLSX faylını seçin", @@ -437,4 +436,4 @@ "Yes": "Bəli", "Yesterday": "Dünən", "You": "Siz" -} \ No newline at end of file +} diff --git a/public/locales/bg/Common.json b/public/locales/bg/Common.json index 10d3cfce13..e6d52cd095 100644 --- a/public/locales/bg/Common.json +++ b/public/locales/bg/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "Относно", "AboutCompanyTitle": "За тази програма", "AccessDenied": "Достъпът отказан", @@ -346,7 +346,6 @@ "SelectFile": "Избери файл", "SelectFiles": "Изберете файлове", "SelectFolder": "Изберете папка", - "SelectIMGFormat": "Изберете IMG файл", "SelectorEmptyScreenHeader": "Тук все още няма стаи и папки", "SelectRoom": "Изберете стая", "SelectXLSXFormat": "Изберете .XLSX файл", @@ -437,4 +436,4 @@ "Yes": "Да", "Yesterday": "Вчера", "You": "Вие" -} \ No newline at end of file +} diff --git a/public/locales/cs/Common.json b/public/locales/cs/Common.json index 313dd9a49f..9304daf7d0 100644 --- a/public/locales/cs/Common.json +++ b/public/locales/cs/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "O nás", "AboutCompanyTitle": "O tomto programu", "AccessDenied": "Přístup odepřen", @@ -346,7 +346,6 @@ "SelectFile": "Vybrat soubor", "SelectFiles": "Výběr souborů", "SelectFolder": "Vybrat složku", - "SelectIMGFormat": "Vyberte soubor IMG", "SelectorEmptyScreenHeader": "Zatím zde nejsou žádné soubory a složky", "SelectRoom": "Vybrat místnost", "SelectXLSXFormat": "Vyberte soubor .XLSX", @@ -437,4 +436,4 @@ "Yes": "Ano", "Yesterday": "Včera", "You": "Vy" -} \ No newline at end of file +} diff --git a/public/locales/de/Common.json b/public/locales/de/Common.json index 83fd3c5d59..6d0b5d6d51 100644 --- a/public/locales/de/Common.json +++ b/public/locales/de/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "Informationen", "AboutCompanyTitle": "Über diese Software", "AccessDenied": "Zugriff verweigert", @@ -346,7 +346,6 @@ "SelectFile": "Datei auswählen", "SelectFiles": "Dateien auswählen", "SelectFolder": "Ordner wählen", - "SelectIMGFormat": "IMG-Datei auswählen", "SelectorEmptyScreenHeader": "Noch keine Dateien und Ordner vorhanden", "SelectRoom": "Raum auswählen", "SelectXLSXFormat": ".XLSX-Datei auswählen", @@ -437,4 +436,4 @@ "Yes": "Ja", "Yesterday": "Gestern", "You": "Sie" -} \ No newline at end of file +} diff --git a/public/locales/el-GR/Common.json b/public/locales/el-GR/Common.json index d55382c8c1..aedb184327 100644 --- a/public/locales/el-GR/Common.json +++ b/public/locales/el-GR/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "Σχετικά", "AboutCompanyTitle": "Σχετικά με αυτό το πρόγραμμα", "AccessDenied": "Απαγόρευση πρόσβασης", @@ -346,7 +346,6 @@ "SelectFile": "Επιλογή αρχείου", "SelectFiles": "Επιλέξτε αρχεία", "SelectFolder": "Επιλογή φακέλου", - "SelectIMGFormat": "Επιλέξτε αρχείο IMG", "SelectorEmptyScreenHeader": "Δεν υπάρχουν ακόμα αρχεία και φάκελοι εδώ", "SelectRoom": "Επιλέξτε δωμάτιο", "SelectXLSXFormat": "Επιλέξτε αρχείο .XLSX", @@ -437,4 +436,4 @@ "Yes": "Ναι", "Yesterday": "Χθες", "You": "Εσείς" -} \ No newline at end of file +} diff --git a/public/locales/en/Common.json b/public/locales/en/Common.json index 331678a869..b18abc30b5 100644 --- a/public/locales/en/Common.json +++ b/public/locales/en/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "About", "AboutCompanyTitle": "About this program", "AccessDenied": "Access denied", @@ -127,8 +127,8 @@ "Duplicate": "Duplicate", "EditButton": "Edit", "Editing": "Editing", - "EditPDFForm": "Edit PDF form", "Editor": "Editor", + "EditPDFForm": "Edit PDF form", "Email": "Email", "EmptyDescription": "The list of users previously invited to DocSpace or separate rooms will appear here. You will be able to invite these users for collaboration at any time.", "EmptyEmail": "No email address parsed", @@ -270,8 +270,8 @@ "NotFoundUsersDescription": "No users match your search. Please adjust your search parameters or clear the search field to view the full list of users.", "NotSupportedFormat": "Sorry, this file format isn't supported", "OFORMsGallery": "Form Gallery", - "OKButton": "OK", "OkButton": "Ok", + "OKButton": "OK", "Or": "or", "orContinueWith": "or continue with", "OtherLabel": "Other", @@ -346,6 +346,7 @@ "SearchEmptyRoomsDescription": "No rooms match this filter. Try a different one or clear filter to view all rooms.", "SelectAction": "Select", "SelectAll": "Select all", + "SelectBackupOnlyFormat": "", "SelectDOCXFFormat": "Select .DOCXF file", "SelectDOCXFormat": "Select .DOCX file", "SelectExtensionFiles": "Select {{extension}} files", @@ -353,11 +354,11 @@ "SelectFiles": "Select files", "SelectFolder": "Select folder", "SelectFromDocSpace": "Select from DocSpace", - "SelectIMGFormat": "Select IMG file", "SelectorEmptyScreenHeader": "No files and folders here yet", "SelectPDFFormat": "Select .PDF file", "SelectRoom": "Select room", "SelectTypeFiles": "Select {{type}}", + "SelectXLSXFormat": "", "SendButton": "Send", "Sending": "Sending...", "SendRequest": "Send request", diff --git a/public/locales/es/Common.json b/public/locales/es/Common.json index 9c4922478b..9fba60ca87 100644 --- a/public/locales/es/Common.json +++ b/public/locales/es/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "Acerca de", "AboutCompanyTitle": "Acerca del programa", "AccessDenied": "Acceso denegado ", @@ -346,7 +346,6 @@ "SelectFile": "Seleccionar archivo", "SelectFiles": "Seleccionar archivos", "SelectFolder": "Seleccionar carpeta", - "SelectIMGFormat": "Seleccioner archivo IMG", "SelectorEmptyScreenHeader": "Aún no hay archivos ni carpetas aquí", "SelectRoom": "Seleccionar sala", "SelectXLSXFormat": "Seleccionar archivo .XLSX", @@ -437,4 +436,4 @@ "Yes": "Sí", "Yesterday": "Ayer", "You": "Usted" -} \ No newline at end of file +} diff --git a/public/locales/fi/Common.json b/public/locales/fi/Common.json index b69ffd9308..c8a2039a7d 100644 --- a/public/locales/fi/Common.json +++ b/public/locales/fi/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "Tietoja", "AboutCompanyTitle": "Tietoja tästä ohjelmasta", "AccessDenied": "Pääsy evätty", @@ -346,7 +346,6 @@ "SelectFile": "Valitse tiedosto", "SelectFiles": "Valitse tiedostot", "SelectFolder": "Valitse kansio", - "SelectIMGFormat": "Valitse IMG-tiedosto", "SelectorEmptyScreenHeader": "Täällä ei ole vielä tiedostoja tai kansioita", "SelectRoom": "Valitse huone", "SelectXLSXFormat": "Valitse .XLSX-tiedosto", @@ -437,4 +436,4 @@ "Yes": "Kyllä", "Yesterday": "Eilen", "You": "Sinä" -} \ No newline at end of file +} diff --git a/public/locales/fr/Common.json b/public/locales/fr/Common.json index d669b70e5d..f5bf41237c 100644 --- a/public/locales/fr/Common.json +++ b/public/locales/fr/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "À propos de", "AboutCompanyTitle": "À propos de ce programme", "AccessDenied": " Accès refusé", @@ -346,7 +346,6 @@ "SelectFile": "Sélectionner le fichier", "SelectFiles": "Sélectionner les fichiers", "SelectFolder": "Sélectionner dossier", - "SelectIMGFormat": "Sélectionner le fichier IMG", "SelectorEmptyScreenHeader": "Aucun fichier ou dossier n'a encore été créé", "SelectRoom": "Sélectionner la salle", "SelectXLSXFormat": "Sélectionner le fichier .XLSX", @@ -437,4 +436,4 @@ "Yes": "Oui", "Yesterday": "Hier", "You": "Vous" -} \ No newline at end of file +} diff --git a/public/locales/hy-AM/Common.json b/public/locales/hy-AM/Common.json index c1a8f19c96..9bfb25a338 100644 --- a/public/locales/hy-AM/Common.json +++ b/public/locales/hy-AM/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "Մասին", "AboutCompanyTitle": "Ծրագրի մասին", "AccessDenied": "Մուտքն արգելված է", @@ -346,7 +346,6 @@ "SelectFile": "Ընտրել ֆայլ", "SelectFiles": "Ֆայլերի ընտրություն", "SelectFolder": "Ընտեք թղթապանակ", - "SelectIMGFormat": "Ընտրեք IMG ֆայլ", "SelectorEmptyScreenHeader": "Այստեղ դեռ ֆայլեր և թղթապանակներ չկան", "SelectRoom": "Ընտրել Սենյակ", "SelectXLSXFormat": "Ընտրել .XLSX ֆայլը", @@ -437,4 +436,4 @@ "Yes": "Այո", "Yesterday": "Երեկ", "You": "Դու" -} \ No newline at end of file +} diff --git a/public/locales/it/Common.json b/public/locales/it/Common.json index 92c3c72443..9ea8e5c076 100644 --- a/public/locales/it/Common.json +++ b/public/locales/it/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "Informazioni su", "AboutCompanyTitle": "Informazioni sul programma", "AccessDenied": " Accesso negato", @@ -346,7 +346,6 @@ "SelectFile": "Selezionare file", "SelectFiles": "Seleziona i file", "SelectFolder": "Seleziona cartella", - "SelectIMGFormat": "Seleziona il file IMG", "SelectorEmptyScreenHeader": "Non ci sono ancora file e cartelle qui", "SelectRoom": "Seleziona la stanza", "SelectXLSXFormat": "Seleziona il file .XLSX", @@ -437,4 +436,4 @@ "Yes": "Sì", "Yesterday": "Ieri", "You": "Tu" -} \ No newline at end of file +} diff --git a/public/locales/ja-JP/Common.json b/public/locales/ja-JP/Common.json index 4fa780c0b1..baaa528631 100644 --- a/public/locales/ja-JP/Common.json +++ b/public/locales/ja-JP/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "について", "AboutCompanyTitle": "本プログラムについて", "AccessDenied": "アクセス拒否", @@ -346,7 +346,6 @@ "SelectFile": "ファイルを選択", "SelectFiles": "ファイルの選択", "SelectFolder": "フォルダーを選択する", - "SelectIMGFormat": "IMGファイルの選択", "SelectorEmptyScreenHeader": "ファイルやフォルダはまだありません", "SelectRoom": "ルームの選択", "SelectXLSXFormat": ".XLSXファイルの選択", @@ -437,4 +436,4 @@ "Yes": "はい", "Yesterday": "昨日", "You": "あなた" -} \ No newline at end of file +} diff --git a/public/locales/ko-KR/Common.json b/public/locales/ko-KR/Common.json index f7ba43043d..b66eb22eef 100644 --- a/public/locales/ko-KR/Common.json +++ b/public/locales/ko-KR/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "소개", "AboutCompanyTitle": "프로그램 소개", "AccessDenied": "액세스가 거부되었습니다", @@ -346,7 +346,6 @@ "SelectFile": "파일 선택", "SelectFiles": "파일 선택", "SelectFolder": "폴더를 선택", - "SelectIMGFormat": "IMG 파일 선택", "SelectorEmptyScreenHeader": "아직 파일과 폴더가 없습니다", "SelectRoom": "방 선택", "SelectXLSXFormat": ".XLSX 파일 선택", @@ -437,4 +436,4 @@ "Yes": "네", "Yesterday": "어제", "You": "나" -} \ No newline at end of file +} diff --git a/public/locales/lo-LA/Common.json b/public/locales/lo-LA/Common.json index d6139d3050..c32936d148 100644 --- a/public/locales/lo-LA/Common.json +++ b/public/locales/lo-LA/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "ກ່ຽວກັບ", "AboutCompanyTitle": "ກ່ຽວກັບໂປແກລມນີ້", "AccessDenied": "ປະ​ຕິ​ເສດ​ການ​ເຂົ້າ​ເຖິງ", @@ -318,4 +318,4 @@ "Warning": "ແຈ້ງເຕືອນ", "Website": "ເວັບໄຊທ໌", "Yesterday": "ມື້ວານນີ້" -} \ No newline at end of file +} diff --git a/public/locales/lv/Common.json b/public/locales/lv/Common.json index bc6e7bdb28..6ec7dab96a 100644 --- a/public/locales/lv/Common.json +++ b/public/locales/lv/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "Par", "AboutCompanyTitle": "Par šo programmu", "AccessDenied": "Pieeja ir liegta", @@ -346,7 +346,6 @@ "SelectFile": "Atlasīt failu", "SelectFiles": "Atlasīt failus", "SelectFolder": "Izvēlēties direktoriju", - "SelectIMGFormat": "Atlasiet IMG failu", "SelectorEmptyScreenHeader": "Šeit vēl nav neviena faila un mapes", "SelectRoom": "Atlasīt telpu", "SelectXLSXFormat": "Atlasīt .XLSX fails", @@ -437,4 +436,4 @@ "Yes": "Jā", "Yesterday": "어제", "You": "Jūs" -} \ No newline at end of file +} diff --git a/public/locales/nl/Common.json b/public/locales/nl/Common.json index f2a5ad0571..a6c52dfe69 100644 --- a/public/locales/nl/Common.json +++ b/public/locales/nl/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "Over", "AboutCompanyTitle": "Over dit programma", "AccessDenied": "Toegang geweigerd", @@ -346,7 +346,6 @@ "SelectFile": "Selecteer bestand", "SelectFiles": "Selecteer bestanden", "SelectFolder": "Selecteer map", - "SelectIMGFormat": "Selecteer IMG-bestand", "SelectorEmptyScreenHeader": "Nog geen bestanden en mappen hier", "SelectRoom": "Selecteer kamer", "SelectXLSXFormat": "Selecteer .XLSX-bestand", @@ -437,4 +436,4 @@ "Yes": "Ja", "Yesterday": "Gisteren", "You": "U" -} \ No newline at end of file +} diff --git a/public/locales/pl/Common.json b/public/locales/pl/Common.json index 47cf53780e..03913e929a 100644 --- a/public/locales/pl/Common.json +++ b/public/locales/pl/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "O", "AboutCompanyTitle": "O tym programie", "AccessDenied": "Odmowa dostępu", @@ -346,7 +346,6 @@ "SelectFile": "Wybierz plik", "SelectFiles": "Wybierz pliki", "SelectFolder": "Wybierz folder", - "SelectIMGFormat": "Wybierz plik IMG", "SelectorEmptyScreenHeader": "Brak plików i katalogów", "SelectRoom": "Wybierz pokój", "SelectXLSXFormat": "Wybierz plik .XLSX", @@ -437,4 +436,4 @@ "Yes": "Tak", "Yesterday": "Wczoraj", "You": "Ty" -} \ No newline at end of file +} diff --git a/public/locales/pt-BR/Common.json b/public/locales/pt-BR/Common.json index 543f303c0f..64e6855319 100644 --- a/public/locales/pt-BR/Common.json +++ b/public/locales/pt-BR/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "Sobre", "AboutCompanyTitle": "Sobre este programa", "AccessDenied": "Acesso negado", @@ -346,7 +346,6 @@ "SelectFile": "Selecionar arquivo", "SelectFiles": "Selecionar arquivos", "SelectFolder": "Selecionar pasta", - "SelectIMGFormat": "Selecione o arquivo IMG", "SelectorEmptyScreenHeader": "Nenhum arquivo e pasta aqui ainda", "SelectRoom": "Selecione a sala", "SelectXLSXFormat": "Selecione o arquivo .XLSX", @@ -437,4 +436,4 @@ "Yes": "Sim", "Yesterday": "Ontem", "You": "Você" -} \ No newline at end of file +} diff --git a/public/locales/pt/Common.json b/public/locales/pt/Common.json index 11fde6ec38..b76e549eca 100644 --- a/public/locales/pt/Common.json +++ b/public/locales/pt/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "Sobre", "AboutCompanyTitle": "Sobre este programa", "AccessDenied": "Acesso negado", @@ -346,7 +346,6 @@ "SelectFile": "Selecionar ficheiro", "SelectFiles": "Selecionar arquivos", "SelectFolder": "Selecione a pasta", - "SelectIMGFormat": "Selecione o arquivo IMG", "SelectorEmptyScreenHeader": "Nenhum arquivo e pasta aqui ainda", "SelectRoom": "Selecione o sala", "SelectXLSXFormat": "Selecione o arquivo .XLSX", @@ -437,4 +436,4 @@ "Yes": "Sim", "Yesterday": "Ontem", "You": "Você" -} \ No newline at end of file +} diff --git a/public/locales/ro/Common.json b/public/locales/ro/Common.json index 70e1c453ce..5b53c05223 100644 --- a/public/locales/ro/Common.json +++ b/public/locales/ro/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "Informații", "AboutCompanyTitle": "Despre aplicația", "AccessDenied": "Acces refuzat ", @@ -346,7 +346,6 @@ "SelectFile": "Selectare fișier", "SelectFiles": "Selectare fișiere", "SelectFolder": "Selectare folder", - "SelectIMGFormat": "Selectare fișier IMG", "SelectorEmptyScreenHeader": "Niciun fișier sau folder deocamdată aici", "SelectRoom": "Selectare sala", "SelectXLSXFormat": "Selectare fișier .XLSX ", @@ -437,4 +436,4 @@ "Yes": "Da", "Yesterday": "Ieri", "You": "Dvs" -} \ No newline at end of file +} diff --git a/public/locales/ru/Common.json b/public/locales/ru/Common.json index c5727d1b8c..0bbd2ee93a 100644 --- a/public/locales/ru/Common.json +++ b/public/locales/ru/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "О программе", "AboutCompanyTitle": "О программе", "AccessDenied": "Доступ запрещен", @@ -346,7 +346,6 @@ "SelectFile": "Выбрать файл", "SelectFiles": "Выбрать файлы", "SelectFolder": "Выбрать папку", - "SelectIMGFormat": "Выберите файл IMG", "SelectorEmptyScreenHeader": "Здесь пока нет файлов и папок", "SelectRoom": "Выберите комнату", "SelectXLSXFormat": "Выберите файл .XLSX", @@ -437,4 +436,4 @@ "Yes": "Да", "Yesterday": "Вчера", "You": "Вы" -} \ No newline at end of file +} diff --git a/public/locales/si/Common.json b/public/locales/si/Common.json index e9582e19af..5eaca12f84 100644 --- a/public/locales/si/Common.json +++ b/public/locales/si/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "පිළිබඳව", "AboutCompanyTitle": "මෙම මෘදුකාංගය ගැන", "AccessRights": "ප්‍රවේශ අයිති", @@ -302,4 +302,4 @@ "Warning": "අවවාදයයි", "Website": "අඩවිය", "Yesterday": "ඊයේ" -} \ No newline at end of file +} diff --git a/public/locales/sk/Common.json b/public/locales/sk/Common.json index ee7920bc8c..e1b77d1180 100644 --- a/public/locales/sk/Common.json +++ b/public/locales/sk/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "O aplikácii", "AboutCompanyTitle": "O programe", "AccessDenied": "Prístup bol zamietnutý", @@ -346,7 +346,6 @@ "SelectFile": "Vybrať súbor", "SelectFiles": "Vyberte súbory", "SelectFolder": "Vybrať priečinok", - "SelectIMGFormat": "Vyberte súbor IMG", "SelectorEmptyScreenHeader": "Zatiaľ tu nie sú žiadne súbory a priečinky", "SelectRoom": "Vyberte miestnosť", "SelectXLSXFormat": "Vyberte súbor .XLSX", @@ -437,4 +436,4 @@ "Yes": "Áno", "Yesterday": "Včera", "You": "Vy" -} \ No newline at end of file +} diff --git a/public/locales/sl/Common.json b/public/locales/sl/Common.json index 46b9b8d215..aa91cba6fe 100644 --- a/public/locales/sl/Common.json +++ b/public/locales/sl/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "O nas", "AboutCompanyTitle": "O tem programu", "AccessDenied": "Dostop je zavrnjen", @@ -346,7 +346,6 @@ "SelectFile": "Izberi datoteko", "SelectFiles": "Izberi datoteke", "SelectFolder": "Izberi mapo", - "SelectIMGFormat": "Izberi IMG datoteko", "SelectorEmptyScreenHeader": "Tu še ni datotek in map", "SelectRoom": "Izberi sobo", "SelectXLSXFormat": "Izberi .XLSX datoteko", @@ -437,4 +436,4 @@ "Yes": "Da", "Yesterday": "Včeraj", "You": "Vi" -} \ No newline at end of file +} diff --git a/public/locales/sr-Latn-RS/Common.json b/public/locales/sr-Latn-RS/Common.json index 42629ae389..55dfc0e661 100644 --- a/public/locales/sr-Latn-RS/Common.json +++ b/public/locales/sr-Latn-RS/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "U vezi sa", "AboutCompanyTitle": "U vezi ovog programa", "AccessDenied": "Pristup odbijen", @@ -345,7 +345,6 @@ "SelectFile": "Izaberi datoteku", "SelectFiles": "Izaberi datoteke", "SelectFolder": "Odaberite folder", - "SelectIMGFormat": "Izaberi IMG datoteku", "SelectorEmptyScreenHeader": "Još uvek nema datoteka i foldera ovde", "SelectRoom": "Izaberi sobu", "SelectXLSXFormat": "Izaberi .XLSX datoteku", @@ -436,4 +435,4 @@ "Yes": "Da", "Yesterday": "Juče", "You": "Vi" -} \ No newline at end of file +} diff --git a/public/locales/tr/Common.json b/public/locales/tr/Common.json index eb42f24e3d..4373e008df 100644 --- a/public/locales/tr/Common.json +++ b/public/locales/tr/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "Hakkında", "AboutCompanyTitle": "Bu program hakkında", "AccessDenied": "Erişim engellendi", @@ -346,7 +346,6 @@ "SelectFile": "Dosya Seç", "SelectFiles": "Dosyaları seçin", "SelectFolder": "Klasör seç", - "SelectIMGFormat": "IMG dosyasını seçin", "SelectorEmptyScreenHeader": "Burada henüz dosya ve klasör yok", "SelectRoom": "Oda seçin", "SelectXLSXFormat": ".XLSX dosyası seçin", @@ -437,4 +436,4 @@ "Yes": "Evet", "Yesterday": "Dün", "You": "Siz" -} \ No newline at end of file +} diff --git a/public/locales/uk-UA/Common.json b/public/locales/uk-UA/Common.json index 2db0a41585..174eedd87a 100644 --- a/public/locales/uk-UA/Common.json +++ b/public/locales/uk-UA/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "Інформація", "AboutCompanyTitle": "Про цю програму", "AccessDenied": "Доступ заборонено", @@ -346,7 +346,6 @@ "SelectFile": "Вибрати файл", "SelectFiles": "Вибрати файли", "SelectFolder": "Вибрати папку", - "SelectIMGFormat": "Вибрати файл IMG", "SelectorEmptyScreenHeader": "Тут ще немає файлів і папок", "SelectRoom": "Вибрати кімнату", "SelectXLSXFormat": "Вибрати файл .XLSX", @@ -437,4 +436,4 @@ "Yes": "Так", "Yesterday": "Вчора", "You": "Ви" -} \ No newline at end of file +} diff --git a/public/locales/vi/Common.json b/public/locales/vi/Common.json index 14a8b97677..ab8013b352 100644 --- a/public/locales/vi/Common.json +++ b/public/locales/vi/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "Giới thiệu", "AboutCompanyTitle": "Giới thiệu về chương trình này", "AccessDenied": "Truy cập bị từ chối", @@ -346,7 +346,6 @@ "SelectFile": "Chọn tệp", "SelectFiles": "Chọn tập tin", "SelectFolder": "Chọn thư mục", - "SelectIMGFormat": "Chọn tập tin IMG", "SelectorEmptyScreenHeader": "Chưa có tập tin và thư mục nào ở đây", "SelectRoom": "Chọn phòng", "SelectXLSXFormat": "Chọn tập tin .XLSX", @@ -437,4 +436,4 @@ "Yes": "Có", "Yesterday": "Hôm qua", "You": "Bạn" -} \ No newline at end of file +} diff --git a/public/locales/zh-CN/Common.json b/public/locales/zh-CN/Common.json index 6cd7723a6c..2d92caaa92 100644 --- a/public/locales/zh-CN/Common.json +++ b/public/locales/zh-CN/Common.json @@ -1,4 +1,4 @@ -{ +{ "About": "关于", "AboutCompanyTitle": "关于本计划", "AccessDenied": "拒绝访问", @@ -346,7 +346,6 @@ "SelectFile": "选择文件", "SelectFiles": "选择文件", "SelectFolder": "选择文件夹", - "SelectIMGFormat": "选择图片文件", "SelectorEmptyScreenHeader": "这里还没有文件和文件夹", "SelectRoom": "选择房间", "SelectXLSXFormat": "选择 .XLSX 文件", @@ -437,4 +436,4 @@ "Yes": "是", "Yesterday": "昨天", "You": "您" -} \ No newline at end of file +} From bb0c71857414157dac0bf980f8514b1e38a4f1d3 Mon Sep 17 00:00:00 2001 From: Vladimir Khvan Date: Fri, 26 Apr 2024 18:04:46 +0500 Subject: [PATCH 016/176] Web: Client: JavascriptSDK: fixed scroll --- .../developer-tools/JavascriptSDK/presets/DocSpace.js | 9 ++++++--- .../developer-tools/JavascriptSDK/presets/Editor.js | 9 ++++++--- .../JavascriptSDK/presets/FileSelector.js | 9 ++++++--- .../developer-tools/JavascriptSDK/presets/Manager.js | 9 ++++++--- .../JavascriptSDK/presets/RoomSelector.js | 9 ++++++--- .../developer-tools/JavascriptSDK/presets/SimpleRoom.js | 9 ++++++--- .../developer-tools/JavascriptSDK/presets/Viewer.js | 9 ++++++--- 7 files changed, 42 insertions(+), 21 deletions(-) diff --git a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/DocSpace.js b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/DocSpace.js index b8153c08a5..672d0fa589 100644 --- a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/DocSpace.js +++ b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/DocSpace.js @@ -126,14 +126,17 @@ const DocSpace = (props) => { ); }, 500); + useEffect(() => { + loadFrame(); + return () => destroyFrame(); + }); + useEffect(() => { const scroll = document.getElementsByClassName("section-scroll")[0]; if (scroll) { scroll.scrollTop = 0; } - loadFrame(); - return () => destroyFrame(); - }); + }, []); const onChangeTab = () => { loadFrame(); diff --git a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Editor.js b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Editor.js index 9acb63251a..67cca92b85 100644 --- a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Editor.js +++ b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Editor.js @@ -119,14 +119,17 @@ const Editor = (props) => { ); }, 500); + useEffect(() => { + loadFrame(); + return () => destroyFrame(); + }); + useEffect(() => { const scroll = document.getElementsByClassName("section-scroll")[0]; if (scroll) { scroll.scrollTop = 0; } - loadFrame(); - return () => destroyFrame(); - }); + }, []); const onChangeTab = () => { loadFrame(); diff --git a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/FileSelector.js b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/FileSelector.js index e30f1da56a..bf75c3b9a1 100644 --- a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/FileSelector.js +++ b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/FileSelector.js @@ -228,14 +228,17 @@ const FileSelector = (props) => { ); }, 500); + useEffect(() => { + loadFrame(); + return () => destroyFrame(); + }); + useEffect(() => { const scroll = document.getElementsByClassName("section-scroll")[0]; if (scroll) { scroll.scrollTop = 0; } - loadFrame(); - return () => destroyFrame(); - }); + }, []); const toggleButtonMode = (e) => { setSelectedElementType(e.target.value); diff --git a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Manager.js b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Manager.js index f9d0354f04..d40a9cbd67 100644 --- a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Manager.js +++ b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Manager.js @@ -200,14 +200,17 @@ const Manager = (props) => { ); }, 500); + useEffect(() => { + loadFrame(); + return () => destroyFrame(); + }); + useEffect(() => { const scroll = document.getElementsByClassName("section-scroll")[0]; if (scroll) { scroll.scrollTop = 0; } - loadFrame(); - return () => destroyFrame(); - }); + }, []); const onChangeTab = () => { loadFrame(); diff --git a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/RoomSelector.js b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/RoomSelector.js index afef76d0aa..adcaeb6d21 100644 --- a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/RoomSelector.js +++ b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/RoomSelector.js @@ -180,14 +180,17 @@ const RoomSelector = (props) => { ); }, 500); + useEffect(() => { + loadFrame(); + return destroyFrame; + }); + useEffect(() => { const scroll = document.getElementsByClassName("section-scroll")[0]; if (scroll) { scroll.scrollTop = 0; } - loadFrame(); - return destroyFrame; - }); + }, []); const toggleButtonMode = (e) => { setSelectedElementType(e.target.value); diff --git a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/SimpleRoom.js b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/SimpleRoom.js index 9582d6f21b..fa9a11c7ce 100644 --- a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/SimpleRoom.js +++ b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/SimpleRoom.js @@ -159,14 +159,17 @@ const SimpleRoom = (props) => { ); }, 500); + useEffect(() => { + loadFrame(); + return () => destroyFrame(); + }); + useEffect(() => { const scroll = document.getElementsByClassName("section-scroll")[0]; if (scroll) { scroll.scrollTop = 0; } - loadFrame(); - return () => destroyFrame(); - }); + }, []); const onChangeTab = () => { loadFrame(); diff --git a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Viewer.js b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Viewer.js index b560327c66..026dcb2bbc 100644 --- a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Viewer.js +++ b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Viewer.js @@ -122,14 +122,17 @@ const Viewer = (props) => { ); }, 500); + useEffect(() => { + loadFrame(); + return () => destroyFrame(); + }); + useEffect(() => { const scroll = document.getElementsByClassName("section-scroll")[0]; if (scroll) { scroll.scrollTop = 0; } - loadFrame(); - return () => destroyFrame(); - }); + }, []); const onChangeTab = () => { loadFrame(); From a1939a225af523c82a66e7b178fd69136a9673ef Mon Sep 17 00:00:00 2001 From: Tatiana Lopaeva Date: Sat, 27 Apr 2024 13:51:14 +0300 Subject: [PATCH 017/176] Fix bug 65235 - Files. Display a bar notification about the reached disk space limit for Room admin/Power user. --- .../client/public/locales/en/MainBar.json | 1 + packages/client/src/components/MainBar/Bar.js | 13 +++++-- .../src/components/MainBar/QuotasBar.js | 34 +++++++++++-------- 3 files changed, 32 insertions(+), 16 deletions(-) diff --git a/packages/client/public/locales/en/MainBar.json b/packages/client/public/locales/en/MainBar.json index 212142ffd0..7a3a88db62 100644 --- a/packages/client/public/locales/en/MainBar.json +++ b/packages/client/public/locales/en/MainBar.json @@ -10,6 +10,7 @@ "StorageAndRoomHeader": "Storage and rooms limits are about to be exceeded.", "StorageAndUserHeader": "Storage and admins/power users limits are about to be exceeded.", "StorageQuotaDescription": "You can remove the unnecessary files or <1>{{clickHere}} to find a more suitable pricing plan for your DocSpace.", + "StorageQuotaUserDescription": "You can remove the unnecessary files to free up disk space.", "StorageQuotaExceeded": "Storage quota exceeded", "StorageQuotaHeader": "Storage space amount is about to be exceeded: {{currentValue}} / {{maxValue}}", "TenantCustomQuotaDescription": "You can remove the unnecessary files or change quota in the <1>Storage management settings.", diff --git a/packages/client/src/components/MainBar/Bar.js b/packages/client/src/components/MainBar/Bar.js index f1fd6939ec..b2c7be6773 100644 --- a/packages/client/src/components/MainBar/Bar.js +++ b/packages/client/src/components/MainBar/Bar.js @@ -49,6 +49,8 @@ const Bar = (props) => { firstLoad, isAdmin, + isPowerUser, + isRoomAdmin, userEmail, setMaintenanceExist, withActivationBar, @@ -118,7 +120,6 @@ const Bar = (props) => { setBarVisible((value) => ({ ...value, roomQuota: !closed.includes(QuotaBarTypes.RoomQuota), - storageQuota: !closed.includes(QuotaBarTypes.StorageQuota), tenantCustomQuota: !closed.includes(QuotaBarTypes.TenantCustomQuota), userQuota: !closed.includes(QuotaBarTypes.UserQuota), storageAndRoomQuota: !closed.includes( @@ -129,6 +130,12 @@ const Bar = (props) => { ), })); } + if (isAdmin || isPowerUser || isRoomAdmin) { + setBarVisible((value) => ({ + ...value, + storageQuota: !closed.includes(QuotaBarTypes.StorageQuota), + })); + } if (!closed.includes(QuotaBarTypes.ConfirmEmail)) { setBarVisible((value) => ({ ...value, confirmEmail: true })); @@ -139,7 +146,7 @@ const Bar = (props) => { } else { setBarVisible({ roomQuota: isAdmin, - storageQuota: isAdmin, + storageQuota: isAdmin || isPowerUser || isRoomAdmin, tenantCustomQuota: isAdmin, userQuota: isAdmin, storageAndUserQuota: isAdmin, @@ -397,6 +404,8 @@ export default inject( return { isAdmin: user?.isAdmin, + isPowerUser: user?.isCollaborator, + isRoomAdmin: user?.isRoomAdmin, userEmail: user?.email, withActivationBar, sendActivationLink, diff --git a/packages/client/src/components/MainBar/QuotasBar.js b/packages/client/src/components/MainBar/QuotasBar.js index 5881319dc2..72b1e991a9 100644 --- a/packages/client/src/components/MainBar/QuotasBar.js +++ b/packages/client/src/components/MainBar/QuotasBar.js @@ -53,6 +53,25 @@ const QuotasBar = ({ onClose && onClose(type); }; + const getStorageQuotaDescription = () => { + if (!isAdmin) return t("StorageQuotaUserDescription"); + + return ( + + You can remove the unnecessary files or + + {{ clickHere: t("ClickHere").toLowerCase() }} + {" "} + to find a better pricing plan for your portal. + + ); + }; + const getQuotaInfo = () => { switch (type) { case QuotaBarTypes.RoomQuota: @@ -76,20 +95,7 @@ const QuotasBar = ({ case QuotaBarTypes.StorageQuota: return { header: t("StorageQuotaHeader", { currentValue, maxValue }), - description: ( - - You can remove the unnecessary files or - - {{ clickHere: t("ClickHere").toLowerCase() }} - {" "} - to find a better pricing plan for your portal. - - ), + description: getStorageQuotaDescription(), }; case QuotaBarTypes.TenantCustomQuota: return { From 8c8bd5a9107fcf4926fe61fdc9b36810bfa70e4c Mon Sep 17 00:00:00 2001 From: Vladimir Khvan Date: Tue, 30 Apr 2024 01:47:49 +0500 Subject: [PATCH 018/176] Web: Client: JavascriptSDK: reworked file selector's type selection --- .../public/locales/en/JavascriptSdk.json | 1 + .../FilesSelector/FilesSelector.types.ts | 1 - .../src/components/FilesSelector/index.tsx | 2 - .../JavascriptSDK/presets/FileSelector.js | 125 ++++++------------ packages/client/src/pages/Sdk/index.js | 38 +++--- packages/shared/enums/index.ts | 4 + .../selectors/Files/FilesSelector.types.ts | 4 +- .../selectors/Files/FilesSelector.utils.ts | 10 +- .../selectors/Files/hooks/useFilesHelper.ts | 119 +++++++++-------- packages/shared/selectors/Files/index.tsx | 2 - 10 files changed, 138 insertions(+), 168 deletions(-) diff --git a/packages/client/public/locales/en/JavascriptSdk.json b/packages/client/public/locales/en/JavascriptSdk.json index cc7cc62bd4..91065dac79 100644 --- a/packages/client/public/locales/en/JavascriptSdk.json +++ b/packages/client/public/locales/en/JavascriptSdk.json @@ -4,6 +4,7 @@ "AddWatermarks": "Add watermarks to documents", "AdvancedDisplay": "Advanced display settings", "AllTypes": "All types", + "AllTypesSupportedByEditor": "All types supported by ONLYOFFICE editors", "APILink": "API library", "Ascending": "Ascending", "AvailableEditingHint": "You can select the section, room or folder you want to display in the selector. In this case, breadcrumbs will not be displayed.", diff --git a/packages/client/src/components/FilesSelector/FilesSelector.types.ts b/packages/client/src/components/FilesSelector/FilesSelector.types.ts index efb9d4d3b4..10c23a564b 100644 --- a/packages/client/src/components/FilesSelector/FilesSelector.types.ts +++ b/packages/client/src/components/FilesSelector/FilesSelector.types.ts @@ -141,5 +141,4 @@ export type FilesSelectorProps = { settings: unknown; roomsFolderId?: number; - availableForEditing?: boolean; }; diff --git a/packages/client/src/components/FilesSelector/index.tsx b/packages/client/src/components/FilesSelector/index.tsx index a138fdbb7e..f5e5ad7c1e 100644 --- a/packages/client/src/components/FilesSelector/index.tsx +++ b/packages/client/src/components/FilesSelector/index.tsx @@ -134,7 +134,6 @@ const FilesSelectorWrapper = ({ isRoomBackup, roomsFolderId, - availableForEditing = true, }: FilesSelectorProps) => { const { t }: { t: TTranslation } = useTranslation([ "Files", @@ -374,7 +373,6 @@ const FilesSelectorWrapper = ({ isMove || isCopy || isRestore ? "select-file-modal-cancel" : "" } getFilesArchiveError={getFilesArchiveError} - availableForEditing={availableForEditing} /> ); }; diff --git a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/FileSelector.js b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/FileSelector.js index bf75c3b9a1..4ddc27aeac 100644 --- a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/FileSelector.js +++ b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/FileSelector.js @@ -45,7 +45,7 @@ import { isTablet, isMobile } from "@docspace/shared/utils/device"; import { HelpButton } from "@docspace/shared/components/help-button"; import { Button } from "@docspace/shared/components/button"; -import { FilesSelectorExtendedFilterTypes } from "@docspace/shared/enums"; +import { FilterType } from "@docspace/shared/enums"; import GetCodeDialog from "../sub-components/GetCodeDialog"; import CodeBlock from "../sub-components/CodeBlock"; @@ -107,60 +107,53 @@ const FileSelector = (props) => { const fileTypeDisplay = [ { value: FilesSelectorFilterTypes.ALL, label: t("AllTypes") }, - { value: "custom-types", label: t("SelectTypes") }, + { value: "EditorSupportedTypes", label: t("AllTypesSupportedByEditor") }, + { value: "SelectorTypes", label: t("SelectTypes") }, ]; - const editingAvailableOptions = [ + const fileOptions = [ { - key: FilesSelectorFilterTypes.DOCX, - label: FilesSelectorFilterTypes.DOCX, - }, - { key: FilesSelectorFilterTypes.IMG, label: FilesSelectorFilterTypes.IMG }, - { - key: FilesSelectorFilterTypes.BackupOnly, - label: FilesSelectorFilterTypes.BackupOnly, + key: FilterType.FoldersOnly, + label: t(`Translations:Folders`), }, { - key: FilesSelectorFilterTypes.DOCXF, - label: FilesSelectorFilterTypes.DOCXF, + key: FilterType.DocumentsOnly, + label: t(`Common:Documents`), }, { - key: FilesSelectorFilterTypes.XLSX, - label: FilesSelectorFilterTypes.XLSX, + key: FilterType.PresentationsOnly, + label: t(`Translations:Presentations`), + }, + { + key: FilterType.SpreadsheetsOnly, + label: t(`Translations:Spreadsheets`), + }, + { + key: FilterType.OFormTemplateOnly, + label: t(`Files:FormsTemplates`), + }, + { + key: FilterType.OFormOnly, + label: t(`Files:Forms`), + }, + { + key: FilterType.ArchiveOnly, + label: t(`Files:Archives`), + }, + { + key: FilterType.ImagesOnly, + label: t(`Files:Images`), + }, + { + key: FilterType.MediaOnly, + label: t(`Files:Media`), + }, + { + key: FilterType.FilesOnly, + label: t(`Files:AllFiles`), }, ]; - const extendedOptions = [ - { - key: FilesSelectorExtendedFilterTypes.Documents, - label: t(`Common:${FilesSelectorExtendedFilterTypes.Documents}`), - }, - { - key: FilesSelectorExtendedFilterTypes.Presentations, - label: t( - `Translations:${FilesSelectorExtendedFilterTypes.Presentations}`, - ), - }, - { - key: FilesSelectorExtendedFilterTypes.Spreadsheets, - label: t(`Translations:${FilesSelectorExtendedFilterTypes.Spreadsheets}`), - }, - { - key: FilesSelectorExtendedFilterTypes.Images, - label: t(`Files:${FilesSelectorExtendedFilterTypes.Images}`), - }, - { - key: FilesSelectorExtendedFilterTypes.Media, - label: t(`Files:${FilesSelectorExtendedFilterTypes.Media}`), - }, - { - key: FilesSelectorExtendedFilterTypes.Archives, - label: t(`Files:${FilesSelectorExtendedFilterTypes.Archives}`), - }, - ]; - - const [fileOptions, setFileOptions] = useState(extendedOptions); - const [widthDimension, setWidthDimension] = useState(dataDimensions[0]); const [heightDimension, setHeightDimension] = useState(dataDimensions[0]); const [width, setWidth] = useState("100"); @@ -192,7 +185,6 @@ const FileSelector = (props) => { filterParam: FilesSelectorFilterTypes.ALL, isButtonMode: selectedElementType === "button", buttonWithLogo: true, - availableForEditing: false, events: { onSelectCallback: (items) => { toastr.success(items[0].label); @@ -326,9 +318,9 @@ const FileSelector = (props) => { return { ...config, filterParam: - e.target.value === FilesSelectorFilterTypes.ALL - ? FilesSelectorFilterTypes.ALL - : selectedType.key, + e.target.value === "SelectorTypes" + ? selectedType.key + : e.target.value, }; }); }; @@ -364,24 +356,6 @@ const FileSelector = (props) => { setConfig((config) => ({ ...config, withSearch: !config.withSearch })); }; - const toggleAvailableEditing = () => { - setFileOptions( - config.availableForEditing ? extendedOptions : editingAvailableOptions, - ); - setSelectedType( - config.availableForEditing - ? extendedOptions[0] - : editingAvailableOptions[0], - ); - setConfig((config) => ({ - ...config, - filterParam: config.availableForEditing - ? extendedOptions[0].key - : editingAvailableOptions[0].key, - availableForEditing: !config.availableForEditing, - })); - }; - // const toggleBreadCrumbs = () => { // setConfig((config) => ({ ...config, withBreadCrumbs: !config.withBreadCrumbs })); // }; @@ -718,7 +692,7 @@ const FileSelector = (props) => { onClick={changeColumnsOption} spacing="8px" /> - {typeDisplay === "custom-types" && ( + {typeDisplay === "SelectorTypes" && ( <> { directionY="top" selectedOption={selectedType} /> - - - - } - /> - )} diff --git a/packages/client/src/pages/Sdk/index.js b/packages/client/src/pages/Sdk/index.js index e40fcad43a..8314bacf90 100644 --- a/packages/client/src/pages/Sdk/index.js +++ b/packages/client/src/pages/Sdk/index.js @@ -37,7 +37,7 @@ import { createPasswordHash, frameCallCommand, } from "@docspace/shared/utils/common"; -import { RoomsType } from "@docspace/shared/enums"; +import { RoomsType, FilterType } from "@docspace/shared/enums"; const Sdk = ({ t, @@ -59,31 +59,36 @@ const Sdk = ({ const [isDataReady, setIsDataReady] = useState(false); const formatsDescription = { - DOCX: t("Common:SelectExtensionFiles", { extension: ".DOCX" }), - DOCXF: t("Common:SelectExtensionFiles", { extension: ".DOCXF" }), - XLSX: t("Common:SelectExtensionFiles", { extension: ".XLSX" }), - BackupOnly: t("Common:SelectExtensionFiles", { - extension: t("Settings:Backup").toLowerCase(), - }), - IMG: t("Common:SelectTypeFiles", { type: t("Files:Images").toLowerCase() }), - Documents: t("Common:SelectTypeFiles", { + [FilterType.DocumentsOnly]: t("Common:SelectTypeFiles", { type: t("Common:Documents").toLowerCase(), }), - Spreadsheets: t("Common:SelectTypeFiles", { + [FilterType.SpreadsheetsOnly]: t("Common:SelectTypeFiles", { type: t("Translations:Spreadsheets").toLowerCase(), }), - Presentations: t("Common:SelectTypeFiles", { + [FilterType.PresentationsOnly]: t("Common:SelectTypeFiles", { type: t("Translations:Presentations").toLowerCase(), }), - Images: t("Common:SelectTypeFiles", { + [FilterType.ImagesOnly]: t("Common:SelectTypeFiles", { type: t("Files:Images").toLowerCase(), }), - Media: t("Common:SelectExtensionFiles", { + [FilterType.MediaOnly]: t("Common:SelectExtensionFiles", { extension: t("Files:Media").toLowerCase(), }), - Archives: t("Common:SelectTypeFiles", { + [FilterType.ArchiveOnly]: t("Common:SelectTypeFiles", { type: t("Files:Archives").toLowerCase(), }), + [FilterType.FoldersOnly]: t("Common:SelectTypeFiles", { + type: t("Translations:Folders").toLowerCase(), + }), + [FilterType.OFormTemplateOnly]: t("Common:SelectTypeFiles", { + type: t("Files:FormsTemplates").toLowerCase(), + }), + [FilterType.OFormOnly]: t("Common:SelectTypeFiles", { + type: t("Files:Forms").toLowerCase(), + }), + [FilterType.FilesOnly]: t("Common:SelectTypeFiles", { + type: t("Files:AllFiles").toLowerCase(), + }), }; useEffect(() => { @@ -298,10 +303,7 @@ const Sdk = ({ acceptButtonLabel={frameConfig?.acceptButtonLabel} cancelButtonLabel={frameConfig?.cancelButtonLabel} currentFolderId={frameConfig?.id} - descriptionText={ - formatsDescription[frameConfig?.filterParam || "DOCX"] - } - availableForEditing={frameConfig?.availableForEditing} + descriptionText={formatsDescription[frameConfig?.filterParam] || ""} /> ); break; diff --git a/packages/shared/enums/index.ts b/packages/shared/enums/index.ts index 3672d0c49b..574dda8066 100644 --- a/packages/shared/enums/index.ts +++ b/packages/shared/enums/index.ts @@ -520,12 +520,16 @@ export const enum WhiteLabelLogoType { * @readonly */ export const enum FilesSelectorExtendedFilterTypes { + Folders = "Folders", Documents = "Documents", Presentations = "Presentations", Spreadsheets = "Spreadsheets", Images = "Images", Media = "Media", Archives = "Archives", + AllFiles = "AllFiles", + FormTemplates = "FormTemplates", + Forms = "Forms", } export const enum EditorConfigErrorType { diff --git a/packages/shared/selectors/Files/FilesSelector.types.ts b/packages/shared/selectors/Files/FilesSelector.types.ts index b969776624..0470bf7e02 100644 --- a/packages/shared/selectors/Files/FilesSelector.types.ts +++ b/packages/shared/selectors/Files/FilesSelector.types.ts @@ -101,7 +101,7 @@ export type UseFilesHelpersProps = { setSelectedItemSecurity: (value: TFileSecurity | TFolderSecurity) => void; isThirdParty: boolean; setSelectedTreeNode: (treeNode: TFolder) => void; - filterParam?: string; + filterParam?: string | number; getRootData?: () => Promise; onSetBaseFolderPath?: ( value: number | string | undefined | TBreadCrumb[], @@ -117,7 +117,6 @@ export type UseFilesHelpersProps = { getIcon: (fileExst: string) => string; getFilesArchiveError: (name: string) => string; isInit: boolean; - availableForEditing?: boolean; setIsFirstLoad: (value: boolean) => void; }; @@ -198,5 +197,4 @@ export type FilesSelectorProps = ( isPanelVisible: boolean; currentDeviceType: DeviceType; getFilesArchiveError: (name: string) => string; - availableForEditing?: boolean; }; diff --git a/packages/shared/selectors/Files/FilesSelector.utils.ts b/packages/shared/selectors/Files/FilesSelector.utils.ts index c888832b6c..dedb265255 100644 --- a/packages/shared/selectors/Files/FilesSelector.utils.ts +++ b/packages/shared/selectors/Files/FilesSelector.utils.ts @@ -34,7 +34,7 @@ import { DEFAULT_FILE_EXTS } from "./FilesSelector.constants"; const isDisableFolder = ( folder: TFolder, disabledItems: (number | string)[], - filterParam?: string, + filterParam?: string | number, ) => { if (!folder.security.Create) return true; @@ -44,11 +44,11 @@ const isDisableFolder = ( export const convertFoldersToItems: ( folders: TFolder[], disabledItems: (number | string)[], - filterParam?: string, + filterParam?: string | number, ) => TSelectorItem[] = ( folders: TFolder[], disabledItems: (number | string)[], - filterParam?: string, + filterParam?: string | number, ) => { const items = folders.map((folder: TFolder) => { const { @@ -90,11 +90,11 @@ export const convertFoldersToItems: ( export const convertFilesToItems: ( files: TFile[], getIcon: (fileExst: string) => string, - filterParam?: string, + filterParam?: string | number, ) => TSelectorItem[] = ( files: TFile[], getIcon: (fileExst: string) => string, - filterParam?: string, + filterParam?: string | number, ) => { const items = files.map((file) => { const { id, title, security, folderId, rootFolderType, fileExst } = file; diff --git a/packages/shared/selectors/Files/hooks/useFilesHelper.ts b/packages/shared/selectors/Files/hooks/useFilesHelper.ts index 6e93cce1df..7de255c5e0 100644 --- a/packages/shared/selectors/Files/hooks/useFilesHelper.ts +++ b/packages/shared/selectors/Files/hooks/useFilesHelper.ts @@ -26,11 +26,10 @@ import React from "react"; -import { getFolder, getFolderInfo } from "../../../api/files"; +import { getFolder, getFolderInfo, getSettingsFiles } from "../../../api/files"; import FilesFilter from "../../../api/files/filter"; import { ApplyFilterOption, - FilesSelectorExtendedFilterTypes, FilesSelectorFilterTypes, FilterType, FolderType, @@ -74,7 +73,6 @@ const useFilesHelper = ({ getFilesArchiveError, isInit, setIsInit, - availableForEditing = true, setIsFirstLoad, }: UseFilesHelpersProps) => { const requestRunning = React.useRef(false); @@ -107,6 +105,8 @@ const useFilesHelper = ({ const filter = FilesFilter.getDefault(); + const { extsWebEdited } = await getSettingsFiles(); + filter.page = page; filter.pageCount = PAGE_COUNT; filter.search = currentSearch; @@ -114,70 +114,82 @@ const useFilesHelper = ({ filter.withSubfolders = false; if (filterParam) { filter.applyFilterOption = ApplyFilterOption.Files; - if (availableForEditing) { - switch (filterParam) { - case FilesSelectorFilterTypes.DOCX: - filter.extension = FilesSelectorFilterTypes.DOCX; - break; + switch (filterParam) { + case FilesSelectorFilterTypes.DOCX: + filter.extension = FilesSelectorFilterTypes.DOCX; + break; - case FilesSelectorFilterTypes.IMG: - filter.filterType = FilterType.ImagesOnly; - break; + case FilesSelectorFilterTypes.IMG: + filter.filterType = FilterType.ImagesOnly; + break; - case FilesSelectorFilterTypes.BackupOnly: - filter.extension = "gz,tar"; - break; + case FilesSelectorFilterTypes.BackupOnly: + filter.extension = "gz,tar"; + break; - case FilesSelectorFilterTypes.DOCXF: - filter.filterType = FilterType.OFormTemplateOnly; - break; + case FilesSelectorFilterTypes.DOCXF: + filter.filterType = FilterType.OFormTemplateOnly; + break; - case FilesSelectorFilterTypes.XLSX: - filter.filterType = FilterType.SpreadsheetsOnly; - break; + case FilesSelectorFilterTypes.XLSX: + filter.filterType = FilterType.SpreadsheetsOnly; + break; - case FilesSelectorFilterTypes.PDF: - filter.extension = FilesSelectorFilterTypes.PDF; - break; + case FilesSelectorFilterTypes.PDF: + filter.extension = FilesSelectorFilterTypes.PDF; + break; - case FilesSelectorFilterTypes.ALL: - filter.filterType = FilterType.FilesOnly; - break; + case FilterType.DocumentsOnly: + filter.filterType = FilterType.DocumentsOnly; + break; - default: - } - } else { - switch (filterParam) { - case FilesSelectorExtendedFilterTypes.Documents: - filter.filterType = FilterType.DocumentsOnly; - break; + case FilterType.PresentationsOnly: + filter.filterType = FilterType.PresentationsOnly; + break; - case FilesSelectorExtendedFilterTypes.Presentations: - filter.filterType = FilterType.PresentationsOnly; - break; + case FilterType.SpreadsheetsOnly: + filter.filterType = FilterType.SpreadsheetsOnly; + break; - case FilesSelectorExtendedFilterTypes.Spreadsheets: - filter.filterType = FilterType.SpreadsheetsOnly; - break; + case FilterType.ImagesOnly: + filter.filterType = FilterType.ImagesOnly; + break; - case FilesSelectorExtendedFilterTypes.Images: - filter.filterType = FilterType.ImagesOnly; - break; + case FilterType.MediaOnly: + filter.filterType = FilterType.MediaOnly; + break; - case FilesSelectorExtendedFilterTypes.Media: - filter.filterType = FilterType.MediaOnly; - break; + case FilterType.ArchiveOnly: + filter.filterType = FilterType.ArchiveOnly; + break; - case FilesSelectorExtendedFilterTypes.Archives: - filter.filterType = FilterType.ArchiveOnly; - break; + case FilterType.FoldersOnly: + filter.filterType = FilterType.FoldersOnly; + break; - case FilesSelectorFilterTypes.ALL: - filter.filterType = FilterType.FilesOnly; - break; + case FilterType.OFormTemplateOnly: + filter.filterType = FilterType.OFormTemplateOnly; + break; - default: - } + case FilterType.OFormOnly: + filter.filterType = FilterType.OFormOnly; + break; + + case FilterType.FilesOnly: + filter.filterType = FilterType.FilesOnly; + break; + + case FilesSelectorFilterTypes.ALL: + filter.filterType = FilterType.None; + break; + + case "EditorSupportedTypes": + filter.extension = extsWebEdited + .map((extension) => extension.slice(1)) + .join(","); + break; + + default: } } @@ -369,7 +381,6 @@ const useFilesHelper = ({ setTotal, setItems, rootThirdPartyId, - availableForEditing, ], ); diff --git a/packages/shared/selectors/Files/index.tsx b/packages/shared/selectors/Files/index.tsx index 4d04226b40..0c454a5e64 100644 --- a/packages/shared/selectors/Files/index.tsx +++ b/packages/shared/selectors/Files/index.tsx @@ -105,7 +105,6 @@ const FilesSelector = ({ withSearch: withSearchProp, withBreadCrumbs: withBreadCrumbsProp, filesSettings, - availableForEditing = true, }: FilesSelectorProps) => { const theme = useTheme(); const { t } = useTranslation(["Common"]); @@ -221,7 +220,6 @@ const FilesSelector = ({ getFilesArchiveError, isInit, setIsInit, - availableForEditing, }); const onSelectAction = React.useCallback( From 7dfd68e157ead95b3781505e298ec81a13b03e46 Mon Sep 17 00:00:00 2001 From: Vladimir Khvan Date: Tue, 30 Apr 2024 15:58:58 +0500 Subject: [PATCH 019/176] Web: CLient: JAvascriptSDK: refactored room selector preset --- .../JavascriptSDK/presets/RoomSelector.js | 159 +++++------------- 1 file changed, 42 insertions(+), 117 deletions(-) diff --git a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/RoomSelector.js b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/RoomSelector.js index afef76d0aa..165a741bf1 100644 --- a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/RoomSelector.js +++ b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/RoomSelector.js @@ -52,6 +52,11 @@ import { toastr } from "@docspace/shared/components/toast"; const showPreviewThreshold = 720; +import { WidthSetter } from "../sub-components/WidthSetter"; +import { HeightSetter } from "../sub-components/HeightSetter"; +import { FrameIdSetter } from "../sub-components/FrameIdSetter"; +import { PresetWrapper } from "../sub-components/PresetWrapper"; + import { SDKContainer, Controls, @@ -117,10 +122,11 @@ const RoomSelector = (props) => { }, ]; - const [widthDimension, setWidthDimension] = useState(dataDimensions[0]); - const [heightDimension, setHeightDimension] = useState(dataDimensions[0]); - const [width, setWidth] = useState("100"); - const [height, setHeight] = useState("100"); + const defaultWidthDimension = dataDimensions[0], + defaultHeightDimension = dataDimensions[0], + defaultWidth = "100", + defaultHeight = "100"; + const [isGetCodeDialogOpened, setIsGetCodeDialogOpened] = useState(false); const [showPreview, setShowPreview] = useState( window.innerWidth > showPreviewThreshold, @@ -136,8 +142,8 @@ const RoomSelector = (props) => { const [config, setConfig] = useState({ mode: "room-selector", - width: `${width}${widthDimension.label}`, - height: `${height}${heightDimension.label}`, + width: `${defaultWidth}${defaultWidthDimension.label}`, + height: `${defaultHeight}${defaultHeightDimension.label}`, frameId: "ds-frame", init: true, showSelectorCancel: true, @@ -202,55 +208,8 @@ const RoomSelector = (props) => { setConfig((config) => ({ ...config, roomType: option.roomType })); }; - const onChangeTab = (tab) => { - if (tab.key === "preview" && selectedElementType === "button") { - setConfig((config) => ({ ...config, isButtonMode: true })); - } else if (tab.key === "selector-preview") { - setConfig((config) => ({ ...config, isButtonMode: false })); - } else if (tab.key === "code") { - setConfig((config) => ({ - ...config, - isButtonMode: selectedElementType === "button", - })); - } - }; - - const onChangeWidth = (e) => { - setConfig((config) => { - return { ...config, width: `${e.target.value}${widthDimension.label}` }; - }); - - setWidth(e.target.value); - }; - - const onChangeHeight = (e) => { - setConfig((config) => { - return { ...config, height: `${e.target.value}${heightDimension.label}` }; - }); - - setHeight(e.target.value); - }; - - const onChangeFrameId = (e) => { - setConfig((config) => { - return { ...config, frameId: e.target.value }; - }); - }; - - const onChangeWidthDimension = (item) => { - setConfig((config) => { - return { ...config, width: `${width}${item.label}` }; - }); - - setWidthDimension(item); - }; - - const onChangeHeightDimension = (item) => { - setConfig((config) => { - return { ...config, height: `${height}${item.label}` }; - }); - - setHeightDimension(item); + const onChangeTab = () => { + loadFrame(); }; const toggleWithSearch = () => { @@ -295,13 +254,13 @@ const RoomSelector = (props) => { const preview = ( { ]; return ( - - - {t("RoomSelectorDescription")} - - {t("CreateSampleRoomSelector")} + {showPreview && ( @@ -410,58 +368,25 @@ const RoomSelector = (props) => { {t("CustomizingDisplay")} - - - - - - + + + @@ -527,7 +452,7 @@ const RoomSelector = (props) => { /> )} - + ); }; From 662e0bef182ca14cfffaf29b46e25b505a208cd3 Mon Sep 17 00:00:00 2001 From: Akmal Isomadinov Date: Wed, 1 May 2024 14:05:21 +0500 Subject: [PATCH 020/176] Client:Public:Locales:EmptyView Fixed translation --- packages/client/public/locales/en/EmptyView.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/client/public/locales/en/EmptyView.json b/packages/client/public/locales/en/EmptyView.json index 920428fa5e..7fafc161db 100644 --- a/packages/client/public/locales/en/EmptyView.json +++ b/packages/client/public/locales/en/EmptyView.json @@ -10,7 +10,7 @@ "InviteUsersOptionTitle": "Invite users", "InviteUsersOptionDescription": "Invite other users to this room to start the form filling process and collect completed copies.", "UploadPDFFormOptionTitle": "Upload a PDF form", - "UploadPDFFormOptionDescription": "Upload a ready-to-fill-out PDF form to this room from your DocSpace.", + "UploadPDFFormOptionDescription": "Move a ready-to-fill-out PDF form to this room from your DocSpace.", "UploadDevicePDFFormOptionTitle": "Download the complete PDF form", "UploadDevicePDFFormOptionDescription": "Download a PDF form from your device, and the system will automatically convert it into a form that can be filled out." } From 163a61a27fe669270d9444b75afe948036ba4968 Mon Sep 17 00:00:00 2001 From: Vladimir Khvan Date: Wed, 1 May 2024 17:18:35 +0500 Subject: [PATCH 021/176] Web: CLient: JAvascriptSDK: refactored viewer preset --- .../JavascriptSDK/presets/Viewer.js | 153 +++++------------- 1 file changed, 40 insertions(+), 113 deletions(-) diff --git a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Viewer.js b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Viewer.js index b560327c66..07301127bb 100644 --- a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Viewer.js +++ b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/Viewer.js @@ -41,8 +41,6 @@ import { inject, observer } from "mobx-react"; import { ImageEditor } from "@docspace/shared/components/image-editor"; import { FilesSelectorFilterTypes } from "@docspace/shared/enums"; -import { isTablet, isMobile } from "@docspace/shared/utils/device"; - import EmptyIframeContainer from "../sub-components/EmptyIframeContainer"; import GetCodeDialog from "../sub-components/GetCodeDialog"; @@ -51,19 +49,19 @@ import { Button } from "@docspace/shared/components/button"; const showPreviewThreshold = 720; +import { WidthSetter } from "../sub-components/WidthSetter"; +import { HeightSetter } from "../sub-components/HeightSetter"; +import { FrameIdSetter } from "../sub-components/FrameIdSetter"; +import { PresetWrapper } from "../sub-components/PresetWrapper"; + import { - SDKContainer, Controls, - CategoryHeader, CategorySubHeader, - CategoryDescription, ControlsGroup, LabelGroup, ControlsSection, Frame, Container, - RowContainer, - ColumnContainer, Preview, GetCodeButtonWrapper, FilesSelectorInputWrapper, @@ -82,10 +80,11 @@ const Viewer = (props) => { { key: "pixel", label: "px" }, ]; - const [widthDimension, setWidthDimension] = useState(dataDimensions[0]); - const [heightDimension, setHeightDimension] = useState(dataDimensions[0]); - const [width, setWidth] = useState("100"); - const [height, setHeight] = useState("100"); + const defaultWidthDimension = dataDimensions[0], + defaultHeightDimension = dataDimensions[0], + defaultWidth = "100", + defaultHeight = "100"; + const [isGetCodeDialogOpened, setIsGetCodeDialogOpened] = useState(false); const [showPreview, setShowPreview] = useState( window.innerWidth > showPreviewThreshold, @@ -94,8 +93,8 @@ const Viewer = (props) => { const [config, setConfig] = useState({ mode: "viewer", editorType: "embedded", - width: `${width}${widthDimension.label}`, - height: `${height}${heightDimension.label}`, + width: `${defaultWidth}${defaultWidthDimension.label}`, + height: `${defaultHeight}${defaultHeightDimension.label}`, frameId: "ds-frame", init: false, }); @@ -135,22 +134,6 @@ const Viewer = (props) => { loadFrame(); }; - const onChangeWidth = (e) => { - setConfig((config) => { - return { ...config, width: `${e.target.value}${widthDimension.label}` }; - }); - - setWidth(e.target.value); - }; - - const onChangeHeight = (e) => { - setConfig((config) => { - return { ...config, height: `${e.target.value}${heightDimension.label}` }; - }); - - setHeight(e.target.value); - }; - const onChangeFileId = async (file) => { const newConfig = { id: file.id, @@ -170,28 +153,6 @@ const Viewer = (props) => { }); }; - const onChangeFrameId = (e) => { - setConfig((config) => { - return { ...config, frameId: e.target.value, init: true }; - }); - }; - - const onChangeWidthDimension = (item) => { - setConfig((config) => { - return { ...config, width: `${width}${item.label}` }; - }); - - setWidthDimension(item); - }; - - const onChangeHeightDimension = (item) => { - setConfig((config) => { - return { ...config, height: `${height}${item.label}` }; - }); - - setHeightDimension(item); - }; - const openGetCodeModal = () => setIsGetCodeDialogOpened(true); const closeGetCodeModal = () => setIsGetCodeDialogOpened(false); @@ -214,13 +175,13 @@ const Viewer = (props) => { const preview = ( { ]; return ( - - - {t("ViewerDescription")} - - {t("CreateSampleViewer")} + {showPreview && ( @@ -307,58 +267,25 @@ const Viewer = (props) => { {t("CustomizingDisplay")} - - - - - - + + + {/* @@ -447,7 +374,7 @@ const Viewer = (props) => { /> )} - + ); }; From 72e0a8ca746c4d909c7c6352736ad8d2d0a1f24f Mon Sep 17 00:00:00 2001 From: Akmal Isomadinov Date: Wed, 1 May 2024 18:01:37 +0500 Subject: [PATCH 022/176] Client:Components:Badges Added open location file action --- packages/client/src/HOCs/withBadges.js | 16 +++++++++++++++- packages/client/src/components/Badges.js | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/client/src/HOCs/withBadges.js b/packages/client/src/HOCs/withBadges.js index 243815dec0..02b18d405d 100644 --- a/packages/client/src/HOCs/withBadges.js +++ b/packages/client/src/HOCs/withBadges.js @@ -124,6 +124,13 @@ export default function withBadges(WrappedComponent) { } }; + openLocationFile = () => { + const { checkAndOpenLocationAction, item } = this.props; + + //TODO: need to add ExtraLocationTitle, ExtraLocation, + checkAndOpenLocationAction?.(item); + }; + render() { const { t, @@ -173,6 +180,7 @@ export default function withBadges(WrappedComponent) { onBadgeClick={this.onBadgeClick} onUnpinClick={this.onUnpinClick} onUnmuteClick={this.onUnmuteClick} + openLocationFile={this.openLocationFile} setConvertDialogVisible={this.setConvertDialogVisible} onFilesClick={onFilesClick} viewAs={viewAs} @@ -212,7 +220,12 @@ export default function withBadges(WrappedComponent) { isArchiveFolder, isRecentTab, } = treeFoldersStore; - const { markAsRead, setPinAction, setMuteAction } = filesActionsStore; + const { + markAsRead, + setPinAction, + setMuteAction, + checkAndOpenLocationAction, + } = filesActionsStore; const { isTabletView, isDesktopClient, theme } = settingsStore; const { setIsVerHistoryPanel, fetchFileVersions } = versionHistoryStore; const { @@ -251,6 +264,7 @@ export default function withBadges(WrappedComponent) { isArchiveFolder, isPublicRoom: publicRoomStore.isPublicRoom, isRecentTab, + checkAndOpenLocationAction, }; }, )(observer(WithBadges)); diff --git a/packages/client/src/components/Badges.js b/packages/client/src/components/Badges.js index 13a5fa550b..51ae621c3f 100644 --- a/packages/client/src/components/Badges.js +++ b/packages/client/src/components/Badges.js @@ -100,6 +100,7 @@ const Badges = ({ onFilesClick, onShowVersionHistory, onBadgeClick, + openLocationFile, setConvertDialogVisible, viewAs, onUnpinClick, @@ -243,6 +244,7 @@ const Badges = ({ style={{ width: "max-content", }} + onClick={openLocationFile} /> )} From 9632bd60584e17d0cf75913a53afdaa480e3ecaa Mon Sep 17 00:00:00 2001 From: Vladimir Khvan Date: Wed, 1 May 2024 18:35:09 +0500 Subject: [PATCH 023/176] Web: Client: JavascripSDK: code to insert block was isolated in component --- .../JavascriptSDK/presets/DocSpace.js | 21 +------- .../JavascriptSDK/presets/Editor.js | 21 +------- .../JavascriptSDK/presets/RoomSelector.js | 26 +-------- .../JavascriptSDK/presets/Viewer.js | 18 +------ .../sub-components/CodeToInsert.js | 53 +++++++++++++++++++ 5 files changed, 61 insertions(+), 78 deletions(-) create mode 100644 packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/sub-components/CodeToInsert.js diff --git a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/DocSpace.js b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/DocSpace.js index dafa7eae9a..244bd4fd34 100644 --- a/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/DocSpace.js +++ b/packages/client/src/pages/PortalSettings/categories/developer-tools/JavascriptSDK/presets/DocSpace.js @@ -28,14 +28,11 @@ import { useState, useEffect } from "react"; import { withTranslation } from "react-i18next"; import debounce from "lodash.debounce"; import { Box } from "@docspace/shared/components/box"; -import { Textarea } from "@docspace/shared/components/textarea"; -import { Text } from "@docspace/shared/components/text"; import { TabsContainer } from "@docspace/shared/components/tabs-container"; import { objectToGetParams, loadScript } from "@docspace/shared/utils/common"; import { inject, observer } from "mobx-react"; import GetCodeDialog from "../sub-components/GetCodeDialog"; -import CodeBlock from "../sub-components/CodeBlock"; import { Button } from "@docspace/shared/components/button"; const showPreviewThreshold = 720; @@ -44,6 +41,7 @@ import { WidthSetter } from "../sub-components/WidthSetter"; import { HeightSetter } from "../sub-components/HeightSetter"; import { FrameIdSetter } from "../sub-components/FrameIdSetter"; import { PresetWrapper } from "../sub-components/PresetWrapper"; +import { CodeToInsert } from "../sub-components/CodeToInsert"; import { Controls, @@ -164,22 +162,7 @@ const DocSpace = (props) => { ); const code = ( - - - {`HTML ${t("CodeTitle")}`} - - - {t("HtmlCodeDescription")} - -