work addition started
This commit is contained in:
parent
bd0ff30f2a
commit
32923dee59
34
graph.js
34
graph.js
@ -82,14 +82,12 @@ function Builder({user, role, part, desk, pass}, folderHandle, folderName)
|
|||||||
|
|
||||||
// Apply passes
|
// Apply passes
|
||||||
/** @type {Record<string, TYPES.Pass>} */
|
/** @type {Record<string, TYPES.Pass>} */
|
||||||
const PassList = {};
|
const PassList = pass;
|
||||||
|
|
||||||
for(let passID in pass)
|
for(let passID in pass)
|
||||||
{
|
{
|
||||||
const [passName] = pass[passID];
|
|
||||||
/** @type {TYPES.Pass} */
|
/** @type {TYPES.Pass} */
|
||||||
PassList[passID] = {
|
const passObj = {
|
||||||
name: passName,
|
name: pass[passID][0],
|
||||||
path:passID,
|
path:passID,
|
||||||
async load(){
|
async load(){
|
||||||
|
|
||||||
@ -118,11 +116,19 @@ function Builder({user, role, part, desk, pass}, folderHandle, folderName)
|
|||||||
condensedWork.push(userObject);
|
condensedWork.push(userObject);
|
||||||
});
|
});
|
||||||
|
|
||||||
let passCheck = PartList[partID].pass.get(this);
|
const partObj = PartList[partID]
|
||||||
|
|
||||||
|
let passCheck = partObj.pass.get(this);
|
||||||
if(!passCheck)
|
if(!passCheck)
|
||||||
{
|
{
|
||||||
passCheck = {time:0, work:[]}
|
passCheck = {time:0, work:[], make(user, data)
|
||||||
PartList[partID].pass.set(this, passCheck);
|
{
|
||||||
|
this.time = Date.now();
|
||||||
|
this.work.push(/** @type {TYPES.Work}*/([user, data, this.time]));
|
||||||
|
partObj.make.forEach((arg)=>{Scan(arg, passObj)});
|
||||||
|
partObj.need.forEach((arg)=>{Scan(arg, passObj)});
|
||||||
|
}}
|
||||||
|
partObj.pass.set(this, passCheck);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(latest > passCheck.time)
|
if(latest > passCheck.time)
|
||||||
@ -130,7 +136,7 @@ function Builder({user, role, part, desk, pass}, folderHandle, folderName)
|
|||||||
passCheck.time = latest;
|
passCheck.time = latest;
|
||||||
}
|
}
|
||||||
|
|
||||||
passCheck.work = /** @type {TYPES.Work[]}*/(payload)
|
passCheck.work = /** @type {TYPES.Work[]}*/(payload);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
catch (e)
|
catch (e)
|
||||||
@ -140,26 +146,26 @@ function Builder({user, role, part, desk, pass}, folderHandle, folderName)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const selfPass = this;
|
|
||||||
Object.entries(DeskList).forEach(([deskID, deskObj])=>{
|
Object.entries(DeskList).forEach(([deskID, deskObj])=>{
|
||||||
Scan(deskObj, selfPass);
|
Scan(deskObj, passObj);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.live = true;
|
this.live = true;
|
||||||
},
|
},
|
||||||
dump(){
|
dump(){
|
||||||
const selfPass = this;
|
|
||||||
Object.entries(PartList).forEach(([partID, partObj])=>{
|
Object.entries(PartList).forEach(([partID, partObj])=>{
|
||||||
partObj.pass.delete(selfPass);
|
partObj.pass.delete(passObj);
|
||||||
});
|
});
|
||||||
Object.entries(DeskList).forEach(([deskID, deskObj])=>{
|
Object.entries(DeskList).forEach(([deskID, deskObj])=>{
|
||||||
deskObj.pass.delete(selfPass);
|
deskObj.pass.delete(passObj);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.live = false;
|
this.live = false;
|
||||||
},
|
},
|
||||||
live:false
|
live:false
|
||||||
};
|
};
|
||||||
|
|
||||||
|
PassList[passID] = passObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
4
types.ts
4
types.ts
@ -2,8 +2,8 @@ export type User = {name:string, desk:Set<Desk>};
|
|||||||
export type Role = {name:string, user:User[]};
|
export type Role = {name:string, user:User[]};
|
||||||
export type Desk = {name:string, need:Part[], time:number[], make:Part[], pass:Map<Pass, [dirtyNeed:number[], dirtyMake:number[]]>, mode:string, role:Role[]};
|
export type Desk = {name:string, need:Part[], time:number[], make:Part[], pass:Map<Pass, [dirtyNeed:number[], dirtyMake:number[]]>, mode:string, role:Role[]};
|
||||||
export type Work = [user:User, time:number, data:string];
|
export type Work = [user:User, time:number, data:string];
|
||||||
export type Pass = {name:string, path:string, live:boolean, load:()=Promise<void>, dump:()=>void};
|
export type Pass = {name:string, path:string, live:boolean, load:()=>Promise<void>, dump:()=>void};
|
||||||
export type Part = {name:string, pass:Map<Pass, {time:number, work:Work[]}>, need:Desk[], make:Desk[]};
|
export type Part = {name:string, pass:Map<Pass, {time:number, work:Work[], make:(user:User, time:number, data:string)=>void}>, need:Desk[], make:Desk[]};
|
||||||
|
|
||||||
export type GraphBuilder=
|
export type GraphBuilder=
|
||||||
<
|
<
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user