Merge branch 'release/v1.2' into feature/smart-banner
This commit is contained in:
commit
dc7d837e46
@ -798,38 +798,66 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Excludes": [
|
"Excludes": [
|
||||||
"A-Ω",
|
"A-Ω",
|
||||||
"αδειάζοντάς",
|
"αδειάζοντάς",
|
||||||
"Αζερική",
|
"Αζερική",
|
||||||
"αναγνωσμένου",
|
"αναγνωσμένου",
|
||||||
"αναγνωσμένων",
|
"αναγνωσμένων",
|
||||||
"ανακατευθυνθείτε",
|
"ανακατευθυνθείτε",
|
||||||
"αντιγράφηκαν",
|
"αντιγράφηκαν",
|
||||||
"αντιγράφηκε",
|
"αντιγράφηκε",
|
||||||
"Αντιγράφηκε",
|
"Αντιγράφηκε",
|
||||||
"απενεργοποιημένοι",
|
"απενεργοποιημένοι",
|
||||||
"Έκδ",
|
"αποεπιλέξτε",
|
||||||
"επαληθευτή",
|
"Αποθέστε",
|
||||||
"Επαληθευτής",
|
"αυτοεγγραφή",
|
||||||
"Λαοτινή",
|
"Έκδ",
|
||||||
"ΛΔΚ",
|
"επαληθευτή",
|
||||||
"Λετονικά",
|
"Επαληθευτής",
|
||||||
"λπ",
|
"Επαναποστολή",
|
||||||
"Μεταφορτώθηκε",
|
"Ξεκαρφίτσωμα",
|
||||||
"μεταφορτώνετε",
|
"Λαοτινή",
|
||||||
"Ξεκαρφίτσωμα",
|
"παρόχου",
|
||||||
"πάροχος",
|
"ΛΔΚ",
|
||||||
"περιήγησής",
|
"Λετονικά",
|
||||||
"προεπιλεγμένου",
|
"λπ",
|
||||||
"Προεπισκόπηση",
|
"ληγμένος",
|
||||||
"υποφάκελό",
|
"πάροχος",
|
||||||
"υποφακέλους",
|
"περιήγησής",
|
||||||
"ψήφιο",
|
"προεπιλεγμένου",
|
||||||
"Ω-A",
|
"Μεταφορτώθηκε",
|
||||||
"Desktop",
|
"μεταφορτώνετε",
|
||||||
"Check-in",
|
"Μεταφορτώθηκαν",
|
||||||
"Office",
|
"mέλη",
|
||||||
"Enterprise"
|
"Προεπισκόπηση",
|
||||||
|
"υποενότητα",
|
||||||
|
"υποφάκελό",
|
||||||
|
"υποφακέλους",
|
||||||
|
"ψήφιο",
|
||||||
|
"Ω-A",
|
||||||
|
"Check-in",
|
||||||
|
"Cloud",
|
||||||
|
"Desktop",
|
||||||
|
"domain",
|
||||||
|
"DOCXF",
|
||||||
|
"DropBox",
|
||||||
|
"com",
|
||||||
|
"Editors",
|
||||||
|
"Enterprise",
|
||||||
|
"GZ",
|
||||||
|
"Http",
|
||||||
|
"label",
|
||||||
|
"Linux",
|
||||||
|
"Mac",
|
||||||
|
"Nextcloud",
|
||||||
|
"Office",
|
||||||
|
"OS",
|
||||||
|
"PDF",
|
||||||
|
"SaaS",
|
||||||
|
"SSO",
|
||||||
|
"White",
|
||||||
|
"Play",
|
||||||
|
"Store"
|
||||||
],
|
],
|
||||||
"Language": "el"
|
"Language": "el"
|
||||||
},
|
},
|
||||||
@ -1349,6 +1377,7 @@
|
|||||||
"resetate",
|
"resetate",
|
||||||
"SaaS",
|
"SaaS",
|
||||||
"Saptamanal",
|
"Saptamanal",
|
||||||
|
"servere",
|
||||||
"sînt",
|
"sînt",
|
||||||
"SMS-ul",
|
"SMS-ul",
|
||||||
"SSO",
|
"SSO",
|
||||||
|
@ -40,7 +40,6 @@ const Navigation = ({
|
|||||||
isCurrentFolderInfo,
|
isCurrentFolderInfo,
|
||||||
toggleInfoPanel,
|
toggleInfoPanel,
|
||||||
isInfoPanelVisible,
|
isInfoPanelVisible,
|
||||||
isShowRootFolder,
|
|
||||||
titles,
|
titles,
|
||||||
...rest
|
...rest
|
||||||
}) => {
|
}) => {
|
||||||
@ -190,7 +189,6 @@ const Navigation = ({
|
|||||||
isRootFolder={isRootFolder}
|
isRootFolder={isRootFolder}
|
||||||
toggleInfoPanel={toggleInfoPanel}
|
toggleInfoPanel={toggleInfoPanel}
|
||||||
isInfoPanelVisible={isInfoPanelVisible}
|
isInfoPanelVisible={isInfoPanelVisible}
|
||||||
isShowRootFolder={isShowRootFolder}
|
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
|
@ -39,8 +39,7 @@ const StyledContainer = styled.div`
|
|||||||
`;
|
`;
|
||||||
|
|
||||||
const StyledInfoPanelToggleWrapper = styled.div`
|
const StyledInfoPanelToggleWrapper = styled.div`
|
||||||
display: ${(props) =>
|
display: ${(props) => (props.isInfoPanelVisible ? "none" : "flex")};
|
||||||
props.isInfoPanelVisible && !props.isShowRootFolder ? "none" : "flex"};
|
|
||||||
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
align-self: center;
|
align-self: center;
|
||||||
@ -87,13 +86,11 @@ const ToggleInfoPanelButton = ({
|
|||||||
isRootFolder,
|
isRootFolder,
|
||||||
isInfoPanelVisible,
|
isInfoPanelVisible,
|
||||||
toggleInfoPanel,
|
toggleInfoPanel,
|
||||||
isShowRootFolder,
|
|
||||||
}) => {
|
}) => {
|
||||||
return (
|
return (
|
||||||
<StyledInfoPanelToggleWrapper
|
<StyledInfoPanelToggleWrapper
|
||||||
isRootFolder={isRootFolder}
|
isRootFolder={isRootFolder}
|
||||||
isInfoPanelVisible={isInfoPanelVisible}
|
isInfoPanelVisible={isInfoPanelVisible}
|
||||||
isShowRootFolder={isShowRootFolder}
|
|
||||||
>
|
>
|
||||||
<div className="info-panel-toggle-bg">
|
<div className="info-panel-toggle-bg">
|
||||||
<IconButton
|
<IconButton
|
||||||
|
@ -133,22 +133,8 @@ const StyledCrossIcon = styled(CrossIcon)`
|
|||||||
|
|
||||||
StyledCrossIcon.defaultProps = { theme: Base };
|
StyledCrossIcon.defaultProps = { theme: Base };
|
||||||
|
|
||||||
const InfoPanel = ({
|
const InfoPanel = ({ children, isVisible, setIsVisible, viewAs }) => {
|
||||||
children,
|
|
||||||
isVisible,
|
|
||||||
setIsVisible,
|
|
||||||
viewAs,
|
|
||||||
isRootFolder,
|
|
||||||
selectedItems,
|
|
||||||
|
|
||||||
isShowRootFolder,
|
|
||||||
setIsShowRootFolder,
|
|
||||||
}) => {
|
|
||||||
if (isRootFolder && selectedItems.length === 0) setIsShowRootFolder(true);
|
|
||||||
else setIsShowRootFolder(false);
|
|
||||||
|
|
||||||
if (!isVisible) return null;
|
if (!isVisible) return null;
|
||||||
if (isShowRootFolder) return null;
|
|
||||||
|
|
||||||
const closeInfoPanel = () => setIsVisible(false);
|
const closeInfoPanel = () => setIsVisible(false);
|
||||||
|
|
||||||
@ -196,44 +182,17 @@ StyledInfoPanelWrapper.defaultProps = { theme: Base };
|
|||||||
StyledInfoPanel.defaultProps = { theme: Base };
|
StyledInfoPanel.defaultProps = { theme: Base };
|
||||||
InfoPanel.defaultProps = { theme: Base };
|
InfoPanel.defaultProps = { theme: Base };
|
||||||
|
|
||||||
export default inject(({ infoPanelStore, selectedFolderStore, filesStore }) => {
|
export default inject(({ infoPanelStore }) => {
|
||||||
let isVisible = false,
|
let isVisible = false;
|
||||||
isRootFolder = false,
|
let setIsVisible = () => {};
|
||||||
setIsVisible = () => {},
|
|
||||||
selection = [],
|
|
||||||
bufferSelection = null,
|
|
||||||
isShowRootFolder = false,
|
|
||||||
setIsShowRootFolder = () => {};
|
|
||||||
|
|
||||||
if (infoPanelStore) {
|
if (infoPanelStore) {
|
||||||
isVisible = infoPanelStore.isVisible;
|
isVisible = infoPanelStore.isVisible;
|
||||||
setIsVisible = infoPanelStore.setIsVisible;
|
setIsVisible = infoPanelStore.setIsVisible;
|
||||||
isShowRootFolder = infoPanelStore.isShowRootFolder;
|
|
||||||
setIsShowRootFolder = infoPanelStore.setIsShowRootFolder;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selectedFolderStore) {
|
|
||||||
isRootFolder = selectedFolderStore.isRootFolder;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (filesStore) {
|
|
||||||
selection = filesStore.selection;
|
|
||||||
bufferSelection = filesStore.bufferSelection;
|
|
||||||
}
|
|
||||||
|
|
||||||
const selectedItems =
|
|
||||||
selection?.length > 0
|
|
||||||
? [...selection]
|
|
||||||
: bufferSelection
|
|
||||||
? [bufferSelection]
|
|
||||||
: [];
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
isVisible,
|
isVisible,
|
||||||
setIsVisible,
|
setIsVisible,
|
||||||
isRootFolder,
|
|
||||||
selectedItems,
|
|
||||||
isShowRootFolder,
|
|
||||||
setIsShowRootFolder,
|
|
||||||
};
|
};
|
||||||
})(InfoPanel);
|
})(InfoPanel);
|
||||||
|
@ -1,62 +1,67 @@
|
|||||||
import React from "react";
|
import React, { useRef } from "react";
|
||||||
import PropTypes from "prop-types";
|
import PropTypes from "prop-types";
|
||||||
import { StyledTextarea, StyledScrollbar } from "./styled-textarea";
|
import { StyledTextarea, StyledScrollbar } from "./styled-textarea";
|
||||||
|
|
||||||
// eslint-disable-next-line react/prop-types, no-unused-vars
|
// eslint-disable-next-line react/prop-types, no-unused-vars
|
||||||
|
|
||||||
class Textarea extends React.PureComponent {
|
const Textarea = ({
|
||||||
render() {
|
className,
|
||||||
// console.log('Textarea render');
|
id,
|
||||||
const {
|
isDisabled,
|
||||||
className,
|
isReadOnly,
|
||||||
id,
|
hasError,
|
||||||
isDisabled,
|
heightScale,
|
||||||
isReadOnly,
|
maxLength,
|
||||||
hasError,
|
name,
|
||||||
heightScale,
|
onChange,
|
||||||
maxLength,
|
placeholder,
|
||||||
name,
|
style,
|
||||||
onChange,
|
tabIndex,
|
||||||
placeholder,
|
value,
|
||||||
style,
|
fontSize,
|
||||||
tabIndex,
|
heightTextArea,
|
||||||
value,
|
color,
|
||||||
fontSize,
|
theme,
|
||||||
heightTextArea,
|
autoFocus,
|
||||||
color,
|
areaSelect,
|
||||||
theme,
|
}) => {
|
||||||
autoFocus,
|
const areaRef = useRef(null);
|
||||||
} = this.props;
|
|
||||||
|
|
||||||
return (
|
React.useEffect(() => {
|
||||||
<StyledScrollbar
|
if (areaSelect && areaRef.current) {
|
||||||
className={className}
|
areaRef.current.select();
|
||||||
style={style}
|
}
|
||||||
stype="preMediumBlack"
|
}, [areaRef.current]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<StyledScrollbar
|
||||||
|
className={className}
|
||||||
|
style={style}
|
||||||
|
stype="preMediumBlack"
|
||||||
|
isDisabled={isDisabled}
|
||||||
|
hasError={hasError}
|
||||||
|
heightScale={heightScale}
|
||||||
|
heighttextarea={heightTextArea}
|
||||||
|
>
|
||||||
|
<StyledTextarea
|
||||||
|
id={id}
|
||||||
|
placeholder={placeholder}
|
||||||
|
onChange={(e) => onChange && onChange(e)}
|
||||||
|
maxLength={maxLength}
|
||||||
|
name={name}
|
||||||
|
tabIndex={tabIndex}
|
||||||
isDisabled={isDisabled}
|
isDisabled={isDisabled}
|
||||||
hasError={hasError}
|
disabled={isDisabled}
|
||||||
heightScale={heightScale}
|
readOnly={isReadOnly}
|
||||||
heighttextarea={heightTextArea}
|
value={value}
|
||||||
>
|
fontSize={fontSize}
|
||||||
<StyledTextarea
|
color={color}
|
||||||
id={id}
|
autoFocus={autoFocus}
|
||||||
placeholder={placeholder}
|
ref={areaRef}
|
||||||
onChange={(e) => onChange && onChange(e)}
|
/>
|
||||||
maxLength={maxLength}
|
</StyledScrollbar>
|
||||||
name={name}
|
);
|
||||||
tabIndex={tabIndex}
|
};
|
||||||
isDisabled={isDisabled}
|
|
||||||
disabled={isDisabled}
|
|
||||||
readOnly={isReadOnly}
|
|
||||||
value={value}
|
|
||||||
fontSize={fontSize}
|
|
||||||
color={color}
|
|
||||||
autoFocus={autoFocus}
|
|
||||||
/>
|
|
||||||
</StyledScrollbar>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Textarea.propTypes = {
|
Textarea.propTypes = {
|
||||||
/** Class name */
|
/** Class name */
|
||||||
@ -92,6 +97,7 @@ Textarea.propTypes = {
|
|||||||
/** Specifies the text color */
|
/** Specifies the text color */
|
||||||
color: PropTypes.string,
|
color: PropTypes.string,
|
||||||
autoFocus: PropTypes.bool,
|
autoFocus: PropTypes.bool,
|
||||||
|
areaSelect: PropTypes.bool,
|
||||||
};
|
};
|
||||||
|
|
||||||
Textarea.defaultProps = {
|
Textarea.defaultProps = {
|
||||||
@ -105,6 +111,7 @@ Textarea.defaultProps = {
|
|||||||
value: "",
|
value: "",
|
||||||
fontSize: 13,
|
fontSize: 13,
|
||||||
isAutoFocussed: false,
|
isAutoFocussed: false,
|
||||||
|
areaSelect: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default Textarea;
|
export default Textarea;
|
||||||
|
@ -40,13 +40,11 @@ StyledScrollbar.defaultProps = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line react/prop-types, no-unused-vars
|
// eslint-disable-next-line react/prop-types, no-unused-vars
|
||||||
const ClearTextareaAutosize = ({
|
const ClearTextareaAutosize = React.forwardRef(
|
||||||
isDisabled,
|
({ isDisabled, heightScale, hasError, color, ...props }, ref) => (
|
||||||
heightScale,
|
<TextareaAutosize {...props} ref={ref} />
|
||||||
hasError,
|
)
|
||||||
color,
|
);
|
||||||
...props
|
|
||||||
}) => <TextareaAutosize {...props} />;
|
|
||||||
|
|
||||||
const StyledTextarea = styled(ClearTextareaAutosize).attrs((props) => ({
|
const StyledTextarea = styled(ClearTextareaAutosize).attrs((props) => ({
|
||||||
autoFocus: props.autoFocus,
|
autoFocus: props.autoFocus,
|
||||||
|
Binary file not shown.
After Width: | Height: | Size: 5.5 KiB |
@ -76,7 +76,7 @@
|
|||||||
"TrashEmptyDescription": "Όλα τα διαγραμμένα αρχεία μεταφέρονται στον Κάδο ανακύκλωσης. Επαναφέρετε τα αρχεία που διαγράφηκαν κατά λάθος ή διαγράψτε τα οριστικά. Λάβετε υπόψη ότι τα αρχεία που έχουν διαγραφεί από τον Κάδο ανακύκλωσης δεν μπορούν πλέον να ανακτηθούν",
|
"TrashEmptyDescription": "Όλα τα διαγραμμένα αρχεία μεταφέρονται στον Κάδο ανακύκλωσης. Επαναφέρετε τα αρχεία που διαγράφηκαν κατά λάθος ή διαγράψτε τα οριστικά. Λάβετε υπόψη ότι τα αρχεία που έχουν διαγραφεί από τον Κάδο ανακύκλωσης δεν μπορούν πλέον να ανακτηθούν",
|
||||||
"UnblockVersion": "Αναίρεση αποκλεισμού / Check-in",
|
"UnblockVersion": "Αναίρεση αποκλεισμού / Check-in",
|
||||||
"UploadToFolder": "Μεταφόρτωση σε φάκελο",
|
"UploadToFolder": "Μεταφόρτωση σε φάκελο",
|
||||||
"VersionBadge": "V.{{version}}",
|
"VersionBadge": "Έκδ.{{version}}",
|
||||||
"VersionHistory": "Ιστορικό Εκδόσεων",
|
"VersionHistory": "Ιστορικό Εκδόσεων",
|
||||||
"ViewList": "Λίστα",
|
"ViewList": "Λίστα",
|
||||||
"ViewTiles": "Πλακίδια"
|
"ViewTiles": "Πλακίδια"
|
||||||
|
@ -8,5 +8,6 @@
|
|||||||
"SystemProperties": "System properties",
|
"SystemProperties": "System properties",
|
||||||
"Versions": "Versions",
|
"Versions": "Versions",
|
||||||
"ViewDetails": "View Details",
|
"ViewDetails": "View Details",
|
||||||
"WhoHasAccess": "Who has access"
|
"WhoHasAccess": "Who has access",
|
||||||
|
"EmptyScreenText": "See file and folder details here"
|
||||||
}
|
}
|
||||||
|
@ -8,5 +8,6 @@
|
|||||||
"SystemProperties": "Системные свойства",
|
"SystemProperties": "Системные свойства",
|
||||||
"Versions": "Версии",
|
"Versions": "Версии",
|
||||||
"ViewDetails": "Просмотреть подробную информацию",
|
"ViewDetails": "Просмотреть подробную информацию",
|
||||||
"WhoHasAccess": "У кого есть доступ"
|
"WhoHasAccess": "У кого есть доступ",
|
||||||
|
"EmptyScreenText": "Здесь будут представлены свойства файлов и папок"
|
||||||
}
|
}
|
||||||
|
@ -89,13 +89,13 @@ class Tile extends React.PureComponent {
|
|||||||
|
|
||||||
onCreateForm = () => {
|
onCreateForm = () => {
|
||||||
const { match, history } = this.props;
|
const { match, history } = this.props;
|
||||||
const { setInfoPanelVisible } = this.props;
|
const { setIsInfoPanelVisible } = this.props;
|
||||||
|
|
||||||
const filter = FilesFilter.getDefault();
|
const filter = FilesFilter.getDefault();
|
||||||
filter.folder = match.params.folderId;
|
filter.folder = match.params.folderId;
|
||||||
const urlFilter = filter.toUrlParams();
|
const urlFilter = filter.toUrlParams();
|
||||||
|
|
||||||
setInfoPanelVisible(false);
|
setIsInfoPanelVisible(false);
|
||||||
|
|
||||||
history.push(
|
history.push(
|
||||||
combineUrl(
|
combineUrl(
|
||||||
@ -108,7 +108,7 @@ class Tile extends React.PureComponent {
|
|||||||
|
|
||||||
onShowTemplateInfo = () => {
|
onShowTemplateInfo = () => {
|
||||||
if (!this.props.isInfoPanelVisible) {
|
if (!this.props.isInfoPanelVisible) {
|
||||||
this.props.setInfoPanelVisible(true);
|
this.props.setIsInfoPanelVisible(true);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -212,7 +212,7 @@ export default inject(
|
|||||||
({ filesStore, settingsStore, infoPanelStore }, { item }) => {
|
({ filesStore, settingsStore, infoPanelStore }, { item }) => {
|
||||||
const { gallerySelected, setGallerySelected } = filesStore;
|
const { gallerySelected, setGallerySelected } = filesStore;
|
||||||
const { getIcon } = settingsStore;
|
const { getIcon } = settingsStore;
|
||||||
const { setIsVisible, isVisible } = infoPanelStore;
|
const { isVisible, setIsVisible } = infoPanelStore;
|
||||||
|
|
||||||
const isSelected = item.id === gallerySelected?.id;
|
const isSelected = item.id === gallerySelected?.id;
|
||||||
|
|
||||||
@ -220,7 +220,7 @@ export default inject(
|
|||||||
isSelected,
|
isSelected,
|
||||||
setGallerySelected,
|
setGallerySelected,
|
||||||
getIcon,
|
getIcon,
|
||||||
setInfoPanelVisible: setIsVisible,
|
setIsInfoPanelVisible: setIsVisible,
|
||||||
isInfoPanelVisible: isVisible,
|
isInfoPanelVisible: isVisible,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,39 @@
|
|||||||
|
import React from "react";
|
||||||
|
import styled from "styled-components";
|
||||||
|
import { withTranslation } from "react-i18next";
|
||||||
|
|
||||||
|
const EmptyScreenContainer = styled.div`
|
||||||
|
margin: 80px auto;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 32px;
|
||||||
|
|
||||||
|
.empty-screen-text {
|
||||||
|
font-family: "Open Sans";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 16px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
const EmptyScreen = ({ t }) => {
|
||||||
|
return (
|
||||||
|
<EmptyScreenContainer>
|
||||||
|
<div className="no-thumbnail-img-wrapper">
|
||||||
|
<img
|
||||||
|
size="96px"
|
||||||
|
className="no-thumbnail-img"
|
||||||
|
src="images/empty_screen_info_panel.png"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className="empty-screen-text">{t("EmptyScreenText")}</div>
|
||||||
|
</EmptyScreenContainer>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default withTranslation(["InfoPanel"])(EmptyScreen);
|
@ -28,6 +28,7 @@ const SingleItem = (props) => {
|
|||||||
dontShowSize,
|
dontShowSize,
|
||||||
dontShowLocation,
|
dontShowLocation,
|
||||||
dontShowAccess,
|
dontShowAccess,
|
||||||
|
dontShowOwner,
|
||||||
personal,
|
personal,
|
||||||
createThumbnail,
|
createThumbnail,
|
||||||
culture,
|
culture,
|
||||||
@ -161,6 +162,7 @@ const SingleItem = (props) => {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
if (dontShowOwner) result.shift();
|
||||||
if (item.isFolder) return result;
|
if (item.isFolder) return result;
|
||||||
|
|
||||||
result.splice(3, 0, {
|
result.splice(3, 0, {
|
||||||
|
@ -8,6 +8,7 @@ import GalleryItem from "./GalleryItem";
|
|||||||
import GalleryEmptyScreen from "./GalleryEmptyScreen";
|
import GalleryEmptyScreen from "./GalleryEmptyScreen";
|
||||||
import { StyledInfoRoomBody } from "./styles/styles.js";
|
import { StyledInfoRoomBody } from "./styles/styles.js";
|
||||||
import { Base } from "@appserver/components/themes";
|
import { Base } from "@appserver/components/themes";
|
||||||
|
import EmptyScreen from "./EmptyScreen";
|
||||||
|
|
||||||
const InfoPanelBodyContent = ({
|
const InfoPanelBodyContent = ({
|
||||||
t,
|
t,
|
||||||
@ -19,9 +20,13 @@ const InfoPanelBodyContent = ({
|
|||||||
getShareUsers,
|
getShareUsers,
|
||||||
onSelectItem,
|
onSelectItem,
|
||||||
setSharingPanelVisible,
|
setSharingPanelVisible,
|
||||||
|
isRootFolder,
|
||||||
isRecycleBinFolder,
|
isRecycleBinFolder,
|
||||||
isRecentFolder,
|
isRecentFolder,
|
||||||
isFavoritesFolder,
|
isFavoritesFolder,
|
||||||
|
isShareFolder,
|
||||||
|
isCommonFolder,
|
||||||
|
isPrivacyFolder,
|
||||||
isGallery,
|
isGallery,
|
||||||
gallerySelected,
|
gallerySelected,
|
||||||
personal,
|
personal,
|
||||||
@ -29,13 +34,14 @@ const InfoPanelBodyContent = ({
|
|||||||
culture,
|
culture,
|
||||||
}) => {
|
}) => {
|
||||||
const singleItem = (item) => {
|
const singleItem = (item) => {
|
||||||
const dontShowLocation = item.isFolder && item.parentId === 0;
|
const dontShowLocation = isRootFolder;
|
||||||
const dontShowSize = item.isFolder && (isFavoritesFolder || isRecentFolder);
|
const dontShowSize = item.isFolder && (isFavoritesFolder || isRecentFolder);
|
||||||
const dontShowAccess =
|
const dontShowAccess =
|
||||||
isRecycleBinFolder ||
|
isRecycleBinFolder ||
|
||||||
(item.isFolder && item.parentId === 0) ||
|
isRootFolder ||
|
||||||
item.rootFolderId === 7 ||
|
item.rootFolderId === 7 ||
|
||||||
(item.isFolder && item.pathParts && item.pathParts[0] === 7);
|
(item.isFolder && item.pathParts && item.pathParts[0] === 7);
|
||||||
|
const dontShowOwner = isRootFolder && (isFavoritesFolder || isRecentFolder);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<SingleItem
|
<SingleItem
|
||||||
@ -50,6 +56,7 @@ const InfoPanelBodyContent = ({
|
|||||||
dontShowLocation={dontShowLocation}
|
dontShowLocation={dontShowLocation}
|
||||||
dontShowSize={dontShowSize}
|
dontShowSize={dontShowSize}
|
||||||
dontShowAccess={dontShowAccess}
|
dontShowAccess={dontShowAccess}
|
||||||
|
dontShowOwner={dontShowOwner}
|
||||||
personal={personal}
|
personal={personal}
|
||||||
culture={culture}
|
culture={culture}
|
||||||
createThumbnail={createThumbnail}
|
createThumbnail={createThumbnail}
|
||||||
@ -69,10 +76,21 @@ const InfoPanelBodyContent = ({
|
|||||||
<StyledInfoRoomBody>
|
<StyledInfoRoomBody>
|
||||||
<>
|
<>
|
||||||
{selectedItems.length === 0 ? (
|
{selectedItems.length === 0 ? (
|
||||||
singleItem({
|
// Can get future changes, currently only "My documents" displays its info
|
||||||
...selectedFolder,
|
isRootFolder &&
|
||||||
isFolder: true,
|
(isRecycleBinFolder ||
|
||||||
})
|
isRecentFolder ||
|
||||||
|
isFavoritesFolder ||
|
||||||
|
isShareFolder ||
|
||||||
|
isCommonFolder ||
|
||||||
|
isPrivacyFolder) ? (
|
||||||
|
<EmptyScreen />
|
||||||
|
) : (
|
||||||
|
singleItem({
|
||||||
|
...selectedFolder,
|
||||||
|
isFolder: true,
|
||||||
|
})
|
||||||
|
)
|
||||||
) : selectedItems.length === 1 ? (
|
) : selectedItems.length === 1 ? (
|
||||||
singleItem(selectedItems[0])
|
singleItem(selectedItems[0])
|
||||||
) : (
|
) : (
|
||||||
@ -108,10 +126,14 @@ export default inject(
|
|||||||
const { getIcon, getFolderIcon } = settingsStore;
|
const { getIcon, getFolderIcon } = settingsStore;
|
||||||
const { onSelectItem } = filesActionsStore;
|
const { onSelectItem } = filesActionsStore;
|
||||||
const { setSharingPanelVisible } = dialogsStore;
|
const { setSharingPanelVisible } = dialogsStore;
|
||||||
|
const { isRootFolder } = selectedFolderStore;
|
||||||
const {
|
const {
|
||||||
isRecycleBinFolder,
|
isRecycleBinFolder,
|
||||||
isRecentFolder,
|
isRecentFolder,
|
||||||
isFavoritesFolder,
|
isFavoritesFolder,
|
||||||
|
isShareFolder,
|
||||||
|
isCommonFolder,
|
||||||
|
isPrivacyFolder,
|
||||||
} = treeFoldersStore;
|
} = treeFoldersStore;
|
||||||
|
|
||||||
const selectedItems =
|
const selectedItems =
|
||||||
@ -130,9 +152,15 @@ export default inject(
|
|||||||
getFolderIcon,
|
getFolderIcon,
|
||||||
onSelectItem,
|
onSelectItem,
|
||||||
setSharingPanelVisible,
|
setSharingPanelVisible,
|
||||||
|
|
||||||
|
isRootFolder,
|
||||||
isRecycleBinFolder,
|
isRecycleBinFolder,
|
||||||
isRecentFolder,
|
isRecentFolder,
|
||||||
isFavoritesFolder,
|
isFavoritesFolder,
|
||||||
|
isShareFolder,
|
||||||
|
isCommonFolder,
|
||||||
|
isPrivacyFolder,
|
||||||
|
|
||||||
gallerySelected,
|
gallerySelected,
|
||||||
personal,
|
personal,
|
||||||
createThumbnail,
|
createThumbnail,
|
||||||
|
@ -362,7 +362,6 @@ class SectionHeaderContent extends React.Component {
|
|||||||
isHeaderIndeterminate,
|
isHeaderIndeterminate,
|
||||||
showText,
|
showText,
|
||||||
toggleInfoPanel,
|
toggleInfoPanel,
|
||||||
isShowRootFolder,
|
|
||||||
} = this.props;
|
} = this.props;
|
||||||
const menuItems = this.getMenuItems();
|
const menuItems = this.getMenuItems();
|
||||||
const isLoading = !title || !tReady;
|
const isLoading = !title || !tReady;
|
||||||
@ -420,7 +419,6 @@ class SectionHeaderContent extends React.Component {
|
|||||||
onBackToParentFolder={this.onBackToParentFolder}
|
onBackToParentFolder={this.onBackToParentFolder}
|
||||||
toggleInfoPanel={toggleInfoPanel}
|
toggleInfoPanel={toggleInfoPanel}
|
||||||
isInfoPanelVisible={isInfoPanelVisible}
|
isInfoPanelVisible={isInfoPanelVisible}
|
||||||
isShowRootFolder={isShowRootFolder}
|
|
||||||
titles={{
|
titles={{
|
||||||
trash: t("EmptyRecycleBin"),
|
trash: t("EmptyRecycleBin"),
|
||||||
}}
|
}}
|
||||||
@ -485,7 +483,7 @@ export default inject(
|
|||||||
backToParentFolder,
|
backToParentFolder,
|
||||||
} = filesActionsStore;
|
} = filesActionsStore;
|
||||||
|
|
||||||
const { isVisible, isShowRootFolder, toggleIsVisible } = infoPanelStore;
|
const { toggleIsVisible, isVisible } = infoPanelStore;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
showText: auth.settingsStore.showText,
|
showText: auth.settingsStore.showText,
|
||||||
@ -498,7 +496,6 @@ export default inject(
|
|||||||
canCreate,
|
canCreate,
|
||||||
toggleInfoPanel: toggleIsVisible,
|
toggleInfoPanel: toggleIsVisible,
|
||||||
isInfoPanelVisible: isVisible,
|
isInfoPanelVisible: isVisible,
|
||||||
isShowRootFolder,
|
|
||||||
isHeaderVisible,
|
isHeaderVisible,
|
||||||
isHeaderIndeterminate,
|
isHeaderIndeterminate,
|
||||||
isHeaderChecked,
|
isHeaderChecked,
|
||||||
|
@ -173,6 +173,7 @@ const VersionRow = (props) => {
|
|||||||
value={commentValue}
|
value={commentValue}
|
||||||
isDisabled={isSavingComment}
|
isDisabled={isSavingComment}
|
||||||
autoFocus={true}
|
autoFocus={true}
|
||||||
|
areaSelect={true}
|
||||||
/>
|
/>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
@ -2,7 +2,6 @@ import { makeAutoObservable } from "mobx";
|
|||||||
|
|
||||||
class InfoPanelStore {
|
class InfoPanelStore {
|
||||||
isVisible = false;
|
isVisible = false;
|
||||||
isShowRootFolder = false;
|
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
makeAutoObservable(this);
|
makeAutoObservable(this);
|
||||||
@ -12,17 +11,13 @@ class InfoPanelStore {
|
|||||||
this.isVisible = !this.isVisible;
|
this.isVisible = !this.isVisible;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
setVisible = () => {
|
||||||
|
this.isVisible = true;
|
||||||
|
};
|
||||||
|
|
||||||
setIsVisible = (bool) => {
|
setIsVisible = (bool) => {
|
||||||
this.isVisible = bool;
|
this.isVisible = bool;
|
||||||
};
|
};
|
||||||
|
|
||||||
setIsToggleVisible = (bool) => {
|
|
||||||
this.isToggleVisible = bool;
|
|
||||||
};
|
|
||||||
|
|
||||||
setIsShowRootFolder = (bool) => {
|
|
||||||
this.isShowRootFolder = bool;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default InfoPanelStore;
|
export default InfoPanelStore;
|
||||||
|
@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"count": 1,
|
||||||
|
"response": {
|
||||||
|
"files": [],
|
||||||
|
"folders": [],
|
||||||
|
"current": {
|
||||||
|
"parentId": 0,
|
||||||
|
"filesCount": 6390,
|
||||||
|
"foldersCount": 40,
|
||||||
|
"new": 0,
|
||||||
|
"id": 8,
|
||||||
|
"rootFolderId": 8,
|
||||||
|
"canShare": false,
|
||||||
|
"canEdit": false,
|
||||||
|
"title": "Trash",
|
||||||
|
"access": 0,
|
||||||
|
"shared": false,
|
||||||
|
"created": "2021-09-16T12:09:15.0000000Z",
|
||||||
|
"createdBy": {
|
||||||
|
"id": "fcfa85e3-15fc-11ec-8f4f-80ce62334fc7",
|
||||||
|
"displayName": "Administrator ",
|
||||||
|
"avatarSmall": "/images/default_user_photo_size_32-32.png",
|
||||||
|
"profileUrl": "http://localhost:8092/products/people/view/administrator"
|
||||||
|
},
|
||||||
|
"updated": "2021-09-16T12:09:15.0000000Z",
|
||||||
|
"rootFolderType": 3,
|
||||||
|
"updatedBy": {
|
||||||
|
"id": "fcfa85e3-15fc-11ec-8f4f-80ce62334fc7",
|
||||||
|
"displayName": "Administrator ",
|
||||||
|
"avatarSmall": "/images/default_user_photo_size_32-32.png",
|
||||||
|
"profileUrl": "http://localhost:8092/products/people/view/administrator"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pathParts": [8],
|
||||||
|
"startIndex": 0,
|
||||||
|
"count": 1,
|
||||||
|
"total": 1,
|
||||||
|
"new": 0
|
||||||
|
},
|
||||||
|
"status": 0,
|
||||||
|
"statusCode": 200
|
||||||
|
}
|
@ -139,7 +139,15 @@ namespace ASC.Web.Files.Services.WCFService.FileOperations
|
|||||||
else if (!string.IsNullOrEmpty(error2))
|
else if (!string.IsNullOrEmpty(error2))
|
||||||
{
|
{
|
||||||
Error = error2;
|
Error = error2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var finished1 = thirdpartyTask.GetProperty<bool?>(FINISHED);
|
||||||
|
var finished2 = daoTask.GetProperty<bool?>(FINISHED);
|
||||||
|
|
||||||
|
if (finished1 != null && finished2 != null)
|
||||||
|
{
|
||||||
|
TaskInfo.SetProperty(FINISHED, finished1);
|
||||||
|
}
|
||||||
|
|
||||||
successProcessed = thirdpartyTask.GetProperty<int>(PROCESSED) + daoTask.GetProperty<int>(PROCESSED);
|
successProcessed = thirdpartyTask.GetProperty<int>(PROCESSED) + daoTask.GetProperty<int>(PROCESSED);
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
"i18next": "^21.6.5",
|
"i18next": "^21.6.5",
|
||||||
"prop-types": "^15.7.2",
|
"prop-types": "^15.7.2",
|
||||||
"react": "^17.0.1",
|
"react": "^17.0.1",
|
||||||
|
"react-device-detect": "^2.2.2",
|
||||||
"react-dom": "^17.0.1",
|
"react-dom": "^17.0.1",
|
||||||
"react-helmet": "^6.1.0",
|
"react-helmet": "^6.1.0",
|
||||||
"react-i18next": "^11.15.3",
|
"react-i18next": "^11.15.3",
|
||||||
|
@ -9,7 +9,10 @@ import {
|
|||||||
SectionContent,
|
SectionContent,
|
||||||
SectionHeader,
|
SectionHeader,
|
||||||
SectionWrapper,
|
SectionWrapper,
|
||||||
StyledIframe } from "./styled-section";
|
StyledIframe,
|
||||||
|
StyledAction } from "./styled-section";
|
||||||
|
|
||||||
|
import cross from './images/cross.react.svg'
|
||||||
|
|
||||||
export const Section = ({name, origin, lang}) => {
|
export const Section = ({name, origin, lang}) => {
|
||||||
|
|
||||||
@ -31,8 +34,11 @@ export const Section = ({name, origin, lang}) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return <StyledSection>
|
return <StyledSection>
|
||||||
<div>
|
<div style={{position: "relative"}}>
|
||||||
<StyledIframe scrolling="no" className="iframe" src={url} />
|
<StyledIframe scrolling="no" className="iframe" src={url} />
|
||||||
|
<StyledAction>
|
||||||
|
<img style={{width: "16px"}} src={cross} />
|
||||||
|
</StyledAction>
|
||||||
</div>
|
</div>
|
||||||
<SectionWrapper>
|
<SectionWrapper>
|
||||||
<SectionHeader>My documents</SectionHeader>
|
<SectionHeader>My documents</SectionHeader>
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M7.76288 6.35869C7.56764 6.16343 7.56764 5.84687 7.76288 5.65161L10.9493 2.46498C11.1445 2.26973 11.1445 1.95316 10.9493 1.75791L10.2422 1.05077C10.0469 0.855489 9.73031 0.855489 9.53504 1.05077L6.34878 4.23729C6.15352 4.43257 5.83691 4.43257 5.64165 4.23729L2.46017 1.05556C2.26491 0.860275 1.9483 0.860275 1.75304 1.05556L1.04596 1.76269C0.850716 1.95795 0.850716 2.27451 1.04596 2.46977L4.22755 5.65161C4.42279 5.84687 4.42279 6.16343 4.22755 6.35869L1.0501 9.53639C0.854858 9.73165 0.854858 10.0482 1.0501 10.2435L1.75718 10.9506C1.95245 11.1459 2.26905 11.1459 2.46432 10.9506L5.64165 7.77302C5.83691 7.57774 6.15352 7.57774 6.34878 7.77302L9.5309 10.9554C9.72616 11.1507 10.0428 11.1507 10.238 10.9554L10.9451 10.2483C11.1404 10.053 11.1404 9.73644 10.9451 9.54118L7.76288 6.35869Z" fill="#999976"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 958 B |
@ -1,4 +1,5 @@
|
|||||||
import styled from "styled-components";
|
import styled, { css } from "styled-components";
|
||||||
|
import { isMobile } from "react-device-detect";
|
||||||
|
|
||||||
const StyledSection = styled.div`
|
const StyledSection = styled.div`
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -50,5 +51,21 @@ const StyledIframe = styled.iframe`
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
const StyledAction = styled.div`
|
||||||
|
position: absolute;
|
||||||
|
right: 8px;
|
||||||
|
top: 10px;
|
||||||
|
background: inherit;
|
||||||
|
display: inline-block;
|
||||||
|
border: none;
|
||||||
|
font-size: inherit;
|
||||||
|
color: "#333";
|
||||||
|
cursor: pointer;
|
||||||
|
text-decoration: underline;
|
||||||
|
${isMobile &&
|
||||||
|
css`
|
||||||
|
right: 14px;
|
||||||
|
`};
|
||||||
|
`;
|
||||||
|
|
||||||
export {StyledSection, Icon, Name, MainLoader, FilterLoader, SectionContent, SectionHeader, SectionWrapper, StyledIframe}
|
export {StyledSection, Icon, Name, MainLoader, FilterLoader, SectionContent, SectionHeader, SectionWrapper, StyledIframe, StyledAction}
|
@ -15028,6 +15028,13 @@ react-dev-utils@^11.0.4:
|
|||||||
strip-ansi "6.0.0"
|
strip-ansi "6.0.0"
|
||||||
text-table "0.2.0"
|
text-table "0.2.0"
|
||||||
|
|
||||||
|
react-device-detect@^2.2.2:
|
||||||
|
version "2.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/react-device-detect/-/react-device-detect-2.2.2.tgz#dbabbce798ec359c83f574c3edb24cf1cca641a5"
|
||||||
|
integrity sha512-zSN1gIAztUekp5qUT/ybHwQ9fmOqVT1psxpSlTn1pe0CO+fnJHKRLOWWac5nKxOxvOpD/w84hk1I+EydrJp7SA==
|
||||||
|
dependencies:
|
||||||
|
ua-parser-js "^1.0.2"
|
||||||
|
|
||||||
react-docgen-typescript@^2.0.0:
|
react-docgen-typescript@^2.0.0:
|
||||||
version "2.2.2"
|
version "2.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/react-docgen-typescript/-/react-docgen-typescript-2.2.2.tgz#4611055e569edc071204aadb20e1c93e1ab1659c"
|
resolved "https://registry.yarnpkg.com/react-docgen-typescript/-/react-docgen-typescript-2.2.2.tgz#4611055e569edc071204aadb20e1c93e1ab1659c"
|
||||||
@ -17435,6 +17442,11 @@ typedarray@^0.0.6:
|
|||||||
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
||||||
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
|
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
|
||||||
|
|
||||||
|
ua-parser-js@^1.0.2:
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.2.tgz#e2976c34dbfb30b15d2c300b2a53eac87c57a775"
|
||||||
|
integrity sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==
|
||||||
|
|
||||||
uglify-js@^3.1.4:
|
uglify-js@^3.1.4:
|
||||||
version "3.15.5"
|
version "3.15.5"
|
||||||
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.15.5.tgz#2b10f9e0bfb3f5c15a8e8404393b6361eaeb33b3"
|
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.15.5.tgz#2b10f9e0bfb3f5c15a8e8404393b6361eaeb33b3"
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
"AdministratorsAddedSuccessfully": "Οι διαχειριστές προστέθηκαν με επιτυχία",
|
"AdministratorsAddedSuccessfully": "Οι διαχειριστές προστέθηκαν με επιτυχία",
|
||||||
"AdministratorsRemovedSuccessfully": "Οι διαχειριστές καταργήθηκαν επιτυχώς",
|
"AdministratorsRemovedSuccessfully": "Οι διαχειριστές καταργήθηκαν επιτυχώς",
|
||||||
"Admins": "Διαχειριστές",
|
"Admins": "Διαχειριστές",
|
||||||
"AllDomains": "Οποιoδήποτε domain",
|
"AllDomains": "Οποιοιδήποτε domain",
|
||||||
"AutoBackup": "Αυτόματα αντίγραφα ασφαλείας",
|
"AutoBackup": "Αυτόματα αντίγραφα ασφαλείας",
|
||||||
"AutoBackupDescription": "Χρησιμοποιήστε αυτήν την επιλογή για να δημιουργήσετε αυτόματα αντίγραφα ασφαλείας των δεδομένων της πύλης.",
|
"AutoBackupDescription": "Χρησιμοποιήστε αυτήν την επιλογή για να δημιουργήσετε αυτόματα αντίγραφα ασφαλείας των δεδομένων της πύλης.",
|
||||||
"AutoBackupHelp": "Η επιλογή <strong>Αυτόματα αντίγραφα ασφαλείας</strong> χρησιμοποιείται για την αυτοματοποίηση της διαδικασίας δημιουργίας αντιγράφων ασφαλείας των δεδομένων της πύλης, ώστε να είναι δυνατή η επαναφορά τους αργότερα σε έναν τοπικό διακομιστή.",
|
"AutoBackupHelp": "Η επιλογή <strong>Αυτόματα αντίγραφα ασφαλείας</strong> χρησιμοποιείται για την αυτοματοποίηση της διαδικασίας δημιουργίας αντιγράφων ασφαλείας των δεδομένων της πύλης, ώστε να είναι δυνατή η επαναφορά τους αργότερα σε έναν τοπικό διακομιστή.",
|
||||||
@ -23,7 +23,7 @@
|
|||||||
"AutoSavePeriodHelp": "Η ώρα που εμφανίζεται παρακάτω αντιστοιχεί στη ζώνη ώρας που έχει οριστεί στην πύλη.",
|
"AutoSavePeriodHelp": "Η ώρα που εμφανίζεται παρακάτω αντιστοιχεί στη ζώνη ώρας που έχει οριστεί στην πύλη.",
|
||||||
"Backup": "Αντίγραφα ασφαλείας",
|
"Backup": "Αντίγραφα ασφαλείας",
|
||||||
"BackupCreatedError": "Προέκυψε σφάλμα. Παρακαλώ επικοινωνήστε με τον διαχειριστή σας.",
|
"BackupCreatedError": "Προέκυψε σφάλμα. Παρακαλώ επικοινωνήστε με τον διαχειριστή σας.",
|
||||||
"BackupCreatedSuccess": "Το εφερδρικό αντίγραφο έχει δημιουργηθεί επιτυχώς.",
|
"BackupCreatedSuccess": "Το εφεδρικό αντίγραφο έχει δημιουργηθεί επιτυχώς.",
|
||||||
"BackupList": "Εφεδρική λίστα",
|
"BackupList": "Εφεδρική λίστα",
|
||||||
"BackupListWarningText": "Εάν διαγράψετε στοιχεία από τη λίστα, θα διαγραφούν και τα αντίστοιχα αρχεία τους. Αυτή η ενέργεια δεν μπορεί να αναιρεθεί. Για να διαγράψετε όλα τα αρχεία, χρησιμοποιήστε τον σύνδεσμο:",
|
"BackupListWarningText": "Εάν διαγράψετε στοιχεία από τη λίστα, θα διαγραφούν και τα αντίστοιχα αρχεία τους. Αυτή η ενέργεια δεν μπορεί να αναιρεθεί. Για να διαγράψετε όλα τα αρχεία, χρησιμοποιήστε τον σύνδεσμο:",
|
||||||
"BrowserNoCanvasSupport": "Το πρόγραμμα περιήγησής σας δεν υποστηρίζει την ετικέτα καμβά HTML5.",
|
"BrowserNoCanvasSupport": "Το πρόγραμμα περιήγησής σας δεν υποστηρίζει την ετικέτα καμβά HTML5.",
|
||||||
@ -146,7 +146,7 @@
|
|||||||
"ThirdPartyStorageDescription": "Το αντίγραφο ασφαλείας μπορεί να αποθηκευτεί σε αποθηκευτικό χώρο τρίτου μέρους. Πριν από αυτό, πρέπει να συνδέσετε την αντίστοιχη υπηρεσία στην ενότητα 'Ενοποίηση'. Διαφορετικά, οι παρακάτω ρυθμίσεις θα είναι ανενεργές.",
|
"ThirdPartyStorageDescription": "Το αντίγραφο ασφαλείας μπορεί να αποθηκευτεί σε αποθηκευτικό χώρο τρίτου μέρους. Πριν από αυτό, πρέπει να συνδέσετε την αντίστοιχη υπηρεσία στην ενότητα 'Ενοποίηση'. Διαφορετικά, οι παρακάτω ρυθμίσεις θα είναι ανενεργές.",
|
||||||
"ThirdPartyTitleDescription": "Με τα κλειδιά εξουσιοδότησης, μπορείτε να συνδέσετε υπηρεσίες τρίτων μερών στην πύλη σας. Συνδεθείτε εύκολα με το Facebook, το Twitter ή το LinkedIn, προσθέστε το Dropbox, το OneDrive κ.λπ. για να εργάζεστε με αρχεία που είναι αποθηκευμένα εκεί από την ενότητα Έγγραφα.",
|
"ThirdPartyTitleDescription": "Με τα κλειδιά εξουσιοδότησης, μπορείτε να συνδέσετε υπηρεσίες τρίτων μερών στην πύλη σας. Συνδεθείτε εύκολα με το Facebook, το Twitter ή το LinkedIn, προσθέστε το Dropbox, το OneDrive κ.λπ. για να εργάζεστε με αρχεία που είναι αποθηκευμένα εκεί από την ενότητα Έγγραφα.",
|
||||||
"TimeZone": "Ζώνη ώρας",
|
"TimeZone": "Ζώνη ώρας",
|
||||||
"TrustedMail": "Ρυθμίσεις Αξιόπιστου Mail Domain",
|
"TrustedMail": "Ρυθμίσεις τομέα αξιόπιστης αλληλογραφίας",
|
||||||
"TrustedMailDescription": "Οι ρυθμίσεις τομέα αξιόπιστης αλληλογραφίας είναι ένας τρόπος για να καθορίσετε τους διακομιστές αλληλογραφίας που χρησιμοποιούνται για την αυτοεγγραφή των χρηστών.",
|
"TrustedMailDescription": "Οι ρυθμίσεις τομέα αξιόπιστης αλληλογραφίας είναι ένας τρόπος για να καθορίσετε τους διακομιστές αλληλογραφίας που χρησιμοποιούνται για την αυτοεγγραφή των χρηστών.",
|
||||||
"TrustedMailHelper": "Μπορείτε είτε να επιλέξετε το Προσαρμοσμένοι τομείς και να εισάγετε τον διακομιστή αξιόπιστης αλληλογραφίας στο παρακάτω πεδίο, ώστε ένα άτομο που έχει λογαριασμό σε αυτόν να μπορεί να εγγραφεί μόνο του κάνοντας κλικ στον σύνδεσμο Συμμετοχή στη σελίδα Είσοδος, είτε να απενεργοποιήσετε αυτήν την επιλογή.",
|
"TrustedMailHelper": "Μπορείτε είτε να επιλέξετε το Προσαρμοσμένοι τομείς και να εισάγετε τον διακομιστή αξιόπιστης αλληλογραφίας στο παρακάτω πεδίο, ώστε ένα άτομο που έχει λογαριασμό σε αυτόν να μπορεί να εγγραφεί μόνο του κάνοντας κλικ στον σύνδεσμο Συμμετοχή στη σελίδα Είσοδος, είτε να απενεργοποιήσετε αυτήν την επιλογή.",
|
||||||
"TwoFactorAuth": "Έλεγχος ταυτότητας δύο παραγόντων",
|
"TwoFactorAuth": "Έλεγχος ταυτότητας δύο παραγόντων",
|
||||||
|
@ -36,12 +36,16 @@ const StyledAboutBody = styled.div`
|
|||||||
}
|
}
|
||||||
|
|
||||||
.logo-theme {
|
.logo-theme {
|
||||||
#svg_4-4 {
|
svg {
|
||||||
fill: ${(props) => props.theme.studio.about.logoColor};
|
g:nth-child(2) {
|
||||||
}
|
path:nth-child(5) {
|
||||||
|
fill: ${(props) => props.theme.studio.about.logoColor};
|
||||||
|
}
|
||||||
|
|
||||||
#svg_5-5 {
|
path:nth-child(6) {
|
||||||
fill: ${(props) => props.theme.studio.about.logoColor};
|
fill: ${(props) => props.theme.studio.about.logoColor};
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
Loading…
Reference in New Issue
Block a user