@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.
Files changed (33) hide show
  1. package/dist/app_types/CRON_Types.d.ts +10 -0
  2. package/dist/app_types/CRON_Types.js +2 -0
  3. package/dist/config.js +9 -0
  4. package/dist/featuremap.json +1 -0
  5. package/dist/functions/openinc-openservice-save-ticket-data.d.ts +4 -0
  6. package/dist/functions/openinc-openservice-save-ticket-data.js +47 -8
  7. package/dist/functions/openinc-openservice-ticket-data.d.ts +7 -0
  8. package/dist/functions/openinc-openservice-ticket-data.js +2 -1
  9. package/dist/helper/TranslationKeys.d.ts +82 -0
  10. package/dist/helper/TranslationKeys.js +86 -0
  11. package/dist/hooks/Maintenance_Downtime.js +39 -2
  12. package/dist/hooks/Maintenance_Duedate.js +47 -2
  13. package/dist/hooks/Maintenance_Frequency.js +39 -2
  14. package/dist/hooks/Maintenance_Message.js +429 -1
  15. package/dist/hooks/Maintenance_Priority.js +39 -2
  16. package/dist/hooks/Maintenance_Restriction.js +39 -2
  17. package/dist/hooks/Maintenance_Schedule_Execution.js +36 -0
  18. package/dist/hooks/Maintenance_Schedule_Template.js +66 -23
  19. package/dist/hooks/Maintenance_Ticket_Issuecategory.js +40 -2
  20. package/dist/hooks/Maintenance_Ticket_Kanban_State.js +39 -2
  21. package/dist/hooks/Maintenance_Ticket_Source.js +55 -6
  22. package/dist/hooks/Maintenance_Ticket_Title.js +39 -2
  23. package/dist/hooks/Monitoring_Jobs.js +1 -1
  24. package/dist/index.js +3 -1
  25. package/dist/types/ML_DataSelection.d.ts +16 -0
  26. package/dist/types/ML_DataSelection.js +23 -0
  27. package/dist/types/Monitoring_Jobs.d.ts +8 -3
  28. package/dist/types/Monitoring_Jobs.js +6 -0
  29. package/dist/types/index.d.ts +2 -0
  30. package/dist/types/index.js +4 -2
  31. package/package.json +1 -1
  32. package/schema/ML_DataSelection.json +38 -0
  33. package/schema/Monitoring_Jobs.json +8 -1
