@openinc/parse-server-opendash 2.4.94 → 2.4.96

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 (42) 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/functions/openinc-openservice-save-ticket-data.d.ts +10 -6
  4. package/dist/functions/openinc-openservice-save-ticket-data.js +99 -16
  5. package/dist/functions/openinc-openservice-ticket-data.d.ts +16 -1
  6. package/dist/functions/openinc-openservice-ticket-data.js +7 -1
  7. package/dist/helper/BreeInstance.d.ts +16 -0
  8. package/dist/helper/BreeInstance.js +78 -0
  9. package/dist/helper/TranslationKeys.d.ts +82 -0
  10. package/dist/helper/TranslationKeys.js +86 -0
  11. package/dist/helper/removeShorltyPreviousEntry.d.ts +2 -2
  12. package/dist/helper/removeShorltyPreviousEntry.js +6 -2
  13. package/dist/hooks/Maintenance_Downtime.js +69 -2
  14. package/dist/hooks/Maintenance_Duedate.js +91 -3
  15. package/dist/hooks/Maintenance_Frequency.js +69 -3
  16. package/dist/hooks/Maintenance_Kanban_State.js +10 -0
  17. package/dist/hooks/Maintenance_Message.d.ts +7 -0
  18. package/dist/hooks/Maintenance_Message.js +467 -1
  19. package/dist/hooks/Maintenance_Priority.js +71 -4
  20. package/dist/hooks/Maintenance_Restriction.js +72 -3
  21. package/dist/hooks/Maintenance_Schedule_Execution.js +36 -0
  22. package/dist/hooks/Maintenance_Schedule_Template.js +73 -105
  23. package/dist/hooks/Maintenance_Ticket_Issuecategory.js +74 -4
  24. package/dist/hooks/Maintenance_Ticket_Kanban_State.js +78 -12
  25. package/dist/hooks/Maintenance_Ticket_Source.js +84 -5
  26. package/dist/hooks/Maintenance_Ticket_Title.js +69 -3
  27. package/dist/hooks/Permission.js +0 -26
  28. package/dist/index.js +51 -0
  29. package/dist/jobs/index.d.ts +0 -0
  30. package/dist/jobs/index.js +2 -0
  31. package/dist/types/ML_DataSelection.d.ts +16 -0
  32. package/dist/types/ML_DataSelection.js +23 -0
  33. package/dist/types/Maintenance_Kanban_State.d.ts +3 -0
  34. package/dist/types/Maintenance_Kanban_State.js +6 -0
  35. package/dist/types/Maintenance_Schedule_Template.d.ts +3 -0
  36. package/dist/types/Maintenance_Schedule_Template.js +6 -0
  37. package/dist/types/index.d.ts +2 -0
  38. package/dist/types/index.js +4 -2
  39. package/package.json +1 -1
  40. package/schema/ML_DataSelection.json +38 -0
  41. package/schema/Maintenance_Kanban_State.json +5 -0
  42. package/schema/Maintenance_Schedule_Template.json +4 -0
@@ -2,24 +2,35 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = init;
4
4
  const __1 = require("..");
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");
5
7
  const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
8
+ const TranslationKeys_1 = require("../helper/TranslationKeys");
6
9
  const types_1 = require("../types");
