@plusscommunities/pluss-maintenance-aws 2.2.1-beta.0 → 2.2.2-beta.0
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/getData.js +8 -0
- package/getJob.js +3 -72
- package/integration/archibus/ArchibusStrategy.js +8 -18
- package/jobChanged.js +2 -1
- package/package-lock.json +4 -4
- package/package.json +2 -2
- package/requests/getRequest.js +89 -0
- package/scheduleJobImport.js +2 -1
- package/{values.config.maintenancea.js → values.config.a.js} +1 -0
- package/values.config.b.js +26 -0
- package/values.config.c.js +26 -0
- package/values.config.d.js +26 -0
- package/values.config.default.js +1 -0
- package/values.config.js +1 -0
package/getData.js
CHANGED
|
@@ -4,6 +4,7 @@ const { log } = require("@plusscommunities/pluss-core-aws/helper");
|
|
|
4
4
|
const generateJsonResponse = require("@plusscommunities/pluss-core-aws/helper/generateJsonResponse");
|
|
5
5
|
const getAssignees = require("./requests/getAssignees");
|
|
6
6
|
const getRequests = require("./requests/getRequests");
|
|
7
|
+
const getRequest = require("./requests/getRequest");
|
|
7
8
|
|
|
8
9
|
module.exports.getData = async (event, context, callback) => {
|
|
9
10
|
init(config);
|
|
@@ -20,6 +21,13 @@ module.exports.getData = async (event, context, callback) => {
|
|
|
20
21
|
log(action, "ResponseLength", response.data.Items.length, logId);
|
|
21
22
|
}
|
|
22
23
|
break;
|
|
24
|
+
|
|
25
|
+
case "request":
|
|
26
|
+
response = await getRequest(event);
|
|
27
|
+
if (response.status === 200) {
|
|
28
|
+
log(action, "ResponseLength", response.data, logId);
|
|
29
|
+
}
|
|
30
|
+
break;
|
|
23
31
|
case "assignees":
|
|
24
32
|
response = await getAssignees(event);
|
|
25
33
|
if (response.status === 200) {
|
package/getJob.js
CHANGED
|
@@ -2,82 +2,13 @@ const config = require("./config.json");
|
|
|
2
2
|
const { init } = require("@plusscommunities/pluss-core-aws/config");
|
|
3
3
|
const { getBody } = require("@plusscommunities/pluss-core-aws/helper");
|
|
4
4
|
const generateJsonResponse = require("@plusscommunities/pluss-core-aws/helper/generateJsonResponse");
|
|
5
|
-
const
|
|
6
|
-
const indexQuery = require("@plusscommunities/pluss-core-aws/db/common/indexQuery");
|
|
7
|
-
const validateMasterAuth = require("@plusscommunities/pluss-core-aws/helper/auth/validateMasterAuth");
|
|
8
|
-
const getSessionUser = require("@plusscommunities/pluss-core-aws/helper/auth/getSessionUser");
|
|
9
|
-
const isValidAssignee = require("./requests/helper/isValidAssignee");
|
|
10
|
-
const { values } = require("./values.config");
|
|
5
|
+
const getRequest = require("./requests/getRequest");
|
|
11
6
|
|
|
12
7
|
module.exports.getJob = async (event, context, callback) => {
|
|
13
8
|
init(config);
|
|
14
9
|
const data = getBody(event);
|
|
15
10
|
|
|
16
|
-
|
|
17
|
-
return callback(
|
|
18
|
-
null,
|
|
19
|
-
generateJsonResponse(422, {
|
|
20
|
-
error: { message: "User Types fetch -- no site or type id detected." },
|
|
21
|
-
})
|
|
22
|
-
);
|
|
23
|
-
}
|
|
11
|
+
const result = await getRequest(event, data);
|
|
24
12
|
|
|
25
|
-
|
|
26
|
-
let result = null;
|
|
27
|
-
if (data.jobId) {
|
|
28
|
-
const query = {
|
|
29
|
-
IndexName: "MaintenanceSiteJobIdIndex",
|
|
30
|
-
KeyConditionExpression: "site = :site and jobId = :jobId",
|
|
31
|
-
ExpressionAttributeValues: {
|
|
32
|
-
":site": data.site,
|
|
33
|
-
":jobId": data.jobId,
|
|
34
|
-
},
|
|
35
|
-
};
|
|
36
|
-
const { Items } = await indexQuery(values.tableNameMaintenance, query);
|
|
37
|
-
result = Items[0];
|
|
38
|
-
}
|
|
39
|
-
if (!result)
|
|
40
|
-
result = await getRef(
|
|
41
|
-
values.tableNameMaintenance,
|
|
42
|
-
"id",
|
|
43
|
-
data.id || data.jobId
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
try {
|
|
47
|
-
const authorised = await validateMasterAuth(
|
|
48
|
-
event,
|
|
49
|
-
values.permissionMaintenanceTracking,
|
|
50
|
-
result.site
|
|
51
|
-
);
|
|
52
|
-
const assignAuthorised = await isValidAssignee(
|
|
53
|
-
event,
|
|
54
|
-
result.site,
|
|
55
|
-
result.AssigneeId
|
|
56
|
-
);
|
|
57
|
-
if (!authorised && !assignAuthorised) {
|
|
58
|
-
// Check if the job belongs to the user
|
|
59
|
-
const userId = await getSessionUser(event.headers.authkey);
|
|
60
|
-
if (userId !== result.userID) {
|
|
61
|
-
console.error("Authorization not valid");
|
|
62
|
-
return callback(
|
|
63
|
-
null,
|
|
64
|
-
generateJsonResponse(403, {
|
|
65
|
-
error: { message: "not authorised." },
|
|
66
|
-
})
|
|
67
|
-
);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return callback(null, generateJsonResponse(200, result));
|
|
71
|
-
} catch (error) {
|
|
72
|
-
callback(null, generateJsonResponse(422, { fail: true }));
|
|
73
|
-
}
|
|
74
|
-
} catch (error1) {
|
|
75
|
-
return callback(
|
|
76
|
-
null,
|
|
77
|
-
generateJsonResponse(200, {
|
|
78
|
-
userFetchFail: true,
|
|
79
|
-
message: "Fail on user query. Please try again.",
|
|
80
|
-
})
|
|
81
|
-
);
|
|
82
|
-
}
|
|
13
|
+
return callback(null, generateJsonResponse(result.status, result.data));
|
|
83
14
|
};
|
|
@@ -9,7 +9,6 @@ const updateRef = require("@plusscommunities/pluss-core-aws/db/common/updateRef"
|
|
|
9
9
|
const indexQuery = require("@plusscommunities/pluss-core-aws/db/common/indexQuery");
|
|
10
10
|
const publishNotifications = require("@plusscommunities/pluss-core-aws/db/notifications/publishNotifications");
|
|
11
11
|
const getRef = require("@plusscommunities/pluss-core-aws/db/common/getRef");
|
|
12
|
-
const { values } = require("../../values.config");
|
|
13
12
|
|
|
14
13
|
class ArchibusStrategy extends IntegrationStrategy {
|
|
15
14
|
constructor(config) {
|
|
@@ -70,7 +69,7 @@ class ArchibusStrategy extends IntegrationStrategy {
|
|
|
70
69
|
Host: this.host,
|
|
71
70
|
},
|
|
72
71
|
data: {
|
|
73
|
-
prob_type: "1.ON-SITE",
|
|
72
|
+
prob_type: "1.ON-SITE|1. MAINTENANCE",
|
|
74
73
|
requestor: "PLUSSDEV",
|
|
75
74
|
description: `${request.title}${
|
|
76
75
|
_.isEmpty(request.description) ? "" : `\n\n${request.description}`
|
|
@@ -99,7 +98,7 @@ class ArchibusStrategy extends IntegrationStrategy {
|
|
|
99
98
|
});
|
|
100
99
|
|
|
101
100
|
// Save the Archibus ID as the job number
|
|
102
|
-
await editRef(
|
|
101
|
+
await editRef("maintenance", "id", request.id, {
|
|
103
102
|
jobNo: response.data.wrId,
|
|
104
103
|
jobId: response.data.wrId + "",
|
|
105
104
|
});
|
|
@@ -125,7 +124,7 @@ class ArchibusStrategy extends IntegrationStrategy {
|
|
|
125
124
|
log("Archibus:CreateRequest", "Error", e, logId);
|
|
126
125
|
|
|
127
126
|
// trigger another attempt
|
|
128
|
-
// editRef(
|
|
127
|
+
// editRef("maintenance", "id", request.id, {
|
|
129
128
|
// ExtCreateRetry: moment().valueOf(),
|
|
130
129
|
// });
|
|
131
130
|
}
|
|
@@ -190,24 +189,15 @@ class ArchibusStrategy extends IntegrationStrategy {
|
|
|
190
189
|
log("Archibus:RefreshFromSource", "UpdatedStatus", statusToUse, logId);
|
|
191
190
|
|
|
192
191
|
if (statusToUse) {
|
|
193
|
-
let plussRequest = await getRef(
|
|
194
|
-
values.tableNameMaintenance,
|
|
195
|
-
"id",
|
|
196
|
-
requestId
|
|
197
|
-
);
|
|
192
|
+
let plussRequest = await getRef("maintenance", "id", requestId);
|
|
198
193
|
// check how the new status map to what is saved in Pluss
|
|
199
194
|
|
|
200
195
|
if (statusToUse.Status !== plussRequest.status) {
|
|
201
196
|
// save updated status
|
|
202
197
|
|
|
203
|
-
plussRequest = await editRef(
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
requestId,
|
|
207
|
-
{
|
|
208
|
-
status: statusToUse.Status,
|
|
209
|
-
}
|
|
210
|
-
);
|
|
198
|
+
plussRequest = await editRef("maintenance", "id", requestId, {
|
|
199
|
+
status: statusToUse.Status,
|
|
200
|
+
});
|
|
211
201
|
log(
|
|
212
202
|
"Archibus:RefreshFromSource",
|
|
213
203
|
"SavedStatus",
|
|
@@ -400,7 +390,7 @@ class ArchibusStrategy extends IntegrationStrategy {
|
|
|
400
390
|
IndexName: "CommentsEntityIdIndex",
|
|
401
391
|
KeyConditionExpression: "EntityId = :groupId",
|
|
402
392
|
ExpressionAttributeValues: {
|
|
403
|
-
":groupId": getRowId(request.id,
|
|
393
|
+
":groupId": getRowId(request.id, "maintenance"),
|
|
404
394
|
},
|
|
405
395
|
};
|
|
406
396
|
|
package/jobChanged.js
CHANGED
|
@@ -4,6 +4,7 @@ const { init } = require("@plusscommunities/pluss-core-aws/config");
|
|
|
4
4
|
const logUpdate = require("@plusscommunities/pluss-core-aws/db/strings/logUpdate");
|
|
5
5
|
const { getStrategy } = require("./integration");
|
|
6
6
|
const { log } = require("@plusscommunities/pluss-core-aws/helper");
|
|
7
|
+
const { values } = require("./values.config");
|
|
7
8
|
|
|
8
9
|
const marshaller = new Marshaller();
|
|
9
10
|
|
|
@@ -67,6 +68,6 @@ module.exports.jobChanged = (event, context, callback) => {
|
|
|
67
68
|
|
|
68
69
|
site = previousData.site;
|
|
69
70
|
}
|
|
70
|
-
logUpdate(site,
|
|
71
|
+
logUpdate(site, values.updateKey);
|
|
71
72
|
});
|
|
72
73
|
};
|
package/package-lock.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plusscommunities/pluss-maintenance-aws",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.2-beta.0",
|
|
4
4
|
"lockfileVersion": 1,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"dependencies": {
|
|
@@ -1468,9 +1468,9 @@
|
|
|
1468
1468
|
}
|
|
1469
1469
|
},
|
|
1470
1470
|
"@plusscommunities/pluss-core-aws": {
|
|
1471
|
-
"version": "2.0
|
|
1472
|
-
"resolved": "https://registry.npmjs.org/@plusscommunities/pluss-core-aws/-/pluss-core-aws-2.0.
|
|
1473
|
-
"integrity": "sha512-
|
|
1471
|
+
"version": "2.1.4-beta.0",
|
|
1472
|
+
"resolved": "https://registry.npmjs.org/@plusscommunities/pluss-core-aws/-/pluss-core-aws-2.1.4-beta.0.tgz",
|
|
1473
|
+
"integrity": "sha512-rSxTGfX0PqJU+dOTwMcS/w17dwdPmuCd37JpfwJXCJUrQP56jp/4Ly13x7IlmbC7wtBdLBIjpqPBy2d1rpNtlQ==",
|
|
1474
1474
|
"requires": {
|
|
1475
1475
|
"@aws/dynamodb-auto-marshaller": "^0.7.1",
|
|
1476
1476
|
"amazon-cognito-identity-js": "^2.0.19",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plusscommunities/pluss-maintenance-aws",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.2-beta.0",
|
|
4
4
|
"description": "Extension package to enable maintenance on Pluss Communities Platform",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"gc": "node ../../tools/gc ./",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"license": "ISC",
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@aws/dynamodb-auto-marshaller": "^0.7.1",
|
|
27
|
-
"@plusscommunities/pluss-core-aws": "2.0
|
|
27
|
+
"@plusscommunities/pluss-core-aws": "2.1.4-beta.0",
|
|
28
28
|
"amazon-cognito-identity-js": "^2.0.19",
|
|
29
29
|
"aws-sdk": "^2.1591.0",
|
|
30
30
|
"axios": "^1.6.8",
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
const { log, getRowId } = require("@plusscommunities/pluss-core-aws/helper");
|
|
2
|
+
const getRef = require("@plusscommunities/pluss-core-aws/db/common/getRef");
|
|
3
|
+
const indexQuery = require("@plusscommunities/pluss-core-aws/db/common/indexQuery");
|
|
4
|
+
const validateMasterAuth = require("@plusscommunities/pluss-core-aws/helper/auth/validateMasterAuth");
|
|
5
|
+
const isValidAssignee = require("./helper/isValidAssignee");
|
|
6
|
+
const getSessionUserFromReqAuthKey = require("@plusscommunities/pluss-core-aws/helper/auth/getSessionUserFromReqAuthKey");
|
|
7
|
+
const { values } = require("../values.config");
|
|
8
|
+
|
|
9
|
+
module.exports = async (event, params) => {
|
|
10
|
+
const data = params || event.queryStringParameters;
|
|
11
|
+
const logId = log("getRequest", "Params", data);
|
|
12
|
+
if (!data.id && (!data.site || !data.jobId)) {
|
|
13
|
+
return {
|
|
14
|
+
status: 422,
|
|
15
|
+
data: {
|
|
16
|
+
error: "Insufficient input",
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
try {
|
|
22
|
+
let result = null;
|
|
23
|
+
if (data.jobId) {
|
|
24
|
+
const query = {
|
|
25
|
+
IndexName: "MaintenanceSiteJobIdIndex",
|
|
26
|
+
KeyConditionExpression: "site = :site and jobId = :jobId",
|
|
27
|
+
ExpressionAttributeValues: {
|
|
28
|
+
":site": data.site,
|
|
29
|
+
":jobId": data.jobId,
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
const { Items } = await indexQuery(values.tableNameMaintenance, query);
|
|
33
|
+
result = Items[0];
|
|
34
|
+
}
|
|
35
|
+
if (!result) {
|
|
36
|
+
result = await getRef(
|
|
37
|
+
values.tableNameMaintenance,
|
|
38
|
+
"id",
|
|
39
|
+
data.id || data.jobId
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const authorised = await validateMasterAuth(
|
|
44
|
+
event,
|
|
45
|
+
values.permissionMaintenanceTracking,
|
|
46
|
+
result.site
|
|
47
|
+
);
|
|
48
|
+
const assignAuthorised = await isValidAssignee(
|
|
49
|
+
event,
|
|
50
|
+
result.site,
|
|
51
|
+
result.AssigneeId
|
|
52
|
+
);
|
|
53
|
+
if (!authorised && !assignAuthorised) {
|
|
54
|
+
// Check if the job belongs to the user
|
|
55
|
+
const userId = await getSessionUserFromReqAuthKey(event);
|
|
56
|
+
if (userId !== result.userID) {
|
|
57
|
+
return {
|
|
58
|
+
status: 403,
|
|
59
|
+
data: {
|
|
60
|
+
error: "Not authorised",
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (data.includeComments) {
|
|
66
|
+
const commentsQuery = {
|
|
67
|
+
IndexName: "CommentsEntityIdIndex",
|
|
68
|
+
KeyConditionExpression: "EntityId = :groupId",
|
|
69
|
+
ExpressionAttributeValues: {
|
|
70
|
+
":groupId": getRowId(result.id, values.entityKey),
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
const commentsData = await indexQuery("comments", commentsQuery);
|
|
74
|
+
result.Comments = commentsData.Items;
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
status: 200,
|
|
78
|
+
data: result,
|
|
79
|
+
};
|
|
80
|
+
} catch (error) {
|
|
81
|
+
log("getRequest", "Error", error.toString(), logId);
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
status: 500,
|
|
85
|
+
data: {
|
|
86
|
+
error: "Internal error",
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
};
|
package/scheduleJobImport.js
CHANGED
|
@@ -44,7 +44,8 @@ const processBatch = async (strategy, startTime) => {
|
|
|
44
44
|
const promises = [];
|
|
45
45
|
|
|
46
46
|
Items.forEach((item) => {
|
|
47
|
-
|
|
47
|
+
log("processBatch", "ProcessSingle", JSON.stringify(item), logId);
|
|
48
|
+
promises.push(processSingle(strategy, JSON.parse(JSON.stringify(item))));
|
|
48
49
|
});
|
|
49
50
|
|
|
50
51
|
await Promise.all(promises);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const values = {
|
|
2
|
+
entityKey: "maintenancerequestB",
|
|
3
|
+
serviceKey: "maintenanceB",
|
|
4
|
+
updateKey: "jobsB",
|
|
5
|
+
tableKeyJobTypes: "jobtypesB",
|
|
6
|
+
tableKeyMaintenance: "maintenanceB",
|
|
7
|
+
tableKeySupportTickets: "supportticketsB",
|
|
8
|
+
tableNameJobTypes: "jobTypesB",
|
|
9
|
+
tableNameMaintenance: "maintenanceB",
|
|
10
|
+
tableNameSupportTickets: "supportticketsB",
|
|
11
|
+
permissionMaintenanceTracking: "maintenanceTrackingB",
|
|
12
|
+
permissionMaintenanceAssignment: "maintenanceAssignmentB",
|
|
13
|
+
permissionMaintenanceTypes: "maintenanceTypesB",
|
|
14
|
+
routeEntityPath: "/requestsHubB/jobDetails/:id",
|
|
15
|
+
screenMaintenanceDetail: "requestDetailB",
|
|
16
|
+
notificationMaintenanceJobAssigned: "MaintenanceJobAssignedB",
|
|
17
|
+
notificationMaintenanceJobUnassigned: "MaintenanceJobUnassignedB",
|
|
18
|
+
activityDeleteMaintenanceJob: "DeleteMaintenanceJobB",
|
|
19
|
+
activityEditMaintenanceJob: "EditMaintenanceJobB",
|
|
20
|
+
activityMaintenanceJobStatusChanged: "MaintenanceJobStatusChangedB",
|
|
21
|
+
activityAddMaintenanceNote: "AddMaintenanceNoteB",
|
|
22
|
+
activityDeleteMaintenanceNote: "DeleteMaintenanceNoteB",
|
|
23
|
+
activityEditMaintenanceNote: "EditMaintenanceNoteB",
|
|
24
|
+
textJobEmailTitle: "Service Request",
|
|
25
|
+
};
|
|
26
|
+
exports.values = values;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const values = {
|
|
2
|
+
entityKey: "maintenancerequestC",
|
|
3
|
+
serviceKey: "maintenanceC",
|
|
4
|
+
updateKey: "jobsC",
|
|
5
|
+
tableKeyJobTypes: "jobtypesC",
|
|
6
|
+
tableKeyMaintenance: "maintenanceC",
|
|
7
|
+
tableKeySupportTickets: "supportticketsC",
|
|
8
|
+
tableNameJobTypes: "jobTypesC",
|
|
9
|
+
tableNameMaintenance: "maintenanceC",
|
|
10
|
+
tableNameSupportTickets: "supportticketsC",
|
|
11
|
+
permissionMaintenanceTracking: "maintenanceTrackingC",
|
|
12
|
+
permissionMaintenanceAssignment: "maintenanceAssignmentC",
|
|
13
|
+
permissionMaintenanceTypes: "maintenanceTypesC",
|
|
14
|
+
routeEntityPath: "/requestsHubC/jobDetails/:id",
|
|
15
|
+
screenMaintenanceDetail: "requestDetailC",
|
|
16
|
+
notificationMaintenanceJobAssigned: "MaintenanceJobAssignedC",
|
|
17
|
+
notificationMaintenanceJobUnassigned: "MaintenanceJobUnassignedC",
|
|
18
|
+
activityDeleteMaintenanceJob: "DeleteMaintenanceJobC",
|
|
19
|
+
activityEditMaintenanceJob: "EditMaintenanceJobC",
|
|
20
|
+
activityMaintenanceJobStatusChanged: "MaintenanceJobStatusChangedC",
|
|
21
|
+
activityAddMaintenanceNote: "AddMaintenanceNoteC",
|
|
22
|
+
activityDeleteMaintenanceNote: "DeleteMaintenanceNoteC",
|
|
23
|
+
activityEditMaintenanceNote: "EditMaintenanceNoteC",
|
|
24
|
+
textJobEmailTitle: "Service Request",
|
|
25
|
+
};
|
|
26
|
+
exports.values = values;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const values = {
|
|
2
|
+
entityKey: "maintenancerequestD",
|
|
3
|
+
serviceKey: "maintenanceD",
|
|
4
|
+
updateKey: "jobsD",
|
|
5
|
+
tableKeyJobTypes: "jobtypesD",
|
|
6
|
+
tableKeyMaintenance: "maintenanceD",
|
|
7
|
+
tableKeySupportTickets: "supportticketsD",
|
|
8
|
+
tableNameJobTypes: "jobTypesD",
|
|
9
|
+
tableNameMaintenance: "maintenanceD",
|
|
10
|
+
tableNameSupportTickets: "supportticketsD",
|
|
11
|
+
permissionMaintenanceTracking: "maintenanceTrackingD",
|
|
12
|
+
permissionMaintenanceAssignment: "maintenanceAssignmentD",
|
|
13
|
+
permissionMaintenanceTypes: "maintenanceTypesD",
|
|
14
|
+
routeEntityPath: "/requestsHubD/jobDetails/:id",
|
|
15
|
+
screenMaintenanceDetail: "requestDetailD",
|
|
16
|
+
notificationMaintenanceJobAssigned: "MaintenanceJobAssignedD",
|
|
17
|
+
notificationMaintenanceJobUnassigned: "MaintenanceJobUnassignedD",
|
|
18
|
+
activityDeleteMaintenanceJob: "DeleteMaintenanceJobD",
|
|
19
|
+
activityEditMaintenanceJob: "EditMaintenanceJobD",
|
|
20
|
+
activityMaintenanceJobStatusChanged: "MaintenanceJobStatusChangedD",
|
|
21
|
+
activityAddMaintenanceNote: "AddMaintenanceNoteD",
|
|
22
|
+
activityDeleteMaintenanceNote: "DeleteMaintenanceNoteD",
|
|
23
|
+
activityEditMaintenanceNote: "EditMaintenanceNoteD",
|
|
24
|
+
textJobEmailTitle: "Service Request",
|
|
25
|
+
};
|
|
26
|
+
exports.values = values;
|
package/values.config.default.js
CHANGED