@openinc/parse-server-opendash 2.4.100 → 2.4.101

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.
@@ -53,6 +53,7 @@
53
53
  "OD3_Maintenance_Message_Body": "MAINTENANCE",
54
54
  "OD3_Maintenance_Order": "MAINTENANCE",
55
55
  "OD3_Maintenance_Priority": "MAINTENANCE",
56
+ "OD3_Maintenance_Project": "MAINTENANCE",
56
57
  "OD3_Maintenance_Restriction": "MAINTENANCE",
57
58
  "OD3_Maintenance_Schedule_Execution": "MAINTENANCE",
58
59
  "OD3_Maintenance_Schedule_Execution_Step": "MAINTENANCE",
@@ -66,6 +67,7 @@
66
67
  "OD3_Maintenance_Ticket_Kanban_State": "MAINTENANCE",
67
68
  "OD3_Maintenance_Ticket_Kanban_State_Current": "MAINTENANCE",
68
69
  "OD3_Maintenance_Ticket_Material": "MAINTENANCE",
70
+ "OD3_Maintenance_Ticket_Project": "MAINTENANCE",
69
71
  "OD3_Maintenance_Ticket_Source": "MAINTENANCE",
70
72
  "OD3_Maintenance_Ticket_Title": "MAINTENANCE",
71
73
  "OD3_MES_Article": "MONITORING",
@@ -38,6 +38,7 @@ type Values = {
38
38
  state?: string;
39
39
  dailySchedule?: string;
40
40
  material?: Material[];
41
+ project?: string;
41
42
  };
42
43
  export declare function getUsername(user: _User | undefined): string;
43
44
  export declare function init(name: string): Promise<void>;