10
+ const Maintenance_Message_1 = require("./Maintenance_Message");
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;
7
15
  async function init() {
8
16
  (0, __1.beforeSaveHook)(types_1.Maintenance_Duedate, async (request) => {
9
17
  const { object, original, user } = request;
10
18
  await (0, __1.defaultHandler)(request);
11
19
  await (0, __1.defaultAclHandler)(request);
12
20
  // Remove previous entry if it was created within 5 minutes
13
- await (0, removeShorltyPreviousEntry_1.removeShortlyPreviousEntry)(object, (query) => {
21
+ const removedEntry = await (0, removeShorltyPreviousEntry_1.removeShortlyPreviousEntry)(object, (query) => {
14
22
  query.equalTo("ticket", object.get("ticket"));
15
23
  query.descending("createdAt");
16
24
  return query;
17
25
  });
26
+ // if an entry was removed, remove the message as well
27
+ if (removedEntry)
28
+ (0, Maintenance_Message_1.removeLatestMessage)(removedEntry, TRANSLATION_TITLE, TRANSLATION_CONTENT);
18
29
  });
19
30
  (0, __1.afterSaveHook)(types_1.Maintenance_Duedate, async (request) => {
20
31
  const { object, original, user } = request;
21
32
  // Remove entry if it has the same values as the previous entry so its simply reverted to the already existing entry
22
- await (0, removeShorltyPreviousEntry_1.removeEqualSaved)(object, (query) => {
33
+ const savedObject = await (0, removeShorltyPreviousEntry_1.removeEqualSaved)(object, (query) => {
23
34
  query.includeAll();
24
35
  query.equalTo("ticket", object.get("ticket"));
25
36
  query.notEqualTo("objectId", object.id);
@@ -27,6 +38,83 @@ async function init() {
27
38
  }, (first, second) => {
28
39
  return first.get("end")?.getTime() === second.get("end")?.getTime();
29
40
  });
30
- // TODO
41
+ // fetch necessary data
42
+ await savedObject.fetchWithInclude(["ticket"], {
43
+ useMasterKey: true,
44
+ });
45
+ const previous = await new Parse.Query(types_1.Maintenance_Duedate)
46
+ .includeAll()
47
+ .equalTo("ticket", savedObject.get("ticket"))
48
+ .notEqualTo("objectId", savedObject.id)
49
+ .descending("createdAt")
50
+ .first({ useMasterKey: true });
51
+ const dateFormat = {
52
+ year: "numeric",
53
+ month: "2-digit",
54
+ day: "2-digit",
55
+ hour: "2-digit",
56
+ minute: "2-digit",
57
+ };
58
+ // create new message log
59
+ await new types_1.Maintenance_Message({
60
+ referencedObjectId: savedObject.get("ticket")?.id,
61
+ classname: savedObject.get("ticket")?.className,
62
+ title: TRANSLATION_TITLE,
63
+ content: TRANSLATION_CONTENT,
64
+ user: user,
65
+ tenant: user?.get("tenant"),
66
+ data: {
67
+ type: "system",
68
+ translation: {
69
+ username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
70
+ oldstart: previous?.get("start")?.toLocaleDateString("de-DE", dateFormat) ??
71
+ "Nicht vorhanden",
72
+ oldend: previous?.get("end")?.toLocaleDateString("de-DE", dateFormat) ??
73
+ "Nicht vorhanden",
74
+ newstart: savedObject
75
+ ?.get("start")
76
+ ?.toLocaleDateString("de-DE", dateFormat) ?? "Nicht vorhanden",
77
+ newend: savedObject?.get("end")?.toLocaleDateString("de-DE", dateFormat) ??
78
+ "Nicht vorhanden",
79
+ },
80
+ origin: {
81
+ id: savedObject.id,
82
+ classname: savedObject.className,
83
+ },
84
+ },
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
+ }
31
119
  });
32
120
  }
@@ -2,24 +2,35 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.init = init;
4
4
  const __1 = require("..");
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");
5
7
  const removeShorltyPreviousEntry_1 = require("../helper/removeShorltyPreviousEntry");
8
+ const TranslationKeys_1 = require("../helper/TranslationKeys");
6
9
  const types_1 = require("../types");
10
+ const Maintenance_Message_1 = require("./Maintenance_Message");
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;
7
15
  async function init() {
8
16
  (0, __1.beforeSaveHook)(types_1.Maintenance_Frequency, async (request) => {
9
17
  const { object, original, user } = request;
10
18
  await (0, __1.defaultHandler)(request);
11
19
  await (0, __1.defaultAclHandler)(request);
12
20
  // Remove previous entry if it was created within 5 minutes
13
- await (0, removeShorltyPreviousEntry_1.removeShortlyPreviousEntry)(object, (query) => {
21
+ const removedEntry = await (0, removeShorltyPreviousEntry_1.removeShortlyPreviousEntry)(object, (query) => {
14
22
  query.equalTo("ticket", object.get("ticket"));
15
23
  query.descending("createdAt");
16
24
  return query;
17
25
  });
26
+ // if an entry was removed, remove the message as well
27
+ if (removedEntry)
28
+ (0, Maintenance_Message_1.removeLatestMessage)(removedEntry, TRANSLATION_TITLE, TRANSLATION_CONTENT);
18
29
  });
19
30
  (0, __1.afterSaveHook)(types_1.Maintenance_Frequency, async (request) => {
20
31
  const { object, original, user } = request;
21
32
  // Remove entry if it has the same values as the previous entry so its simply reverted to the already existing entry
22
- await (0, removeShorltyPreviousEntry_1.removeEqualSaved)(object, (query) => {
33
+ const savedObject = await (0, removeShorltyPreviousEntry_1.removeEqualSaved)(object, (query) => {
23
34
  query.includeAll();
24
35
  query.equalTo("ticket", object.get("ticket"));
25
36
  query.notEqualTo("objectId", object.id);
@@ -27,6 +38,61 @@ async function init() {
27
38
  }, (first, second) => {
28
39
  return first.get("value") === second.get("value");
29
40
  });
30
- // TODO
41
+ // fetch necessary data
42
+ await savedObject.fetchWithInclude(["ticket"], {
43
+ useMasterKey: true,
44
+ });
45
+ const previous = await new Parse.Query(types_1.Maintenance_Frequency)
46
+ .includeAll()
47
+ .equalTo("ticket", savedObject.get("ticket"))
48
+ .notEqualTo("objectId", savedObject.id)
49
+ .descending("createdAt")
50
+ .first({ useMasterKey: true });
51
+ // create new message log
52
+ await new types_1.Maintenance_Message({
53
+ referencedObjectId: savedObject.get("ticket")?.id,
54
+ classname: savedObject.get("ticket")?.className,
55
+ title: TRANSLATION_TITLE,
56
+ content: TRANSLATION_CONTENT,
57
+ user: user,
58
+ tenant: user?.get("tenant"),
59
+ data: {
60
+ type: "system",
61
+ translation: {
62
+ username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
63
+ old: previous?.get("value") ?? "Nicht vorhanden",
64
+ new: savedObject?.get("value"),
65
+ },
66
+ origin: {
67
+ id: savedObject.id,
68
+ classname: savedObject.className,
69
+ },
70
+ },
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
+ }
31
97
  });
32
98
  }
@@ -4,6 +4,7 @@ exports.init = init;
4
4
  const __1 = require("..");
5
5
  const types_1 = require("../types");
6
6
  async function init() {
7
+ initEnabledFlag();
7
8
  (0, __1.beforeSaveHook)(types_1.Maintenance_Kanban_State, async (request) => {
8
9
  const { object, original, user } = request;
9
10
  await (0, __1.defaultHandler)(request);
@@ -15,3 +16,12 @@ async function init() {
15
16
  // TODO
16
17
  });
17
18
  }
19
+ async function initEnabledFlag() {
20
+ const objects = await new Parse.Query(types_1.Maintenance_Kanban_State)
21
+ .limit(1000000000)
22
+ .find({ useMasterKey: true });
23
+ const promises = objects.map((object) => {
24
+ object.save({ enabled: object.enabled === undefined ? true : object.enabled }, { useMasterKey: true });
25
+ });
26
+ await Promise.all(promises);
27
+ }
@@ -1 +1,8 @@
1
1
  export declare function init(): Promise<void>;
2
+ /**
3
+ * Removes the latest message. as context the title and content are used (should be translation strings)
4
+ * @param entry the entry to remove the message for
5
+ * @param title translation string for the title
6
+ * @param content translation string for the content
7
+ */
8
+ export declare function removeLatestMessage(entry: Parse.Object, title: string, content: string): Promise<boolean>;