@steedos-labs/content-compliance 0.7.14 → 0.7.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/lib/actions/index.d.ts +1 -0
- package/lib/actions/index.js +1 -0
- package/lib/actions/index.js.map +1 -1
- package/lib/actions/initCollaborator.d.ts +13 -0
- package/lib/actions/initCollaborator.js +87 -0
- package/lib/actions/initCollaborator.js.map +1 -0
- package/lib/actions/initUrgentQuota.js +2 -2
- package/lib/actions/initUrgentQuota.js.map +1 -1
- package/lib/methods/__tests__/postponeReview.test.js +63 -0
- package/lib/methods/__tests__/postponeReview.test.js.map +1 -1
- package/lib/methods/approval_engine.js +18 -76
- package/lib/methods/approval_engine.js.map +1 -1
- package/lib/methods/urgent.js.map +1 -1
- package/main/default/objects/pepsico_material_approval/buttons/pepsico_postpone_review.button.yml +1 -1
- package/main/default/objects/pepsico_material_approval/buttons/pepsico_urgent_review.button.yml +1 -1
- package/main/default/objects/space_users/fields/is_collaborator.field.yml +10 -0
- package/main/default/objects/space_users/listviews/all_users.listview.yml +2 -0
- package/main/default/triggers/pepsico_material_approval_init.trigger.yml +8 -4
- package/package.json +1 -1
package/lib/actions/index.d.ts
CHANGED
package/lib/actions/index.js
CHANGED
|
@@ -27,4 +27,5 @@ tslib_1.__exportStar(require("./fixStuckPersonnelReview"), exports);
|
|
|
27
27
|
tslib_1.__exportStar(require("./postponeReview"), exports);
|
|
28
28
|
tslib_1.__exportStar(require("./urgentApproval"), exports);
|
|
29
29
|
tslib_1.__exportStar(require("./initUrgentQuota"), exports);
|
|
30
|
+
tslib_1.__exportStar(require("./initCollaborator"), exports);
|
|
30
31
|
//# sourceMappingURL=index.js.map
|
package/lib/actions/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":";;;AAOA,mDAAyB;AAEzB,sDAA4B;AAE5B,6DAAmC;AAEnC,2DAAiC;AAEjC,8DAAoC;AAEpC,+DAAqC;AAErC,uDAA6B;AAE7B,4DAAkC;AAElC,oEAA0C;AAE1C,iDAAuB;AAEvB,kEAAwC;AAExC,qDAA2B;AAE3B,uDAA6B;AAE7B,gEAAsC;AAEtC,6DAAmC;AAEnC,8DAAoC;AAEpC,iEAAuC;AACvC,2DAAiC;AAEjC,2DAAiC;AAEjC,4DAAkC;AAElC,uEAA6C;AAE7C,wEAA8C;AAE9C,oEAA0C;AAE1C,2DAAiC;AAEjC,2DAAiC;AAEjC,4DAAkC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":";;;AAOA,mDAAyB;AAEzB,sDAA4B;AAE5B,6DAAmC;AAEnC,2DAAiC;AAEjC,8DAAoC;AAEpC,+DAAqC;AAErC,uDAA6B;AAE7B,4DAAkC;AAElC,oEAA0C;AAE1C,iDAAuB;AAEvB,kEAAwC;AAExC,qDAA2B;AAE3B,uDAA6B;AAE7B,gEAAsC;AAEtC,6DAAmC;AAEnC,8DAAoC;AAEpC,iEAAuC;AACvC,2DAAiC;AAEjC,2DAAiC;AAEjC,4DAAkC;AAElC,uEAA6C;AAE7C,wEAA8C;AAE9C,oEAA0C;AAE1C,2DAAiC;AAEjC,2DAAiC;AAEjC,4DAAkC;AAElC,6DAAmC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.initCollaborator = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var isPepsicoEmail = function (email) {
|
|
6
|
+
return typeof email === 'string' && email.toLowerCase().endsWith('@pepsico.com');
|
|
7
|
+
};
|
|
8
|
+
exports.initCollaborator = {
|
|
9
|
+
rest: {
|
|
10
|
+
method: 'GET',
|
|
11
|
+
fullPath: '/api/pepsico-content/space-users/init-collaborator'
|
|
12
|
+
},
|
|
13
|
+
handler: function (ctx) {
|
|
14
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
15
|
+
var user, space, spaceUsers, updated, collaborators, internalUsers, spaceUsers_1, spaceUsers_1_1, spaceUser, isCollaborator, e_1_1;
|
|
16
|
+
var e_1, _a;
|
|
17
|
+
return tslib_1.__generator(this, function (_b) {
|
|
18
|
+
switch (_b.label) {
|
|
19
|
+
case 0:
|
|
20
|
+
ctx.getObject = this.getObject;
|
|
21
|
+
user = ctx.meta.user;
|
|
22
|
+
space = user === null || user === void 0 ? void 0 : user.spaceId;
|
|
23
|
+
if (!user || !user.is_space_admin) {
|
|
24
|
+
throw new Error('无权限!');
|
|
25
|
+
}
|
|
26
|
+
if (!space) {
|
|
27
|
+
throw new Error('无法获取当前工作区');
|
|
28
|
+
}
|
|
29
|
+
return [4, ctx.getObject('space_users').directFind({
|
|
30
|
+
filters: [['space', '=', space]],
|
|
31
|
+
fields: ['_id', 'email', 'is_collaborator']
|
|
32
|
+
})];
|
|
33
|
+
case 1:
|
|
34
|
+
spaceUsers = _b.sent();
|
|
35
|
+
updated = 0;
|
|
36
|
+
collaborators = 0;
|
|
37
|
+
internalUsers = 0;
|
|
38
|
+
_b.label = 2;
|
|
39
|
+
case 2:
|
|
40
|
+
_b.trys.push([2, 7, 8, 9]);
|
|
41
|
+
spaceUsers_1 = tslib_1.__values(spaceUsers), spaceUsers_1_1 = spaceUsers_1.next();
|
|
42
|
+
_b.label = 3;
|
|
43
|
+
case 3:
|
|
44
|
+
if (!!spaceUsers_1_1.done) return [3, 6];
|
|
45
|
+
spaceUser = spaceUsers_1_1.value;
|
|
46
|
+
isCollaborator = !isPepsicoEmail(spaceUser.email);
|
|
47
|
+
if (isCollaborator) {
|
|
48
|
+
collaborators++;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
internalUsers++;
|
|
52
|
+
}
|
|
53
|
+
if (!(spaceUser.is_collaborator !== isCollaborator)) return [3, 5];
|
|
54
|
+
return [4, ctx.getObject('space_users').directUpdate(spaceUser._id, {
|
|
55
|
+
is_collaborator: isCollaborator
|
|
56
|
+
})];
|
|
57
|
+
case 4:
|
|
58
|
+
_b.sent();
|
|
59
|
+
updated++;
|
|
60
|
+
_b.label = 5;
|
|
61
|
+
case 5:
|
|
62
|
+
spaceUsers_1_1 = spaceUsers_1.next();
|
|
63
|
+
return [3, 3];
|
|
64
|
+
case 6: return [3, 9];
|
|
65
|
+
case 7:
|
|
66
|
+
e_1_1 = _b.sent();
|
|
67
|
+
e_1 = { error: e_1_1 };
|
|
68
|
+
return [3, 9];
|
|
69
|
+
case 8:
|
|
70
|
+
try {
|
|
71
|
+
if (spaceUsers_1_1 && !spaceUsers_1_1.done && (_a = spaceUsers_1.return)) _a.call(spaceUsers_1);
|
|
72
|
+
}
|
|
73
|
+
finally { if (e_1) throw e_1.error; }
|
|
74
|
+
return [7];
|
|
75
|
+
case 9: return [2, {
|
|
76
|
+
message: "\u521D\u59CB\u5316\u5B8C\u6210\uFF1A\u66F4\u65B0 ".concat(updated, " \u4E2A\u7528\u6237"),
|
|
77
|
+
total: spaceUsers.length,
|
|
78
|
+
updated: updated,
|
|
79
|
+
collaborators: collaborators,
|
|
80
|
+
internalUsers: internalUsers
|
|
81
|
+
}];
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=initCollaborator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initCollaborator.js","sourceRoot":"","sources":["../../src/actions/initCollaborator.ts"],"names":[],"mappings":";;;;AAIA,IAAM,cAAc,GAAG,UAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AACrF,CAAC,CAAC;AAGW,QAAA,gBAAgB,GAAG;IAC5B,IAAI,EAAE;QACF,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,oDAAoD;KACjE;IACK,OAAO,YAAC,GAAG;;;;;;;wBACb,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wBACzB,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;wBACrB,KAAK,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC;wBAE5B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;4BAC/B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;yBAC3B;wBAED,IAAI,CAAC,KAAK,EAAE;4BACR,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;yBAChC;wBAEkB,WAAM,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC;gCAC7D,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gCAChC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC;6BAC9C,CAAC,EAAA;;wBAHI,UAAU,GAAG,SAGjB;wBAEE,OAAO,GAAG,CAAC,CAAC;wBACZ,aAAa,GAAG,CAAC,CAAC;wBAClB,aAAa,GAAG,CAAC,CAAC;;;;wBAEE,eAAA,iBAAA,UAAU,CAAA;;;;wBAAvB,SAAS;wBACV,cAAc,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBAExD,IAAI,cAAc,EAAE;4BAChB,aAAa,EAAE,CAAC;yBACnB;6BAAM;4BACH,aAAa,EAAE,CAAC;yBACnB;6BAEG,CAAA,SAAS,CAAC,eAAe,KAAK,cAAc,CAAA,EAA5C,cAA4C;wBAC5C,WAAM,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE;gCAC3D,eAAe,EAAE,cAAc;6BAClC,CAAC,EAAA;;wBAFF,SAEE,CAAC;wBACH,OAAO,EAAE,CAAC;;;;;;;;;;;;;;;;4BAIlB,WAAO;4BACH,OAAO,EAAE,2DAAY,OAAO,wBAAM;4BAClC,KAAK,EAAE,UAAU,CAAC,MAAM;4BACxB,OAAO,SAAA;4BACP,aAAa,eAAA;4BACb,aAAa,eAAA;yBAChB,EAAC;;;;KACL;CACJ,CAAC"}
|
|
@@ -27,14 +27,14 @@ exports.initUrgentQuota = {
|
|
|
27
27
|
h1 = typeof h1_used === 'number' ? h1_used : 0;
|
|
28
28
|
h2 = typeof h2_used === 'number' ? h2_used : 0;
|
|
29
29
|
return [4, ctx.getObject('space_users').directFind({
|
|
30
|
-
filters: [['space', '=', space], ['user_accepted', '=', true], ['
|
|
30
|
+
filters: [['space', '=', space], ['user_accepted', '=', true], ['is_collaborator', '!=', true]],
|
|
31
31
|
fields: ['user']
|
|
32
32
|
})];
|
|
33
33
|
case 1:
|
|
34
34
|
spaceUsers = _c.sent();
|
|
35
35
|
ownerIds = tslib_1.__spreadArray([], tslib_1.__read(new Set(spaceUsers.map(function (u) { return u.user; }).filter(Boolean))), false);
|
|
36
36
|
if (ownerIds.length === 0) {
|
|
37
|
-
return [2, { message: '
|
|
37
|
+
return [2, { message: '未找到任何内部用户', created: 0, updated: 0 }];
|
|
38
38
|
}
|
|
39
39
|
created = 0;
|
|
40
40
|
updated = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initUrgentQuota.js","sourceRoot":"","sources":["../../src/actions/initUrgentQuota.ts"],"names":[],"mappings":";;;;AAKa,QAAA,eAAe,GAAG;IAC3B,IAAI,EAAE;QACF,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,wCAAwC;KACrD;IACK,OAAO,YAAC,GAAG;;;;;;;wBACb,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;wBACzB,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;wBACrB,KAAK,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC;wBAE5B,IAAI,CAAC,KAAK,EAAE;4BACR,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;yBAChC;wBAEK,KAA6B,GAAG,CAAC,MAAM,EAArC,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,OAAO,aAAA,CAAgB;wBAE9C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;4BACnC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;yBAC/B;wBAEK,EAAE,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC/C,EAAE,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;wBAGlC,WAAM,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC;gCAC7D,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"initUrgentQuota.js","sourceRoot":"","sources":["../../src/actions/initUrgentQuota.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,4 +36,67 @@ describe('postpone review department resolution', function () {
|
|
|
36
36
|
expect(departmentType).toBe(consts_1.ProcessApprovalType.CA);
|
|
37
37
|
});
|
|
38
38
|
});
|
|
39
|
+
describe('postponeReview', function () {
|
|
40
|
+
it('marks the next review round without immediate activation during an active rejected review step', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
41
|
+
var directUpdateApproval, insertPostpone, directFindApprovalProcess, record, ctx;
|
|
42
|
+
return tslib_1.__generator(this, function (_a) {
|
|
43
|
+
switch (_a.label) {
|
|
44
|
+
case 0:
|
|
45
|
+
directUpdateApproval = jest.fn();
|
|
46
|
+
insertPostpone = jest.fn();
|
|
47
|
+
directFindApprovalProcess = jest.fn()
|
|
48
|
+
.mockResolvedValueOnce([])
|
|
49
|
+
.mockResolvedValueOnce([{ type: consts_1.ProcessApprovalType.CA }]);
|
|
50
|
+
record = tslib_1.__assign(tslib_1.__assign({}, baseApproval), { person_approved: ['reviewer-1'], person_pending_approve: [], postpone_marker_users: [], review_postponed_users: [] });
|
|
51
|
+
ctx = {
|
|
52
|
+
meta: {
|
|
53
|
+
user: {
|
|
54
|
+
userId: 'reviewer-1'
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
getObject: jest.fn(function (objectName) {
|
|
58
|
+
if (objectName === 'pepsico_material_approval') {
|
|
59
|
+
return {
|
|
60
|
+
findOne: jest.fn().mockResolvedValue(record),
|
|
61
|
+
directUpdate: directUpdateApproval
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
if (objectName === 'pepsico_approval_process') {
|
|
65
|
+
return {
|
|
66
|
+
directFind: directFindApprovalProcess
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
if (objectName === 'pepsico_review_postpone') {
|
|
70
|
+
return {
|
|
71
|
+
directFind: jest.fn().mockResolvedValue([]),
|
|
72
|
+
insert: insertPostpone
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
throw new Error("Unexpected object: ".concat(objectName));
|
|
76
|
+
})
|
|
77
|
+
};
|
|
78
|
+
return [4, (0, approval_engine_1.postponeReview)(ctx, 'approval-1', { postpone_reason: '本轮已驳回,下轮延后' })];
|
|
79
|
+
case 1:
|
|
80
|
+
_a.sent();
|
|
81
|
+
expect(insertPostpone).toHaveBeenCalledWith(expect.objectContaining({
|
|
82
|
+
pepsico_material_approval: 'approval-1',
|
|
83
|
+
department_type: consts_1.ProcessApprovalType.CA,
|
|
84
|
+
postpone_by: 'reviewer-1',
|
|
85
|
+
postpone_reason: '本轮已驳回,下轮延后',
|
|
86
|
+
is_marker: true,
|
|
87
|
+
notification_sent: false,
|
|
88
|
+
postponed_user_ids: 'reviewer-1'
|
|
89
|
+
}));
|
|
90
|
+
expect(insertPostpone.mock.calls[0][0]).not.toHaveProperty('visible_after');
|
|
91
|
+
expect(directUpdateApproval).toHaveBeenCalledWith('approval-1', {
|
|
92
|
+
postpone_marker_users: ['reviewer-1']
|
|
93
|
+
});
|
|
94
|
+
expect(directUpdateApproval).not.toHaveBeenCalledWith('approval-1', expect.objectContaining({
|
|
95
|
+
review_postponed_users: expect.any(Array)
|
|
96
|
+
}));
|
|
97
|
+
return [2];
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}); });
|
|
101
|
+
});
|
|
39
102
|
//# sourceMappingURL=postponeReview.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postponeReview.test.js","sourceRoot":"","sources":["../../../src/methods/__tests__/postponeReview.test.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"postponeReview.test.js","sourceRoot":"","sources":["../../../src/methods/__tests__/postponeReview.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2142,15 +2142,15 @@ var getPostponeReviewDepartmentType = function (record, userProcessRecords, user
|
|
|
2142
2142
|
exports.getPostponeReviewDepartmentType = getPostponeReviewDepartmentType;
|
|
2143
2143
|
var postponeReview = function (ctx, recordId, data) {
|
|
2144
2144
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
2145
|
-
var user, record, reviewSteps, progessRecords, userProcessRecords, departmentType, statusField, reviewerField, handlerField, deptUserIds, now, unactivatedMarkers, latestMarker, _a, _b, marker, e_13_1, currentMarkerUsers, newMarkerUsers
|
|
2146
|
-
var e_13, _c
|
|
2147
|
-
return tslib_1.__generator(this, function (
|
|
2148
|
-
switch (
|
|
2145
|
+
var user, record, reviewSteps, progessRecords, userProcessRecords, departmentType, statusField, reviewerField, handlerField, deptUserIds, now, unactivatedMarkers, latestMarker, _a, _b, marker, e_13_1, currentMarkerUsers, newMarkerUsers;
|
|
2146
|
+
var e_13, _c;
|
|
2147
|
+
return tslib_1.__generator(this, function (_d) {
|
|
2148
|
+
switch (_d.label) {
|
|
2149
2149
|
case 0:
|
|
2150
2150
|
user = ctx.meta.user;
|
|
2151
2151
|
return [4, ctx.getObject('pepsico_material_approval').findOne(recordId)];
|
|
2152
2152
|
case 1:
|
|
2153
|
-
record =
|
|
2153
|
+
record = _d.sent();
|
|
2154
2154
|
reviewSteps = [consts_1.Step.departmental_review, consts_1.Step.personnel_review];
|
|
2155
2155
|
if (!reviewSteps.includes(record.current_step) && record.current_step !== consts_1.Step.submitter_revisions) {
|
|
2156
2156
|
throw new Error('当前步骤不支持延后审核操作');
|
|
@@ -2170,7 +2170,7 @@ var postponeReview = function (ctx, recordId, data) {
|
|
|
2170
2170
|
]
|
|
2171
2171
|
})];
|
|
2172
2172
|
case 2:
|
|
2173
|
-
progessRecords =
|
|
2173
|
+
progessRecords = _d.sent();
|
|
2174
2174
|
if (progessRecords.length > 0) {
|
|
2175
2175
|
throw new Error('您还有待处理的审批任务,无法执行延后审核');
|
|
2176
2176
|
}
|
|
@@ -2183,7 +2183,7 @@ var postponeReview = function (ctx, recordId, data) {
|
|
|
2183
2183
|
sort: 'created desc',
|
|
2184
2184
|
})];
|
|
2185
2185
|
case 3:
|
|
2186
|
-
userProcessRecords =
|
|
2186
|
+
userProcessRecords = _d.sent();
|
|
2187
2187
|
if (!userProcessRecords || userProcessRecords.length === 0) {
|
|
2188
2188
|
throw new Error('未找到您的审核记录');
|
|
2189
2189
|
}
|
|
@@ -2218,7 +2218,7 @@ var postponeReview = function (ctx, recordId, data) {
|
|
|
2218
2218
|
sort: 'created desc'
|
|
2219
2219
|
})];
|
|
2220
2220
|
case 4:
|
|
2221
|
-
unactivatedMarkers =
|
|
2221
|
+
unactivatedMarkers = _d.sent();
|
|
2222
2222
|
if (!(unactivatedMarkers && unactivatedMarkers.length > 0)) return [3, 14];
|
|
2223
2223
|
latestMarker = unactivatedMarkers[0];
|
|
2224
2224
|
return [4, ctx.getObject('pepsico_review_postpone').directUpdate(latestMarker._id, {
|
|
@@ -2232,12 +2232,12 @@ var postponeReview = function (ctx, recordId, data) {
|
|
|
2232
2232
|
name: "".concat(departmentType, " \u5EF6\u540E\u5BA1\u6838\u6807\u8BB0 ").concat(now.toISOString())
|
|
2233
2233
|
})];
|
|
2234
2234
|
case 5:
|
|
2235
|
-
|
|
2236
|
-
|
|
2235
|
+
_d.sent();
|
|
2236
|
+
_d.label = 6;
|
|
2237
2237
|
case 6:
|
|
2238
|
-
|
|
2238
|
+
_d.trys.push([6, 11, 12, 13]);
|
|
2239
2239
|
_a = tslib_1.__values(unactivatedMarkers.slice(1)), _b = _a.next();
|
|
2240
|
-
|
|
2240
|
+
_d.label = 7;
|
|
2241
2241
|
case 7:
|
|
2242
2242
|
if (!!_b.done) return [3, 10];
|
|
2243
2243
|
marker = _b.value;
|
|
@@ -2248,14 +2248,14 @@ var postponeReview = function (ctx, recordId, data) {
|
|
|
2248
2248
|
modified_by: user.userId
|
|
2249
2249
|
})];
|
|
2250
2250
|
case 8:
|
|
2251
|
-
|
|
2252
|
-
|
|
2251
|
+
_d.sent();
|
|
2252
|
+
_d.label = 9;
|
|
2253
2253
|
case 9:
|
|
2254
2254
|
_b = _a.next();
|
|
2255
2255
|
return [3, 7];
|
|
2256
2256
|
case 10: return [3, 13];
|
|
2257
2257
|
case 11:
|
|
2258
|
-
e_13_1 =
|
|
2258
|
+
e_13_1 = _d.sent();
|
|
2259
2259
|
e_13 = { error: e_13_1 };
|
|
2260
2260
|
return [3, 13];
|
|
2261
2261
|
case 12:
|
|
@@ -2282,75 +2282,17 @@ var postponeReview = function (ctx, recordId, data) {
|
|
|
2282
2282
|
name: "".concat(departmentType, " \u5EF6\u540E\u5BA1\u6838\u6807\u8BB0 ").concat(now.toISOString())
|
|
2283
2283
|
})];
|
|
2284
2284
|
case 15:
|
|
2285
|
-
|
|
2286
|
-
|
|
2285
|
+
_d.sent();
|
|
2286
|
+
_d.label = 16;
|
|
2287
2287
|
case 16:
|
|
2288
2288
|
console.log("[postponeReview] recordId=".concat(recordId, ", departmentType=").concat(departmentType, ", deptUserIds=").concat(deptUserIds, ", markedForNextRound=true"));
|
|
2289
|
-
if (!(record.current_step === consts_1.Step.submitter_revisions)) return [3, 18];
|
|
2290
2289
|
currentMarkerUsers = record.postpone_marker_users || [];
|
|
2291
2290
|
newMarkerUsers = (0, lodash_1.compact)((0, lodash_1.uniq)((0, lodash_1.concat)(currentMarkerUsers, deptUserIds)));
|
|
2292
2291
|
return [4, ctx.getObject('pepsico_material_approval').directUpdate(recordId, {
|
|
2293
2292
|
postpone_marker_users: newMarkerUsers
|
|
2294
2293
|
})];
|
|
2295
2294
|
case 17:
|
|
2296
|
-
|
|
2297
|
-
return [2, {}];
|
|
2298
|
-
case 18:
|
|
2299
|
-
visibleAfter = new Date(now.getTime() + 3 * 24 * 60 * 60 * 1000);
|
|
2300
|
-
return [4, ctx.getObject('pepsico_review_postpone').directFind({
|
|
2301
|
-
filters: [
|
|
2302
|
-
['pepsico_material_approval', '=', recordId],
|
|
2303
|
-
['postpone_by', '=', user.userId],
|
|
2304
|
-
['is_marker', '=', true],
|
|
2305
|
-
['space', '=', record.space]
|
|
2306
|
-
]
|
|
2307
|
-
})];
|
|
2308
|
-
case 19:
|
|
2309
|
-
markersToActivate = _e.sent();
|
|
2310
|
-
_e.label = 20;
|
|
2311
|
-
case 20:
|
|
2312
|
-
_e.trys.push([20, 25, 26, 27]);
|
|
2313
|
-
markersToActivate_1 = tslib_1.__values(markersToActivate), markersToActivate_1_1 = markersToActivate_1.next();
|
|
2314
|
-
_e.label = 21;
|
|
2315
|
-
case 21:
|
|
2316
|
-
if (!!markersToActivate_1_1.done) return [3, 24];
|
|
2317
|
-
marker = markersToActivate_1_1.value;
|
|
2318
|
-
return [4, ctx.getObject('pepsico_review_postpone').directUpdate(marker._id, {
|
|
2319
|
-
is_marker: false,
|
|
2320
|
-
visible_after: visibleAfter,
|
|
2321
|
-
notification_sent: false,
|
|
2322
|
-
postponed_user_ids: deptUserIds.join(','),
|
|
2323
|
-
modified: now,
|
|
2324
|
-
modified_by: user.userId
|
|
2325
|
-
})];
|
|
2326
|
-
case 22:
|
|
2327
|
-
_e.sent();
|
|
2328
|
-
_e.label = 23;
|
|
2329
|
-
case 23:
|
|
2330
|
-
markersToActivate_1_1 = markersToActivate_1.next();
|
|
2331
|
-
return [3, 21];
|
|
2332
|
-
case 24: return [3, 27];
|
|
2333
|
-
case 25:
|
|
2334
|
-
e_14_1 = _e.sent();
|
|
2335
|
-
e_14 = { error: e_14_1 };
|
|
2336
|
-
return [3, 27];
|
|
2337
|
-
case 26:
|
|
2338
|
-
try {
|
|
2339
|
-
if (markersToActivate_1_1 && !markersToActivate_1_1.done && (_d = markersToActivate_1.return)) _d.call(markersToActivate_1);
|
|
2340
|
-
}
|
|
2341
|
-
finally { if (e_14) throw e_14.error; }
|
|
2342
|
-
return [7];
|
|
2343
|
-
case 27: return [4, ctx.getObject('pepsico_material_approval').findOne(recordId)];
|
|
2344
|
-
case 28:
|
|
2345
|
-
currentRecord = _e.sent();
|
|
2346
|
-
currentPostponed = currentRecord.review_postponed_users || [];
|
|
2347
|
-
newPostponed = (0, lodash_1.compact)((0, lodash_1.uniq)((0, lodash_1.concat)(currentPostponed, deptUserIds)));
|
|
2348
|
-
return [4, ctx.getObject('pepsico_material_approval').directUpdate(recordId, {
|
|
2349
|
-
review_postponed_users: newPostponed
|
|
2350
|
-
})];
|
|
2351
|
-
case 29:
|
|
2352
|
-
_e.sent();
|
|
2353
|
-
console.log("[postponeReview] \u7ACB\u5373\u6FC0\u6D3B\u5EF6\u540E: recordId=".concat(recordId, ", deptUserIds=").concat(deptUserIds, ", visibleAfter=").concat(visibleAfter));
|
|
2295
|
+
_d.sent();
|
|
2354
2296
|
return [2, {}];
|
|
2355
2297
|
}
|
|
2356
2298
|
});
|