@openinc/parse-server-opendash 2.4.95 → 2.4.99
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/app_types/CRON_Types.d.ts +10 -0
- package/dist/app_types/CRON_Types.js +2 -0
- package/dist/config.js +9 -0
- package/dist/featuremap.json +1 -0
- package/dist/functions/openinc-openservice-save-ticket-data.d.ts +4 -0
- package/dist/functions/openinc-openservice-save-ticket-data.js +47 -8
- package/dist/functions/openinc-openservice-ticket-data.d.ts +7 -0
- package/dist/functions/openinc-openservice-ticket-data.js +2 -1
- package/dist/helper/TranslationKeys.d.ts +82 -0
- package/dist/helper/TranslationKeys.js +86 -0
- package/dist/hooks/Maintenance_Downtime.js +39 -2
- package/dist/hooks/Maintenance_Duedate.js +47 -2
- package/dist/hooks/Maintenance_Frequency.js +39 -2
- package/dist/hooks/Maintenance_Message.js +429 -1
- package/dist/hooks/Maintenance_Priority.js +39 -2
- package/dist/hooks/Maintenance_Restriction.js +39 -2
- package/dist/hooks/Maintenance_Schedule_Execution.js +36 -0
- package/dist/hooks/Maintenance_Schedule_Template.js +66 -23
- package/dist/hooks/Maintenance_Ticket_Issuecategory.js +40 -2
- package/dist/hooks/Maintenance_Ticket_Kanban_State.js +39 -2
- package/dist/hooks/Maintenance_Ticket_Source.js +55 -6
- package/dist/hooks/Maintenance_Ticket_Title.js +39 -2
- package/dist/hooks/Monitoring_Jobs.js +1 -1
- package/dist/index.js +3 -1
- package/dist/types/ML_DataSelection.d.ts +16 -0
- package/dist/types/ML_DataSelection.js +23 -0
- package/dist/types/Monitoring_Jobs.d.ts +8 -3
- package/dist/types/Monitoring_Jobs.js +6 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +4 -2
- package/package.json +1 -1
- package/schema/ML_DataSelection.json +38 -0
- package/schema/Monitoring_Jobs.json +8 -1
|
@@ -20,7 +20,7 @@ async function init() {
|
|
|
20
20
|
});
|
|
21
21
|
(0, __1.afterSaveHook)(types_1.Maintenance_Schedule_Template, async (request) => {
|
|
22
22
|
const { object, original, user } = request;
|
|
23
|
-
addJobToBree([object]);
|
|
23
|
+
await addJobToBree([object]);
|
|
24
24
|
});
|
|
25
25
|
/**
|
|
26
26
|
* This function is called upon initialization and uses bree to schedule all jobs.
|
|
@@ -42,31 +42,53 @@ async function init() {
|
|
|
42
42
|
for (const schedule of query) {
|
|
43
43
|
console.log(`Adding job for schedule ${schedule.id}`);
|
|
44
44
|
const cron = schedule.get("cron");
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
45
|
+
try {
|
|
46
|
+
let newjob = undefined;
|
|
47
|
+
if (cron.is_one_time === false) {
|
|
48
|
+
if (cron.scheduletype === "human") {
|
|
49
|
+
newjob = {
|
|
50
|
+
name: `Schedule ${schedule.id}`,
|
|
51
|
+
path: node_path_1.default.join(__dirname, "..", "jobs", "open_service_notifyOnSchedule.js"),
|
|
52
|
+
timeout: 0,
|
|
53
|
+
interval: BreeInstance_1.default.createHumanReadableFormat(cron.run_cron),
|
|
54
|
+
hasSeconds: true,
|
|
55
|
+
worker: {
|
|
56
|
+
workerData: {
|
|
57
|
+
scheduleId: schedule.id,
|
|
58
|
+
ParseAppId: Parse.applicationId,
|
|
59
|
+
ParseJSKey: Parse.javaScriptKey,
|
|
60
|
+
ParseMasterKey: Parse.masterKey,
|
|
61
|
+
ParseServerURL: Parse.serverURL,
|
|
62
|
+
},
|
|
60
63
|
},
|
|
61
|
-
}
|
|
62
|
-
}
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
else if (cron.scheduletype === "quartz") {
|
|
67
|
+
newjob = {
|
|
68
|
+
name: `Schedule ${schedule.id}`,
|
|
69
|
+
cron: cron.run_cron,
|
|
70
|
+
path: node_path_1.default.join(__dirname, "..", "jobs", "open_service_notifyOnSchedule.js"),
|
|
71
|
+
timeout: 0,
|
|
72
|
+
interval: 0,
|
|
73
|
+
hasSeconds: true,
|
|
74
|
+
worker: {
|
|
75
|
+
workerData: {
|
|
76
|
+
scheduleId: schedule.id,
|
|
77
|
+
ParseAppId: Parse.applicationId,
|
|
78
|
+
ParseJSKey: Parse.javaScriptKey,
|
|
79
|
+
ParseMasterKey: Parse.masterKey,
|
|
80
|
+
ParseServerURL: Parse.serverURL,
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
}
|
|
63
85
|
}
|
|
64
|
-
else
|
|
65
|
-
|
|
86
|
+
else {
|
|
87
|
+
// If the job is a one time job, we will schedule it to run once
|
|
88
|
+
newjob = {
|
|
66
89
|
name: `Schedule ${schedule.id}`,
|
|
67
|
-
|
|
90
|
+
date: cron.run_startdate,
|
|
68
91
|
path: node_path_1.default.join(__dirname, "..", "jobs", "open_service_notifyOnSchedule.js"),
|
|
69
|
-
timeout: 0,
|
|
70
92
|
interval: 0,
|
|
71
93
|
hasSeconds: true,
|
|
72
94
|
worker: {
|
|
@@ -78,8 +100,29 @@ async function init() {
|
|
|
78
100
|
ParseServerURL: Parse.serverURL,
|
|
79
101
|
},
|
|
80
102
|
},
|
|
81
|
-
}
|
|
103
|
+
};
|
|
82
104
|
}
|
|
105
|
+
if (newjob === undefined) {
|
|
106
|
+
console.error("newjob is undefined");
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
//Get all jobs from bree and check whether the job already exists
|
|
110
|
+
const jobs = BreeInstance_1.default.getAllJobs();
|
|
111
|
+
let jobExists = false;
|
|
112
|
+
for (const job of jobs) {
|
|
113
|
+
if (job.name === newjob.name) {
|
|
114
|
+
jobExists = true;
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (jobExists) {
|
|
119
|
+
console.log(`Job for schedule ${schedule.id} already exists`);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
await BreeInstance_1.default.getInstance().add(newjob);
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
console.warn(`Error while adding job for schedule ${schedule.id}`, error);
|
|
83
126
|
}
|
|
84
127
|
}
|
|
85
128
|
}
|
|
@@ -3,11 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.init = init;
|
|
4
4
|
const __1 = require("..");
|
|
5
5
|
const openinc_openservice_save_ticket_data_1 = require("../functions/openinc-openservice-save-ticket-data");
|
|
6
|
+
const openinc_openservice_ticket_data_1 = require("../functions/openinc-openservice-ticket-data");
|
|
6
7
|
const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
|
|
8
|
+
const TranslationKeys_1 = require("../helper/TranslationKeys");
|
|
7
9
|
const types_1 = require("../types");
|
|
8
10
|
const Maintenance_Message_1 = require("./Maintenance_Message");
|
|
9
|
-
const TRANSLATION_TITLE =
|
|
10
|
-
const TRANSLATION_CONTENT =
|
|
11
|
+
const TRANSLATION_TITLE = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.ISSUECATEGORY.TITLE;
|
|
12
|
+
const TRANSLATION_CONTENT = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.ISSUECATEGORY.CONTENT;
|
|
13
|
+
const TRANSLATION_TITLE_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.ISSUECATEGORY.TITLE;
|
|
14
|
+
const TRANSLATION_CONTENT_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.ISSUECATEGORY.CONTENT;
|
|
11
15
|
async function init() {
|
|
12
16
|
(0, __1.beforeSaveHook)(types_1.Maintenance_Ticket_Issuecategory, async (request) => {
|
|
13
17
|
const { object, original, user } = request;
|
|
@@ -32,6 +36,10 @@ async function init() {
|
|
|
32
36
|
}, (first, second) => {
|
|
33
37
|
return (first.get("issuecategory")?.id === second.get("issuecategory")?.id);
|
|
34
38
|
});
|
|
39
|
+
// fetch necessary data
|
|
40
|
+
await savedObject.fetchWithInclude(["ticket", "issuecategory"], {
|
|
41
|
+
useMasterKey: true,
|
|
42
|
+
});
|
|
35
43
|
const previousIssue = await new Parse.Query(types_1.Maintenance_Ticket_Issuecategory)
|
|
36
44
|
.includeAll()
|
|
37
45
|
.equalTo("ticket", savedObject.get("ticket"))
|
|
@@ -57,7 +65,37 @@ async function init() {
|
|
|
57
65
|
"Nicht vorhanden",
|
|
58
66
|
new: issue?.get("name"),
|
|
59
67
|
},
|
|
68
|
+
origin: {
|
|
69
|
+
id: savedObject.id,
|
|
70
|
+
classname: savedObject.className,
|
|
71
|
+
},
|
|
60
72
|
},
|
|
61
73
|
}).save(null, { useMasterKey: true });
|
|
74
|
+
// to machinelog
|
|
75
|
+
const source = (await (0, openinc_openservice_ticket_data_1.getTicketSource)(savedObject.get("ticket")))?.get("source");
|
|
76
|
+
if (source) {
|
|
77
|
+
await new types_1.Maintenance_Message({
|
|
78
|
+
referencedObjectId: source?.id,
|
|
79
|
+
classname: source?.className,
|
|
80
|
+
title: TRANSLATION_TITLE_MACHINELOG,
|
|
81
|
+
content: TRANSLATION_CONTENT_MACHINELOG,
|
|
82
|
+
user: user,
|
|
83
|
+
tenant: user?.get("tenant"),
|
|
84
|
+
data: {
|
|
85
|
+
type: "system",
|
|
86
|
+
translation: {
|
|
87
|
+
username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
|
|
88
|
+
old: previousIssue?.get("issuecategory")?.get("name") ??
|
|
89
|
+
"Nicht vorhanden",
|
|
90
|
+
new: issue?.get("name"),
|
|
91
|
+
ticketName: savedObject.get("ticket")?.get("title"),
|
|
92
|
+
},
|
|
93
|
+
origin: {
|
|
94
|
+
id: savedObject.get("ticket")?.id,
|
|
95
|
+
classname: savedObject.get("ticket")?.className,
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
}).save(null, { useMasterKey: true });
|
|
99
|
+
}
|
|
62
100
|
});
|
|
63
101
|
}
|
|
@@ -3,11 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.init = init;
|
|
4
4
|
const __1 = require("..");
|
|
5
5
|
const openinc_openservice_save_ticket_data_1 = require("../functions/openinc-openservice-save-ticket-data");
|
|
6
|
+
const openinc_openservice_ticket_data_1 = require("../functions/openinc-openservice-ticket-data");
|
|
6
7
|
const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
|
|
8
|
+
const TranslationKeys_1 = require("../helper/TranslationKeys");
|
|
7
9
|
const types_1 = require("../types");
|
|
8
10
|
const Maintenance_Message_1 = require("./Maintenance_Message");
|
|
9
|
-
const TRANSLATION_TITLE =
|
|
10
|
-
const TRANSLATION_CONTENT =
|
|
11
|
+
const TRANSLATION_TITLE = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.KANBANSTATE.TITLE;
|
|
12
|
+
const TRANSLATION_CONTENT = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.KANBANSTATE.CONTENT;
|
|
13
|
+
const TRANSLATION_TITLE_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.KANBANSTATE.TITLE;
|
|
14
|
+
const TRANSLATION_CONTENT_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.KANBANSTATE.CONTENT;
|
|
11
15
|
async function init() {
|
|
12
16
|
(0, __1.beforeSaveHook)(types_1.Maintenance_Ticket_Kanban_State, async (request) => {
|
|
13
17
|
const { object, original, user } = request;
|
|
@@ -38,6 +42,10 @@ async function init() {
|
|
|
38
42
|
}, (first, second) => {
|
|
39
43
|
return first.get("state")?.id === second.get("state")?.id;
|
|
40
44
|
});
|
|
45
|
+
// fetch necessary data
|
|
46
|
+
await savedObject.fetchWithInclude(["ticket", "state"], {
|
|
47
|
+
useMasterKey: true,
|
|
48
|
+
});
|
|
41
49
|
const previousState = await new Parse.Query(types_1.Maintenance_Ticket_Kanban_State)
|
|
42
50
|
.includeAll()
|
|
43
51
|
.descending("createdAt")
|
|
@@ -60,6 +68,10 @@ async function init() {
|
|
|
60
68
|
old: previousState?.get("state").get("label") ?? "Nicht vorhanden",
|
|
61
69
|
new: state.get("label"),
|
|
62
70
|
},
|
|
71
|
+
origin: {
|
|
72
|
+
id: savedObject.id,
|
|
73
|
+
classname: savedObject.className,
|
|
74
|
+
},
|
|
63
75
|
},
|
|
64
76
|
}).save(null, { useMasterKey: true });
|
|
65
77
|
// Update the current state of the ticket
|
|
@@ -82,5 +94,30 @@ async function init() {
|
|
|
82
94
|
});
|
|
83
95
|
await newTicketState.save(null, { useMasterKey: true });
|
|
84
96
|
}
|
|
97
|
+
// to machinelog
|
|
98
|
+
const source = (await (0, openinc_openservice_ticket_data_1.getTicketSource)(savedObject.get("ticket")))?.get("source");
|
|
99
|
+
if (source) {
|
|
100
|
+
await new types_1.Maintenance_Message({
|
|
101
|
+
referencedObjectId: source?.id,
|
|
102
|
+
classname: source?.className,
|
|
103
|
+
title: TRANSLATION_TITLE_MACHINELOG,
|
|
104
|
+
content: TRANSLATION_CONTENT_MACHINELOG,
|
|
105
|
+
user: user,
|
|
106
|
+
tenant: user?.get("tenant"),
|
|
107
|
+
data: {
|
|
108
|
+
type: "system",
|
|
109
|
+
translation: {
|
|
110
|
+
username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
|
|
111
|
+
old: previousState?.get("state").get("label") ?? "Nicht vorhanden",
|
|
112
|
+
new: state.get("label"),
|
|
113
|
+
ticketName: savedObject.get("ticket")?.get("title"),
|
|
114
|
+
},
|
|
115
|
+
origin: {
|
|
116
|
+
id: savedObject.get("ticket")?.id,
|
|
117
|
+
classname: savedObject.get("ticket")?.className,
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
}).save(null, { useMasterKey: true });
|
|
121
|
+
}
|
|
85
122
|
});
|
|
86
123
|
}
|
|
@@ -4,10 +4,13 @@ exports.init = init;
|
|
|
4
4
|
const __1 = require("..");
|
|
5
5
|
const openinc_openservice_save_ticket_data_1 = require("../functions/openinc-openservice-save-ticket-data");
|
|
6
6
|
const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
|
|
7
|
+
const TranslationKeys_1 = require("../helper/TranslationKeys");
|
|
7
8
|
const types_1 = require("../types");
|
|
8
9
|
const Maintenance_Message_1 = require("./Maintenance_Message");
|
|
9
|
-
const TRANSLATION_TITLE =
|
|
10
|
-
const TRANSLATION_CONTENT =
|
|
10
|
+
const TRANSLATION_TITLE = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.SOURCE.TITLE;
|
|
11
|
+
const TRANSLATION_CONTENT = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.SOURCE.CONTENT;
|
|
12
|
+
const TRANSLATION_TITLE_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.SOURCE.TITLE;
|
|
13
|
+
const TRANSLATION_CONTENT_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.SOURCE.CONTENT;
|
|
11
14
|
async function init() {
|
|
12
15
|
(0, __1.beforeSaveHook)(types_1.Maintenance_Ticket_Source, async (request) => {
|
|
13
16
|
const { object, original, user } = request;
|
|
@@ -33,15 +36,16 @@ async function init() {
|
|
|
33
36
|
}, (first, second) => {
|
|
34
37
|
return first.get("source")?.id === second.get("source")?.id;
|
|
35
38
|
});
|
|
39
|
+
// fetch necessary data
|
|
40
|
+
await savedObject.fetchWithInclude(["ticket", "source"], {
|
|
41
|
+
useMasterKey: true,
|
|
42
|
+
});
|
|
36
43
|
const previousSource = await new Parse.Query(types_1.Maintenance_Ticket_Source)
|
|
37
44
|
.includeAll()
|
|
38
45
|
.equalTo("ticket", savedObject.get("ticket"))
|
|
39
46
|
.notEqualTo("objectId", savedObject.id)
|
|
40
47
|
.descending("createdAt")
|
|
41
48
|
.first({ useMasterKey: true });
|
|
42
|
-
const source = await savedObject
|
|
43
|
-
.get("source")
|
|
44
|
-
?.fetch({ useMasterKey: true });
|
|
45
49
|
// create new message log
|
|
46
50
|
await new types_1.Maintenance_Message({
|
|
47
51
|
referencedObjectId: savedObject.get("ticket")?.id,
|
|
@@ -55,7 +59,52 @@ async function init() {
|
|
|
55
59
|
translation: {
|
|
56
60
|
username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
|
|
57
61
|
old: previousSource?.get("source").get("name") ?? "Nicht vorhanden",
|
|
58
|
-
new:
|
|
62
|
+
new: savedObject.get("source")?.get("name"),
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
}).save(null, { useMasterKey: true });
|
|
66
|
+
// to machinelog of old source
|
|
67
|
+
if (previousSource)
|
|
68
|
+
await new types_1.Maintenance_Message({
|
|
69
|
+
referencedObjectId: previousSource?.get("source")?.id,
|
|
70
|
+
classname: previousSource?.get("source")?.className,
|
|
71
|
+
title: TRANSLATION_TITLE_MACHINELOG,
|
|
72
|
+
content: TRANSLATION_CONTENT_MACHINELOG,
|
|
73
|
+
user: user,
|
|
74
|
+
tenant: user?.get("tenant"),
|
|
75
|
+
data: {
|
|
76
|
+
type: "system",
|
|
77
|
+
translation: {
|
|
78
|
+
username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
|
|
79
|
+
old: previousSource?.get("source").get("name") ?? "Nicht vorhanden",
|
|
80
|
+
new: savedObject.get("source")?.get("name"),
|
|
81
|
+
ticketName: savedObject.get("ticket")?.get("title"),
|
|
82
|
+
},
|
|
83
|
+
origin: {
|
|
84
|
+
id: savedObject.get("ticket")?.id,
|
|
85
|
+
classname: savedObject.get("ticket")?.className,
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
}).save(null, { useMasterKey: true });
|
|
89
|
+
// to machinelog
|
|
90
|
+
await new types_1.Maintenance_Message({
|
|
91
|
+
referencedObjectId: savedObject.get("source")?.id,
|
|
92
|
+
classname: savedObject.get("source")?.className,
|
|
93
|
+
title: TRANSLATION_TITLE_MACHINELOG,
|
|
94
|
+
content: TRANSLATION_CONTENT_MACHINELOG,
|
|
95
|
+
user: user,
|
|
96
|
+
tenant: user?.get("tenant"),
|
|
97
|
+
data: {
|
|
98
|
+
type: "system",
|
|
99
|
+
translation: {
|
|
100
|
+
username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
|
|
101
|
+
old: previousSource?.get("source").get("name") ?? "Nicht vorhanden",
|
|
102
|
+
new: savedObject.get("source")?.get("name"),
|
|
103
|
+
ticketName: savedObject.get("ticket")?.get("title"),
|
|
104
|
+
},
|
|
105
|
+
origin: {
|
|
106
|
+
id: savedObject.get("ticket")?.id,
|
|
107
|
+
classname: savedObject.get("ticket")?.className,
|
|
59
108
|
},
|
|
60
109
|
},
|
|
61
110
|
}).save(null, { useMasterKey: true });
|
|
@@ -3,11 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.init = init;
|
|
4
4
|
const __1 = require("..");
|
|
5
5
|
const openinc_openservice_save_ticket_data_1 = require("../functions/openinc-openservice-save-ticket-data");
|
|
6
|
+
const openinc_openservice_ticket_data_1 = require("../functions/openinc-openservice-ticket-data");
|
|
6
7
|
const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
|
|
8
|
+
const TranslationKeys_1 = require("../helper/TranslationKeys");
|
|
7
9
|
const types_1 = require("../types");
|
|
8
10
|
const Maintenance_Message_1 = require("./Maintenance_Message");
|
|
9
|
-
const TRANSLATION_TITLE =
|
|
10
|
-
const TRANSLATION_CONTENT =
|
|
11
|
+
const TRANSLATION_TITLE = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.TITLE.TITLE;
|
|
12
|
+
const TRANSLATION_CONTENT = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.TITLE.CONTENT;
|
|
13
|
+
const TRANSLATION_TITLE_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.TITLE.TITLE;
|
|
14
|
+
const TRANSLATION_CONTENT_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.TITLE.CONTENT;
|
|
11
15
|
async function init() {
|
|
12
16
|
(0, __1.beforeSaveHook)(types_1.Maintenance_Ticket_Title, async (request) => {
|
|
13
17
|
const { object, original, user } = request;
|
|
@@ -35,6 +39,10 @@ async function init() {
|
|
|
35
39
|
}, (first, second) => {
|
|
36
40
|
return first.get("title") === second.get("title");
|
|
37
41
|
});
|
|
42
|
+
// fetch necessary data
|
|
43
|
+
await savedObject.fetchWithInclude(["ticket"], {
|
|
44
|
+
useMasterKey: true,
|
|
45
|
+
});
|
|
38
46
|
const previousTitle = await new Parse.Query(types_1.Maintenance_Ticket_Title)
|
|
39
47
|
.includeAll()
|
|
40
48
|
.descending("createdAt")
|
|
@@ -56,7 +64,36 @@ async function init() {
|
|
|
56
64
|
old: previousTitle?.get("title") ?? "Nicht vorhanden",
|
|
57
65
|
new: savedObject.get("title"),
|
|
58
66
|
},
|
|
67
|
+
origin: {
|
|
68
|
+
id: savedObject.id,
|
|
69
|
+
classname: savedObject.className,
|
|
70
|
+
},
|
|
59
71
|
},
|
|
60
72
|
}).save(null, { useMasterKey: true });
|
|
73
|
+
// to machinelog
|
|
74
|
+
const source = (await (0, openinc_openservice_ticket_data_1.getTicketSource)(savedObject.get("ticket")))?.get("source");
|
|
75
|
+
if (source) {
|
|
76
|
+
await new types_1.Maintenance_Message({
|
|
77
|
+
referencedObjectId: source?.id,
|
|
78
|
+
classname: source?.className,
|
|
79
|
+
title: TRANSLATION_TITLE_MACHINELOG,
|
|
80
|
+
content: TRANSLATION_CONTENT_MACHINELOG,
|
|
81
|
+
user: user,
|
|
82
|
+
tenant: user?.get("tenant"),
|
|
83
|
+
data: {
|
|
84
|
+
type: "system",
|
|
85
|
+
translation: {
|
|
86
|
+
username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
|
|
87
|
+
old: previousTitle?.get("title") ?? "Nicht vorhanden",
|
|
88
|
+
new: savedObject.get("title"),
|
|
89
|
+
ticketName: savedObject.get("ticket")?.get("title"),
|
|
90
|
+
},
|
|
91
|
+
origin: {
|
|
92
|
+
id: savedObject.get("ticket")?.id,
|
|
93
|
+
classname: savedObject.get("ticket")?.className,
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
}).save(null, { useMasterKey: true });
|
|
97
|
+
}
|
|
61
98
|
});
|
|
62
99
|
}
|
|
@@ -7,7 +7,7 @@ async function init() {
|
|
|
7
7
|
(0, __1.beforeSaveHook)(types_1.Monitoring_Jobs, async (request) => {
|
|
8
8
|
const { object, original, user } = request;
|
|
9
9
|
await (0, __1.defaultHandler)(request);
|
|
10
|
-
await (0, __1.defaultAclHandler)(request);
|
|
10
|
+
await (0, __1.defaultAclHandler)(request, { allowCustomACL: true });
|
|
11
11
|
// TODO
|
|
12
12
|
});
|
|
13
13
|
(0, __1.afterSaveHook)(types_1.Monitoring_Jobs, async (request) => {
|
package/dist/index.js
CHANGED
|
@@ -29,10 +29,10 @@ const config_1 = require("./config");
|
|
|
29
29
|
const featuremap_json_1 = __importDefault(require("./featuremap.json"));
|
|
30
30
|
const _init_1 = require("./functions/_init");
|
|
31
31
|
const BreeInstance_1 = __importDefault(require("./helper/BreeInstance"));
|
|
32
|
+
const registerPermissions_1 = require("./helper/registerPermissions");
|
|
32
33
|
const Core_Email_1 = require("./hooks/Core_Email");
|
|
33
34
|
const _init_2 = require("./hooks/_init");
|
|
34
35
|
const types_1 = require("./types");
|
|
35
|
-
const registerPermissions_1 = require("./helper/registerPermissions");
|
|
36
36
|
// export { Config } from "./helper/Config";
|
|
37
37
|
var Core_Email_2 = require("./hooks/Core_Email");
|
|
38
38
|
Object.defineProperty(exports, "sendSimpleEmail", { enumerable: true, get: function () { return Core_Email_2.sendSimpleEmail; } });
|
|
@@ -607,6 +607,8 @@ function isFeatureEnabled(feature) {
|
|
|
607
607
|
return config_1.config.getBoolean("FEATURE_KNOWLEDGE");
|
|
608
608
|
case "MAINTENANCE":
|
|
609
609
|
return config_1.config.getBoolean("FEATURE_MAINTENANCE");
|
|
610
|
+
case "DOCUMENTATION":
|
|
611
|
+
return config_1.config.getBoolean("FEATURE_DOCUMENTATION");
|
|
610
612
|
case "MIAAS":
|
|
611
613
|
return config_1.config.getBoolean("FEATURE_MIAAS");
|
|
612
614
|
default:
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface ML_DataSelectionAttributes {
|
|
2
|
+
id: string;
|
|
3
|
+
objectId: string;
|
|
4
|
+
createdAt: Date;
|
|
5
|
+
updatedAt: Date;
|
|
6
|
+
label?: string;
|
|
7
|
+
pipe: any;
|
|
8
|
+
}
|
|
9
|
+
export declare class ML_DataSelection extends Parse.Object<ML_DataSelectionAttributes> {
|
|
10
|
+
static className: string;
|
|
11
|
+
constructor(data?: Partial<ML_DataSelectionAttributes>);
|
|
12
|
+
get label(): string | undefined;
|
|
13
|
+
set label(value: string | undefined);
|
|
14
|
+
get pipe(): any;
|
|
15
|
+
set pipe(value: any);
|
|
16
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ML_DataSelection = void 0;
|
|
4
|
+
class ML_DataSelection extends Parse.Object {
|
|
5
|
+
constructor(data) {
|
|
6
|
+
super("OD3_ML_DataSelection", data);
|
|
7
|
+
}
|
|
8
|
+
get label() {
|
|
9
|
+
return super.get("label");
|
|
10
|
+
}
|
|
11
|
+
set label(value) {
|
|
12
|
+
super.set("label", value);
|
|
13
|
+
}
|
|
14
|
+
get pipe() {
|
|
15
|
+
return super.get("pipe");
|
|
16
|
+
}
|
|
17
|
+
set pipe(value) {
|
|
18
|
+
super.set("pipe", value);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.ML_DataSelection = ML_DataSelection;
|
|
22
|
+
ML_DataSelection.className = "OD3_ML_DataSelection";
|
|
23
|
+
Parse.Object.registerSubclass("OD3_ML_DataSelection", ML_DataSelection);
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { Tenant } from "./Tenant";
|
|
2
|
+
import type { _User } from "./_User";
|
|
1
3
|
export interface Monitoring_JobsAttributes {
|
|
2
4
|
id: string;
|
|
3
5
|
objectId: string;
|
|
@@ -9,8 +11,9 @@ export interface Monitoring_JobsAttributes {
|
|
|
9
11
|
name?: string;
|
|
10
12
|
next_execution_ow_job?: number;
|
|
11
13
|
options?: any;
|
|
14
|
+
tenant?: Tenant;
|
|
12
15
|
type?: string;
|
|
13
|
-
user?:
|
|
16
|
+
user?: _User;
|
|
14
17
|
}
|
|
15
18
|
export declare class Monitoring_Jobs extends Parse.Object<Monitoring_JobsAttributes> {
|
|
16
19
|
static className: string;
|
|
@@ -27,8 +30,10 @@ export declare class Monitoring_Jobs extends Parse.Object<Monitoring_JobsAttribu
|
|
|
27
30
|
set next_execution_ow_job(value: number | undefined);
|
|
28
31
|
get options(): any | undefined;
|
|
29
32
|
set options(value: any | undefined);
|
|
33
|
+
get tenant(): Tenant | undefined;
|
|
34
|
+
set tenant(value: Tenant | undefined);
|
|
30
35
|
get type(): string | undefined;
|
|
31
36
|
set type(value: string | undefined);
|
|
32
|
-
get user():
|
|
33
|
-
set user(value:
|
|
37
|
+
get user(): _User | undefined;
|
|
38
|
+
set user(value: _User | undefined);
|
|
34
39
|
}
|
|
@@ -41,6 +41,12 @@ class Monitoring_Jobs extends Parse.Object {
|
|
|
41
41
|
set options(value) {
|
|
42
42
|
super.set("options", value);
|
|
43
43
|
}
|
|
44
|
+
get tenant() {
|
|
45
|
+
return super.get("tenant");
|
|
46
|
+
}
|
|
47
|
+
set tenant(value) {
|
|
48
|
+
super.set("tenant", value);
|
|
49
|
+
}
|
|
44
50
|
get type() {
|
|
45
51
|
return super.get("type");
|
|
46
52
|
}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -88,6 +88,8 @@ export { MES_OrderPlan } from "./MES_OrderPlan";
|
|
|
88
88
|
export type { MES_OrderPlanAttributes } from "./MES_OrderPlan";
|
|
89
89
|
export { MIAAS_MDSEndpoint } from "./MIAAS_MDSEndpoint";
|
|
90
90
|
export type { MIAAS_MDSEndpointAttributes } from "./MIAAS_MDSEndpoint";
|
|
91
|
+
export { ML_DataSelection } from "./ML_DataSelection";
|
|
92
|
+
export type { ML_DataSelectionAttributes } from "./ML_DataSelection";
|
|
91
93
|
export { MailTemplate } from "./MailTemplate";
|
|
92
94
|
export type { MailTemplateAttributes } from "./MailTemplate";
|
|
93
95
|
export { Maintenance_DailySchedule } from "./Maintenance_DailySchedule";
|
package/dist/types/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.WidgetPreset = exports.Widget = exports.WebPush = exports.VirtualKPI = exports.User_Setting = exports.UserData = exports.TenantTrustedDomain = exports.TenantMeta = exports.Tenant = exports.SourceMeta = exports.Source = exports.Share = exports.Report = exports.Push = exports.Permission = exports.Notification_Setting = exports.Notification = exports.NavigationItem = exports.NavigationGroup = exports.Monitoring_Slideshow = exports.Monitoring_ReportImage = exports.Monitoring_ParseTableSensor = exports.Monitoring_Jobs = exports.Monitoring_DataHierachies = exports.Maintenance_Ticket_Title = exports.Maintenance_Ticket_Source = exports.Maintenance_Ticket_Kanban_State_Current = exports.Maintenance_Ticket_Kanban_State = exports.Maintenance_Ticket_Issuecategory = exports.Maintenance_Ticket_Assignment = exports.Maintenance_Ticket = exports.Maintenance_Source_File = exports.Maintenance_SourceMeta = exports.Maintenance_Schedule_Template = exports.Maintenance_Schedule_Step = exports.Maintenance_Schedule_Execution_Step = exports.Maintenance_Schedule_Execution = exports.Maintenance_Restriction = exports.Maintenance_Priority = exports.Maintenance_Order = exports.Maintenance_Message_Body = exports.Maintenance_Message = exports.Maintenance_Media = exports.Maintenance_Kanban_State = exports.Maintenance_Item = exports.Maintenance_Issuecategory = void 0;
|
|
3
|
+
exports.Maintenance_Duedate = exports.Maintenance_Downtime = exports.Maintenance_DailySchedule = exports.MailTemplate = exports.ML_DataSelection = exports.MIAAS_MDSEndpoint = exports.MES_OrderPlan = exports.MES_Order = exports.MES_Article = exports.Log = exports.Language = exports.Knowledge_Video = exports.Knowledge_DocumentPage = exports.Knowledge_Document = exports.Knowledge_ChatMessage = exports.Knowledge_Chat = exports.Knowledge_Category = exports.Knowledge_Article = exports.GTFS_Wheelchair_Boarding = exports.GTFS_Wheelchair_Accessible = exports.GTFS_Trip = exports.GTFS_Stop_Times = exports.GTFS_Stop = exports.GTFS_Route_Type = exports.GTFS_Route = exports.GTFS_Location_Type = exports.GTFS_Level = exports.GTFS_Direction = exports.GTFS_Calendar = exports.GTFS_Bikes_Allowed = exports.GTFS_Agency = exports.Documentation_Document = exports.Documentation_Category = exports.Dashboard = exports.Core_Token = exports.Core_Email = exports.Contact = exports.Config = exports.Company = exports.BDE_Unit = exports.BDE_Result = exports.BDE_Page = exports.BDE_ListEntry = exports.BDE_List = exports.BDE_Form = exports.Attachment = exports.Assets = exports.AlarmWebhook = exports.AlarmAction = exports.Alarm = void 0;
|
|
4
|
+
exports.WidgetPreset = exports.Widget = exports.WebPush = exports.VirtualKPI = exports.User_Setting = exports.UserData = exports.TenantTrustedDomain = exports.TenantMeta = exports.Tenant = exports.SourceMeta = exports.Source = exports.Share = exports.Report = exports.Push = exports.Permission = exports.Notification_Setting = exports.Notification = exports.NavigationItem = exports.NavigationGroup = exports.Monitoring_Slideshow = exports.Monitoring_ReportImage = exports.Monitoring_ParseTableSensor = exports.Monitoring_Jobs = exports.Monitoring_DataHierachies = exports.Maintenance_Ticket_Title = exports.Maintenance_Ticket_Source = exports.Maintenance_Ticket_Kanban_State_Current = exports.Maintenance_Ticket_Kanban_State = exports.Maintenance_Ticket_Issuecategory = exports.Maintenance_Ticket_Assignment = exports.Maintenance_Ticket = exports.Maintenance_Source_File = exports.Maintenance_SourceMeta = exports.Maintenance_Schedule_Template = exports.Maintenance_Schedule_Step = exports.Maintenance_Schedule_Execution_Step = exports.Maintenance_Schedule_Execution = exports.Maintenance_Restriction = exports.Maintenance_Priority = exports.Maintenance_Order = exports.Maintenance_Message_Body = exports.Maintenance_Message = exports.Maintenance_Media = exports.Maintenance_Kanban_State = exports.Maintenance_Item = exports.Maintenance_Issuecategory = exports.Maintenance_Frequency = void 0;
|
|
5
5
|
var Alarm_1 = require("./Alarm");
|
|
6
6
|
Object.defineProperty(exports, "Alarm", { enumerable: true, get: function () { return Alarm_1.Alarm; } });
|
|
7
7
|
var AlarmAction_1 = require("./AlarmAction");
|
|
@@ -92,6 +92,8 @@ var MES_OrderPlan_1 = require("./MES_OrderPlan");
|
|
|
92
92
|
Object.defineProperty(exports, "MES_OrderPlan", { enumerable: true, get: function () { return MES_OrderPlan_1.MES_OrderPlan; } });
|
|
93
93
|
var MIAAS_MDSEndpoint_1 = require("./MIAAS_MDSEndpoint");
|
|
94
94
|
Object.defineProperty(exports, "MIAAS_MDSEndpoint", { enumerable: true, get: function () { return MIAAS_MDSEndpoint_1.MIAAS_MDSEndpoint; } });
|
|
95
|
+
var ML_DataSelection_1 = require("./ML_DataSelection");
|
|
96
|
+
Object.defineProperty(exports, "ML_DataSelection", { enumerable: true, get: function () { return ML_DataSelection_1.ML_DataSelection; } });
|
|
95
97
|
var MailTemplate_1 = require("./MailTemplate");
|
|
96
98
|
Object.defineProperty(exports, "MailTemplate", { enumerable: true, get: function () { return MailTemplate_1.MailTemplate; } });
|
|
97
99
|
var Maintenance_DailySchedule_1 = require("./Maintenance_DailySchedule");
|
package/package.json
CHANGED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"fields": {
|
|
3
|
+
"label": {
|
|
4
|
+
"type": "String",
|
|
5
|
+
"required": false
|
|
6
|
+
},
|
|
7
|
+
"pipe": {
|
|
8
|
+
"type": "Object",
|
|
9
|
+
"required": true
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"classLevelPermissions": {
|
|
13
|
+
"find": {
|
|
14
|
+
"*": true
|
|
15
|
+
},
|
|
16
|
+
"count": {
|
|
17
|
+
"*": true
|
|
18
|
+
},
|
|
19
|
+
"get": {
|
|
20
|
+
"*": true
|
|
21
|
+
},
|
|
22
|
+
"create": {
|
|
23
|
+
"*": true
|
|
24
|
+
},
|
|
25
|
+
"update": {
|
|
26
|
+
"*": true
|
|
27
|
+
},
|
|
28
|
+
"delete": {
|
|
29
|
+
"*": true
|
|
30
|
+
},
|
|
31
|
+
"addField": {
|
|
32
|
+
"*": true
|
|
33
|
+
},
|
|
34
|
+
"protectedFields": {
|
|
35
|
+
"*": []
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -18,11 +18,18 @@
|
|
|
18
18
|
"options": {
|
|
19
19
|
"type": "Object"
|
|
20
20
|
},
|
|
21
|
+
"tenant": {
|
|
22
|
+
"type": "Pointer",
|
|
23
|
+
"targetClass": "{{PREFIX}}Tenant",
|
|
24
|
+
"required": false
|
|
25
|
+
},
|
|
21
26
|
"type": {
|
|
22
27
|
"type": "String"
|
|
23
28
|
},
|
|
24
29
|
"user": {
|
|
25
|
-
"type": "
|
|
30
|
+
"type": "Pointer",
|
|
31
|
+
"targetClass": "_User",
|
|
32
|
+
"required": false
|
|
26
33
|
}
|
|
27
34
|
},
|
|
28
35
|
"classLevelPermissions": {
|