mirror of
https://github.com/ONLYOFFICE/web-apps.git
synced 2026-07-25 16:02:46 +08:00
[desktop] filter recent files by app type
This commit is contained in:
@ -442,26 +442,30 @@ define([
|
||||
const _is_win = /Win/.test(navigator.platform);
|
||||
const _re_name = !_is_win ? /([^/]+\.[a-zA-Z0-9]{1,})$/ : /([^\\/]+\.[a-zA-Z0-9]{1,})$/;
|
||||
for ( let _f_ of rawarray ) {
|
||||
let fn = _f_.path;
|
||||
if ( _re_name.test(fn) ) {
|
||||
let name = _re_name.exec(_f_.path)[1],
|
||||
path = _f_.path.slice(0, fn.length - name.length - 1);
|
||||
if ( utils.matchFileFormat( _f_.type ) ) {
|
||||
if (_re_name.test(_f_.path)) {
|
||||
const name = _re_name.exec(_f_.path)[1],
|
||||
dir = _f_.path.slice(0, _f_.path.length - name.length - 1);
|
||||
|
||||
_files_arr.push({
|
||||
fileid: _f_.id,
|
||||
type: _f_.type,
|
||||
format: utils.parseFileFormat(_f_.type),
|
||||
name: name,
|
||||
descr: path,
|
||||
date: _f_.modifyed,
|
||||
path: fn,
|
||||
});
|
||||
_files_arr.push({
|
||||
fileid: _f_.id,
|
||||
type: _f_.type,
|
||||
format: utils.parseFileFormat(_f_.type),
|
||||
title: name,
|
||||
url: _f_.path,
|
||||
folder: dir,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return _files_arr;
|
||||
}
|
||||
|
||||
const _onOpenRecent = function (menu, url, record) {
|
||||
console.log('open recent');
|
||||
}
|
||||
|
||||
return {
|
||||
init: function (opts) {
|
||||
_.extend(config, opts);
|
||||
@ -502,6 +506,7 @@ define([
|
||||
}
|
||||
},
|
||||
'settings:apply': _onApplySettings.bind(this),
|
||||
'recent:open': _onOpenRecent.bind(this),
|
||||
},
|
||||
}, {id: 'desktop'});
|
||||
|
||||
@ -586,4 +591,125 @@ define([
|
||||
|
||||
!Common.Controllers && (Common.Controllers = {});
|
||||
Common.Controllers.Desktop = new Desktop();
|
||||
|
||||
const FILE_DOCUMENT = 0x0040,
|
||||
FILE_PRESENTATION = 0x0080,
|
||||
FILE_SPREADSHEET = 0x0100,
|
||||
FILE_CROSSPLATFORM = 0x0200;
|
||||
|
||||
const utils = {};
|
||||
utils.defines = {}
|
||||
utils.defines.FileFormat = {
|
||||
FILE_UNKNOWN: 0x0000,
|
||||
|
||||
FILE_DOCUMENT: FILE_DOCUMENT,
|
||||
FILE_DOCUMENT_DOCX: FILE_DOCUMENT + 0x0001,
|
||||
FILE_DOCUMENT_DOC: FILE_DOCUMENT + 0x0002,
|
||||
FILE_DOCUMENT_ODT: FILE_DOCUMENT + 0x0003,
|
||||
FILE_DOCUMENT_RTF: FILE_DOCUMENT + 0x0004,
|
||||
FILE_DOCUMENT_TXT: FILE_DOCUMENT + 0x0005,
|
||||
FILE_DOCUMENT_HTML: FILE_DOCUMENT + 0x0006,
|
||||
FILE_DOCUMENT_MHT: FILE_DOCUMENT + 0x0007,
|
||||
FILE_DOCUMENT_EPUB: FILE_DOCUMENT + 0x0008,
|
||||
FILE_DOCUMENT_FB2: FILE_DOCUMENT + 0x0009,
|
||||
FILE_DOCUMENT_MOBI: FILE_DOCUMENT + 0x000a,
|
||||
FILE_DOCUMENT_DOCM: FILE_DOCUMENT + 0x000b,
|
||||
FILE_DOCUMENT_DOTX: FILE_DOCUMENT + 0x000c,
|
||||
FILE_DOCUMENT_DOTM: FILE_DOCUMENT + 0x000d,
|
||||
FILE_DOCUMENT_ODT_FLAT: FILE_DOCUMENT + 0x000e,
|
||||
FILE_DOCUMENT_OTT: FILE_DOCUMENT + 0x000f,
|
||||
FILE_DOCUMENT_DOC_FLAT: FILE_DOCUMENT + 0x0010,
|
||||
FILE_DOCUMENT_OFORM: FILE_DOCUMENT + 0x0015,
|
||||
FILE_DOCUMENT_DOCXF: FILE_DOCUMENT + 0x0016,
|
||||
|
||||
FILE_PRESENTATION: FILE_PRESENTATION,
|
||||
FILE_PRESENTATION_PPTX: FILE_PRESENTATION + 0x0001,
|
||||
FILE_PRESENTATION_PPT: FILE_PRESENTATION + 0x0002,
|
||||
FILE_PRESENTATION_ODP: FILE_PRESENTATION + 0x0003,
|
||||
FILE_PRESENTATION_PPSX: FILE_PRESENTATION + 0x0004,
|
||||
FILE_PRESENTATION_PPTM: FILE_PRESENTATION + 0x0005,
|
||||
FILE_PRESENTATION_PPSM: FILE_PRESENTATION + 0x0006,
|
||||
FILE_PRESENTATION_POTX: FILE_PRESENTATION + 0x0007,
|
||||
FILE_PRESENTATION_POTM: FILE_PRESENTATION + 0x0008,
|
||||
FILE_PRESENTATION_ODP_FLAT: FILE_PRESENTATION + 0x0009,
|
||||
FILE_PRESENTATION_OTP: FILE_PRESENTATION + 0x000a,
|
||||
|
||||
FILE_SPREADSHEET: FILE_SPREADSHEET,
|
||||
FILE_SPREADSHEET_XLSX: FILE_SPREADSHEET + 0x0001,
|
||||
FILE_SPREADSHEET_XLS: FILE_SPREADSHEET + 0x0002,
|
||||
FILE_SPREADSHEET_ODS: FILE_SPREADSHEET + 0x0003,
|
||||
FILE_SPREADSHEET_CSV: FILE_SPREADSHEET + 0x0004,
|
||||
FILE_SPREADSHEET_XLSM: FILE_SPREADSHEET + 0x0005,
|
||||
FILE_SPREADSHEET_XLTX: FILE_SPREADSHEET + 0x0006,
|
||||
FILE_SPREADSHEET_XLTM: FILE_SPREADSHEET + 0x0007,
|
||||
FILE_SPREADSHEET_ODS_FLAT: FILE_SPREADSHEET + 0x0008,
|
||||
FILE_SPREADSHEET_OTS: FILE_SPREADSHEET + 0x0009,
|
||||
|
||||
FILE_CROSSPLATFORM: FILE_CROSSPLATFORM,
|
||||
FILE_CROSSPLATFORM_PDF: FILE_CROSSPLATFORM + 0x0001,
|
||||
FILE_CROSSPLATFORM_SWF: FILE_CROSSPLATFORM + 0x0002,
|
||||
FILE_CROSSPLATFORM_DJVU: FILE_CROSSPLATFORM + 0x0003,
|
||||
FILE_CROSSPLATFORM_XPS: FILE_CROSSPLATFORM + 0x0004,
|
||||
FILE_CROSSPLATFORM_PDFA: FILE_CROSSPLATFORM + 0x0009
|
||||
};
|
||||
|
||||
utils.parseFileFormat = function(format) {
|
||||
switch (format) {
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_DOC: return 'doc';
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_DOCX: return 'docx';
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_ODT: return 'odt';
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_RTF: return 'rtf';
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_TXT: return 'txt';
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_HTML: return 'htm';
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_MHT: return 'mht';
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_EPUB: return 'epub';
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_FB2: return 'fb2';
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_DOTX: return 'dotx';
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_OTT: return 'ott';
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_OFORM: return 'oform';
|
||||
case utils.defines.FileFormat.FILE_DOCUMENT_DOCXF: return 'docxf';
|
||||
|
||||
case utils.defines.FileFormat.FILE_SPREADSHEET_XLS: return 'xls';
|
||||
case utils.defines.FileFormat.FILE_SPREADSHEET_XLTX: return 'xltx';
|
||||
case utils.defines.FileFormat.FILE_SPREADSHEET_XLSX: return 'xlsx';
|
||||
case utils.defines.FileFormat.FILE_SPREADSHEET_ODS: return 'ods';
|
||||
case utils.defines.FileFormat.FILE_SPREADSHEET_CSV: return 'csv';
|
||||
case utils.defines.FileFormat.FILE_SPREADSHEET_OTS: return 'ots';
|
||||
|
||||
case utils.defines.FileFormat.FILE_PRESENTATION_PPT: return 'ppt';
|
||||
case utils.defines.FileFormat.FILE_PRESENTATION_POTX: return 'potx';
|
||||
case utils.defines.FileFormat.FILE_PRESENTATION_PPTX: return 'pptx';
|
||||
case utils.defines.FileFormat.FILE_PRESENTATION_ODP: return 'odp';
|
||||
case utils.defines.FileFormat.FILE_PRESENTATION_PPSX: return 'ppsx';
|
||||
case utils.defines.FileFormat.FILE_PRESENTATION_OTP: return 'otp';
|
||||
|
||||
case utils.defines.FileFormat.FILE_CROSSPLATFORM_PDFA:
|
||||
case utils.defines.FileFormat.FILE_CROSSPLATFORM_PDF: return 'pdf';
|
||||
case utils.defines.FileFormat.FILE_CROSSPLATFORM_DJVU: return 'djvu';
|
||||
case utils.defines.FileFormat.FILE_CROSSPLATFORM_XPS: return 'xps';
|
||||
}
|
||||
|
||||
return '';
|
||||
};
|
||||
|
||||
utils.matchFileFormat = function (t) {
|
||||
if ( window.PE ) {
|
||||
return t > utils.defines.FileFormat.FILE_PRESENTATION &&
|
||||
!(t > utils.defines.FileFormat.FILE_SPREADSHEET );
|
||||
} else
|
||||
if ( window.DE ) {
|
||||
return (t > utils.defines.FileFormat.FILE_DOCUMENT &&
|
||||
!(t > utils.defines.FileFormat.FILE_PRESENTATION)) ||
|
||||
t == utils.defines.FileFormat.FILE_CROSSPLATFORM_PDF ||
|
||||
t == utils.defines.FileFormat.FILE_CROSSPLATFORM_PDFA ||
|
||||
t == utils.defines.FileFormat.FILE_CROSSPLATFORM_DJVU;
|
||||
} else
|
||||
if ( window.SSE ) {
|
||||
return (t > utils.defines.FileFormat.FILE_SPREADSHEET &&
|
||||
!(t > utils.defines.FileFormat.FILE_CROSSPLATFORM)) ||
|
||||
t == utils.defines.FileFormat.FILE_CROSSPLATFORM_XPS;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user