@blickwerk/n8n-nodes-microsoft-planner 1.3.8 → 1.4.0

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 CHANGED
@@ -100,6 +100,7 @@ Configure the Microsoft Planner OAuth2 API credentials in n8n:
100
100
  - **Get Many** - Get multiple tasks from a plan or bucket
101
101
  - **Update** - Update an existing task
102
102
  - **Delete** - Delete a task
103
+ - **Get Files** - Get all files attached to a task
103
104
 
104
105
  ## Usage
105
106
 
@@ -147,6 +148,21 @@ To update a task:
147
148
  - Percent Complete
148
149
  - Move to different bucket
149
150
 
151
+ ### Getting Files from a Task
152
+
153
+ To get all files attached to a task:
154
+ 1. Enter the **Task ID** manually
155
+ 2. The operation returns:
156
+ - **taskId**: The task ID
157
+ - **fileCount**: Number of attached files
158
+ - **files**: Array of file objects with:
159
+ - **url**: Decoded SharePoint URL (ready to use)
160
+ - **alias**: Display name of the file
161
+ - **type**: File type (e.g., PowerPoint, Word, Excel, PDF, Other)
162
+ - **previewPriority**: Priority for preview display
163
+ - **lastModifiedDateTime**: When the file reference was last modified
164
+ - **lastModifiedBy**: Who last modified the reference
165
+
150
166
  ### How to Find Plan IDs
151
167
 
152
168
  You can find your Plan ID in several ways:
@@ -182,6 +198,17 @@ Tested with n8n version 1.0.0 and above.
182
198
 
183
199
  ## Version History
184
200
 
201
+ ### 1.4.0
202
+ - **Updated branding**
203
+ - New Planner icon/logo
204
+ - Added About Blickwerk Media section with company info and social links
205
+
206
+ ### 1.3.9
207
+ - **Added Get Files operation**
208
+ - Retrieve all files attached to a task
209
+ - URLs are properly decoded for direct use
210
+ - Returns file metadata including alias, type, and last modified info
211
+
185
212
  ### 1.3.8
186
213
  - **Fixed priority values**
187
214
  - Corrected priority mapping: Urgent (1), Important (3), Medium (5), Low (9)
@@ -282,6 +309,16 @@ Tested with n8n version 1.0.0 and above.
282
309
 
283
310
  Developed by **Blickwerk Media UG**
284
311
 
312
+ ### About Blickwerk Media
313
+
314
+ We're a digital agency based in Germany, building automation, design, and web solutions for clients across industries.
315
+
316
+ Our focus is on efficient workflows, strong brand experiences, and open-source contributions that make digital tools more connected.
317
+
318
+ - **Web**: [blickwerk.media](https://blickwerk.media)
319
+ - **LinkedIn**: [linkedin.com/company/blickwerkmedia](https://linkedin.com/company/blickwerkmedia)
320
+ - **Instagram**: [instagram.com/blickwerk.media](https://instagram.com/blickwerk.media)
321
+
285
322
  ## Support
286
323
 
287
324
  For issues, questions, or contributions, please visit the [GitHub repository](https://github.com/blickwerk/n8n-nodes-microsoft-planner).
@@ -317,6 +317,33 @@ class MicrosoftPlanner {
317
317
  });
318
318
  returnData.push({ success: true, taskId });
319
319
  }
320
+ // ----------------------------------
321
+ // task:getFiles
322
+ // ----------------------------------
323
+ if (operation === 'getFiles') {
324
+ const taskIdParam = this.getNodeParameter('taskId', i);
325
+ const taskId = typeof taskIdParam === 'string' ? taskIdParam : taskIdParam.value;
326
+ // Get task details
327
+ const details = await GenericFunctions_1.microsoftApiRequest.call(this, 'GET', `/planner/tasks/${taskId}/details`);
328
+ const references = details.references || {};
329
+ const files = Object.keys(references).map((encodedUrl) => {
330
+ // Decode the URL
331
+ const url = decodeURIComponent(encodedUrl);
332
+ return {
333
+ url,
334
+ alias: references[encodedUrl].alias,
335
+ type: references[encodedUrl].type,
336
+ previewPriority: references[encodedUrl].previewPriority,
337
+ lastModifiedDateTime: references[encodedUrl].lastModifiedDateTime,
338
+ lastModifiedBy: references[encodedUrl].lastModifiedBy,
339
+ };
340
+ });
341
+ returnData.push({
342
+ taskId,
343
+ fileCount: files.length,
344
+ files,
345
+ });
346
+ }
320
347
  }
321
348
  }
