Web: Files: removed FormatsStore, added getting file formats from SettingsStore
This commit is contained in:
parent
264b3a8764
commit
ccc0838269
@ -132,17 +132,16 @@ export default function withBadges(WrappedComponent) {
|
||||
(
|
||||
{
|
||||
auth,
|
||||
formatsStore,
|
||||
treeFoldersStore,
|
||||
filesActionsStore,
|
||||
versionHistoryStore,
|
||||
selectedFolderStore,
|
||||
dialogsStore,
|
||||
filesStore,
|
||||
settingsStore,
|
||||
},
|
||||
{ item }
|
||||
) => {
|
||||
const { docserviceStore } = formatsStore;
|
||||
const { isRecycleBinFolder, isPrivacyFolder } = treeFoldersStore;
|
||||
const {
|
||||
lockFileAction,
|
||||
@ -158,8 +157,8 @@ export default function withBadges(WrappedComponent) {
|
||||
} = dialogsStore;
|
||||
const { setIsLoading } = filesStore;
|
||||
|
||||
const canWebEdit = docserviceStore.canWebEdit(item.fileExst);
|
||||
const canConvert = docserviceStore.canConvert(item.fileExst);
|
||||
const canWebEdit = settingsStore.canWebEdit(item.fileExst);
|
||||
const canConvert = settingsStore.canConvert(item.fileExst);
|
||||
|
||||
return {
|
||||
isAdmin: auth.isAdmin,
|
||||
|
@ -25,7 +25,7 @@ export default function withContextOptions(WrappedComponent) {
|
||||
const {
|
||||
copyAsAction,
|
||||
item,
|
||||
formfillingDocs,
|
||||
extsWebRestrictedEditing,
|
||||
setConvertPasswordDialogVisible,
|
||||
setFormCreationInfo,
|
||||
t,
|
||||
@ -33,7 +33,8 @@ export default function withContextOptions(WrappedComponent) {
|
||||
const { title, id, folderId, fileExst } = item;
|
||||
|
||||
const newTitle =
|
||||
title.substring(0, title.length - fileExst.length) + formfillingDocs[0];
|
||||
title.substring(0, title.length - fileExst.length) +
|
||||
extsWebRestrictedEditing[0];
|
||||
|
||||
copyAsAction(id, newTitle, folderId).catch((err) => {
|
||||
console.log("err", err);
|
||||
@ -44,7 +45,7 @@ export default function withContextOptions(WrappedComponent) {
|
||||
setFormCreationInfo({
|
||||
newTitle,
|
||||
fromExst: fileExst,
|
||||
toExst: formfillingDocs[0],
|
||||
toExst: extsWebRestrictedEditing[0],
|
||||
fileInfo: item,
|
||||
});
|
||||
setConvertPasswordDialogVisible(true);
|
||||
@ -641,10 +642,11 @@ export default function withContextOptions(WrappedComponent) {
|
||||
treeFoldersStore,
|
||||
uploadDataStore,
|
||||
versionHistoryStore,
|
||||
settingsStore,
|
||||
},
|
||||
{ item }
|
||||
) => {
|
||||
const { openDocEditor, fileActionStore, formatsStore } = filesStore;
|
||||
const { openDocEditor, fileActionStore } = filesStore;
|
||||
const {
|
||||
deleteItemAction,
|
||||
downloadAction,
|
||||
@ -676,7 +678,7 @@ export default function withContextOptions(WrappedComponent) {
|
||||
const { setAction, type, extension, id } = fileActionStore;
|
||||
const { setMediaViewerData } = mediaViewerDataStore;
|
||||
const { copyAsAction } = uploadDataStore;
|
||||
const { formfillingDocs } = formatsStore.docserviceStore;
|
||||
const { extsWebRestrictedEditing } = settingsStore;
|
||||
|
||||
const { isRecycleBinFolder, isShare } = treeFoldersStore;
|
||||
const isShareFolder = isShare(item.rootFolderType);
|
||||
@ -717,7 +719,7 @@ export default function withContextOptions(WrappedComponent) {
|
||||
setUnsubscribe,
|
||||
isDesktop: isDesktopClient,
|
||||
copyAsAction,
|
||||
formfillingDocs,
|
||||
extsWebRestrictedEditing,
|
||||
setFormCreationInfo,
|
||||
};
|
||||
}
|
||||
|
@ -303,8 +303,8 @@ export default function withFileActions(WrappedFileItem) {
|
||||
//selectedFolderStore,
|
||||
filesStore,
|
||||
uploadDataStore,
|
||||
formatsStore,
|
||||
mediaViewerDataStore,
|
||||
settingsStore,
|
||||
},
|
||||
{ item, t, history }
|
||||
) => {
|
||||
@ -346,7 +346,6 @@ export default function withFileActions(WrappedFileItem) {
|
||||
} = filesStore;
|
||||
const { startUpload } = uploadDataStore;
|
||||
const { type, extension, id } = fileActionStore;
|
||||
const { mediaViewersFormatsStore, docserviceStore } = formatsStore;
|
||||
const { setMediaViewerData } = mediaViewerDataStore;
|
||||
|
||||
const selectedItem = selection.find(
|
||||
@ -358,13 +357,10 @@ export default function withFileActions(WrappedFileItem) {
|
||||
|
||||
const isFolder = selectedItem ? false : !item.isFolder ? false : true;
|
||||
|
||||
const isMediaOrImage = mediaViewersFormatsStore.isMediaOrImage(
|
||||
item.fileExst
|
||||
);
|
||||
|
||||
const canWebEdit = docserviceStore.canWebEdit(item.fileExst);
|
||||
const canConvert = docserviceStore.canConvert(item.fileExst);
|
||||
const canViewedDocs = docserviceStore.canViewedDocs(item.fileExst);
|
||||
const isMediaOrImage = settingsStore.isMediaOrImage(item.fileExst);
|
||||
const canWebEdit = settingsStore.canWebEdit(item.fileExst);
|
||||
const canConvert = settingsStore.canConvert(item.fileExst);
|
||||
const canViewedDocs = settingsStore.canViewedDocs(item.fileExst);
|
||||
|
||||
const inProgress =
|
||||
activeFiles.findIndex((x) => x === item.id) !== -1 ||
|
||||
|
@ -25,7 +25,7 @@ const DownloadContent = (props) => {
|
||||
getItemIcon,
|
||||
titleFormat,
|
||||
type,
|
||||
filesConverts,
|
||||
extsConvertible,
|
||||
title,
|
||||
} = props;
|
||||
|
||||
@ -37,9 +37,7 @@ const DownloadContent = (props) => {
|
||||
for (let item of items) {
|
||||
const exst = item.fileExst;
|
||||
|
||||
const exstItem = filesConverts.find((f) => f[exst]);
|
||||
const arrayExst = exstItem ? exstItem[exst] : [];
|
||||
arr = [...arr, ...arrayExst];
|
||||
arr = [...arr, ...extsConvertible[exst]];
|
||||
}
|
||||
|
||||
arr = arr.filter((x, pos) => arr.indexOf(x) !== pos);
|
||||
@ -92,9 +90,7 @@ const DownloadContent = (props) => {
|
||||
};
|
||||
|
||||
const getFormats = (item) => {
|
||||
const arrayFormats = item && filesConverts.find((f) => f[item.fileExst]);
|
||||
const conversionFormats = arrayFormats ? arrayFormats[item.fileExst] : [];
|
||||
|
||||
const arrayFormats = item ? extsConvertible[item.fileExst] : [];
|
||||
const formats = [
|
||||
{
|
||||
key: "original",
|
||||
@ -105,7 +101,7 @@ const DownloadContent = (props) => {
|
||||
"data-file-id": item.id,
|
||||
},
|
||||
];
|
||||
for (let f of conversionFormats) {
|
||||
for (let f of arrayFormats) {
|
||||
formats.push({
|
||||
key: f,
|
||||
label: f,
|
||||
|
@ -316,7 +316,7 @@ class DownloadDialogComponent extends React.Component {
|
||||
};
|
||||
|
||||
render() {
|
||||
const { visible, t, tReady, filesConverts } = this.props;
|
||||
const { visible, t, tReady, extsConvertible } = this.props;
|
||||
const {
|
||||
documentsTitleFormat,
|
||||
spreadsheetsTitleFormat,
|
||||
@ -358,7 +358,7 @@ class DownloadDialogComponent extends React.Component {
|
||||
{documents.length > 0 && (
|
||||
<DownloadContent
|
||||
t={t}
|
||||
filesConverts={filesConverts}
|
||||
extsConvertible={extsConvertible}
|
||||
checkedTitle={checkedDocTitle}
|
||||
indeterminateTitle={indeterminateDocTitle}
|
||||
items={documents}
|
||||
@ -374,7 +374,7 @@ class DownloadDialogComponent extends React.Component {
|
||||
{spreadsheets.length > 0 && (
|
||||
<DownloadContent
|
||||
t={t}
|
||||
filesConverts={filesConverts}
|
||||
extsConvertible={extsConvertible}
|
||||
checkedTitle={checkedSpreadsheetTitle}
|
||||
indeterminateTitle={indeterminateSpreadsheetTitle}
|
||||
items={spreadsheets}
|
||||
@ -390,7 +390,7 @@ class DownloadDialogComponent extends React.Component {
|
||||
{presentations.length > 0 && (
|
||||
<DownloadContent
|
||||
t={t}
|
||||
filesConverts={filesConverts}
|
||||
extsConvertible={extsConvertible}
|
||||
checkedTitle={checkedPresentationTitle}
|
||||
indeterminateTitle={indeterminatePresentationTitle}
|
||||
items={presentations}
|
||||
@ -503,10 +503,9 @@ const DownloadDialog = withTranslation([
|
||||
])(DownloadDialogComponent);
|
||||
|
||||
export default inject(
|
||||
({ filesStore, formatsStore, dialogsStore, filesActionsStore }) => {
|
||||
({ filesStore, dialogsStore, filesActionsStore, settingsStore }) => {
|
||||
const { sortedFiles } = filesStore;
|
||||
const { getIcon, getFolderIcon } = formatsStore.iconFormatsStore;
|
||||
const { filesConverts } = formatsStore.docserviceStore;
|
||||
const { extsConvertible, getIcon, getFolderIcon } = settingsStore;
|
||||
|
||||
const {
|
||||
downloadDialogVisible: visible,
|
||||
@ -518,7 +517,7 @@ export default inject(
|
||||
return {
|
||||
sortedFiles,
|
||||
visible,
|
||||
filesConverts,
|
||||
extsConvertible,
|
||||
|
||||
getIcon,
|
||||
getFolderIcon,
|
||||
|
@ -242,10 +242,10 @@ export default inject(
|
||||
filesStore,
|
||||
mediaViewerDataStore,
|
||||
treeFoldersStore,
|
||||
formatsStore,
|
||||
filesActionsStore,
|
||||
selectedFolderStore,
|
||||
dialogsStore,
|
||||
settingsStore,
|
||||
}) => {
|
||||
const {
|
||||
fetchFiles,
|
||||
@ -259,7 +259,7 @@ export default inject(
|
||||
} = filesStore;
|
||||
const { updateRootBadge } = treeFoldersStore;
|
||||
const { setMediaViewerData } = mediaViewerDataStore;
|
||||
const { getIcon, getFolderIcon } = formatsStore.iconFormatsStore;
|
||||
const { getIcon, getFolderIcon } = settingsStore;
|
||||
const { markAsRead } = filesActionsStore;
|
||||
const { pathParts } = selectedFolderStore;
|
||||
|
||||
|
@ -66,9 +66,8 @@ FilesListRow.defaultProps = {
|
||||
isMultiSelect: false,
|
||||
};
|
||||
|
||||
export default inject(({ formatsStore }, { fileExst }) => {
|
||||
const { iconFormatsStore } = formatsStore;
|
||||
const iconSrc = iconFormatsStore.getIconSrc(fileExst, 24);
|
||||
export default inject(({ settingsStore }, { fileExst }) => {
|
||||
const iconSrc = settingsStore.getIconSrc(fileExst, 24);
|
||||
return {
|
||||
iconSrc,
|
||||
};
|
||||
|
@ -353,7 +353,10 @@ class FileRow extends Component {
|
||||
}
|
||||
}
|
||||
export default inject(
|
||||
({ auth, formatsStore, uploadDataStore, mediaViewerDataStore }, { item }) => {
|
||||
(
|
||||
{ auth, uploadDataStore, mediaViewerDataStore, settingsStore },
|
||||
{ item }
|
||||
) => {
|
||||
let ext;
|
||||
let name;
|
||||
let splitted;
|
||||
@ -368,11 +371,11 @@ export default inject(
|
||||
}
|
||||
const { personal } = auth.settingsStore;
|
||||
const {
|
||||
iconFormatsStore,
|
||||
mediaViewersFormatsStore,
|
||||
docserviceStore,
|
||||
} = formatsStore;
|
||||
const { canViewedDocs } = docserviceStore;
|
||||
canViewedDocs,
|
||||
isMediaOrImage,
|
||||
getIconSrc,
|
||||
isArchive,
|
||||
} = settingsStore;
|
||||
const {
|
||||
uploaded,
|
||||
primaryProgressDataStore,
|
||||
@ -385,11 +388,11 @@ export default inject(
|
||||
} = uploadDataStore;
|
||||
const { playlist, setMediaViewerData } = mediaViewerDataStore;
|
||||
const { loadingFile: file } = primaryProgressDataStore;
|
||||
const isMedia = mediaViewersFormatsStore.isMediaOrImage(ext);
|
||||
const isMedia = isMediaOrImage(ext);
|
||||
const isMediaActive =
|
||||
playlist.findIndex((el) => el.fileId === item.fileId) !== -1;
|
||||
|
||||
const fileIcon = iconFormatsStore.getIconSrc(ext, 24);
|
||||
const fileIcon = getIconSrc(ext, 24);
|
||||
|
||||
const loadingFile = !file || !file.uniqueId ? null : file;
|
||||
|
||||
@ -398,8 +401,6 @@ export default inject(
|
||||
? loadingFile.percent
|
||||
: null;
|
||||
|
||||
const { isArchive } = iconFormatsStore;
|
||||
|
||||
const downloadInCurrentTab = isArchive(ext) || !canViewedDocs(ext);
|
||||
|
||||
return {
|
||||
|
@ -1,11 +1,9 @@
|
||||
import rootFilesStore from "../store/";
|
||||
import settingsStore from "../store/";
|
||||
import store from "studio/store";
|
||||
import { desktopConstants } from "@appserver/common/desktop";
|
||||
|
||||
const { docserviceStore } = rootFilesStore.formatsStore;
|
||||
|
||||
export function encryptionUploadDialog(callback) {
|
||||
const filter = docserviceStore.encryptedDocs.map((f) => "*" + f).join(" ");
|
||||
const filter = settingsStore.extsWebEncrypt.map((f) => "*" + f).join(" ");
|
||||
|
||||
const data = {
|
||||
cryptoEngineId: desktopConstants.cryptoEngineId,
|
||||
|
@ -6,7 +6,7 @@ import { addFileToRecentlyViewed } from "@appserver/common/api/files";
|
||||
import i18n from "./i18n";
|
||||
|
||||
import { request } from "@appserver/common/api/client";
|
||||
import docserviceStore from "../store/DocserviceStore";
|
||||
import settingsStore from "../store/";
|
||||
|
||||
export const setDocumentTitle = (subTitle = null) => {
|
||||
const { isAuthenticated, settingsStore, product: currentModule } = authStore;
|
||||
@ -118,7 +118,7 @@ export const SaveAs = (title, url, folderId, openNewTab) => {
|
||||
};
|
||||
|
||||
export const canConvert = (fileExst) => {
|
||||
const { canConvert } = docserviceStore;
|
||||
const { canConvert } = settingsStore;
|
||||
|
||||
return canConvert(fileExst);
|
||||
};
|
||||
|
@ -164,7 +164,7 @@ export default inject(
|
||||
filesStore,
|
||||
mediaViewerDataStore,
|
||||
filesActionsStore,
|
||||
formatsStore,
|
||||
settingsStore,
|
||||
dialogsStore,
|
||||
treeFoldersStore,
|
||||
}) => {
|
||||
@ -184,7 +184,7 @@ export default inject(
|
||||
setToPreviewFile,
|
||||
} = mediaViewerDataStore;
|
||||
const { deleteItemAction } = filesActionsStore;
|
||||
const { media, images } = formatsStore.mediaViewersFormatsStore;
|
||||
const { extsVideo, extsImage } = settingsStore;
|
||||
const { expandedKeys, setExpandedKeys } = treeFoldersStore;
|
||||
|
||||
return {
|
||||
@ -195,8 +195,8 @@ export default inject(
|
||||
currentMediaFileId,
|
||||
deleteItemAction,
|
||||
setMediaViewerData,
|
||||
mediaViewerImageFormats: images,
|
||||
mediaViewerMediaFormats: media,
|
||||
mediaViewerImageFormats: extsImage,
|
||||
mediaViewerMediaFormats: extsVideo,
|
||||
setRemoveMediaItem: dialogsStore.setRemoveMediaItem,
|
||||
deleteDialogVisible: dialogsStore.deleteDialogVisible,
|
||||
fetchFiles,
|
||||
|
@ -108,8 +108,8 @@ const FilesTile = (props) => {
|
||||
);
|
||||
};
|
||||
|
||||
export default inject(({ formatsStore }) => {
|
||||
const { getIcon } = formatsStore.iconFormatsStore;
|
||||
export default inject(({ settingsStore }) => {
|
||||
const { getIcon } = settingsStore;
|
||||
return { getIcon };
|
||||
})(
|
||||
withTranslation("Home")(
|
||||
|
@ -39,7 +39,7 @@ class PureHome extends React.Component {
|
||||
setExpandedKeys,
|
||||
setToPreviewFile,
|
||||
playlist,
|
||||
mediaViewersFormatsStore,
|
||||
isMediaOrImage,
|
||||
getFileInfo,
|
||||
setIsPrevSettingsModule,
|
||||
isPrevSettingsModule,
|
||||
@ -62,9 +62,7 @@ class PureHome extends React.Component {
|
||||
|
||||
getFileInfo(fileId)
|
||||
.then((data) => {
|
||||
const canOpenPlayer = mediaViewersFormatsStore.isMediaOrImage(
|
||||
data.fileExst
|
||||
);
|
||||
const canOpenPlayer = isMediaOrImage(data.fileExst);
|
||||
const file = { ...data, canOpenPlayer };
|
||||
setToPreviewFile(file, true);
|
||||
})
|
||||
@ -353,7 +351,7 @@ export default inject(
|
||||
uploadDataStore,
|
||||
treeFoldersStore,
|
||||
mediaViewerDataStore,
|
||||
formatsStore,
|
||||
settingsStore,
|
||||
}) => {
|
||||
const {
|
||||
secondaryProgressDataStore,
|
||||
@ -376,8 +374,6 @@ export default inject(
|
||||
isPrevSettingsModule,
|
||||
} = filesStore;
|
||||
|
||||
const { mediaViewersFormatsStore } = formatsStore;
|
||||
|
||||
const { id } = fileActionStore;
|
||||
const {
|
||||
isRecycleBinFolder,
|
||||
@ -463,7 +459,7 @@ export default inject(
|
||||
setHeaderVisible: auth.settingsStore.setHeaderVisible,
|
||||
setToPreviewFile,
|
||||
playlist,
|
||||
mediaViewersFormatsStore,
|
||||
isMediaOrImage: settingsStore.isMediaOrImage,
|
||||
getFileInfo,
|
||||
|
||||
setIsPrevSettingsModule,
|
||||
|
@ -1,216 +0,0 @@
|
||||
import { makeObservable } from "mobx";
|
||||
import { presentInArray } from "../helpers/files-helpers";
|
||||
|
||||
class DocserviceStore {
|
||||
coauthorDocs = [
|
||||
".csv",
|
||||
".docx",
|
||||
".docxf",
|
||||
".oform",
|
||||
".ppsx",
|
||||
".pptx",
|
||||
".txt",
|
||||
".xlsx",
|
||||
];
|
||||
commentedDocs = [".docx", ".docxf", ".xlsx", ".pptx"];
|
||||
convertDocs = [
|
||||
".doc",
|
||||
".docm",
|
||||
".dot",
|
||||
".dotm",
|
||||
".dotx",
|
||||
".fodp",
|
||||
".fods",
|
||||
".fodt",
|
||||
".odp",
|
||||
".ods",
|
||||
".odt",
|
||||
".otp",
|
||||
".ots",
|
||||
".ott",
|
||||
".pot",
|
||||
".potm",
|
||||
".potx",
|
||||
".pps",
|
||||
".ppsm",
|
||||
".ppt",
|
||||
".pptm",
|
||||
".rtf",
|
||||
".xls",
|
||||
".xlsm",
|
||||
".xlt",
|
||||
".xltm",
|
||||
".xltx",
|
||||
];
|
||||
editedDocs = [
|
||||
".csv",
|
||||
".doc",
|
||||
".docm",
|
||||
".docx",
|
||||
".docxf",
|
||||
".dot",
|
||||
".dotm",
|
||||
".dotx",
|
||||
".fodp",
|
||||
".fods",
|
||||
".fodt",
|
||||
".htm",
|
||||
".html",
|
||||
".mht",
|
||||
".odp",
|
||||
".ods",
|
||||
".odt",
|
||||
".oform",
|
||||
".otp",
|
||||
".ots",
|
||||
".ott",
|
||||
".pot",
|
||||
".potm",
|
||||
".potx",
|
||||
".pps",
|
||||
".ppsm",
|
||||
".ppsx",
|
||||
".ppt",
|
||||
".pptm",
|
||||
".pptx",
|
||||
".rtf",
|
||||
".txt",
|
||||
".xls",
|
||||
".xlsm",
|
||||
".xlsx",
|
||||
".xlt",
|
||||
".xltm",
|
||||
".xltx",
|
||||
];
|
||||
encryptedDocs = [".docx", ".xlsx", ".pptx", ".docxf", ".oform"];
|
||||
formfillingDocs = [".oform"];
|
||||
customfilterDocs = [".xlsx"];
|
||||
reviewedDocs = [".docx", ".docxf"];
|
||||
viewedDocs = [
|
||||
".csv",
|
||||
".djvu",
|
||||
".doc",
|
||||
".docm",
|
||||
".docx",
|
||||
".docxf",
|
||||
".dot",
|
||||
".dotm",
|
||||
".dotx",
|
||||
".epub",
|
||||
".fodp",
|
||||
".fods",
|
||||
".fodt",
|
||||
".gdoc",
|
||||
".gsheet",
|
||||
".gslides",
|
||||
".htm",
|
||||
".html",
|
||||
".mht",
|
||||
".odp",
|
||||
".ods",
|
||||
".odt",
|
||||
".oform",
|
||||
".otp",
|
||||
".ots",
|
||||
".ott",
|
||||
".pdf",
|
||||
".pot",
|
||||
".potm",
|
||||
".potx",
|
||||
".pps",
|
||||
".ppsm",
|
||||
".ppsx",
|
||||
".ppt",
|
||||
".pptm",
|
||||
".pptx",
|
||||
".rtf",
|
||||
".txt",
|
||||
".xls",
|
||||
".xlsm",
|
||||
".xlsx",
|
||||
".xlt",
|
||||
".xltm",
|
||||
".xltx",
|
||||
".xps",
|
||||
];
|
||||
|
||||
filesConverts = [
|
||||
{ ".csv": [".ods", ".pdf", ".xlsx"] },
|
||||
{ ".doc": [".docx", ".odt", ".pdf", ".rtf", ".txt"] },
|
||||
{ ".docm": [".docx", ".odt", ".pdf", ".rtf", ".txt"] },
|
||||
{ ".doct": [".docx"] },
|
||||
{ ".docx": [".docxf", ".odt", ".pdf", ".rtf", ".txt"] },
|
||||
{ ".dot": [".docx", ".odt", ".pdf", ".rtf", ".txt"] },
|
||||
{ ".dotm": [".docx", ".odt", ".pdf", ".rtf", ".txt"] },
|
||||
{ ".dotx": [".docx", ".odt", ".pdf", ".rtf", ".txt"] },
|
||||
{ ".epub": [".docx", ".odt", ".pdf", ".rtf", ".txt"] },
|
||||
{ ".fb2": [".docx", ".odt", ".pdf", ".rtf", ".txt"] },
|
||||
{ ".fodp": [".odp", ".pdf", ".pptx"] },
|
||||
{ ".fods": [".csv", ".ods", ".pdf", ".xlsx"] },
|
||||
{ ".fodt": [".docx", ".odt", ".pdf", ".rtf", ".txt"] },
|
||||
{ ".html": [".docx", ".odt", ".pdf", ".rtf", ".txt"] },
|
||||
{ ".mht": [".docx", ".odt", ".pdf", ".rtf", ".txt"] },
|
||||
{ ".odp": [".pdf", ".pptx"] },
|
||||
{ ".otp": [".odp", ".pdf", ".pptx"] },
|
||||
{ ".ods": [".csv", ".pdf", ".xlsx"] },
|
||||
{ ".ots": [".csv", ".ods", ".pdf", ".xlsx"] },
|
||||
{ ".odt": [".docx", ".pdf", ".rtf", ".txt"] },
|
||||
{ ".ott": [".docx", ".odt", ".pdf", ".rtf", ".txt"] },
|
||||
{ ".pot": [".odp", ".pdf", ".pptx"] },
|
||||
{ ".potm": [".odp", ".pdf", ".pptx"] },
|
||||
{ ".potx": [".odp", ".pdf", ".pptx"] },
|
||||
{ ".pps": [".odp", ".pdf", ".pptx"] },
|
||||
{ ".ppsm": [".odp", ".pdf", ".pptx"] },
|
||||
{ ".ppsx": [".odp", ".pdf", ".pptx"] },
|
||||
{ ".ppt": [".odp", ".pdf", ".pptx"] },
|
||||
{ ".pptm": [".odp", ".pdf", ".pptx"] },
|
||||
{ ".pptt": [".pptx"] },
|
||||
{ ".pptx": [".odp", ".pdf"] },
|
||||
{ ".rtf": [".docx", ".odt", ".pdf", ".txt"] },
|
||||
{ ".txt": [".docx", ".odt", ".pdf", ".rtf"] },
|
||||
{ ".xls": [".csv", ".ods", ".pdf", ".xlsx"] },
|
||||
{ ".xlsm": [".csv", ".ods", ".pdf", ".xlsx"] },
|
||||
{ ".xlst": [".xlsx"] },
|
||||
{ ".xlsx": [".csv", ".ods", ".pdf"] },
|
||||
{ ".xlt": [".csv", ".ods", ".pdf", ".xlsx"] },
|
||||
{ ".xltm": [".csv", ".ods", ".pdf", ".xlsx"] },
|
||||
{ ".xltx": [".csv", ".ods", ".pdf", ".xlsx"] },
|
||||
{ ".xps": [".pdf"] },
|
||||
{
|
||||
".docxf": [
|
||||
".docx",
|
||||
".dotx",
|
||||
".epub",
|
||||
".fb2",
|
||||
".html",
|
||||
".odt",
|
||||
".oform",
|
||||
".ott",
|
||||
".pdf",
|
||||
".rtf",
|
||||
".txt",
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
constructor() {
|
||||
makeObservable(this, {});
|
||||
}
|
||||
|
||||
canWebEdit = (extension) => presentInArray(this.editedDocs, extension);
|
||||
|
||||
canViewedDocs = (extension) => presentInArray(this.viewedDocs, extension);
|
||||
|
||||
canConvert = (extension) => presentInArray(this.convertDocs, extension);
|
||||
|
||||
canWebComment = (extension) => presentInArray(this.commentedDocs, extension);
|
||||
|
||||
canWebReview = (extension) => presentInArray(this.reviewedDocs, extension);
|
||||
|
||||
canFormFillingDocs = (extension) =>
|
||||
presentInArray(this.formfillingDocs, extension);
|
||||
|
||||
canWebFilterEditing = (extension) =>
|
||||
presentInArray(this.customfilterDocs, extension);
|
||||
}
|
||||
export default new DocserviceStore();
|
@ -28,7 +28,6 @@ class FilesStore {
|
||||
fileActionStore;
|
||||
selectedFolderStore;
|
||||
treeFoldersStore;
|
||||
formatsStore;
|
||||
filesSettingsStore;
|
||||
|
||||
isLoaded = false;
|
||||
@ -67,7 +66,6 @@ class FilesStore {
|
||||
fileActionStore,
|
||||
selectedFolderStore,
|
||||
treeFoldersStore,
|
||||
formatsStore,
|
||||
filesSettingsStore
|
||||
) {
|
||||
const pathname = window.location.pathname.toLowerCase();
|
||||
@ -80,7 +78,6 @@ class FilesStore {
|
||||
this.fileActionStore = fileActionStore;
|
||||
this.selectedFolderStore = selectedFolderStore;
|
||||
this.treeFoldersStore = treeFoldersStore;
|
||||
this.formatsStore = formatsStore;
|
||||
this.filesSettingsStore = filesSettingsStore;
|
||||
|
||||
const { socketHelper } = authStore.settingsStore;
|
||||
@ -651,7 +648,7 @@ class FilesStore {
|
||||
canWebEdit,
|
||||
canViewedDocs,
|
||||
canFormFillingDocs,
|
||||
} = this.formatsStore.docserviceStore;
|
||||
} = this.filesSettingsStore;
|
||||
|
||||
const isThirdPartyFolder =
|
||||
item.providerKey && item.id === item.rootFolderId;
|
||||
@ -1254,7 +1251,7 @@ class FilesStore {
|
||||
}
|
||||
|
||||
get iconOfDraggedFile() {
|
||||
const { getIcon } = this.formatsStore.iconFormatsStore;
|
||||
const { getIcon } = this.filesSettingsStore;
|
||||
|
||||
if (this.selection.length === 1) {
|
||||
return getIcon(
|
||||
@ -1318,7 +1315,7 @@ class FilesStore {
|
||||
}
|
||||
|
||||
onCreateAddTempItem = (items) => {
|
||||
const { getFileIcon, getFolderIcon } = this.formatsStore.iconFormatsStore;
|
||||
const { getFileIcon, getFolderIcon } = this.filesSettingsStore;
|
||||
const { extension, title } = this.fileActionStore;
|
||||
|
||||
if (items.length && items[0].id === -1) return; //TODO: if change media collection from state remove this;
|
||||
@ -1346,8 +1343,7 @@ class FilesStore {
|
||||
}
|
||||
|
||||
get filesList() {
|
||||
const { mediaViewersFormatsStore, iconFormatsStore } = this.formatsStore;
|
||||
const { getIcon } = iconFormatsStore;
|
||||
const { getIcon } = this.filesSettingsStore;
|
||||
//return [...this.folders, ...this.files];
|
||||
|
||||
const items = [...this.folders, ...this.files];
|
||||
@ -1386,11 +1382,9 @@ class FilesStore {
|
||||
canEdit,
|
||||
} = item;
|
||||
|
||||
const { canConvert } = this.formatsStore.docserviceStore;
|
||||
const { canConvert, isMediaOrImage } = this.filesSettingsStore;
|
||||
|
||||
const canOpenPlayer = mediaViewersFormatsStore.isMediaOrImage(
|
||||
item.fileExst
|
||||
);
|
||||
const canOpenPlayer = isMediaOrImage(item.fileExst);
|
||||
|
||||
const previewUrl = canOpenPlayer
|
||||
? combineUrl(
|
||||
@ -1494,14 +1488,14 @@ class FilesStore {
|
||||
}
|
||||
|
||||
get cbMenuItems() {
|
||||
const { mediaViewersFormatsStore, iconFormatsStore } = this.formatsStore;
|
||||
const {
|
||||
isImage,
|
||||
isVideo,
|
||||
isDocument,
|
||||
isPresentation,
|
||||
isSpreadsheet,
|
||||
isArchive,
|
||||
} = iconFormatsStore;
|
||||
const { isImage, isVideo } = mediaViewersFormatsStore;
|
||||
} = this.filesSettingsStore;
|
||||
|
||||
let cbMenu = ["all"];
|
||||
const filesItems = [...this.files, ...this.folders];
|
||||
@ -1557,11 +1551,11 @@ class FilesStore {
|
||||
|
||||
get sortedFiles() {
|
||||
const {
|
||||
extsConvertible,
|
||||
isSpreadsheet,
|
||||
isPresentation,
|
||||
isDocument,
|
||||
} = this.formatsStore.iconFormatsStore;
|
||||
const { filesConverts } = this.formatsStore.docserviceStore;
|
||||
} = this.filesSettingsStore;
|
||||
|
||||
let sortedFiles = {
|
||||
documents: [],
|
||||
@ -1580,7 +1574,7 @@ class FilesStore {
|
||||
item.checked = true;
|
||||
item.format = null;
|
||||
|
||||
const canConvert = filesConverts.find((f) => f[item.fileExst]);
|
||||
const canConvert = extsConvertible[item.fileExst];
|
||||
|
||||
if (item.fileExst && canConvert) {
|
||||
if (isSpreadsheet(item.fileExst)) {
|
||||
@ -1638,7 +1632,7 @@ class FilesStore {
|
||||
}
|
||||
|
||||
get canConvertSelected() {
|
||||
const { filesConverts } = this.formatsStore.docserviceStore;
|
||||
const { extsConvertible } = this.filesSettingsStore;
|
||||
|
||||
const selection = this.selection.length
|
||||
? this.selection
|
||||
@ -1648,13 +1642,13 @@ class FilesStore {
|
||||
|
||||
return selection.some((selected) => {
|
||||
if (selected.isFolder === true || !selected.fileExst) return false;
|
||||
const index = filesConverts.findIndex((f) => f[selected.fileExst]);
|
||||
return index !== -1;
|
||||
const array = extsConvertible[selected.fileExst];
|
||||
return array;
|
||||
});
|
||||
}
|
||||
|
||||
get isViewedSelected() {
|
||||
const { canViewedDocs } = this.formatsStore.docserviceStore;
|
||||
const { canViewedDocs } = this.filesSettingsStore;
|
||||
|
||||
return this.selection.some((selected) => {
|
||||
if (selected.isFolder === true || !selected.fileExst) return false;
|
||||
@ -1663,7 +1657,7 @@ class FilesStore {
|
||||
}
|
||||
|
||||
get isMediaSelected() {
|
||||
const { isMediaOrImage } = this.formatsStore.mediaViewersFormatsStore;
|
||||
const { isMediaOrImage } = this.filesSettingsStore;
|
||||
|
||||
return this.selection.some((selected) => {
|
||||
if (selected.isFolder === true || !selected.fileExst) return false;
|
||||
@ -1708,7 +1702,7 @@ class FilesStore {
|
||||
canFormFillingDocs,
|
||||
canWebFilterEditing,
|
||||
canConvert,
|
||||
} = this.formatsStore.docserviceStore;
|
||||
} = this.filesSettingsStore;
|
||||
|
||||
if (selection[0].encrypted) {
|
||||
return ["FullAccess", "DenyAccess"];
|
||||
|
@ -1,16 +0,0 @@
|
||||
import { makeAutoObservable } from "mobx";
|
||||
|
||||
class FormatsStore {
|
||||
iconFormatsStore;
|
||||
mediaViewersFormatsStore;
|
||||
docserviceStore;
|
||||
|
||||
constructor(iconFormatsStore, mediaViewersFormatsStore, docserviceStore) {
|
||||
makeAutoObservable(this);
|
||||
this.iconFormatsStore = iconFormatsStore;
|
||||
this.mediaViewersFormatsStore = mediaViewersFormatsStore;
|
||||
this.docserviceStore = docserviceStore;
|
||||
}
|
||||
}
|
||||
|
||||
export default FormatsStore;
|
@ -1,368 +0,0 @@
|
||||
import { makeAutoObservable } from "mobx";
|
||||
import { presentInArray } from "../helpers/files-helpers";
|
||||
|
||||
class IconFormatsStore {
|
||||
archive = [
|
||||
".ace",
|
||||
".arc",
|
||||
".arj",
|
||||
".bh",
|
||||
".cab",
|
||||
".enc",
|
||||
".gz",
|
||||
".gz",
|
||||
".ha",
|
||||
".jar",
|
||||
".lha",
|
||||
".lzh",
|
||||
".pak",
|
||||
".pk3",
|
||||
".rar",
|
||||
".tar",
|
||||
".tgz",
|
||||
".uu",
|
||||
".uue",
|
||||
".xxe",
|
||||
".z",
|
||||
".zip",
|
||||
".zoo",
|
||||
];
|
||||
image = [
|
||||
".ai",
|
||||
".bmp",
|
||||
".cmx",
|
||||
".cod",
|
||||
".gif",
|
||||
".ico",
|
||||
".ief",
|
||||
".jpe",
|
||||
".jpeg",
|
||||
".jpg",
|
||||
".pbm",
|
||||
".png",
|
||||
".pnm",
|
||||
".ppm",
|
||||
".psd",
|
||||
".rgb",
|
||||
".tif",
|
||||
".tiff",
|
||||
".webp",
|
||||
".xbm",
|
||||
".xpm",
|
||||
".xwd",
|
||||
];
|
||||
sound = [
|
||||
".aac",
|
||||
".ac3",
|
||||
".aiff",
|
||||
".amr",
|
||||
".ape",
|
||||
".cda",
|
||||
".flac",
|
||||
".m4a",
|
||||
".mid",
|
||||
".mka",
|
||||
".mp3",
|
||||
".mpc",
|
||||
".oga",
|
||||
".ogg",
|
||||
".pcm",
|
||||
".ra",
|
||||
".raw",
|
||||
".wav",
|
||||
".wma",
|
||||
];
|
||||
video = [
|
||||
".3gp",
|
||||
".asf",
|
||||
".avi",
|
||||
".f4v",
|
||||
".fla",
|
||||
".flv",
|
||||
".m2ts",
|
||||
".m4v",
|
||||
".mkv",
|
||||
".mov",
|
||||
".mp4",
|
||||
".mpeg",
|
||||
".mpg",
|
||||
".mts",
|
||||
".ogv",
|
||||
".svi",
|
||||
".vob",
|
||||
".webm",
|
||||
".wmv",
|
||||
];
|
||||
html = [".htm", ".mht", ".html"];
|
||||
ebook = [".fb2", ".ibk", ".prc", ".epub"];
|
||||
document = [
|
||||
".doc",
|
||||
".docx",
|
||||
".docm",
|
||||
".dot",
|
||||
".dotx",
|
||||
".dotm",
|
||||
".odt",
|
||||
".fodt",
|
||||
".ott",
|
||||
".rtf",
|
||||
".txt",
|
||||
".html",
|
||||
".htm",
|
||||
".mht",
|
||||
".pdf",
|
||||
".djvu",
|
||||
".fb2",
|
||||
".epub",
|
||||
".xps",
|
||||
".doct",
|
||||
".docy",
|
||||
".gdoc",
|
||||
".docxf",
|
||||
".oform",
|
||||
];
|
||||
presentation = [
|
||||
".pps",
|
||||
".ppsx",
|
||||
".ppsm",
|
||||
".ppt",
|
||||
".pptx",
|
||||
".pptm",
|
||||
".pot",
|
||||
".potx",
|
||||
".potm",
|
||||
".odp",
|
||||
".fodp",
|
||||
".otp",
|
||||
".pptt",
|
||||
".ppty",
|
||||
".gslides",
|
||||
];
|
||||
spreadsheet = [
|
||||
".xls",
|
||||
".xlsx",
|
||||
".xlsm",
|
||||
".xlt",
|
||||
".xltx",
|
||||
".xltm",
|
||||
".ods",
|
||||
".fods",
|
||||
".ots",
|
||||
".csv",
|
||||
".xlst",
|
||||
".xlsy",
|
||||
".xlsb",
|
||||
".gsheet",
|
||||
];
|
||||
|
||||
constructor() {
|
||||
makeAutoObservable(this);
|
||||
//makeObservable(this, {});
|
||||
}
|
||||
|
||||
isArchive = (extension) => presentInArray(this.archive, extension);
|
||||
|
||||
isImage = (extension) => presentInArray(this.image, extension);
|
||||
|
||||
isSound = (extension) => presentInArray(this.sound, extension);
|
||||
|
||||
isHtml = (extension) => presentInArray(this.html, extension);
|
||||
|
||||
isEbook = (extension) => presentInArray(this.ebook, extension);
|
||||
|
||||
isDocument = (extension) => presentInArray(this.document, extension);
|
||||
|
||||
isPresentation = (extension) => presentInArray(this.presentation, extension);
|
||||
|
||||
isSpreadsheet = (extension) => presentInArray(this.spreadsheet, extension);
|
||||
|
||||
getIcon = (
|
||||
size = 24,
|
||||
fileExst = null,
|
||||
providerKey = null,
|
||||
contentLength = null
|
||||
) => {
|
||||
if (fileExst || contentLength) {
|
||||
const isArchiveItem = this.isArchive(fileExst);
|
||||
const isImageItem = this.isImage(fileExst);
|
||||
const isSoundItem = this.isSound(fileExst);
|
||||
const isHtmlItem = this.isHtml(fileExst);
|
||||
|
||||
const icon = this.getFileIcon(
|
||||
fileExst,
|
||||
size,
|
||||
isArchiveItem,
|
||||
isImageItem,
|
||||
isSoundItem,
|
||||
isHtmlItem
|
||||
);
|
||||
return icon;
|
||||
} else {
|
||||
return this.getFolderIcon(providerKey, size);
|
||||
}
|
||||
};
|
||||
|
||||
getFolderIcon = (providerKey, size = 32) => {
|
||||
const folderPath = `images/icons/${size}`;
|
||||
|
||||
switch (providerKey) {
|
||||
case "Box":
|
||||
case "BoxNet":
|
||||
return `${folderPath}/folder/box.svg`;
|
||||
case "DropBox":
|
||||
case "DropboxV2":
|
||||
return `${folderPath}/folder/dropbox.svg`;
|
||||
case "Google":
|
||||
case "GoogleDrive":
|
||||
return `${folderPath}/folder/google.svg`;
|
||||
case "OneDrive":
|
||||
return `${folderPath}/folder/onedrive.svg`;
|
||||
case "SharePoint":
|
||||
return `${folderPath}/folder/sharepoint.svg`;
|
||||
case "Yandex":
|
||||
return `${folderPath}/folder/yandex.svg`;
|
||||
case "kDrive":
|
||||
return `${folderPath}/folder/kdrive.svg`;
|
||||
case "WebDav":
|
||||
return `${folderPath}/folder/webdav.svg`;
|
||||
default:
|
||||
return `${folderPath}/folder.svg`;
|
||||
}
|
||||
};
|
||||
|
||||
getIconUrl = (extension, folderPath) => {
|
||||
switch (extension) {
|
||||
case ".avi":
|
||||
return `${folderPath}/avi.svg`;
|
||||
case ".csv":
|
||||
return `${folderPath}/csv.svg`;
|
||||
case ".djvu":
|
||||
return `${folderPath}/djvu.svg`;
|
||||
case ".doc":
|
||||
return `${folderPath}/doc.svg`;
|
||||
case ".docm":
|
||||
return `${folderPath}/docm.svg`;
|
||||
case ".docx":
|
||||
return `${folderPath}/docx.svg`;
|
||||
case ".dotx":
|
||||
return `${folderPath}/dotx.svg`;
|
||||
case ".dvd":
|
||||
return `${folderPath}/dvd.svg`;
|
||||
case ".epub":
|
||||
return `${folderPath}/epub.svg`;
|
||||
case ".pb2":
|
||||
case ".fb2":
|
||||
return `${folderPath}/fb2.svg`;
|
||||
case ".flv":
|
||||
return `${folderPath}/flv.svg`;
|
||||
case ".fodt":
|
||||
return `${folderPath}/fodt.svg`;
|
||||
case ".iaf":
|
||||
return `${folderPath}/iaf.svg`;
|
||||
case ".ics":
|
||||
return `${folderPath}/ics.svg`;
|
||||
case ".m2ts":
|
||||
return `${folderPath}/m2ts.svg`;
|
||||
case ".mht":
|
||||
return `${folderPath}/mht.svg`;
|
||||
case ".mkv":
|
||||
return `${folderPath}/mkv.svg`;
|
||||
case ".mov":
|
||||
return `${folderPath}/mov.svg`;
|
||||
case ".mp4":
|
||||
return `${folderPath}/mp4.svg`;
|
||||
case ".mpg":
|
||||
return `${folderPath}/mpg.svg`;
|
||||
case ".odp":
|
||||
return `${folderPath}/odp.svg`;
|
||||
case ".ods":
|
||||
return `${folderPath}/ods.svg`;
|
||||
case ".odt":
|
||||
return `${folderPath}/odt.svg`;
|
||||
case ".otp":
|
||||
return `${folderPath}/otp.svg`;
|
||||
case ".ots":
|
||||
return `${folderPath}/ots.svg`;
|
||||
case ".ott":
|
||||
return `${folderPath}/ott.svg`;
|
||||
case ".pdf":
|
||||
return `${folderPath}/pdf.svg`;
|
||||
case ".pot":
|
||||
return `${folderPath}/pot.svg`;
|
||||
case ".pps":
|
||||
return `${folderPath}/pps.svg`;
|
||||
case ".ppsx":
|
||||
return `${folderPath}/ppsx.svg`;
|
||||
case ".ppt":
|
||||
return `${folderPath}/ppt.svg`;
|
||||
case ".pptm":
|
||||
return `${folderPath}/pptm.svg`;
|
||||
case ".pptx":
|
||||
return `${folderPath}/pptx.svg`;
|
||||
case ".rtf":
|
||||
return `${folderPath}/rtf.svg`;
|
||||
case ".svg":
|
||||
return `${folderPath}/svg.svg`;
|
||||
case ".txt":
|
||||
return `${folderPath}/txt.svg`;
|
||||
case ".webm":
|
||||
return `${folderPath}/webm.svg`;
|
||||
case ".xls":
|
||||
return `${folderPath}/xls.svg`;
|
||||
case ".xlsm":
|
||||
return `${folderPath}/xlsm.svg`;
|
||||
case ".xlsx":
|
||||
return `${folderPath}/xlsx.svg`;
|
||||
case ".xps":
|
||||
return `${folderPath}/xps.svg`;
|
||||
case ".xml":
|
||||
return `${folderPath}/xml.svg`;
|
||||
case ".oform":
|
||||
return `${folderPath}/oform.svg`;
|
||||
case ".docxf":
|
||||
return `${folderPath}/docxf.svg`;
|
||||
default:
|
||||
return `${folderPath}/file.svg`;
|
||||
}
|
||||
};
|
||||
|
||||
getFileIcon = (
|
||||
extension,
|
||||
size = 32,
|
||||
archive = false,
|
||||
image = false,
|
||||
sound = false,
|
||||
html = false
|
||||
) => {
|
||||
const folderPath = `/static/images/icons/${size}`;
|
||||
|
||||
if (archive) return `${folderPath}/file_archive.svg`;
|
||||
|
||||
if (image) return `${folderPath}/image.svg`;
|
||||
|
||||
if (sound) return `${folderPath}/sound.svg`;
|
||||
|
||||
if (html) return `${folderPath}/html.svg`;
|
||||
|
||||
return this.getIconUrl(extension, folderPath);
|
||||
};
|
||||
|
||||
getIconSrc = (ext, size = 24) => {
|
||||
const folderPath = `/static/images/icons/${size}`;
|
||||
|
||||
if (presentInArray(this.archive, ext, true))
|
||||
return `${folderPath}/file_archive.svg`;
|
||||
|
||||
if (presentInArray(this.image, ext, true)) return `${folderPath}/image.svg`;
|
||||
|
||||
if (presentInArray(this.sound, ext, true)) return `${folderPath}/sound.svg`;
|
||||
|
||||
if (presentInArray(this.html, ext, true)) return `${folderPath}/html.svg`;
|
||||
|
||||
const extension = ext.toLowerCase();
|
||||
|
||||
return this.getIconUrl(extension, folderPath);
|
||||
};
|
||||
}
|
||||
|
||||
export default new IconFormatsStore();
|
@ -2,16 +2,16 @@ import { makeAutoObservable } from "mobx";
|
||||
|
||||
class MediaViewerDataStore {
|
||||
filesStore;
|
||||
formatsStore;
|
||||
settingsStore;
|
||||
|
||||
id = null;
|
||||
visible = false;
|
||||
previewFile = null;
|
||||
|
||||
constructor(filesStore, formatsStore) {
|
||||
constructor(filesStore, settingsStore) {
|
||||
makeAutoObservable(this);
|
||||
this.filesStore = filesStore;
|
||||
this.formatsStore = formatsStore;
|
||||
this.settingsStore = settingsStore;
|
||||
}
|
||||
|
||||
setMediaViewerData = (mediaData) => {
|
||||
@ -35,7 +35,7 @@ class MediaViewerDataStore {
|
||||
};
|
||||
|
||||
get playlist() {
|
||||
const { isMediaOrImage } = this.formatsStore.mediaViewersFormatsStore;
|
||||
const { isMediaOrImage } = this.settingsStore;
|
||||
const { files } = this.filesStore;
|
||||
|
||||
const filesList = [...files];
|
||||
|
@ -1,59 +0,0 @@
|
||||
import { makeObservable, observable } from "mobx";
|
||||
import { presentInArray } from "../helpers/files-helpers";
|
||||
|
||||
class MediaViewersFormatsStore {
|
||||
images = [
|
||||
".bmp",
|
||||
".gif",
|
||||
".ico",
|
||||
".jpeg",
|
||||
".jpg",
|
||||
".png",
|
||||
".svg",
|
||||
".tif",
|
||||
".tiff",
|
||||
".webp",
|
||||
];
|
||||
media = [
|
||||
".aac",
|
||||
".avi",
|
||||
".f4v",
|
||||
".flac",
|
||||
".m4v",
|
||||
".mov",
|
||||
".mp3",
|
||||
".mp4",
|
||||
".mpeg",
|
||||
".mpg",
|
||||
".oga",
|
||||
".ogg",
|
||||
".ogv",
|
||||
".wav",
|
||||
".webm",
|
||||
".wmv",
|
||||
];
|
||||
|
||||
constructor() {
|
||||
makeObservable(this, {
|
||||
images: observable,
|
||||
media: observable,
|
||||
});
|
||||
}
|
||||
|
||||
isVideo = (extension) => {
|
||||
return presentInArray(this.media, extension);
|
||||
};
|
||||
|
||||
isImage = (extension) => {
|
||||
return presentInArray(this.images, extension);
|
||||
};
|
||||
|
||||
isMediaOrImage = (fileExst) => {
|
||||
if (this.media.includes(fileExst) || this.images.includes(fileExst)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
}
|
||||
|
||||
export default new MediaViewersFormatsStore();
|
@ -6,6 +6,7 @@ import {
|
||||
setRecentSetting,
|
||||
} from "@appserver/common/api/files";
|
||||
import { FolderType } from "@appserver/common/constants";
|
||||
import { presentInArray } from "../helpers/files-helpers";
|
||||
|
||||
class SettingsStore {
|
||||
thirdPartyStore;
|
||||
@ -27,6 +28,33 @@ class SettingsStore {
|
||||
|
||||
settingsIsLoaded = false;
|
||||
|
||||
extsImagePreviewed = [];
|
||||
extsMediaPreviewed = [];
|
||||
extsWebPreviewed = [];
|
||||
extsWebEdited = [];
|
||||
extsWebEncrypt = [];
|
||||
extsWebReviewed = [];
|
||||
extsWebCustomFilterEditing = [];
|
||||
extsWebRestrictedEditing = [];
|
||||
extsWebCommented = [];
|
||||
extsWebTemplate = [];
|
||||
extsCoAuthoring = [];
|
||||
extsMustConvert = [];
|
||||
extsConvertible = [];
|
||||
extsUploadable = [];
|
||||
extsArchive = [];
|
||||
extsVideo = [];
|
||||
extsAudio = [];
|
||||
extsImage = [];
|
||||
extsSpreadsheet = [];
|
||||
extsPresentation = [];
|
||||
extsDocument = [];
|
||||
internalFormats = {};
|
||||
masterFormExtension = "";
|
||||
|
||||
html = [".htm", ".mht", ".html"]; //TODO:
|
||||
ebook = [".fb2", ".ibk", ".prc", ".epub"]; //TODO:
|
||||
|
||||
constructor(thirdPartyStore, treeFoldersStore) {
|
||||
makeAutoObservable(this);
|
||||
|
||||
@ -183,6 +211,244 @@ class SettingsStore {
|
||||
const hideConfirmConvertSave = await api.files.hideConfirmConvert(save);
|
||||
this.hideConfirmConvertSave = hideConfirmConvertSave;
|
||||
};
|
||||
|
||||
canWebEdit = (extension) => presentInArray(this.extsWebEdited, extension);
|
||||
|
||||
canViewedDocs = (extension) =>
|
||||
presentInArray(this.extsWebPreviewed, extension);
|
||||
|
||||
canConvert = (extension) => presentInArray(this.extsMustConvert, extension);
|
||||
|
||||
canWebComment = (extension) =>
|
||||
presentInArray(this.extsWebCommented, extension);
|
||||
|
||||
canWebReview = (extension) => presentInArray(this.extsWebReviewed, extension);
|
||||
|
||||
canFormFillingDocs = (extension) =>
|
||||
presentInArray(this.extsWebRestrictedEditing, extension);
|
||||
|
||||
canWebFilterEditing = (extension) =>
|
||||
presentInArray(this.extsWebCustomFilterEditing, extension);
|
||||
|
||||
isMediaOrImage = (fileExst) => {
|
||||
if (
|
||||
this.extsVideo.includes(fileExst) ||
|
||||
this.extsImage.includes(fileExst)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
isArchive = (extension) => presentInArray(this.extsArchive, extension);
|
||||
|
||||
isImage = (extension) => presentInArray(this.extsImage, extension);
|
||||
|
||||
isVideo = (extension) => presentInArray(this.extsVideo, extension);
|
||||
|
||||
isSound = (extension) => presentInArray(this.extsAudio, extension);
|
||||
|
||||
isHtml = (extension) => presentInArray(this.html, extension);
|
||||
|
||||
isEbook = (extension) => presentInArray(this.ebook, extension);
|
||||
|
||||
isDocument = (extension) => presentInArray(this.extsDocument, extension);
|
||||
|
||||
isPresentation = (extension) =>
|
||||
presentInArray(this.extsPresentation, extension);
|
||||
|
||||
isSpreadsheet = (extension) =>
|
||||
presentInArray(this.extsSpreadsheet, extension);
|
||||
|
||||
getIcon = (
|
||||
size = 24,
|
||||
fileExst = null,
|
||||
providerKey = null,
|
||||
contentLength = null
|
||||
) => {
|
||||
if (fileExst || contentLength) {
|
||||
const isArchiveItem = this.isArchive(fileExst);
|
||||
const isImageItem = this.isImage(fileExst);
|
||||
const isSoundItem = this.isSound(fileExst);
|
||||
const isHtmlItem = this.isHtml(fileExst);
|
||||
|
||||
const icon = this.getFileIcon(
|
||||
fileExst,
|
||||
size,
|
||||
isArchiveItem,
|
||||
isImageItem,
|
||||
isSoundItem,
|
||||
isHtmlItem
|
||||
);
|
||||
return icon;
|
||||
} else {
|
||||
return this.getFolderIcon(providerKey, size);
|
||||
}
|
||||
};
|
||||
|
||||
getFolderIcon = (providerKey, size = 32) => {
|
||||
const folderPath = `images/icons/${size}`;
|
||||
|
||||
switch (providerKey) {
|
||||
case "Box":
|
||||
case "BoxNet":
|
||||
return `${folderPath}/folder/box.svg`;
|
||||
case "DropBox":
|
||||
case "DropboxV2":
|
||||
return `${folderPath}/folder/dropbox.svg`;
|
||||
case "Google":
|
||||
case "GoogleDrive":
|
||||
return `${folderPath}/folder/google.svg`;
|
||||
case "OneDrive":
|
||||
return `${folderPath}/folder/onedrive.svg`;
|
||||
case "SharePoint":
|
||||
return `${folderPath}/folder/sharepoint.svg`;
|
||||
case "Yandex":
|
||||
return `${folderPath}/folder/yandex.svg`;
|
||||
case "kDrive":
|
||||
return `${folderPath}/folder/kdrive.svg`;
|
||||
case "WebDav":
|
||||
return `${folderPath}/folder/webdav.svg`;
|
||||
default:
|
||||
return `${folderPath}/folder.svg`;
|
||||
}
|
||||
};
|
||||
|
||||
getIconUrl = (extension, folderPath) => {
|
||||
switch (extension) {
|
||||
case ".avi":
|
||||
return `${folderPath}/avi.svg`;
|
||||
case ".csv":
|
||||
return `${folderPath}/csv.svg`;
|
||||
case ".djvu":
|
||||
return `${folderPath}/djvu.svg`;
|
||||
case ".doc":
|
||||
return `${folderPath}/doc.svg`;
|
||||
case ".docm":
|
||||
return `${folderPath}/docm.svg`;
|
||||
case ".docx":
|
||||
return `${folderPath}/docx.svg`;
|
||||
case ".dotx":
|
||||
return `${folderPath}/dotx.svg`;
|
||||
case ".dvd":
|
||||
return `${folderPath}/dvd.svg`;
|
||||
case ".epub":
|
||||
return `${folderPath}/epub.svg`;
|
||||
case ".pb2":
|
||||
case ".fb2":
|
||||
return `${folderPath}/fb2.svg`;
|
||||
case ".flv":
|
||||
return `${folderPath}/flv.svg`;
|
||||
case ".fodt":
|
||||
return `${folderPath}/fodt.svg`;
|
||||
case ".iaf":
|
||||
return `${folderPath}/iaf.svg`;
|
||||
case ".ics":
|
||||
return `${folderPath}/ics.svg`;
|
||||
case ".m2ts":
|
||||
return `${folderPath}/m2ts.svg`;
|
||||
case ".mht":
|
||||
return `${folderPath}/mht.svg`;
|
||||
case ".mkv":
|
||||
return `${folderPath}/mkv.svg`;
|
||||
case ".mov":
|
||||
return `${folderPath}/mov.svg`;
|
||||
case ".mp4":
|
||||
return `${folderPath}/mp4.svg`;
|
||||
case ".mpg":
|
||||
return `${folderPath}/mpg.svg`;
|
||||
case ".odp":
|
||||
return `${folderPath}/odp.svg`;
|
||||
case ".ods":
|
||||
return `${folderPath}/ods.svg`;
|
||||
case ".odt":
|
||||
return `${folderPath}/odt.svg`;
|
||||
case ".otp":
|
||||
return `${folderPath}/otp.svg`;
|
||||
case ".ots":
|
||||
return `${folderPath}/ots.svg`;
|
||||
case ".ott":
|
||||
return `${folderPath}/ott.svg`;
|
||||
case ".pdf":
|
||||
return `${folderPath}/pdf.svg`;
|
||||
case ".pot":
|
||||
return `${folderPath}/pot.svg`;
|
||||
case ".pps":
|
||||
return `${folderPath}/pps.svg`;
|
||||
case ".ppsx":
|
||||
return `${folderPath}/ppsx.svg`;
|
||||
case ".ppt":
|
||||
return `${folderPath}/ppt.svg`;
|
||||
case ".pptm":
|
||||
return `${folderPath}/pptm.svg`;
|
||||
case ".pptx":
|
||||
return `${folderPath}/pptx.svg`;
|
||||
case ".rtf":
|
||||
return `${folderPath}/rtf.svg`;
|
||||
case ".svg":
|
||||
return `${folderPath}/svg.svg`;
|
||||
case ".txt":
|
||||
return `${folderPath}/txt.svg`;
|
||||
case ".webm":
|
||||
return `${folderPath}/webm.svg`;
|
||||
case ".xls":
|
||||
return `${folderPath}/xls.svg`;
|
||||
case ".xlsm":
|
||||
return `${folderPath}/xlsm.svg`;
|
||||
case ".xlsx":
|
||||
return `${folderPath}/xlsx.svg`;
|
||||
case ".xps":
|
||||
return `${folderPath}/xps.svg`;
|
||||
case ".xml":
|
||||
return `${folderPath}/xml.svg`;
|
||||
case ".oform":
|
||||
return `${folderPath}/oform.svg`;
|
||||
case ".docxf":
|
||||
return `${folderPath}/docxf.svg`;
|
||||
default:
|
||||
return `${folderPath}/file.svg`;
|
||||
}
|
||||
};
|
||||
|
||||
getFileIcon = (
|
||||
extension,
|
||||
size = 32,
|
||||
archive = false,
|
||||
image = false,
|
||||
sound = false,
|
||||
html = false
|
||||
) => {
|
||||
const folderPath = `/static/images/icons/${size}`;
|
||||
|
||||
if (archive) return `${folderPath}/file_archive.svg`;
|
||||
|
||||
if (image) return `${folderPath}/image.svg`;
|
||||
|
||||
if (sound) return `${folderPath}/sound.svg`;
|
||||
|
||||
if (html) return `${folderPath}/html.svg`;
|
||||
|
||||
return this.getIconUrl(extension, folderPath);
|
||||
};
|
||||
|
||||
getIconSrc = (ext, size = 24) => {
|
||||
const folderPath = `/static/images/icons/${size}`;
|
||||
|
||||
if (presentInArray(this.extsArchive, ext, true))
|
||||
return `${folderPath}/file_archive.svg`;
|
||||
|
||||
if (presentInArray(this.extsImage, ext, true))
|
||||
return `${folderPath}/image.svg`;
|
||||
|
||||
if (presentInArray(this.extsAudio, ext, true))
|
||||
return `${folderPath}/sound.svg`;
|
||||
|
||||
if (presentInArray(this.html, ext, true)) return `${folderPath}/html.svg`;
|
||||
|
||||
const extension = ext.toLowerCase();
|
||||
|
||||
return this.getIconUrl(extension, folderPath);
|
||||
};
|
||||
}
|
||||
|
||||
export default SettingsStore;
|
||||
|
@ -19,7 +19,6 @@ import {
|
||||
} from "@appserver/common/api/files";
|
||||
import toastr from "studio/toastr";
|
||||
class UploadDataStore {
|
||||
formatsStore;
|
||||
treeFoldersStore;
|
||||
selectedFolderStore;
|
||||
filesStore;
|
||||
@ -46,7 +45,6 @@ class UploadDataStore {
|
||||
isUploadingAndConversion = false;
|
||||
|
||||
constructor(
|
||||
formatsStore,
|
||||
treeFoldersStore,
|
||||
selectedFolderStore,
|
||||
filesStore,
|
||||
@ -56,7 +54,6 @@ class UploadDataStore {
|
||||
settingsStore
|
||||
) {
|
||||
makeAutoObservable(this);
|
||||
this.formatsStore = formatsStore;
|
||||
this.treeFoldersStore = treeFoldersStore;
|
||||
this.selectedFolderStore = selectedFolderStore;
|
||||
this.filesStore = filesStore;
|
||||
@ -440,7 +437,7 @@ class UploadDataStore {
|
||||
};
|
||||
|
||||
startUpload = (uploadFiles, folderId, t) => {
|
||||
const { canConvert } = this.formatsStore.docserviceStore;
|
||||
const { canConvert } = this.settingsStore;
|
||||
|
||||
const toFolderId = folderId ? folderId : this.selectedFolderStore.id;
|
||||
|
||||
|
@ -5,10 +5,6 @@ import TreeFoldersStore from "./TreeFoldersStore";
|
||||
import thirdPartyStore from "./ThirdPartyStore";
|
||||
import SettingsStore from "./SettingsStore";
|
||||
import FilesActionsStore from "./FilesActionsStore";
|
||||
import FormatsStore from "./FormatsStore";
|
||||
import iconFormatsStore from "./IconFormatsStore";
|
||||
import mediaViewersFormatsStore from "./MediaViewersFormatsStore";
|
||||
import docserviceStore from "./DocserviceStore";
|
||||
import MediaViewerDataStore from "./MediaViewerDataStore";
|
||||
import UploadDataStore from "./UploadDataStore";
|
||||
import SecondaryProgressDataStore from "./SecondaryProgressDataStore";
|
||||
@ -19,12 +15,6 @@ import DialogsStore from "./DialogsStore";
|
||||
import selectedFilesStore from "./SelectedFilesStore";
|
||||
import store from "studio/store";
|
||||
|
||||
const formatsStore = new FormatsStore(
|
||||
iconFormatsStore,
|
||||
mediaViewersFormatsStore,
|
||||
docserviceStore
|
||||
);
|
||||
|
||||
const selectedFolderStore = new SelectedFolderStore(store.auth.settingsStore);
|
||||
|
||||
const treeFoldersStore = new TreeFoldersStore(selectedFolderStore);
|
||||
@ -38,11 +28,13 @@ const filesStore = new FilesStore(
|
||||
fileActionStore,
|
||||
selectedFolderStore,
|
||||
treeFoldersStore,
|
||||
formatsStore,
|
||||
settingsStore,
|
||||
selectedFilesStore
|
||||
);
|
||||
const mediaViewerDataStore = new MediaViewerDataStore(filesStore, formatsStore);
|
||||
const mediaViewerDataStore = new MediaViewerDataStore(
|
||||
filesStore,
|
||||
settingsStore
|
||||
);
|
||||
|
||||
const secondaryProgressDataStore = new SecondaryProgressDataStore();
|
||||
const primaryProgressDataStore = new PrimaryProgressDataStore();
|
||||
@ -54,7 +46,6 @@ const dialogsStore = new DialogsStore(
|
||||
selectedFolderStore
|
||||
);
|
||||
const uploadDataStore = new UploadDataStore(
|
||||
formatsStore,
|
||||
treeFoldersStore,
|
||||
selectedFolderStore,
|
||||
filesStore,
|
||||
@ -82,7 +73,6 @@ const stores = {
|
||||
filesStore,
|
||||
settingsStore,
|
||||
mediaViewerDataStore,
|
||||
formatsStore,
|
||||
versionHistoryStore,
|
||||
uploadDataStore,
|
||||
dialogsStore,
|
||||
|
Loading…
Reference in New Issue
Block a user