@joshuanode/n8n-nodes-cipp 0.0.11 → 0.0.13
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/README.md +43 -14
- package/dist/nodes/Cipp/Cipp.node.d.ts.map +1 -1
- package/dist/nodes/Cipp/Cipp.node.js +248 -0
- package/dist/nodes/Cipp/Cipp.node.js.map +1 -1
- package/dist/nodes/Cipp/descriptions/ShiftDescription.d.ts +4 -0
- package/dist/nodes/Cipp/descriptions/ShiftDescription.d.ts.map +1 -0
- package/dist/nodes/Cipp/descriptions/ShiftDescription.js +889 -0
- package/dist/nodes/Cipp/descriptions/ShiftDescription.js.map +1 -0
- package/dist/nodes/Cipp/descriptions/index.d.ts.map +1 -1
- package/dist/nodes/Cipp/descriptions/index.js +3 -0
- package/dist/nodes/Cipp/descriptions/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,889 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.shiftFields = exports.shiftOperations = void 0;
|
|
4
|
+
// ────────────────── Shared helpers ──────────────────
|
|
5
|
+
const tenantSelector = {
|
|
6
|
+
displayName: 'Tenant',
|
|
7
|
+
name: 'tenantFilter',
|
|
8
|
+
type: 'resourceLocator',
|
|
9
|
+
default: { mode: 'list', value: '' },
|
|
10
|
+
required: true,
|
|
11
|
+
description: 'The tenant to perform the operation on',
|
|
12
|
+
displayOptions: {
|
|
13
|
+
show: {
|
|
14
|
+
resource: ['teamsShift'],
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
modes: [
|
|
18
|
+
{
|
|
19
|
+
displayName: 'From List',
|
|
20
|
+
name: 'list',
|
|
21
|
+
type: 'list',
|
|
22
|
+
typeOptions: {
|
|
23
|
+
searchListMethod: 'tenantSearch',
|
|
24
|
+
searchable: true,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
displayName: 'By Domain',
|
|
29
|
+
name: 'domain',
|
|
30
|
+
type: 'string',
|
|
31
|
+
placeholder: 'e.g. contoso.onmicrosoft.com',
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
};
|
|
35
|
+
const teamIdField = {
|
|
36
|
+
displayName: 'Team ID',
|
|
37
|
+
name: 'teamId',
|
|
38
|
+
type: 'string',
|
|
39
|
+
required: true,
|
|
40
|
+
displayOptions: {
|
|
41
|
+
show: {
|
|
42
|
+
resource: ['teamsShift'],
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
default: '',
|
|
46
|
+
placeholder: 'e.g. 9f4808c6-e2ff-4c26-9154-bcaacc11ca95',
|
|
47
|
+
description: 'The ID of the team whose schedule to manage',
|
|
48
|
+
};
|
|
49
|
+
// ────────────────── Operations ──────────────────
|
|
50
|
+
exports.shiftOperations = [
|
|
51
|
+
{
|
|
52
|
+
displayName: 'Operation',
|
|
53
|
+
name: 'operation',
|
|
54
|
+
type: 'options',
|
|
55
|
+
noDataExpression: true,
|
|
56
|
+
displayOptions: {
|
|
57
|
+
show: {
|
|
58
|
+
resource: ['teamsShift'],
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
options: [
|
|
62
|
+
// ── Shifts ──
|
|
63
|
+
{
|
|
64
|
+
name: 'List Shifts',
|
|
65
|
+
value: 'listShifts',
|
|
66
|
+
description: 'List all shifts in a team schedule',
|
|
67
|
+
action: 'List shifts',
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: 'Create Shift',
|
|
71
|
+
value: 'createShift',
|
|
72
|
+
description: 'Create a new shift',
|
|
73
|
+
action: 'Create shift',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: 'Update Shift',
|
|
77
|
+
value: 'updateShift',
|
|
78
|
+
description: 'Update an existing shift',
|
|
79
|
+
action: 'Update shift',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: 'Delete Shift',
|
|
83
|
+
value: 'deleteShift',
|
|
84
|
+
description: 'Delete a shift',
|
|
85
|
+
action: 'Delete shift',
|
|
86
|
+
},
|
|
87
|
+
// ── Open Shifts ──
|
|
88
|
+
{
|
|
89
|
+
name: 'List Open Shifts',
|
|
90
|
+
value: 'listOpenShifts',
|
|
91
|
+
description: 'List all open (unassigned) shifts',
|
|
92
|
+
action: 'List open shifts',
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: 'Create Open Shift',
|
|
96
|
+
value: 'createOpenShift',
|
|
97
|
+
description: 'Create a new open shift',
|
|
98
|
+
action: 'Create open shift',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: 'Update Open Shift',
|
|
102
|
+
value: 'updateOpenShift',
|
|
103
|
+
description: 'Update an existing open shift',
|
|
104
|
+
action: 'Update open shift',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: 'Delete Open Shift',
|
|
108
|
+
value: 'deleteOpenShift',
|
|
109
|
+
description: 'Delete an open shift',
|
|
110
|
+
action: 'Delete open shift',
|
|
111
|
+
},
|
|
112
|
+
// ── Scheduling Groups ──
|
|
113
|
+
{
|
|
114
|
+
name: 'List Scheduling Groups',
|
|
115
|
+
value: 'listSchedulingGroups',
|
|
116
|
+
description: 'List scheduling groups',
|
|
117
|
+
action: 'List scheduling groups',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
name: 'Create Scheduling Group',
|
|
121
|
+
value: 'createSchedulingGroup',
|
|
122
|
+
description: 'Create a scheduling group',
|
|
123
|
+
action: 'Create scheduling group',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
name: 'Update Scheduling Group',
|
|
127
|
+
value: 'updateSchedulingGroup',
|
|
128
|
+
description: 'Update a scheduling group',
|
|
129
|
+
action: 'Update scheduling group',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
name: 'Delete Scheduling Group',
|
|
133
|
+
value: 'deleteSchedulingGroup',
|
|
134
|
+
description: 'Mark a scheduling group as inactive',
|
|
135
|
+
action: 'Delete scheduling group',
|
|
136
|
+
},
|
|
137
|
+
// ── Time Off Reasons ──
|
|
138
|
+
{
|
|
139
|
+
name: 'List Time Off Reasons',
|
|
140
|
+
value: 'listTimeOffReasons',
|
|
141
|
+
description: 'List time-off reasons',
|
|
142
|
+
action: 'List time off reasons',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
name: 'Create Time Off Reason',
|
|
146
|
+
value: 'createTimeOffReason',
|
|
147
|
+
description: 'Create a time-off reason',
|
|
148
|
+
action: 'Create time off reason',
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: 'Update Time Off Reason',
|
|
152
|
+
value: 'updateTimeOffReason',
|
|
153
|
+
description: 'Update a time-off reason',
|
|
154
|
+
action: 'Update time off reason',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: 'Delete Time Off Reason',
|
|
158
|
+
value: 'deleteTimeOffReason',
|
|
159
|
+
description: 'Mark a time-off reason as inactive',
|
|
160
|
+
action: 'Delete time off reason',
|
|
161
|
+
},
|
|
162
|
+
// ── Time Off Requests ──
|
|
163
|
+
{
|
|
164
|
+
name: 'List Time Off Requests',
|
|
165
|
+
value: 'listTimeOffRequests',
|
|
166
|
+
description: 'List time-off requests',
|
|
167
|
+
action: 'List time off requests',
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
name: 'Create Time Off Request',
|
|
171
|
+
value: 'createTimeOffRequest',
|
|
172
|
+
description: 'Create a time-off request',
|
|
173
|
+
action: 'Create time off request',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
name: 'Approve Time Off Request',
|
|
177
|
+
value: 'approveTimeOffRequest',
|
|
178
|
+
description: 'Approve a time-off request',
|
|
179
|
+
action: 'Approve time off request',
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
name: 'Decline Time Off Request',
|
|
183
|
+
value: 'declineTimeOffRequest',
|
|
184
|
+
description: 'Decline a time-off request',
|
|
185
|
+
action: 'Decline time off request',
|
|
186
|
+
},
|
|
187
|
+
// ── Swap Shift Requests ──
|
|
188
|
+
{
|
|
189
|
+
name: 'List Swap Shift Requests',
|
|
190
|
+
value: 'listSwapShiftRequests',
|
|
191
|
+
description: 'List swap-shift change requests',
|
|
192
|
+
action: 'List swap shift requests',
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
name: 'Create Swap Shift Request',
|
|
196
|
+
value: 'createSwapShiftRequest',
|
|
197
|
+
description: 'Create a swap-shift change request',
|
|
198
|
+
action: 'Create swap shift request',
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
name: 'Approve Swap Shift Request',
|
|
202
|
+
value: 'approveSwapShiftRequest',
|
|
203
|
+
description: 'Approve a swap-shift change request',
|
|
204
|
+
action: 'Approve swap shift request',
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
name: 'Decline Swap Shift Request',
|
|
208
|
+
value: 'declineSwapShiftRequest',
|
|
209
|
+
description: 'Decline a swap-shift change request',
|
|
210
|
+
action: 'Decline swap shift request',
|
|
211
|
+
},
|
|
212
|
+
// ── Offer Shift Requests ──
|
|
213
|
+
{
|
|
214
|
+
name: 'List Offer Shift Requests',
|
|
215
|
+
value: 'listOfferShiftRequests',
|
|
216
|
+
description: 'List offer-shift requests',
|
|
217
|
+
action: 'List offer shift requests',
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
name: 'Create Offer Shift Request',
|
|
221
|
+
value: 'createOfferShiftRequest',
|
|
222
|
+
description: 'Create an offer-shift request',
|
|
223
|
+
action: 'Create offer shift request',
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
name: 'Approve Offer Shift Request',
|
|
227
|
+
value: 'approveOfferShiftRequest',
|
|
228
|
+
description: 'Approve an offer-shift request',
|
|
229
|
+
action: 'Approve offer shift request',
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
name: 'Decline Offer Shift Request',
|
|
233
|
+
value: 'declineOfferShiftRequest',
|
|
234
|
+
description: 'Decline an offer-shift request',
|
|
235
|
+
action: 'Decline offer shift request',
|
|
236
|
+
},
|
|
237
|
+
],
|
|
238
|
+
default: 'listShifts',
|
|
239
|
+
},
|
|
240
|
+
];
|
|
241
|
+
// ────────────────── Fields ──────────────────
|
|
242
|
+
exports.shiftFields = [
|
|
243
|
+
// Shared: Tenant & Team ID
|
|
244
|
+
tenantSelector,
|
|
245
|
+
teamIdField,
|
|
246
|
+
// Filters for all list operations
|
|
247
|
+
{
|
|
248
|
+
displayName: 'Filters',
|
|
249
|
+
name: 'listFilters',
|
|
250
|
+
type: 'collection',
|
|
251
|
+
placeholder: 'Add Filter',
|
|
252
|
+
default: {},
|
|
253
|
+
displayOptions: {
|
|
254
|
+
show: {
|
|
255
|
+
resource: ['teamsShift'],
|
|
256
|
+
operation: [
|
|
257
|
+
'listShifts',
|
|
258
|
+
'listOpenShifts',
|
|
259
|
+
'listSchedulingGroups',
|
|
260
|
+
'listTimeOffReasons',
|
|
261
|
+
'listTimeOffRequests',
|
|
262
|
+
'listSwapShiftRequests',
|
|
263
|
+
'listOfferShiftRequests',
|
|
264
|
+
],
|
|
265
|
+
},
|
|
266
|
+
},
|
|
267
|
+
options: [
|
|
268
|
+
{
|
|
269
|
+
displayName: 'Start Date',
|
|
270
|
+
name: 'startDate',
|
|
271
|
+
type: 'dateTime',
|
|
272
|
+
default: '',
|
|
273
|
+
description: 'Filter results starting on or after this date/time (ISO 8601). Applied as sharedShift/startDateTime ge for shifts.',
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
displayName: 'End Date',
|
|
277
|
+
name: 'endDate',
|
|
278
|
+
type: 'dateTime',
|
|
279
|
+
default: '',
|
|
280
|
+
description: 'Filter results ending on or before this date/time (ISO 8601). Applied as sharedShift/endDateTime le for shifts.',
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
displayName: '$Filter (Raw OData)',
|
|
284
|
+
name: 'rawFilter',
|
|
285
|
+
type: 'string',
|
|
286
|
+
default: '',
|
|
287
|
+
placeholder: "sharedShift/startDateTime ge 2024-01-01T00:00:00Z",
|
|
288
|
+
description: 'Raw OData $filter expression. Overrides Start/End Date if set.',
|
|
289
|
+
},
|
|
290
|
+
],
|
|
291
|
+
},
|
|
292
|
+
// ════════════════ SHIFT FIELDS ════════════════
|
|
293
|
+
// Shift ID — for update / delete
|
|
294
|
+
{
|
|
295
|
+
displayName: 'Shift ID',
|
|
296
|
+
name: 'shiftId',
|
|
297
|
+
type: 'string',
|
|
298
|
+
required: true,
|
|
299
|
+
displayOptions: {
|
|
300
|
+
show: {
|
|
301
|
+
resource: ['teamsShift'],
|
|
302
|
+
operation: ['updateShift', 'deleteShift'],
|
|
303
|
+
},
|
|
304
|
+
},
|
|
305
|
+
default: '',
|
|
306
|
+
description: 'The ID of the shift to update or delete',
|
|
307
|
+
},
|
|
308
|
+
// User ID — for create / update shift
|
|
309
|
+
{
|
|
310
|
+
displayName: 'User ID',
|
|
311
|
+
name: 'userId',
|
|
312
|
+
type: 'string',
|
|
313
|
+
required: true,
|
|
314
|
+
displayOptions: {
|
|
315
|
+
show: {
|
|
316
|
+
resource: ['teamsShift'],
|
|
317
|
+
operation: ['createShift'],
|
|
318
|
+
},
|
|
319
|
+
},
|
|
320
|
+
default: '',
|
|
321
|
+
placeholder: 'e.g. user-object-id or UPN',
|
|
322
|
+
description: 'The user to assign the shift to',
|
|
323
|
+
},
|
|
324
|
+
// Start Date Time — shift create / update
|
|
325
|
+
{
|
|
326
|
+
displayName: 'Start Date Time',
|
|
327
|
+
name: 'startDateTime',
|
|
328
|
+
type: 'dateTime',
|
|
329
|
+
required: true,
|
|
330
|
+
displayOptions: {
|
|
331
|
+
show: {
|
|
332
|
+
resource: ['teamsShift'],
|
|
333
|
+
operation: ['createShift'],
|
|
334
|
+
},
|
|
335
|
+
},
|
|
336
|
+
default: '',
|
|
337
|
+
description: 'Start date and time of the shift (ISO 8601)',
|
|
338
|
+
},
|
|
339
|
+
// End Date Time — shift create / update
|
|
340
|
+
{
|
|
341
|
+
displayName: 'End Date Time',
|
|
342
|
+
name: 'endDateTime',
|
|
343
|
+
type: 'dateTime',
|
|
344
|
+
required: true,
|
|
345
|
+
displayOptions: {
|
|
346
|
+
show: {
|
|
347
|
+
resource: ['teamsShift'],
|
|
348
|
+
operation: ['createShift'],
|
|
349
|
+
},
|
|
350
|
+
},
|
|
351
|
+
default: '',
|
|
352
|
+
description: 'End date and time of the shift (ISO 8601)',
|
|
353
|
+
},
|
|
354
|
+
// Shift create options
|
|
355
|
+
{
|
|
356
|
+
displayName: 'Options',
|
|
357
|
+
name: 'shiftOptions',
|
|
358
|
+
type: 'collection',
|
|
359
|
+
placeholder: 'Add Option',
|
|
360
|
+
default: {},
|
|
361
|
+
displayOptions: {
|
|
362
|
+
show: {
|
|
363
|
+
resource: ['teamsShift'],
|
|
364
|
+
operation: ['createShift'],
|
|
365
|
+
},
|
|
366
|
+
},
|
|
367
|
+
options: [
|
|
368
|
+
{
|
|
369
|
+
displayName: 'Display Name',
|
|
370
|
+
name: 'displayName',
|
|
371
|
+
type: 'string',
|
|
372
|
+
default: '',
|
|
373
|
+
description: 'The shift display name / label',
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
displayName: 'Notes',
|
|
377
|
+
name: 'notes',
|
|
378
|
+
type: 'string',
|
|
379
|
+
default: '',
|
|
380
|
+
description: 'Notes for the shift visible to the user',
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
displayName: 'Theme',
|
|
384
|
+
name: 'theme',
|
|
385
|
+
type: 'options',
|
|
386
|
+
options: [
|
|
387
|
+
{ name: 'White', value: 'white' },
|
|
388
|
+
{ name: 'Blue', value: 'blue' },
|
|
389
|
+
{ name: 'Green', value: 'green' },
|
|
390
|
+
{ name: 'Purple', value: 'purple' },
|
|
391
|
+
{ name: 'Pink', value: 'pink' },
|
|
392
|
+
{ name: 'Yellow', value: 'yellow' },
|
|
393
|
+
{ name: 'Gray', value: 'gray' },
|
|
394
|
+
{ name: 'Dark Blue', value: 'darkBlue' },
|
|
395
|
+
{ name: 'Dark Green', value: 'darkGreen' },
|
|
396
|
+
{ name: 'Dark Purple', value: 'darkPurple' },
|
|
397
|
+
{ name: 'Dark Pink', value: 'darkPink' },
|
|
398
|
+
{ name: 'Dark Yellow', value: 'darkYellow' },
|
|
399
|
+
],
|
|
400
|
+
default: 'white',
|
|
401
|
+
description: 'The shift color theme',
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
displayName: 'Activities',
|
|
405
|
+
name: 'activities',
|
|
406
|
+
type: 'json',
|
|
407
|
+
default: '[]',
|
|
408
|
+
description: 'JSON array of shift activities [{displayName, startDateTime, endDateTime, code, theme}]',
|
|
409
|
+
},
|
|
410
|
+
],
|
|
411
|
+
},
|
|
412
|
+
// Shift update body (JSON) — flexible for PUT
|
|
413
|
+
{
|
|
414
|
+
displayName: 'Shift Data',
|
|
415
|
+
name: 'shiftUpdateData',
|
|
416
|
+
type: 'json',
|
|
417
|
+
required: true,
|
|
418
|
+
displayOptions: {
|
|
419
|
+
show: {
|
|
420
|
+
resource: ['teamsShift'],
|
|
421
|
+
operation: ['updateShift'],
|
|
422
|
+
},
|
|
423
|
+
},
|
|
424
|
+
default: '{}',
|
|
425
|
+
description: 'Full shift object JSON for the PUT update. Must include sharedShift with startDateTime, endDateTime, etc.',
|
|
426
|
+
},
|
|
427
|
+
// ════════════════ OPEN SHIFT FIELDS ════════════════
|
|
428
|
+
{
|
|
429
|
+
displayName: 'Open Shift ID',
|
|
430
|
+
name: 'openShiftId',
|
|
431
|
+
type: 'string',
|
|
432
|
+
required: true,
|
|
433
|
+
displayOptions: {
|
|
434
|
+
show: {
|
|
435
|
+
resource: ['teamsShift'],
|
|
436
|
+
operation: ['updateOpenShift', 'deleteOpenShift'],
|
|
437
|
+
},
|
|
438
|
+
},
|
|
439
|
+
default: '',
|
|
440
|
+
description: 'The ID of the open shift',
|
|
441
|
+
},
|
|
442
|
+
// Open shift create fields
|
|
443
|
+
{
|
|
444
|
+
displayName: 'Scheduling Group ID',
|
|
445
|
+
name: 'schedulingGroupId',
|
|
446
|
+
type: 'string',
|
|
447
|
+
required: true,
|
|
448
|
+
displayOptions: {
|
|
449
|
+
show: {
|
|
450
|
+
resource: ['teamsShift'],
|
|
451
|
+
operation: ['createOpenShift'],
|
|
452
|
+
},
|
|
453
|
+
},
|
|
454
|
+
default: '',
|
|
455
|
+
description: 'The scheduling group the open shift belongs to',
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
displayName: 'Start Date Time',
|
|
459
|
+
name: 'openShiftStart',
|
|
460
|
+
type: 'dateTime',
|
|
461
|
+
required: true,
|
|
462
|
+
displayOptions: {
|
|
463
|
+
show: {
|
|
464
|
+
resource: ['teamsShift'],
|
|
465
|
+
operation: ['createOpenShift'],
|
|
466
|
+
},
|
|
467
|
+
},
|
|
468
|
+
default: '',
|
|
469
|
+
description: 'Start date and time of the open shift',
|
|
470
|
+
},
|
|
471
|
+
{
|
|
472
|
+
displayName: 'End Date Time',
|
|
473
|
+
name: 'openShiftEnd',
|
|
474
|
+
type: 'dateTime',
|
|
475
|
+
required: true,
|
|
476
|
+
displayOptions: {
|
|
477
|
+
show: {
|
|
478
|
+
resource: ['teamsShift'],
|
|
479
|
+
operation: ['createOpenShift'],
|
|
480
|
+
},
|
|
481
|
+
},
|
|
482
|
+
default: '',
|
|
483
|
+
description: 'End date and time of the open shift',
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
displayName: 'Open Slot Count',
|
|
487
|
+
name: 'openSlotCount',
|
|
488
|
+
type: 'number',
|
|
489
|
+
required: true,
|
|
490
|
+
displayOptions: {
|
|
491
|
+
show: {
|
|
492
|
+
resource: ['teamsShift'],
|
|
493
|
+
operation: ['createOpenShift'],
|
|
494
|
+
},
|
|
495
|
+
},
|
|
496
|
+
default: 1,
|
|
497
|
+
description: 'Number of slots available for this open shift',
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
displayName: 'Options',
|
|
501
|
+
name: 'openShiftOptions',
|
|
502
|
+
type: 'collection',
|
|
503
|
+
placeholder: 'Add Option',
|
|
504
|
+
default: {},
|
|
505
|
+
displayOptions: {
|
|
506
|
+
show: {
|
|
507
|
+
resource: ['teamsShift'],
|
|
508
|
+
operation: ['createOpenShift'],
|
|
509
|
+
},
|
|
510
|
+
},
|
|
511
|
+
options: [
|
|
512
|
+
{
|
|
513
|
+
displayName: 'Display Name',
|
|
514
|
+
name: 'displayName',
|
|
515
|
+
type: 'string',
|
|
516
|
+
default: '',
|
|
517
|
+
description: 'Display name for the open shift',
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
displayName: 'Notes',
|
|
521
|
+
name: 'notes',
|
|
522
|
+
type: 'string',
|
|
523
|
+
default: '',
|
|
524
|
+
description: 'Notes for the open shift',
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
displayName: 'Theme',
|
|
528
|
+
name: 'theme',
|
|
529
|
+
type: 'options',
|
|
530
|
+
options: [
|
|
531
|
+
{ name: 'White', value: 'white' },
|
|
532
|
+
{ name: 'Blue', value: 'blue' },
|
|
533
|
+
{ name: 'Green', value: 'green' },
|
|
534
|
+
{ name: 'Purple', value: 'purple' },
|
|
535
|
+
{ name: 'Pink', value: 'pink' },
|
|
536
|
+
{ name: 'Yellow', value: 'yellow' },
|
|
537
|
+
{ name: 'Gray', value: 'gray' },
|
|
538
|
+
{ name: 'Dark Blue', value: 'darkBlue' },
|
|
539
|
+
{ name: 'Dark Green', value: 'darkGreen' },
|
|
540
|
+
{ name: 'Dark Purple', value: 'darkPurple' },
|
|
541
|
+
{ name: 'Dark Pink', value: 'darkPink' },
|
|
542
|
+
{ name: 'Dark Yellow', value: 'darkYellow' },
|
|
543
|
+
],
|
|
544
|
+
default: 'white',
|
|
545
|
+
description: 'The open shift color theme',
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
displayName: 'Activities',
|
|
549
|
+
name: 'activities',
|
|
550
|
+
type: 'json',
|
|
551
|
+
default: '[]',
|
|
552
|
+
description: 'JSON array of activities',
|
|
553
|
+
},
|
|
554
|
+
],
|
|
555
|
+
},
|
|
556
|
+
// Open shift update (JSON)
|
|
557
|
+
{
|
|
558
|
+
displayName: 'Open Shift Data',
|
|
559
|
+
name: 'openShiftUpdateData',
|
|
560
|
+
type: 'json',
|
|
561
|
+
required: true,
|
|
562
|
+
displayOptions: {
|
|
563
|
+
show: {
|
|
564
|
+
resource: ['teamsShift'],
|
|
565
|
+
operation: ['updateOpenShift'],
|
|
566
|
+
},
|
|
567
|
+
},
|
|
568
|
+
default: '{}',
|
|
569
|
+
description: 'Full open shift object JSON for the PUT update',
|
|
570
|
+
},
|
|
571
|
+
// ════════════════ SCHEDULING GROUP FIELDS ════════════════
|
|
572
|
+
{
|
|
573
|
+
displayName: 'Scheduling Group ID',
|
|
574
|
+
name: 'schedulingGroupUpdateId',
|
|
575
|
+
type: 'string',
|
|
576
|
+
required: true,
|
|
577
|
+
displayOptions: {
|
|
578
|
+
show: {
|
|
579
|
+
resource: ['teamsShift'],
|
|
580
|
+
operation: ['updateSchedulingGroup', 'deleteSchedulingGroup'],
|
|
581
|
+
},
|
|
582
|
+
},
|
|
583
|
+
default: '',
|
|
584
|
+
description: 'The ID of the scheduling group',
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
displayName: 'Display Name',
|
|
588
|
+
name: 'groupDisplayName',
|
|
589
|
+
type: 'string',
|
|
590
|
+
required: true,
|
|
591
|
+
displayOptions: {
|
|
592
|
+
show: {
|
|
593
|
+
resource: ['teamsShift'],
|
|
594
|
+
operation: ['createSchedulingGroup'],
|
|
595
|
+
},
|
|
596
|
+
},
|
|
597
|
+
default: '',
|
|
598
|
+
description: 'Display name for the scheduling group',
|
|
599
|
+
},
|
|
600
|
+
{
|
|
601
|
+
displayName: 'User IDs',
|
|
602
|
+
name: 'groupUserIds',
|
|
603
|
+
type: 'string',
|
|
604
|
+
required: true,
|
|
605
|
+
displayOptions: {
|
|
606
|
+
show: {
|
|
607
|
+
resource: ['teamsShift'],
|
|
608
|
+
operation: ['createSchedulingGroup'],
|
|
609
|
+
},
|
|
610
|
+
},
|
|
611
|
+
default: '',
|
|
612
|
+
placeholder: 'user-id-1, user-id-2',
|
|
613
|
+
description: 'Comma-separated list of user IDs to include in the group',
|
|
614
|
+
},
|
|
615
|
+
// Scheduling group update (JSON)
|
|
616
|
+
{
|
|
617
|
+
displayName: 'Scheduling Group Data',
|
|
618
|
+
name: 'schedulingGroupUpdateData',
|
|
619
|
+
type: 'json',
|
|
620
|
+
required: true,
|
|
621
|
+
displayOptions: {
|
|
622
|
+
show: {
|
|
623
|
+
resource: ['teamsShift'],
|
|
624
|
+
operation: ['updateSchedulingGroup'],
|
|
625
|
+
},
|
|
626
|
+
},
|
|
627
|
+
default: '{}',
|
|
628
|
+
description: 'Full scheduling group JSON for the PUT update',
|
|
629
|
+
},
|
|
630
|
+
// ════════════════ TIME OFF REASON FIELDS ════════════════
|
|
631
|
+
{
|
|
632
|
+
displayName: 'Time Off Reason ID',
|
|
633
|
+
name: 'timeOffReasonId',
|
|
634
|
+
type: 'string',
|
|
635
|
+
required: true,
|
|
636
|
+
displayOptions: {
|
|
637
|
+
show: {
|
|
638
|
+
resource: ['teamsShift'],
|
|
639
|
+
operation: ['updateTimeOffReason', 'deleteTimeOffReason'],
|
|
640
|
+
},
|
|
641
|
+
},
|
|
642
|
+
default: '',
|
|
643
|
+
description: 'The ID of the time-off reason',
|
|
644
|
+
},
|
|
645
|
+
{
|
|
646
|
+
displayName: 'Display Name',
|
|
647
|
+
name: 'reasonDisplayName',
|
|
648
|
+
type: 'string',
|
|
649
|
+
required: true,
|
|
650
|
+
displayOptions: {
|
|
651
|
+
show: {
|
|
652
|
+
resource: ['teamsShift'],
|
|
653
|
+
operation: ['createTimeOffReason'],
|
|
654
|
+
},
|
|
655
|
+
},
|
|
656
|
+
default: '',
|
|
657
|
+
placeholder: 'e.g. Vacation, Sick Leave',
|
|
658
|
+
description: 'Display name for the time-off reason',
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
displayName: 'Icon Type',
|
|
662
|
+
name: 'iconType',
|
|
663
|
+
type: 'options',
|
|
664
|
+
displayOptions: {
|
|
665
|
+
show: {
|
|
666
|
+
resource: ['teamsShift'],
|
|
667
|
+
operation: ['createTimeOffReason'],
|
|
668
|
+
},
|
|
669
|
+
},
|
|
670
|
+
options: [
|
|
671
|
+
{ name: 'None', value: 'none' },
|
|
672
|
+
{ name: 'Car', value: 'car' },
|
|
673
|
+
{ name: 'Calendar', value: 'calendar' },
|
|
674
|
+
{ name: 'Running', value: 'running' },
|
|
675
|
+
{ name: 'Plane', value: 'plane' },
|
|
676
|
+
{ name: 'First Aid', value: 'firstAid' },
|
|
677
|
+
{ name: 'Doctor', value: 'doctor' },
|
|
678
|
+
{ name: 'Not Working', value: 'notWorking' },
|
|
679
|
+
{ name: 'Clock', value: 'clock' },
|
|
680
|
+
{ name: 'Jury Duty', value: 'juryDuty' },
|
|
681
|
+
{ name: 'Globe', value: 'globe' },
|
|
682
|
+
{ name: 'Cup', value: 'cup' },
|
|
683
|
+
{ name: 'Phone', value: 'phone' },
|
|
684
|
+
{ name: 'Weather', value: 'weather' },
|
|
685
|
+
{ name: 'Umbrella', value: 'umbrella' },
|
|
686
|
+
{ name: 'Piggy Bank', value: 'piggyBank' },
|
|
687
|
+
{ name: 'Dog', value: 'dog' },
|
|
688
|
+
{ name: 'Cake', value: 'cake' },
|
|
689
|
+
{ name: 'Traffic Cone', value: 'trafficCone' },
|
|
690
|
+
{ name: 'Pin', value: 'pin' },
|
|
691
|
+
{ name: 'Sunny', value: 'sunny' },
|
|
692
|
+
],
|
|
693
|
+
default: 'none',
|
|
694
|
+
description: 'Icon associated with the time-off reason',
|
|
695
|
+
},
|
|
696
|
+
// Time off reason update (JSON)
|
|
697
|
+
{
|
|
698
|
+
displayName: 'Time Off Reason Data',
|
|
699
|
+
name: 'timeOffReasonUpdateData',
|
|
700
|
+
type: 'json',
|
|
701
|
+
required: true,
|
|
702
|
+
displayOptions: {
|
|
703
|
+
show: {
|
|
704
|
+
resource: ['teamsShift'],
|
|
705
|
+
operation: ['updateTimeOffReason'],
|
|
706
|
+
},
|
|
707
|
+
},
|
|
708
|
+
default: '{}',
|
|
709
|
+
description: 'Full time-off reason JSON for the PUT update',
|
|
710
|
+
},
|
|
711
|
+
// ════════════════ TIME OFF REQUEST FIELDS ════════════════
|
|
712
|
+
{
|
|
713
|
+
displayName: 'Time Off Request ID',
|
|
714
|
+
name: 'timeOffRequestId',
|
|
715
|
+
type: 'string',
|
|
716
|
+
required: true,
|
|
717
|
+
displayOptions: {
|
|
718
|
+
show: {
|
|
719
|
+
resource: ['teamsShift'],
|
|
720
|
+
operation: ['approveTimeOffRequest', 'declineTimeOffRequest'],
|
|
721
|
+
},
|
|
722
|
+
},
|
|
723
|
+
default: '',
|
|
724
|
+
description: 'The ID of the time-off request',
|
|
725
|
+
},
|
|
726
|
+
{
|
|
727
|
+
displayName: 'Start Date Time',
|
|
728
|
+
name: 'timeOffStart',
|
|
729
|
+
type: 'dateTime',
|
|
730
|
+
required: true,
|
|
731
|
+
displayOptions: {
|
|
732
|
+
show: {
|
|
733
|
+
resource: ['teamsShift'],
|
|
734
|
+
operation: ['createTimeOffRequest'],
|
|
735
|
+
},
|
|
736
|
+
},
|
|
737
|
+
default: '',
|
|
738
|
+
description: 'Start date and time for the time off',
|
|
739
|
+
},
|
|
740
|
+
{
|
|
741
|
+
displayName: 'End Date Time',
|
|
742
|
+
name: 'timeOffEnd',
|
|
743
|
+
type: 'dateTime',
|
|
744
|
+
required: true,
|
|
745
|
+
displayOptions: {
|
|
746
|
+
show: {
|
|
747
|
+
resource: ['teamsShift'],
|
|
748
|
+
operation: ['createTimeOffRequest'],
|
|
749
|
+
},
|
|
750
|
+
},
|
|
751
|
+
default: '',
|
|
752
|
+
description: 'End date and time for the time off',
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
displayName: 'Time Off Reason ID',
|
|
756
|
+
name: 'timeOffReasonIdForRequest',
|
|
757
|
+
type: 'string',
|
|
758
|
+
required: true,
|
|
759
|
+
displayOptions: {
|
|
760
|
+
show: {
|
|
761
|
+
resource: ['teamsShift'],
|
|
762
|
+
operation: ['createTimeOffRequest'],
|
|
763
|
+
},
|
|
764
|
+
},
|
|
765
|
+
default: '',
|
|
766
|
+
description: 'The ID of the time-off reason for this request',
|
|
767
|
+
},
|
|
768
|
+
{
|
|
769
|
+
displayName: 'Message',
|
|
770
|
+
name: 'approvalMessage',
|
|
771
|
+
type: 'string',
|
|
772
|
+
displayOptions: {
|
|
773
|
+
show: {
|
|
774
|
+
resource: ['teamsShift'],
|
|
775
|
+
operation: [
|
|
776
|
+
'approveTimeOffRequest',
|
|
777
|
+
'declineTimeOffRequest',
|
|
778
|
+
'approveSwapShiftRequest',
|
|
779
|
+
'declineSwapShiftRequest',
|
|
780
|
+
'approveOfferShiftRequest',
|
|
781
|
+
'declineOfferShiftRequest',
|
|
782
|
+
],
|
|
783
|
+
},
|
|
784
|
+
},
|
|
785
|
+
default: '',
|
|
786
|
+
description: 'Optional message for the approval/decline',
|
|
787
|
+
},
|
|
788
|
+
// ════════════════ SWAP SHIFT REQUEST FIELDS ════════════════
|
|
789
|
+
{
|
|
790
|
+
displayName: 'Swap Shift Request ID',
|
|
791
|
+
name: 'swapShiftRequestId',
|
|
792
|
+
type: 'string',
|
|
793
|
+
required: true,
|
|
794
|
+
displayOptions: {
|
|
795
|
+
show: {
|
|
796
|
+
resource: ['teamsShift'],
|
|
797
|
+
operation: ['approveSwapShiftRequest', 'declineSwapShiftRequest'],
|
|
798
|
+
},
|
|
799
|
+
},
|
|
800
|
+
default: '',
|
|
801
|
+
description: 'The ID of the swap-shift change request',
|
|
802
|
+
},
|
|
803
|
+
{
|
|
804
|
+
displayName: 'Sender Shift ID',
|
|
805
|
+
name: 'senderShiftId',
|
|
806
|
+
type: 'string',
|
|
807
|
+
required: true,
|
|
808
|
+
displayOptions: {
|
|
809
|
+
show: {
|
|
810
|
+
resource: ['teamsShift'],
|
|
811
|
+
operation: ['createSwapShiftRequest'],
|
|
812
|
+
},
|
|
813
|
+
},
|
|
814
|
+
default: '',
|
|
815
|
+
description: 'The shift ID of the sender (your shift)',
|
|
816
|
+
},
|
|
817
|
+
{
|
|
818
|
+
displayName: 'Recipient Shift ID',
|
|
819
|
+
name: 'recipientShiftId',
|
|
820
|
+
type: 'string',
|
|
821
|
+
required: true,
|
|
822
|
+
displayOptions: {
|
|
823
|
+
show: {
|
|
824
|
+
resource: ['teamsShift'],
|
|
825
|
+
operation: ['createSwapShiftRequest'],
|
|
826
|
+
},
|
|
827
|
+
},
|
|
828
|
+
default: '',
|
|
829
|
+
description: 'The shift ID of the recipient (the shift you want)',
|
|
830
|
+
},
|
|
831
|
+
{
|
|
832
|
+
displayName: 'Recipient User ID',
|
|
833
|
+
name: 'swapRecipientUserId',
|
|
834
|
+
type: 'string',
|
|
835
|
+
required: true,
|
|
836
|
+
displayOptions: {
|
|
837
|
+
show: {
|
|
838
|
+
resource: ['teamsShift'],
|
|
839
|
+
operation: ['createSwapShiftRequest'],
|
|
840
|
+
},
|
|
841
|
+
},
|
|
842
|
+
default: '',
|
|
843
|
+
description: 'The user ID of the person you want to swap with',
|
|
844
|
+
},
|
|
845
|
+
// ════════════════ OFFER SHIFT REQUEST FIELDS ════════════════
|
|
846
|
+
{
|
|
847
|
+
displayName: 'Offer Shift Request ID',
|
|
848
|
+
name: 'offerShiftRequestId',
|
|
849
|
+
type: 'string',
|
|
850
|
+
required: true,
|
|
851
|
+
displayOptions: {
|
|
852
|
+
show: {
|
|
853
|
+
resource: ['teamsShift'],
|
|
854
|
+
operation: ['approveOfferShiftRequest', 'declineOfferShiftRequest'],
|
|
855
|
+
},
|
|
856
|
+
},
|
|
857
|
+
default: '',
|
|
858
|
+
description: 'The ID of the offer-shift request',
|
|
859
|
+
},
|
|
860
|
+
{
|
|
861
|
+
displayName: 'Sender Shift ID',
|
|
862
|
+
name: 'offerSenderShiftId',
|
|
863
|
+
type: 'string',
|
|
864
|
+
required: true,
|
|
865
|
+
displayOptions: {
|
|
866
|
+
show: {
|
|
867
|
+
resource: ['teamsShift'],
|
|
868
|
+
operation: ['createOfferShiftRequest'],
|
|
869
|
+
},
|
|
870
|
+
},
|
|
871
|
+
default: '',
|
|
872
|
+
description: 'The shift ID being offered',
|
|
873
|
+
},
|
|
874
|
+
{
|
|
875
|
+
displayName: 'Recipient User ID',
|
|
876
|
+
name: 'offerRecipientUserId',
|
|
877
|
+
type: 'string',
|
|
878
|
+
required: true,
|
|
879
|
+
displayOptions: {
|
|
880
|
+
show: {
|
|
881
|
+
resource: ['teamsShift'],
|
|
882
|
+
operation: ['createOfferShiftRequest'],
|
|
883
|
+
},
|
|
884
|
+
},
|
|
885
|
+
default: '',
|
|
886
|
+
description: 'The user ID of the person receiving the offer',
|
|
887
|
+
},
|
|
888
|
+
];
|
|
889
|
+
//# sourceMappingURL=ShiftDescription.js.map
|