@@ -118,6 +118,8 @@ async function saveTicketData(data, user) {
118
118
  await saveMedia(ticket, data.media, fetchOptions);
119
119
  if (data.material)
120
120
  await saveMaterial(ticket, data.material, fetchOptions);
121
+ if (data.project)
122
+ await saveTicketProject(ticket, data.project, fetchOptions);
121
123
  // save defaults
122
124
  if (!data.issuecategory && !data.existingTicketId)
123
125
  await saveDefaultIssueCategory(ticket, fetchOptions);
@@ -283,8 +285,6 @@ async function assignUsersAndRoles(ticket, assignedTo, fetchOptions, assigningUs
283
285
  .find(fetchOptions);
284
286
  ticket.relation("assignedusers").remove(assignedUsers);
285
287
  ticket.relation("assignedroles").remove(assignedroles);
286
- await ticket.save(null, fetchOptions);
287
- await ticket.save(null, fetchOptions);
288
288
  const assignments = [];
289
289
  const batchTime = new Date();
290
290
  const ids = assignedTo.map((a) => a.id);
@@ -296,6 +296,7 @@ async function assignUsersAndRoles(ticket, assignedTo, fetchOptions, assigningUs
296
296
  .find(fetchOptions);
297
297
  ticket.relation("assignedusers").add(newUsers);
298
298
  ticket.relation("assignedroles").add(newRoles);
299
+ await ticket.save(null, fetchOptions);
299
300
  if (newRoles.length === 0 && newUsers.length === 0) {
300
301
  assignments.push(new types_1.Maintenance_Ticket_Assignment({
301
302
  ticket,
@@ -550,6 +551,22 @@ async function saveMaterial(ticket, material, fetchOptions) {
550
551
  });
551
552
  await materialObject.save(null, fetchOptions);
552
553
  }
554
+ async function saveTicketProject(ticket, project, fetchOptions) {
555
+ const projectObj = await new Parse.Query(types_1.Maintenance_Project).get(project);
556
+ if (!projectObj)
557
+ throw new Error("Project not found");
558
+ const ticketProjectObject = new types_1.Maintenance_Ticket_Project({
559
+ ticket,
560
+ project: projectObj,
561
+ tenant: ticket.get("tenant"),
562
+ user: ticket.get("user"),
563
+ });
564
+ await ticketProjectObject.save(null, fetchOptions);
565
+ ticket.set("project", new types_1.Maintenance_Project({ objectId: project }));
566
+ await ticket.save(null, fetchOptions);
567
+ projectObj.relation("tickets").add(ticket);
568
+ await projectObj.save(null, fetchOptions);
569
+ }
553
570
  async function saveDefaultIssueCategory(ticket, fetchOptions) {
554
571
  const catchAll = await new Parse.Query(types_1.Maintenance_Issuecategory)
555
572
  .equalTo("catchall", true)
@@ -1,6 +1,6 @@
1
1
  import { Maintenance_Ticket, Maintenance_Ticket_Material, Maintenance_Ticket_Source } from "../types";
2
2
  type FilterParams = {
3
- attribute: "objectId" | "state" | "issuecategory" | "user" | "role" | "userRole" | "createdUser" | "source";
3
+ attribute: "objectId" | "state" | "issuecategory" | "user" | "role" | "userRole" | "createdUser" | "source" | "project";
4
4
  /**
5
5
  * the objectId of the attribute to filter by
6
6
  */
@@ -19,7 +19,9 @@ async function handleRequest(request) {
19
19
  try {
20
20
  const queries = [];
21
21
  for await (const config of request.params.config) {
22
- let ticketQuery = new Parse.Query(types_1.Maintenance_Ticket).equalTo("enabled", true);
22
+ let ticketQuery = new Parse.Query(types_1.Maintenance_Ticket)
23
+ .equalTo("enabled", true)
24
+ .includeAll();
23
25
  // apply filters defined in the filterQueryMap depending on the request
24
26
  if (config.filterBy?.filter.length) {
25
27
  const filterQueries = [];
@@ -334,6 +336,10 @@ const filterQueryMap = {
334
336
  query.include("user");
335
337
  query.equalTo("user", new Parse.User({ objectId: value }));
336
338
  },
339
+ project: async (query, value) => {
340
+ query.include("project");
341
+ query.equalTo("project", new types_1.Maintenance_Project({ objectId: value }));
342
+ },
337
343
  };
338
344
  /**
339
345
  * Creates a distinct array based on the getId function and can afterwards filter the array
@@ -40,6 +40,10 @@ export declare class MessageTranslationKeys {
40
40
  TITLE: string;
41
41
  CONTENT: string;
42
42
  };
43
+ PROJECT: {
44
+ TITLE: string;
45
+ CONTENT: string;
46
+ };
43
47
  };
44
48
  static MACHINELOG: {
45
49
  TITLE: {
@@ -86,5 +90,9 @@ export declare class MessageTranslationKeys {
86
90
  TITLE: string;
87
91
  CONTENT: string;
88
92
  };
93
+ PROJECT: {
94
+ TITLE: string;
95
+ CONTENT: string;
96
+ };
89
97
  };
90
98
  }
@@ -45,6 +45,10 @@ MessageTranslationKeys.TICKETLOG = {
45
45
  TITLE: "maintenance:ticket.message.material.changed.title",
46
46
  CONTENT: "maintenance:ticket.message.material.changed.content",
47
47
  },
48
+ PROJECT: {
49
+ TITLE: "maintenance:ticket.message.project.changed.title",
50
+ CONTENT: "maintenance:ticket.message.project.changed.content",
51
+ },
48
52
  };
49
53
  MessageTranslationKeys.MACHINELOG = {
50
54
  TITLE: {
@@ -91,4 +95,8 @@ MessageTranslationKeys.MACHINELOG = {
91
95
  TITLE: "maintenance:machinelog.message.material.changed.title",
92
96
  CONTENT: "maintenance:machinelog.message.material.changed.content",
93
97
  },
98
+ PROJECT: {
99
+ TITLE: "maintenance:machinelog.message.project.changed.title",
100
+ CONTENT: "maintenance:machinelog.message.project.changed.content",
101
+ },
94
102
  };
@@ -112,6 +112,7 @@ async function convertTicketDataToMessages() {
112
112
  await ticketDuedateToMessage(timeMap);
113
113
  await ticketTitleToMessage(timeMap);
114
114
  await ticketMaterialToMessage(timeMap);
115
+ await ticketProjectToMessage(timeMap);
115
116
  }
116
117
  async function convertToMessage(config) {
117
118
  const entries = await new Parse.Query(config.className)
@@ -473,6 +474,24 @@ async function ticketTitleToMessage(timeMap) {
473
474
  isValueValid: (entry) => !!entry.get("title"),
474
475
  });
475
476
  }
477
+ async function ticketProjectToMessage(timeMap) {
478
+ console.log("=================================");
479
+ console.log("Creating ticket project messages");
480
+ console.log("=================================");
481
+ await convertToMessage({
482
+ className: types_1.Maintenance_Ticket_Project.className,
483
+ timeMap: timeMap,
484
+ ticketTranslation: TranslationKeys_1.MessageTranslationKeys.TICKETLOG.PROJECT,
485
+ machinelogTranslation: TranslationKeys_1.MessageTranslationKeys.MACHINELOG.PROJECT,
486
+ getTranslationData: (entry, prev) => {
487
+ return {
488
+ old: prev?.get("project")?.get("name") ?? "Nicht vorhanden",
489
+ new: entry.get("project")?.get("name") ?? "Nicht vorhanden",
490
+ };
491
+ },
492
+ isValueValid: (entry) => !!entry.get("ticket"),
493
+ });
494
+ }
476
495
  async function convertScheduleExecutionToMessage() {
477
496
  console.log("=================================");
478
497
  console.log("Creating schedule execution messages");
@@ -0,0 +1 @@
1
+ export declare function init(): Promise<void>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = init;
4
+ const __1 = require("..");
5
+ const types_1 = require("../types");
6
+ async function init() {
7
+ (0, __1.beforeSaveHook)(types_1.Maintenance_Project, async (request) => {
8
+ const { object, original, user } = request;
9
+ await (0, __1.defaultHandler)(request);
10
+ await (0, __1.defaultAclHandler)(request);
11
+ // TODO
12
+ });
13
+ (0, __1.afterSaveHook)(types_1.Maintenance_Project, async (request) => {
14
+ const { object, original, user } = request;
15
+ // TODO
16
+ });
17
+ }
@@ -0,0 +1 @@
1
+ export declare function init(): Promise<void>;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.init = init;
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");
7
+ const TranslationKeys_1 = require("../helper/TranslationKeys");
8
+ const types_1 = require("../types");
9
+ const TRANSLATION_TITLE = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.PROJECT.TITLE;
10
+ const TRANSLATION_CONTENT = TranslationKeys_1.MessageTranslationKeys.TICKETLOG.PROJECT.CONTENT;
11
+ const TRANSLATION_TITLE_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.PROJECT.TITLE;
12
+ const TRANSLATION_CONTENT_MACHINELOG = TranslationKeys_1.MessageTranslationKeys.MACHINELOG.PROJECT.CONTENT;
13
+ async function init() {
14
+ (0, __1.beforeSaveHook)(types_1.Maintenance_Ticket_Project, async (request) => {
15
+ const { object, original, user } = request;
16
+ await (0, __1.defaultHandler)(request);
17
+ await (0, __1.defaultAclHandler)(request);
18
+ });
19
+ (0, __1.afterSaveHook)(types_1.Maintenance_Ticket_Project, async (request) => {
20
+ const { object, original, user } = request;
21
+ const fullObj = await object.fetchWithInclude(["ticket", "project"], {
22
+ useMasterKey: true,
23
+ });
24
+ const previous = await new Parse.Query(types_1.Maintenance_Ticket_Project)
25
+ .includeAll()
26
+ .equalTo("ticket", fullObj.get("ticket"))
27
+ .notEqualTo("objectId", fullObj.id)
28
+ .descending("createdAt")
29
+ .first({ useMasterKey: true });
30
+ await createMessageLog(fullObj, previous, user);
31
+ });
32
+ }
33
+ async function createMessageLog(object, previous, user) {
34
+ new types_1.Maintenance_Message({
35
+ referencedObjectId: object.get("ticket")?.id,
36
+ classname: object.get("ticket")?.className,
37
+ title: TRANSLATION_TITLE,
38
+ content: TRANSLATION_CONTENT,
39
+ user,
40
+ tenant: user.get("tenant"),
41
+ data: {
42
+ origin: {
43
+ id: object.id,
44
+ classname: object.className,
45
+ },
46
+ translation: {
47
+ username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
48
+ ticket: object.get("ticket")?.get("title") ?? "Nicht vorhanden",
49
+ new: object.get("project")?.get("name") ?? "Nicht vorhanden",
50
+ },
51
+ type: "system",
52
+ },
53
+ }).save(null, { useMasterKey: true });
54
+ const source = (await (0, openinc_openservice_ticket_data_1.getTicketSource)(object.get("ticket")))?.get("source");
55
+ if (source) {
56
+ new types_1.Maintenance_Message({
57
+ referencedObjectId: source?.id,
58
+ classname: source.className,
59
+ title: TRANSLATION_TITLE_MACHINELOG,
60
+ content: TRANSLATION_CONTENT_MACHINELOG,
61
+ user,
62
+ tenant: user.get("tenant"),
63
+ data: {
64
+ origin: {
65
+ id: object.get("ticket")?.id,
66
+ classname: object.get("ticket")?.className,
67
+ },
68
+ translation: {
69
+ username: (0, openinc_openservice_save_ticket_data_1.getUsername)(user),
70
+ ticket: object.get("ticket")?.get("title") ?? "Nicht vorhanden",
71
+ new: object.get("project")?.get("name") ?? "Nicht vorhanden",
72
+ old: previous?.get("project")?.get("name") ?? "Nicht vorhanden",
73
+ },
74
+ type: "system",
75
+ },
76
+ }).save(null, { useMasterKey: true });
77
+ }
78
+ }
@@ -0,0 +1,47 @@
1
+ import type { Maintenance_Ticket } from "./Maintenance_Ticket";
2
+ import type { Tenant } from "./Tenant";
3
+ import type { _Role } from "./_Role";
4
+ import type { _User } from "./_User";
5
+ export interface Maintenance_ProjectAttributes {
6
+ id: string;
7
+ objectId: string;
8
+ createdAt: Date;
9
+ updatedAt: Date;
10
+ assignedRoles: Parse.Relation<Maintenance_Project, _Role>;
11
+ assignedUsers: Parse.Relation<Maintenance_Project, _User>;
12
+ color?: string;
13
+ description: string;
14
+ end?: Date;
15
+ icon?: string;
16
+ name: string;
17
+ parent?: Maintenance_Project;
18
+ start?: Date;
19
+ tenant?: Tenant;
20
+ tickets: Parse.Relation<Maintenance_Project, Maintenance_Ticket>;
21
+ user?: _User;
22
+ }
23
+ export declare class Maintenance_Project extends Parse.Object<Maintenance_ProjectAttributes> {
24
+ static className: string;
25
+ constructor(data?: Partial<Maintenance_ProjectAttributes>);
26
+ get assignedRoles(): Parse.Relation<Maintenance_Project, _Role>;
27
+ get assignedUsers(): Parse.Relation<Maintenance_Project, _User>;
28
+ get color(): string | undefined;
29
+ set color(value: string | undefined);
30
+ get description(): string;
31
+ set description(value: string);
32
+ get end(): Date | undefined;
33
+ set end(value: Date | undefined);
34
+ get icon(): string | undefined;
35
+ set icon(value: string | undefined);
36
+ get name(): string;
37
+ set name(value: string);
38
+ get parent(): Maintenance_Project | undefined;
39
+ set parent(value: Maintenance_Project | undefined);
40
+ get start(): Date | undefined;
41
+ set start(value: Date | undefined);
42
+ get tenant(): Tenant | undefined;
43
+ set tenant(value: Tenant | undefined);
44
+ get tickets(): Parse.Relation<Maintenance_Project, Maintenance_Ticket>;
45
+ get user(): _User | undefined;
46
+ set user(value: _User | undefined);
47
+ }
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Maintenance_Project = void 0;
4
+ class Maintenance_Project extends Parse.Object {
5
+ constructor(data) {
6
+ super("OD3_Maintenance_Project", data);
7
+ }
8
+ get assignedRoles() {
9
+ return super.relation("assignedRoles");
10
+ }
11
+ get assignedUsers() {
12
+ return super.relation("assignedUsers");
13
+ }
14
+ get color() {
15
+ return super.get("color");
16
+ }
17
+ set color(value) {
18
+ super.set("color", value);
19
+ }
20
+ get description() {
21
+ return super.get("description");
22
+ }
23
+ set description(value) {
24
+ super.set("description", value);
25
+ }
26
+ get end() {
27
+ return super.get("end");
28
+ }
29
+ set end(value) {
30
+ super.set("end", value);
31
+ }
32
+ get icon() {
33
+ return super.get("icon");
34
+ }
35
+ set icon(value) {
36
+ super.set("icon", value);
37
+ }
38
+ get name() {
39
+ return super.get("name");
40
+ }
41
+ set name(value) {
42
+ super.set("name", value);
43
+ }
44
+ get parent() {
45
+ return super.get("parent");
46
+ }
47
+ set parent(value) {
48
+ super.set("parent", value);
49
+ }
50
+ get start() {
51
+ return super.get("start");
52
+ }
53
+ set start(value) {
54
+ super.set("start", value);
55
+ }
56
+ get tenant() {
57
+ return super.get("tenant");
58
+ }
59
+ set tenant(value) {
60
+ super.set("tenant", value);
61
+ }
62
+ get tickets() {
63
+ return super.relation("tickets");
64
+ }
65
+ get user() {
66
+ return super.get("user");
67
+ }
68
+ set user(value) {
69
+ super.set("user", value);
70
+ }
71
+ }
72
+ exports.Maintenance_Project = Maintenance_Project;
73
+ Maintenance_Project.className = "OD3_Maintenance_Project";
74
+ Parse.Object.registerSubclass("OD3_Maintenance_Project", Maintenance_Project);
@@ -1,4 +1,5 @@
1
1
  import type { Maintenance_DailySchedule } from "./Maintenance_DailySchedule";
2
+ import type { Maintenance_Project } from "./Maintenance_Project";
2
3
  import type { Tenant } from "./Tenant";
3
4
  import type { _Role } from "./_Role";
4
5
  import type { _User } from "./_User";
@@ -13,6 +14,7 @@ export interface Maintenance_TicketAttributes {
13
14
  enabled: boolean;
14
15
  id_old?: string;
15
16
  latestPriorityValue?: number;
17
+ project?: Maintenance_Project;
16
18
  tenant?: Tenant;
17
19
  title?: string;
18
20
  user?: _User;
@@ -30,6 +32,8 @@ export declare class Maintenance_Ticket extends Parse.Object<Maintenance_TicketA
30
32
  set id_old(value: string | undefined);
31
33
  get latestPriorityValue(): number | undefined;
32
34
  set latestPriorityValue(value: number | undefined);
35
+ get project(): Maintenance_Project | undefined;
36
+ set project(value: Maintenance_Project | undefined);
33
37
  get tenant(): Tenant | undefined;
34
38
  set tenant(value: Tenant | undefined);
35
39
  get title(): string | undefined;
@@ -35,6 +35,12 @@ class Maintenance_Ticket extends Parse.Object {
35
35
  set latestPriorityValue(value) {
36
36
  super.set("latestPriorityValue", value);
37
37
  }
38
+ get project() {
39
+ return super.get("project");
40
+ }
41
+ set project(value) {
42
+ super.set("project", value);
43
+ }
38
44
  get tenant() {
39
45
  return super.get("tenant");
40
46
  }
@@ -0,0 +1,26 @@
1
+ import type { Maintenance_Project } from "./Maintenance_Project";
2
+ import type { Maintenance_Ticket } from "./Maintenance_Ticket";
3
+ import type { Tenant } from "./Tenant";
4
+ import type { _User } from "./_User";
5
+ export interface Maintenance_Ticket_ProjectAttributes {
6
+ id: string;
7
+ objectId: string;
8
+ createdAt: Date;
9
+ updatedAt: Date;
10
+ project?: Maintenance_Project;
11
+ tenant?: Tenant;
12
+ ticket?: Maintenance_Ticket;
13
+ user?: _User;
14
+ }
15
+ export declare class Maintenance_Ticket_Project extends Parse.Object<Maintenance_Ticket_ProjectAttributes> {
16
+ static className: string;
17
+ constructor(data?: Partial<Maintenance_Ticket_ProjectAttributes>);
18
+ get project(): Maintenance_Project | undefined;
19
+ set project(value: Maintenance_Project | undefined);
20
+ get tenant(): Tenant | undefined;
21
+ set tenant(value: Tenant | undefined);
22
+ get ticket(): Maintenance_Ticket | undefined;
23
+ set ticket(value: Maintenance_Ticket | undefined);
24
+ get user(): _User | undefined;
25
+ set user(value: _User | undefined);
26
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Maintenance_Ticket_Project = void 0;
4
+ class Maintenance_Ticket_Project extends Parse.Object {
5
+ constructor(data) {
6
+ super("OD3_Maintenance_Ticket_Project", data);
7
+ }
8
+ get project() {
9
+ return super.get("project");
10
+ }
11
+ set project(value) {
12
+ super.set("project", value);
13
+ }
14
+ get tenant() {
15
+ return super.get("tenant");
16
+ }
17
+ set tenant(value) {
18
+ super.set("tenant", value);
19
+ }
20
+ get ticket() {
21
+ return super.get("ticket");
22
+ }
23
+ set ticket(value) {
24
+ super.set("ticket", value);
25
+ }
26
+ get user() {
27
+ return super.get("user");
28
+ }
29
+ set user(value) {
30
+ super.set("user", value);
31
+ }
32
+ }
33
+ exports.Maintenance_Ticket_Project = Maintenance_Ticket_Project;
34
+ Maintenance_Ticket_Project.className = "OD3_Maintenance_Ticket_Project";
35
+ Parse.Object.registerSubclass("OD3_Maintenance_Ticket_Project", Maintenance_Ticket_Project);
@@ -116,6 +116,8 @@ export { Maintenance_Order } from "./Maintenance_Order";
116
116
  export type { Maintenance_OrderAttributes } from "./Maintenance_Order";
117
117
  export { Maintenance_Priority } from "./Maintenance_Priority";
118
118
  export type { Maintenance_PriorityAttributes } from "./Maintenance_Priority";
119
+ export { Maintenance_Project } from "./Maintenance_Project";
120
+ export type { Maintenance_ProjectAttributes } from "./Maintenance_Project";
119
121
  export { Maintenance_Restriction } from "./Maintenance_Restriction";
120
122
  export type { Maintenance_RestrictionAttributes } from "./Maintenance_Restriction";
121
123
  export { Maintenance_Schedule_Execution } from "./Maintenance_Schedule_Execution";
@@ -142,6 +144,8 @@ export { Maintenance_Ticket_Kanban_State_Current } from "./Maintenance_Ticket_Ka
142
144
  export type { Maintenance_Ticket_Kanban_State_CurrentAttributes } from "./Maintenance_Ticket_Kanban_State_Current";
143
145
  export { Maintenance_Ticket_Material } from "./Maintenance_Ticket_Material";
144
146
  export type { Maintenance_Ticket_MaterialAttributes } from "./Maintenance_Ticket_Material";
147
+ export { Maintenance_Ticket_Project } from "./Maintenance_Ticket_Project";
148
+ export type { Maintenance_Ticket_ProjectAttributes } from "./Maintenance_Ticket_Project";
145
149
  export { Maintenance_Ticket_Source } from "./Maintenance_Ticket_Source";
146
150
  export type { Maintenance_Ticket_SourceAttributes } from "./Maintenance_Ticket_Source";
147
151
  export { Maintenance_Ticket_Title } from "./Maintenance_Ticket_Title";
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
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_Material = 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;
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_Project = exports.Maintenance_Ticket_Material = 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_Project = 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");
@@ -120,6 +120,8 @@ var Maintenance_Order_1 = require("./Maintenance_Order");
120
120
  Object.defineProperty(exports, "Maintenance_Order", { enumerable: true, get: function () { return Maintenance_Order_1.Maintenance_Order; } });
121
121
  var Maintenance_Priority_1 = require("./Maintenance_Priority");
122
122
  Object.defineProperty(exports, "Maintenance_Priority", { enumerable: true, get: function () { return Maintenance_Priority_1.Maintenance_Priority; } });
123
+ var Maintenance_Project_1 = require("./Maintenance_Project");
124
+ Object.defineProperty(exports, "Maintenance_Project", { enumerable: true, get: function () { return Maintenance_Project_1.Maintenance_Project; } });
123
125
  var Maintenance_Restriction_1 = require("./Maintenance_Restriction");
124
126
  Object.defineProperty(exports, "Maintenance_Restriction", { enumerable: true, get: function () { return Maintenance_Restriction_1.Maintenance_Restriction; } });
125
127
  var Maintenance_Schedule_Execution_1 = require("./Maintenance_Schedule_Execution");
@@ -146,6 +148,8 @@ var Maintenance_Ticket_Kanban_State_Current_1 = require("./Maintenance_Ticket_Ka
146
148
  Object.defineProperty(exports, "Maintenance_Ticket_Kanban_State_Current", { enumerable: true, get: function () { return Maintenance_Ticket_Kanban_State_Current_1.Maintenance_Ticket_Kanban_State_Current; } });
147
149
  var Maintenance_Ticket_Material_1 = require("./Maintenance_Ticket_Material");
148
150
  Object.defineProperty(exports, "Maintenance_Ticket_Material", { enumerable: true, get: function () { return Maintenance_Ticket_Material_1.Maintenance_Ticket_Material; } });
151
+ var Maintenance_Ticket_Project_1 = require("./Maintenance_Ticket_Project");
152
+ Object.defineProperty(exports, "Maintenance_Ticket_Project", { enumerable: true, get: function () { return Maintenance_Ticket_Project_1.Maintenance_Ticket_Project; } });
149
153
  var Maintenance_Ticket_Source_1 = require("./Maintenance_Ticket_Source");
150
154
  Object.defineProperty(exports, "Maintenance_Ticket_Source", { enumerable: true, get: function () { return Maintenance_Ticket_Source_1.Maintenance_Ticket_Source; } });
151
155
  var Maintenance_Ticket_Title_1 = require("./Maintenance_Ticket_Title");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openinc/parse-server-opendash",
3
- "version": "2.4.100",
3
+ "version": "2.4.101",
4
4
  "description": "Parse Server Cloud Code for open.DASH",
5
5
  "packageManager": "pnpm@10.2.1",
6
6
  "keywords": [
@@ -0,0 +1,85 @@
1
+ {
2
+ "fields": {
3
+ "assignedRoles": {
4
+ "type": "Relation",
5
+ "targetClass": "_Role",
6
+ "required": false
7
+ },
8
+ "assignedUsers": {
9
+ "type": "Relation",
10
+ "targetClass": "_User",
11
+ "required": false
12
+ },
13
+ "color": {
14
+ "type": "String",
15
+ "required": false
16
+ },
17
+ "description": {
18
+ "type": "String",
19
+ "required": false,
20
+ "defaultValue": ""
21
+ },
22
+ "end": {
23
+ "type": "Date",
24
+ "required": false
25
+ },
26
+ "icon": {
27
+ "type": "String",
28
+ "required": false
29
+ },
30
+ "name": {
31
+ "type": "String",
32
+ "required": true
33
+ },
34
+ "parent": {
35
+ "type": "Pointer",
36
+ "targetClass": "{{PREFIX}}Maintenance_Project",
37
+ "required": false
38
+ },
39
+ "start": {
40
+ "type": "Date",
41
+ "required": false
42
+ },
43
+ "tenant": {
44
+ "type": "Pointer",
45
+ "targetClass": "{{PREFIX}}Tenant",
46
+ "required": false
47
+ },
48
+ "tickets": {
49
+ "type": "Relation",
50
+ "targetClass": "{{PREFIX}}Maintenance_Ticket",
51
+ "required": false
52
+ },
53
+ "user": {
54
+ "type": "Pointer",
55
+ "targetClass": "_User",
56
+ "required": false
57
+ }
58
+ },
59
+ "classLevelPermissions": {
60
+ "find": {
61
+ "*": true
62
+ },
63
+ "count": {
64
+ "*": true
65
+ },
66
+ "get": {
67
+ "*": true
68
+ },
69
+ "create": {
70
+ "*": true
71
+ },
72
+ "update": {
73
+ "*": true
74
+ },
75
+ "delete": {
76
+ "*": true
77
+ },
78
+ "addField": {
79
+ "*": true
80
+ },
81
+ "protectedFields": {
82
+ "*": []
83
+ }
84
+ }
85
+ }
@@ -28,6 +28,11 @@
28
28
  "type": "Number",
29
29
  "required": false
30
30
  },
31
+ "project": {
32
+ "type": "Pointer",
33
+ "targetClass": "{{PREFIX}}Maintenance_Project",
34
+ "required": false
35
+ },
31
36
  "tenant": {
32
37
  "type": "Pointer",
33
38
  "targetClass": "{{PREFIX}}Tenant",
@@ -0,0 +1,50 @@
1
+ {
2
+ "fields": {
3
+ "project": {
4
+ "type": "Pointer",
5
+ "targetClass": "{{PREFIX}}Maintenance_Project",
6
+ "required": false
7
+ },
8
+ "tenant": {
9
+ "type": "Pointer",
10
+ "targetClass": "{{PREFIX}}Tenant",
11
+ "required": false
12
+ },
13
+ "ticket": {
14
+ "type": "Pointer",
15
+ "targetClass": "{{PREFIX}}Maintenance_Ticket",
16
+ "required": false
17
+ },
18
+ "user": {
19
+ "type": "Pointer",
20
+ "targetClass": "_User",
21
+ "required": false
22
+ }
23
+ },
24
+ "classLevelPermissions": {
25
+ "find": {
26
+ "*": true
27
+ },
28
+ "count": {
29
+ "*": true
30
+ },
31
+ "get": {
32
+ "*": true
33
+ },
34
+ "create": {
35
+ "*": true
36
+ },
37
+ "update": {
38
+ "*": true
39
+ },
40
+ "delete": {
41
+ "*": true
42
+ },
43
+ "addField": {
44
+ "*": true
45
+ },
46
+ "protectedFields": {
47
+ "*": []
48
+ }
49
+ }
50
+ }