|
|
@ -1,5 +1,4 @@
|
|
|
|
import { app } from "../ApplicationServices/Application";
|
|
|
|
import { app } from "../ApplicationServices/Application";
|
|
|
|
import { appCache } from "../Common/AppCache";
|
|
|
|
|
|
|
|
import { FileUrls } from "../Common/HostUrl";
|
|
|
|
import { FileUrls } from "../Common/HostUrl";
|
|
|
|
import { DirectoryId, PostJson, RequestStatus } from "../Common/Request";
|
|
|
|
import { DirectoryId, PostJson, RequestStatus } from "../Common/Request";
|
|
|
|
import { inflate } from "../Common/SerializeMaterial";
|
|
|
|
import { inflate } from "../Common/SerializeMaterial";
|
|
|
@ -11,6 +10,8 @@ import { AppConfirm } from "../UI/Components/Common/Confirm";
|
|
|
|
import { TempEditor } from "../Editor/TempEditor";
|
|
|
|
import { TempEditor } from "../Editor/TempEditor";
|
|
|
|
import { AppToaster } from "../UI/Components/Toaster";
|
|
|
|
import { AppToaster } from "../UI/Components/Toaster";
|
|
|
|
import { Intent } from "@blueprintjs/core";
|
|
|
|
import { Intent } from "@blueprintjs/core";
|
|
|
|
|
|
|
|
import { IndexedDbStore, StoreName } from "../IndexedDb/IndexedDbStore";
|
|
|
|
|
|
|
|
import { GetIndexDBID } from "../Common/Utils";
|
|
|
|
|
|
|
|
|
|
|
|
export interface IFileInfo
|
|
|
|
export interface IFileInfo
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -118,9 +119,14 @@ export class FileServer extends Singleton
|
|
|
|
}
|
|
|
|
}
|
|
|
|
async GetFileInfo(fid: string, md5: string): Promise<{ name: string; file?: string; code: string; }>
|
|
|
|
async GetFileInfo(fid: string, md5: string): Promise<{ name: string; file?: string; code: string; }>
|
|
|
|
{
|
|
|
|
{
|
|
|
|
let key = `f${fid}-${md5}`;
|
|
|
|
let store = await IndexedDbStore.CADStore();
|
|
|
|
if (md5 && appCache.has(key))
|
|
|
|
|
|
|
|
return appCache.get(key);
|
|
|
|
let fileCache = await store.Get(StoreName.Dwg, GetIndexDBID(fid));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (fileCache?.code === md5)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return fileCache;
|
|
|
|
|
|
|
|
}
|
|
|
|
else
|
|
|
|
else
|
|
|
|
{
|
|
|
|
{
|
|
|
|
let data = await PostJson(FileUrls.detail, { file_id: fid });
|
|
|
|
let data = await PostJson(FileUrls.detail, { file_id: fid });
|
|
|
@ -131,12 +137,17 @@ export class FileServer extends Singleton
|
|
|
|
file: inflate(data.files.file),
|
|
|
|
file: inflate(data.files.file),
|
|
|
|
code: data.files.code
|
|
|
|
code: data.files.code
|
|
|
|
};
|
|
|
|
};
|
|
|
|
appCache.set(`f${fid}-${data.files.code}`, f);
|
|
|
|
await this.CacheFileInfo(fid, f);
|
|
|
|
return f;
|
|
|
|
return f;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async CacheFileInfo(fid: string, info: IFileInfo)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
let dbStore = await IndexedDbStore.CADStore();
|
|
|
|
|
|
|
|
await dbStore.Put(StoreName.Dwg, GetIndexDBID(fid), info);
|
|
|
|
|
|
|
|
}
|
|
|
|
async UploadFile(fileInfo: IFileInfo)
|
|
|
|
async UploadFile(fileInfo: IFileInfo)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
let info: IFileInfo = {
|
|
|
|
let info: IFileInfo = {
|
|
|
@ -151,14 +162,12 @@ export class FileServer extends Singleton
|
|
|
|
let data = await PostJson(FileUrls.create, info);
|
|
|
|
let data = await PostJson(FileUrls.create, info);
|
|
|
|
if (data.err_code === RequestStatus.Ok)
|
|
|
|
if (data.err_code === RequestStatus.Ok)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
let finfo: any = {};
|
|
|
|
let finfo: IFileInfo = {
|
|
|
|
if (info.file)
|
|
|
|
file: inflate(info.file),
|
|
|
|
finfo.file = inflate(info.file);
|
|
|
|
name: info.name,
|
|
|
|
|
|
|
|
code: data.files.code
|
|
|
|
if (info.name)
|
|
|
|
};
|
|
|
|
finfo.name = info.name;
|
|
|
|
await this.CacheFileInfo(data.files.file_id, finfo);
|
|
|
|
|
|
|
|
|
|
|
|
appCache.set(`f${data.files.file_id}-${data.files.code}`, finfo);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return data;
|
|
|
|
return data;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -169,13 +178,13 @@ export class FileServer extends Singleton
|
|
|
|
let data = await PostJson(FileUrls.update, fileInfo);
|
|
|
|
let data = await PostJson(FileUrls.update, fileInfo);
|
|
|
|
if (data.err_code === RequestStatus.Ok)
|
|
|
|
if (data.err_code === RequestStatus.Ok)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
let key = `f${data.files.file_id}-${data.files.code}`;
|
|
|
|
let finfo: IFileInfo = {
|
|
|
|
let finfo: IFileInfo = {};
|
|
|
|
file: inflate(fileInfo.file),
|
|
|
|
if (fileInfo.file)
|
|
|
|
name: data.files.name,
|
|
|
|
finfo.file = inflate(fileInfo.file);
|
|
|
|
code: data.files.code
|
|
|
|
if (fileInfo.name)
|
|
|
|
};
|
|
|
|
finfo.name = fileInfo.name;
|
|
|
|
|
|
|
|
appCache.set(key, finfo);
|
|
|
|
await this.CacheFileInfo(data.files.file_id, finfo);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return data;
|
|
|
|
return data;
|
|
|
|
}
|
|
|
|
}
|
|
|
|