322
349
  catch (error) {
@@ -43,6 +43,12 @@ exports.taskOperations = [
43
43
  description: 'Delete a task',
44
44
  action: 'Delete a task',
45
45
  },
46
+ {
47
+ name: 'Get Files',
48
+ value: 'getFiles',
49
+ description: 'Get files attached to a task',
50
+ action: 'Get files from a task',
51
+ },
46
52
  ],
47
53
  default: 'create',
48
54
  },
@@ -438,4 +444,29 @@ exports.taskFields = [
438
444
  },
439
445
  ],
440
446
  },
447
+ // ----------------------------------
448
+ // task:getFiles
449
+ // ----------------------------------
450
+ {
451
+ displayName: 'Task',
452
+ name: 'taskId',
453
+ type: 'resourceLocator',
454
+ default: { mode: 'id', value: '' },
455
+ required: true,
456
+ displayOptions: {
457
+ show: {
458
+ resource: ['task'],
459
+ operation: ['getFiles'],
460
+ },
461
+ },
462
+ modes: [
463
+ {
464
+ displayName: 'By ID',
465
+ name: 'id',
466
+ type: 'string',
467
+ placeholder: 'e.g. rz1EH6N_a0aLpRm-2QifxZgAF5OL',
468
+ },
469
+ ],
470
+ description: 'The Task ID to get files from',
471
+ },
441
472
  ];
