Refactor Folder interface to use Folder namespace
This commit is contained in:
+91
-33
@@ -1,37 +1,95 @@
|
||||
export interface Folder {
|
||||
import { Device } from './device';
|
||||
|
||||
interface Folder {
|
||||
id: string;
|
||||
label: string;
|
||||
status: FolderStatus;
|
||||
devices: Device[];
|
||||
status: Folder.Status;
|
||||
paused: boolean;
|
||||
}
|
||||
|
||||
export interface FolderStatus {
|
||||
globalBytes: number;
|
||||
globalDeleted: number;
|
||||
globalDirectories: number;
|
||||
globalFiles: number;
|
||||
globalSymlinks: number;
|
||||
ignorePatterns: boolean;
|
||||
inSyncBytes: number;
|
||||
inSyncFiles: number;
|
||||
invalid: string;
|
||||
localBytes: number;
|
||||
localDeleted: number;
|
||||
localDirectories: number;
|
||||
localFiles: number;
|
||||
localSymlinks: number;
|
||||
needBytes: number;
|
||||
needDeletes: number;
|
||||
needDirectories: number;
|
||||
needFiles: number;
|
||||
needSymlinks: number;
|
||||
pullErrors: number;
|
||||
receiveOnlyChangedBytes: number;
|
||||
receiveOnlyChangedDeletes: number;
|
||||
receiveOnlyChangedDirectories: number;
|
||||
receiveOnlyChangedFiles: number;
|
||||
receiveOnlyChangedSymlinks: number;
|
||||
sequence: number;
|
||||
state: string;
|
||||
stateChanged: string;
|
||||
version: number;
|
||||
}
|
||||
namespace Folder {
|
||||
export enum stateType {
|
||||
}
|
||||
|
||||
export function statusToString(f: Folder): string {
|
||||
const fs: Folder.Status = f.status;
|
||||
const state: string = fs.state;
|
||||
|
||||
if (f.paused) {
|
||||
return 'paused';
|
||||
}
|
||||
|
||||
if (!f.status || (Object.keys(f.status).length === 0)) {
|
||||
return 'unknown';
|
||||
}
|
||||
|
||||
if (state === 'error') {
|
||||
return 'stopped'; // legacy, the state is called "stopped" in the GUI
|
||||
}
|
||||
|
||||
if (state !== 'idle') {
|
||||
return state;
|
||||
}
|
||||
|
||||
const needTotalItems = fs.needDeletes + fs.needDirectories +
|
||||
fs.needFiles + fs.needSymlinks;
|
||||
const receiveOnlyTotalItems = fs.receiveOnlyChangedDeletes + fs.receiveOnlyChangedDirectories +
|
||||
fs.receiveOnlyChangedFiles + fs.receiveOnlyChangedSymlinks;
|
||||
|
||||
if (needTotalItems > 0) {
|
||||
return 'outofsync';
|
||||
}
|
||||
if (f.status.pullErrors > 0) {
|
||||
return 'faileditems';
|
||||
}
|
||||
if (receiveOnlyTotalItems > 0) {
|
||||
return 'localadditions';
|
||||
}
|
||||
if (f.devices.length <= 1) {
|
||||
return 'unshared';
|
||||
}
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
export interface Status {
|
||||
globalBytes: number;
|
||||
globalDeleted: number;
|
||||
globalDirectories: number;
|
||||
globalFiles: number;
|
||||
globalSymlinks: number;
|
||||
ignorePatterns: boolean;
|
||||
inSyncBytes: number;
|
||||
inSyncFiles: number;
|
||||
invalid: string;
|
||||
localBytes: number;
|
||||
localDeleted: number;
|
||||
localDirectories: number;
|
||||
localFiles: number;
|
||||
localSymlinks: number;
|
||||
needBytes: number;
|
||||
needDeletes: number;
|
||||
needDirectories: number;
|
||||
needFiles: number;
|
||||
needSymlinks: number;
|
||||
pullErrors: number;
|
||||
receiveOnlyChangedBytes: number;
|
||||
receiveOnlyChangedDeletes: number;
|
||||
receiveOnlyChangedDirectories: number;
|
||||
receiveOnlyChangedFiles: number;
|
||||
receiveOnlyChangedSymlinks: number;
|
||||
sequence: number;
|
||||
state: string;
|
||||
stateChanged: string;
|
||||
version: number;
|
||||
}
|
||||
}
|
||||
|
||||
export default Folder;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user