@@ -0,0 +1,10 @@
1
+ export type ScheduleType = "quartz" | "human";
2
+ export type ScheduleCronObjectType = {
3
+ scheduletype: ScheduleType;
4
+ run_cron: string;
5
+ run_startdate: Date;
6
+ run_enddate: Date;
7
+ is_week: boolean;
8
+ week_interval: number;
9
+ is_one_time: boolean;
10
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/dist/config.js CHANGED
@@ -233,6 +233,15 @@ const options = {
233
233
  default: "false",
234
234
  description: "Enable Parse Classes and Cloud Code for the MIAAS plugin.",
235
235
  },
236
+ FEATURE_DOCUMENTATION: {
237
+ env: "OPENINC_PARSE_FEATURE_DOCUMENTATION",
238
+ type: "boolean",
239
+ required: false,
240
+ secret: false,
241
+ public: true,
242
+ default: "false",
243
+ description: "Enable Parse Classes and Cloud Code for the Documentation plugin.",
244
+ },
236
245
  FORCE_SCHEMA: {
237
246
  env: "OPENINC_PARSE_FORCE_SCHEMA",
238
247
  type: "boolean",
@@ -71,6 +71,7 @@
71
71
  "OD3_MES_Order": "MONITORING",
72
72
  "OD3_MES_OrderPlan": "MONITORING",
73
73
  "OD3_MIAAS_MDSEndpoint": "MIAAS",
74
+ "OD3_ML_DataSelection": "unknown",
74
75
  "OD3_Monitoring_DataHierachies": "MONITORING",
75
76
  "OD3_Monitoring_Jobs": "MONITORING",
76
77
  "OD3_Monitoring_ParseTableSensor": "MONITORING",
@@ -4,6 +4,10 @@ export type MessageData = {
4
4
  translation?: {
5
5
  [key: string]: any;
6
6
  };
7
+ origin?: {
8
+ id: string | number;
9
+ classname: string;
10
+ };
7
11
  };
8
12
  type MessageField = {
9
13
  title: string;
@@ -53,7 +53,7 @@ async function saveTicketData(data, user) {
53
53
  const ticket = await getTicketObject(data, user, fetchOptions);
54
54
  // needs to be the first save to save a message before data change messages are created on ticket creation
55
55
  if (data.message)
56
- await saveMessage(ticket, data.message, fetchOptions);
56
+ await saveMessage(ticket, data.message, fetchOptions, data);
57
57
  if (data.assignedTo !== undefined)
58
58
  await assignUsersAndRoles(ticket, data.assignedTo, fetchOptions, user);
59
59
  if (data.title)
@@ -74,8 +74,6 @@ async function saveTicketData(data, user) {
74
74
  await saveIssueCategory(ticket, data.issuecategory, fetchOptions);
75
75
  if (data.state)
76
76
  await saveState(ticket, data.state, fetchOptions);
77
- if (data.source)
78
- await saveSource(ticket, data.source, fetchOptions);
79
77
  if (data.media)
80
78
  await saveMedia(ticket, data.media, fetchOptions);
81
79
  // save defaults
@@ -83,6 +81,9 @@ async function saveTicketData(data, user) {
83
81
  await saveDefaultIssueCategory(ticket, fetchOptions);
84
82
  if (!data.state && !data.existingTicketId)
85
83
  await saveDefaultState(ticket, fetchOptions);
84
+ // save source last so the machinelog does not have the initialization messages of the ticket data
85
+ if (data.source)
86
+ await saveSource(ticket, data.source, fetchOptions);
86
87
  return ticket;
87
88
  }
88
89
  async function getTicketObject(value, user, fetchOptions) {
@@ -224,6 +225,11 @@ async function assignUsersAndRoles(ticket, assignedTo, fetchOptions, assigningUs
224
225
  username: getUsername(assigningUser),
225
226
  userList: newUsers.map((u) => `'${u.get("username")}'`).join(", "),
226
227
  roleList: newRoles.map((r) => `'${r.get("label")}'`).join(", "),
228
+ ticketName: ticket.get("title"),
229
+ },
230
+ origin: {
231
+ id: ticket.id,
232
+ classname: ticket.className,
227
233
  },
228
234
  },
229
235
  }).save(null, fetchOptions);
@@ -330,17 +336,50 @@ async function saveSource(ticket, source, fetchOptions) {
330
336
  });
331
337
  await tSource.save(null, fetchOptions);
332
338
  }
333
- async function saveMessage(ticket, message, fetchOptions) {
334
- const msg = new types_1.Maintenance_Message({
339
+ async function saveMessage(ticket, message, fetchOptions, values) {
340
+ // create new message log
341
+ await new types_1.Maintenance_Message({
335
342
  content: message.description,
336
343
  referencedObjectId: ticket.id,
337
344
  classname: types_1.Maintenance_Ticket.className,
338
345
  tenant: ticket.get("tenant"),
339
346
  user: ticket.get("user"),
340
347
  title: message.title,
341
- data: message.data,
342
- });
343
- await msg.save(null, fetchOptions);
348
+ data: {
349
+ origin: { id: ticket.id, classname: ticket.className }, // default
350
+ ...message.data,
351
+ },
352
+ }).save(null, fetchOptions);
353
+ // to machinelog
354
+ // if needed, this saves a message to the machinelog when a message is saved to the ticket
355
+ // this counts for user input and the ticket creation
356
+ // const source = values.source
357
+ // ? await new Parse.Query(Source).get(values.source, fetchOptions)
358
+ // : (await getTicketSource(ticket))?.get("source");
359
+ // if (source) {
360
+ // await new Maintenance_Message({
361
+ // referencedObjectId: source.id,
362
+ // classname: source.className,
363
+ // title: message.title,
364
+ // content: message.description,
365
+ // user: ticket.get("user"),
366
+ // tenant: ticket.get("tenant"),
367
+ // data: {
368
+ // type: "system",
369
+ // translation: {
370
+ // username: getUsername(ticket.get("user") as _User),
371
+ // old: "Nicht vorhanden",
372
+ // new: ticket.get("title"),
373
+ // ticketName: ticket.get("title"),
374
+ // },
375
+ // origin: {
376
+ // id: ticket.id,
377
+ // classname: ticket.className,
378
+ // },
379
+ // ...message.data,
380
+ // } as MessageData,
381
+ // }).save(null, fetchOptions);
382
+ // }
344
383
  }
345
384
  async function saveDefaultIssueCategory(ticket, fetchOptions) {
346
385
  const catchAll = await new Parse.Query(types_1.Maintenance_Issuecategory)
@@ -1,3 +1,4 @@
1
+ import { Maintenance_Ticket, Maintenance_Ticket_Source } from "../types";
1
2
  type FilterParams = {
2
3
  attribute: "objectId" | "state" | "issuecategory" | "user" | "role" | "userRole" | "createdUser" | "source";
3
4
  /**
@@ -20,6 +21,12 @@ export type FetchParams = {
20
21
  config: Array<FetchObject>;
21
22
  };
22
23
  export declare function init(name: string): Promise<void>;
24
+ /**
25
+ * Fetches the source for a ticket
26
+ * @param ticket
27
+ * @param ticketIds
28
+ */
29
+ export declare function getTicketSource(ticket: Maintenance_Ticket): Promise<Maintenance_Ticket_Source | undefined>;
23
30
  /**
24
31
  * Creates a distinct array based on the getId function and can afterwards filter the array
25
32
  * @param arr the array to get distinct values from
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = init;
4
+ exports.getTicketSource = getTicketSource;
4
5
  exports.arrayToDistinct = arrayToDistinct;
5
6
  const catchError_1 = require("../helper/catchError");
6
7
  const types_1 = require("../types");
@@ -126,7 +127,7 @@ async function getTicketData(tickets) {
126
127
  source: dataPromises[6]?.get("source"),
127
128
  state: dataPromises[7]?.get("state"),
128
129
  dailySchedule: dataPromises[8],
129
- messages: dataPromises[9].messages,
130
+ messages: dataPromises[9]?.messages,
130
131
  assignedTo: [...assignedusers, ...assignedroles],
131
132
  };
132
133
  });
@@ -0,0 +1,82 @@
1
+ export declare class MessageTranslationKeys {
2
+ static TICKETLOG: {
3
+ TITLE: {
4
+ TITLE: string;
5
+ CONTENT: string;
6
+ };
7
+ PRIORITY: {
8
+ TITLE: string;
9
+ CONTENT: string;
10
+ };
11
+ DUEDATE: {
12
+ TITLE: string;
13
+ CONTENT: string;
14
+ };
15
+ FREQUENCY: {
16
+ TITLE: string;
17
+ CONTENT: string;
18
+ };
19
+ ISSUECATEGORY: {
20
+ TITLE: string;
21
+ CONTENT: string;
22
+ };
23
+ KANBANSTATE: {
24
+ TITLE: string;
25
+ CONTENT: string;
26
+ };
27
+ RESTRICTION: {
28
+ TITLE: string;
29
+ CONTENT: string;
30
+ };
31
+ SOURCE: {
32
+ TITLE: string;
33
+ CONTENT: string;
34
+ };
35
+ DOWNTIME: {
36
+ TITLE: string;
37
+ CONTENT: string;
38
+ };
39
+ };
40
+ static MACHINELOG: {
41
+ TITLE: {
42
+ TITLE: string;
43
+ CONTENT: string;
44
+ };
45
+ PRIORITY: {
46
+ TITLE: string;
47
+ CONTENT: string;
48
+ };
49
+ DUEDATE: {
50
+ TITLE: string;
51
+ CONTENT: string;
52
+ };
53
+ FREQUENCY: {
54
+ TITLE: string;
55
+ CONTENT: string;
56
+ };
57
+ ISSUECATEGORY: {
58
+ TITLE: string;
59
+ CONTENT: string;
60
+ };
61
+ KANBANSTATE: {
62
+ TITLE: string;
63
+ CONTENT: string;
64
+ };
65
+ RESTRICTION: {
66
+ TITLE: string;
67
+ CONTENT: string;
68
+ };
69
+ SOURCE: {
70
+ TITLE: string;
71
+ CONTENT: string;
72
+ };
73
+ DOWNTIME: {
74
+ TITLE: string;
75
+ CONTENT: string;
76
+ };
77
+ SCHEDULEEXECUTION: {
78
+ TITLE: string;
79
+ CONTENT: string;
80
+ };
81
+ };
82
+ }
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageTranslationKeys = void 0;
4
+ class MessageTranslationKeys {
5
+ }
6
+ exports.MessageTranslationKeys = MessageTranslationKeys;
7
+ MessageTranslationKeys.TICKETLOG = {
8
+ TITLE: {
9
+ TITLE: "maintenance:ticket.message.title.changed.title",
10
+ CONTENT: "maintenance:ticket.message.title.changed.content",
11
+ },
12
+ PRIORITY: {
13
+ TITLE: "maintenance:ticket.message.priority.changed.title",
14
+ CONTENT: "maintenance:ticket.message.priority.changed.content",
15
+ },
16
+ DUEDATE: {
17
+ TITLE: "maintenance:ticket.message.duedate.changed.title",
18
+ CONTENT: "maintenance:ticket.message.duedate.changed.content",
19
+ },
20
+ FREQUENCY: {
21
+ TITLE: "maintenance:ticket.message.frequency.changed.title",
22
+ CONTENT: "maintenance:ticket.message.frequency.changed.content",
23
+ },
24
+ ISSUECATEGORY: {
25
+ TITLE: "maintenance:ticket.message.issuecategory.changed.title",
26
+ CONTENT: "maintenance:ticket.message.issuecategory.changed.content",
27
+ },
28
+ KANBANSTATE: {
29
+ TITLE: "maintenance:ticket.message.kanbanstate.changed.title",
30
+ CONTENT: "maintenance:ticket.message.kanbanstate.changed.content",
31
+ },
32
+ RESTRICTION: {
33
+ TITLE: "maintenance:ticket.message.restriction.changed.title",
34
+ CONTENT: "maintenance:ticket.message.restriction.changed.content",
35
+ },
36
+ SOURCE: {
37
+ TITLE: "maintenance:ticket.message.source.changed.title",
38
+ CONTENT: "maintenance:ticket.message.source.changed.content",
39
+ },
40
+ DOWNTIME: {
41
+ TITLE: "maintenance:ticket.message.downtime.changed.title",
42
+ CONTENT: "maintenance:ticket.message.downtime.changed.content",
43
+ },
44
+ };
45
+ MessageTranslationKeys.MACHINELOG = {
46
+ TITLE: {
47
+ TITLE: "maintenance:machinelog.message.title.changed.title",
48
+ CONTENT: "maintenance:machinelog.message.title.changed.content",
49
+ },
50
+ PRIORITY: {
51
+ TITLE: "maintenance:machinelog.message.priority.changed.title",
52
+ CONTENT: "maintenance:machinelog.message.priority.changed.content",
53
+ },
54
+ DUEDATE: {
55
+ TITLE: "maintenance:machinelog.message.duedate.changed.title",
56
+ CONTENT: "maintenance:machinelog.message.duedate.changed.content",
57
+ },
58
+ FREQUENCY: {
59
+ TITLE: "maintenance:machinelog.message.frequency.changed.title",
60
+ CONTENT: "maintenance:machinelog.message.frequency.changed.content",
61
+ },
62
+ ISSUECATEGORY: {
63
+ TITLE: "maintenance:machinelog.message.issuecategory.changed.title",
64
+ CONTENT: "maintenance:machinelog.message.issuecategory.changed.content",
65
+ },
66
+ KANBANSTATE: {
67
+ TITLE: "maintenance:machinelog.message.kanbanstate.changed.title",
68
+ CONTENT: "maintenance:machinelog.message.kanbanstate.changed.content",
69
+ },
70
+ RESTRICTION: {
71
+ TITLE: "maintenance:machinelog.message.restriction.changed.title",
72
+ CONTENT: "maintenance:machinelog.message.restriction.changed.content",
73
+ },
74
+ SOURCE: {
75
+ TITLE: "maintenance:machinelog.message.source.changed.title",
76
+ CONTENT: "maintenance:machinelog.message.source.changed.content",
77
+ },
78
+ DOWNTIME: {
79
+ TITLE: "maintenance:machinelog.message.downtime.changed.title",
80
+ CONTENT: "maintenance:machinelog.message.downtime.changed.content",
81
+ },
82
+ SCHEDULEEXECUTION: {
83
+ TITLE: "maintenance:schedule.message.execution.title",
84
+ CONTENT: "maintenance:schedule.message.execution.content",
85
+ },
86
+ };
@@ -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 = "maintenance:ticket.message.downtime.changed.title";
10
- const TRANSLATION_CONTENT = "maintenance:ticket.message.downtime.changed.content";
11
+ const TRANSLATION_TITLE = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.DOWNTIME.TITLE;
12
+ const TRANSLATION_CONTENT = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.DOWNTIME.CONTENT;
13
+ const TRANSLATION_TITLE_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.DOWNTIME.TITLE;
14
+ const TRANSLATION_CONTENT_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.DOWNTIME.CONTENT;
11
15
  async function init() {
12
16
  (0, __1.beforeSaveHook)(types_1.Maintenance_Downtime, async (request) => {
13
17
  const { object, original, user } = request;
@@ -34,6 +38,10 @@ async function init() {
34
38
  }, (first, second) => {
35
39
  return first.get("value") === second.get("value");
36
40
  });
41
+ // fetch necessary data
42
+ await savedObject.fetchWithInclude(["ticket"], {
43
+ useMasterKey: true,
44
+ });
37
45
  const previous = await new Parse.Query(types_1.Maintenance_Downtime)
38
46
  .includeAll()
39
47
  .equalTo("ticket", savedObject.get("ticket"))
@@ -55,7 +63,36 @@ async function init() {
55
63
  old: previous?.get("value") ?? "Nicht vorhanden",
56
64
  new: savedObject?.get("value"),
57
65
  },
66
+ origin: {
67
+ id: savedObject.id,
68
+ classname: savedObject.className,
69
+ },
58
70
  },
59
71
  }).save(null, { useMasterKey: true });
72
+ // to machinelog
73
+ const source = (await (0, openinc_openservice_ticket_data_1.getTicketSource)(savedObject.get("ticket")))?.get("source");
74
+ if (source) {
75
+ await new types_1.Maintenance_Message({
76
+ referencedObjectId: source?.id,
77
+ classname: source?.className,
78
+ title: TRANSLATION_TITLE_MACHINELOG,
79
+ content: TRANSLATION_CONTENT_MACHINELOG,
80
+ user: user,
81
+ tenant: user?.get("tenant"),
82
+ data: {
83
+ type: "system",
84
+ translation: {
85
+ username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
86
+ old: previous?.get("value") ?? "Nicht vorhanden",
87
+ new: savedObject?.get("value"),
88
+ ticketName: savedObject.get("ticket")?.get("title"),
89
+ },
90
+ origin: {
91
+ id: savedObject.get("ticket")?.id,
92
+ classname: savedObject.get("ticket")?.className,
93
+ },
94
+ },
95
+ }).save(null, { useMasterKey: true });
96
+ }
60
97
  });
61
98
  }
@@ -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 = "maintenance:ticket.message.duedate.changed.title";
10
- const TRANSLATION_CONTENT = "maintenance:ticket.message.duedate.changed.content";
11
+ const TRANSLATION_TITLE = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.DUEDATE.TITLE;
12
+ const TRANSLATION_CONTENT = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.DUEDATE.CONTENT;
13
+ const TRANSLATION_TITLE_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.DUEDATE.TITLE;
14
+ const TRANSLATION_CONTENT_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.DUEDATE.CONTENT;
11
15
  async function init() {
12
16
  (0, __1.beforeSaveHook)(types_1.Maintenance_Duedate, async (request) => {
13
17
  const { object, original, user } = request;
@@ -34,6 +38,10 @@ async function init() {
34
38
  }, (first, second) => {
35
39
  return first.get("end")?.getTime() === second.get("end")?.getTime();
36
40
  });
41
+ // fetch necessary data
42
+ await savedObject.fetchWithInclude(["ticket"], {
43
+ useMasterKey: true,
44
+ });
37
45
  const previous = await new Parse.Query(types_1.Maintenance_Duedate)
38
46
  .includeAll()
39
47
  .equalTo("ticket", savedObject.get("ticket"))
@@ -69,7 +77,44 @@ async function init() {
69
77
  newend: savedObject?.get("end")?.toLocaleDateString("de-DE", dateFormat) ??
70
78
  "Nicht vorhanden",
71
79
  },
80
+ origin: {
81
+ id: savedObject.id,
82
+ classname: savedObject.className,
83
+ },
72
84
  },
73
85
  }).save(null, { useMasterKey: true });
86
+ // to machinelog
87
+ const source = (await (0, openinc_openservice_ticket_data_1.getTicketSource)(savedObject.get("ticket")))?.get("source");
88
+ if (source) {
89
+ await new types_1.Maintenance_Message({
90
+ referencedObjectId: source?.id,
91
+ classname: source?.className,
92
+ title: TRANSLATION_TITLE_MACHINELOG,
93
+ content: TRANSLATION_CONTENT_MACHINELOG,
94
+ user: user,
95
+ tenant: user?.get("tenant"),
96
+ data: {
97
+ type: "system",
98
+ translation: {
99
+ username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
100
+ oldstart: previous?.get("start")?.toLocaleDateString("de-DE", dateFormat) ??
101
+ "Nicht vorhanden",
102
+ oldend: previous?.get("end")?.toLocaleDateString("de-DE", dateFormat) ??
103
+ "Nicht vorhanden",
104
+ newstart: savedObject
105
+ ?.get("start")
106
+ ?.toLocaleDateString("de-DE", dateFormat) ?? "Nicht vorhanden",
107
+ newend: savedObject
108
+ ?.get("end")
109
+ ?.toLocaleDateString("de-DE", dateFormat) ?? "Nicht vorhanden",
110
+ ticketName: savedObject.get("ticket")?.get("title"),
111
+ },
112
+ origin: {
113
+ id: savedObject.get("ticket")?.id,
114
+ classname: savedObject.get("ticket")?.className,
115
+ },
116
+ },
117
+ }).save(null, { useMasterKey: true });
118
+ }
74
119
  });
75
120
  }
@@ -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 = "maintenance:ticket.message.frequency.changed.title";
10
- const TRANSLATION_CONTENT = "maintenance:ticket.message.frequency.changed.content";
11
+ const TRANSLATION_TITLE = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.FREQUENCY.TITLE;
12
+ const TRANSLATION_CONTENT = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.FREQUENCY.CONTENT;
13
+ const TRANSLATION_TITLE_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.FREQUENCY.TITLE;
14
+ const TRANSLATION_CONTENT_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.FREQUENCY.CONTENT;
11
15
  async function init() {
12
16
  (0, __1.beforeSaveHook)(types_1.Maintenance_Frequency, async (request) => {
13
17
  const { object, original, user } = request;
@@ -34,6 +38,10 @@ async function init() {
34
38
  }, (first, second) => {
35
39
  return first.get("value") === second.get("value");
36
40
  });
41
+ // fetch necessary data
42
+ await savedObject.fetchWithInclude(["ticket"], {
43
+ useMasterKey: true,
44
+ });
37
45
  const previous = await new Parse.Query(types_1.Maintenance_Frequency)
38
46
  .includeAll()
39
47
  .equalTo("ticket", savedObject.get("ticket"))
@@ -55,7 +63,36 @@ async function init() {
55
63
  old: previous?.get("value") ?? "Nicht vorhanden",
56
64
  new: savedObject?.get("value"),
57
65
  },
66
+ origin: {
67
+ id: savedObject.id,
68
+ classname: savedObject.className,
69
+ },
58
70
  },
59
71
  }).save(null, { useMasterKey: true });
72
+ // to machinelog
73
+ const source = (await (0, openinc_openservice_ticket_data_1.getTicketSource)(savedObject.get("ticket")))?.get("source");
74
+ if (source) {
75
+ await new types_1.Maintenance_Message({
76
+ referencedObjectId: source?.id,
77
+ classname: source?.className,
78
+ title: TRANSLATION_TITLE_MACHINELOG,
79
+ content: TRANSLATION_CONTENT_MACHINELOG,
80
+ user: user,
81
+ tenant: user?.get("tenant"),
82
+ data: {
83
+ type: "system",
84
+ translation: {
85
+ username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
86
+ old: previous?.get("value") ?? "Nicht vorhanden",
87
+ new: savedObject?.get("value"),
88
+ ticketName: savedObject.get("ticket")?.get("title"),
89
+ },
90
+ origin: {
91
+ id: savedObject.get("ticket")?.id,
92
+ classname: savedObject.get("ticket")?.className,
93
+ },
94
+ },
95
+ }).save(null, { useMasterKey: true });
96
+ }
60
97
  });
61
98
  }