@@ -1,13 +1,51 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
2
- <defs>
3
- <linearGradient id="a" x1="16" y1="2.5" x2="16" y2="29.5" gradientUnits="userSpaceOnUse">
4
- <stop offset="0" stop-color="#31ad5f"/>
5
- <stop offset="1" stop-color="#1d6f42"/>
6
- </linearGradient>
7
- </defs>
8
- <rect x="2" y="2.5" width="28" height="27" rx="1.5" fill="url(#a)"/>
9
- <path d="M7 9h7v2H7zm0 4h10v2H7zm0 4h8v2H7z" fill="#fff"/>
10
- <circle cx="22" cy="10" r="2.5" fill="#fff"/>
11
- <circle cx="22" cy="15" r="2.5" fill="#fff"/>
12
- <circle cx="22" cy="20" r="2.5" fill="#fff"/>
1
+ <svg width="872" height="872" viewBox="0 0 872 872" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="54" y="54" width="763" height="764" rx="80" fill="white"/>
3
+ <mask id="mask0_12_96" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="54" y="54" width="763" height="764">
4
+ <rect x="54" y="54" width="763" height="764" rx="80" fill="white"/>
5
+ </mask>
6
+ <g mask="url(#mask0_12_96)">
7
+ <path d="M119.063 542.783C249.273 449.513 880.865 314.788 858.416 -92.3502V-119L479.758 -119V-83.4677C485.745 137.127 348.053 360.682 159.472 462.837C123.552 483.565 68.1759 519.097 42.7324 551.667C17.2892 584.238 -2.16736 627.172 29.2626 661.224C72.6661 707.121 177.433 681.95 237.299 673.069C448.329 646.419 484.25 804.833 488.738 944L855.423 944C850.934 838.885 831.475 713.042 770.114 624.211C690.79 507.252 467.785 458.397 180.426 607.927C74.1622 662.706 20.2825 612.369 117.566 542.783" fill="url(#paint0_linear_12_96)"/>
8
+ <mask id="mask1_12_96" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="109" y="125" width="622" height="622">
9
+ <path d="M731 125H109V747H731V125Z" fill="white"/>
10
+ </mask>
11
+ <g mask="url(#mask1_12_96)">
12
+ <path d="M323.022 532.959C296.245 559.736 252.83 559.736 226.053 532.959L129.083 435.989C102.306 409.212 102.306 365.799 129.083 339.022L226.053 242.054C252.83 215.277 296.245 215.277 323.022 242.054L419.992 339.022C446.769 365.799 446.769 409.212 419.992 435.989L323.022 532.959Z" fill="url(#paint1_linear_12_96)"/>
13
+ <path d="M323.022 532.959C296.245 559.736 252.83 559.736 226.053 532.959L129.083 435.989C102.306 409.212 102.306 365.799 129.083 339.022L226.053 242.054C252.83 215.277 296.245 215.277 323.022 242.054L419.992 339.022C446.769 365.799 446.769 409.212 419.992 435.989L323.022 532.959Z" fill="url(#paint2_linear_12_96)"/>
14
+ <path d="M129.082 435.997C155.86 462.775 199.276 462.775 226.054 435.997L516.972 145.083C543.749 118.306 587.165 118.305 613.945 145.083L710.915 242.054C737.694 268.832 737.694 312.247 710.915 339.025L419.997 629.94C393.22 656.717 349.804 656.717 323.026 629.94L129.082 435.997Z" fill="url(#paint3_linear_12_96)"/>
15
+ <path d="M129.082 435.997C155.86 462.775 199.276 462.775 226.054 435.997L516.972 145.083C543.749 118.306 587.165 118.305 613.945 145.083L710.915 242.054C737.694 268.832 737.694 312.247 710.915 339.025L419.997 629.94C393.22 656.717 349.804 656.717 323.026 629.94L129.082 435.997Z" fill="url(#paint4_linear_12_96)"/>
16
+ <path d="M226.051 532.962C252.829 559.742 296.245 559.742 323.023 532.962L516.967 339.021C543.747 312.243 587.163 312.243 613.94 339.021L710.912 435.992C737.692 462.77 737.692 506.185 710.912 532.962L516.967 726.904C490.19 753.684 446.772 753.684 419.995 726.904L226.051 532.962Z" fill="url(#paint5_linear_12_96)"/>
17
+ <path d="M226.051 532.962C252.829 559.742 296.245 559.742 323.023 532.962L516.967 339.021C543.747 312.243 587.163 312.243 613.94 339.021L710.912 435.992C737.692 462.77 737.692 506.185 710.912 532.962L516.967 726.904C490.19 753.684 446.772 753.684 419.995 726.904L226.051 532.962Z" fill="url(#paint6_linear_12_96)"/>
18
+ </g>
19
+ </g>
20
+ <defs>
21
+ <linearGradient id="paint0_linear_12_96" x1="919.5" y1="74" x2="130.318" y2="576.93" gradientUnits="userSpaceOnUse">
22
+ <stop stop-color="#DEDEDE"/>
23
+ <stop offset="1" stop-color="#FAFAFA"/>
24
+ </linearGradient>
25
+ <linearGradient id="paint1_linear_12_96" x1="274.536" y1="221.971" x2="164.923" y2="456.137" gradientUnits="userSpaceOnUse">
26
+ <stop stop-color="#8752E0"/>
27
+ <stop offset="1" stop-color="#541278"/>
28
+ </linearGradient>
29
+ <linearGradient id="paint2_linear_12_96" x1="326.19" y1="411.887" x2="237.044" y2="324.362" gradientUnits="userSpaceOnUse">
30
+ <stop offset="0.12172" stop-color="#3D0D59"/>
31
+ <stop offset="1" stop-color="#7034B0" stop-opacity="0"/>
32
+ </linearGradient>
33
+ <linearGradient id="paint3_linear_12_96" x1="585.092" y1="124.999" x2="364.465" y2="654.198" gradientUnits="userSpaceOnUse">
34
+ <stop stop-color="#DB45E0"/>
35
+ <stop offset="1" stop-color="#6C0F71"/>
36
+ </linearGradient>
37
+ <linearGradient id="paint4_linear_12_96" x1="585.092" y1="124.999" x2="364.465" y2="654.198" gradientUnits="userSpaceOnUse">
38
+ <stop stop-color="#DB45E0"/>
39
+ <stop offset="0.677403" stop-color="#A829AE"/>
40
+ <stop offset="1" stop-color="#8F28B3"/>
41
+ </linearGradient>
42
+ <linearGradient id="paint5_linear_12_96" x1="575.505" y1="319.364" x2="471.844" y2="746.969" gradientUnits="userSpaceOnUse">
43
+ <stop stop-color="#3DCBFF"/>
44
+ <stop offset="1" stop-color="#00479E"/>
45
+ </linearGradient>
46
+ <linearGradient id="paint6_linear_12_96" x1="581.108" y1="330.423" x2="381.739" y2="719.433" gradientUnits="userSpaceOnUse">
47
+ <stop stop-color="#3DCBFF"/>
48
+ <stop offset="1" stop-color="#4A40D4"/>
49
+ </linearGradient>
50
+ </defs>
13
51
  </svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blickwerk/n8n-nodes-microsoft-planner",
3
- "version": "1.3.8",
3
+ "version": "1.4.0",
4
4
  "description": "n8n node for Microsoft Planner - Create and retrieve tasks",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",