@dpesch/mantisbt-mcp-server 1.0.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/.env.local +2 -0
- package/CHANGELOG.md +68 -0
- package/LICENSE +21 -0
- package/README.de.md +177 -0
- package/README.md +177 -0
- package/dist/cache.js +52 -0
- package/dist/client.js +114 -0
- package/dist/config.js +54 -0
- package/dist/constants.js +23 -0
- package/dist/index.js +120 -0
- package/dist/tools/config.js +107 -0
- package/dist/tools/files.js +37 -0
- package/dist/tools/filters.js +35 -0
- package/dist/tools/issues.js +191 -0
- package/dist/tools/metadata.js +119 -0
- package/dist/tools/monitors.js +38 -0
- package/dist/tools/notes.js +96 -0
- package/dist/tools/projects.js +127 -0
- package/dist/tools/relationships.js +54 -0
- package/dist/tools/tags.js +78 -0
- package/dist/tools/users.js +34 -0
- package/dist/tools/version.js +58 -0
- package/dist/types.js +4 -0
- package/dist/version-hint.js +117 -0
- package/package.json +41 -0
- package/scripts/record-fixtures.ts +138 -0
- package/tests/cache.test.ts +149 -0
- package/tests/client.test.ts +241 -0
- package/tests/config.test.ts +164 -0
- package/tests/fixtures/get_current_user.json +39 -0
- package/tests/fixtures/get_issue.json +151 -0
- package/tests/fixtures/get_project_categories.json +60 -0
- package/tests/fixtures/get_project_versions.json +3 -0
- package/tests/fixtures/get_project_versions_with_data.json +28 -0
- package/tests/fixtures/list_issues.json +67 -0
- package/tests/fixtures/list_projects.json +65 -0
- package/tests/fixtures/recorded/get_current_user.json +108 -0
- package/tests/fixtures/recorded/get_issue.json +320 -0
- package/tests/fixtures/recorded/get_project_categories.json +241 -0
- package/tests/fixtures/recorded/get_project_versions.json +3 -0
- package/tests/fixtures/recorded/list_issues.json +824 -0
- package/tests/fixtures/recorded/list_projects.json +10641 -0
- package/tests/helpers/mock-server.ts +32 -0
- package/tests/tools/issues.test.ts +130 -0
- package/tests/tools/projects.test.ts +169 -0
- package/tests/tools/users.test.ts +76 -0
- package/tests/version-hint.test.ts +230 -0
- package/tsconfig.build.json +8 -0
- package/vitest.config.ts +8 -0
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
{
|
|
2
|
+
"issues": [
|
|
3
|
+
{
|
|
4
|
+
"id": 7856,
|
|
5
|
+
"summary": "statusline-command.sh: Usage-Statistiken ergaenzt",
|
|
6
|
+
"description": "## Was ist passiert?\nstatusline-command.sh verwendete cygpath hartcodiert für USAGE_CACHE und USAGE_FETCHER.\nAuf WSL und Linux wurden die Pfade nicht aufgelöst — die Usage-Statistiken fehlten in der Statusleiste.\n\n## Betroffene Komponente\n- Skript: statusline-command.sh\n- Dateien: setup/statusline-command.sh, ~/.claude/statusline-command.sh\n- Plattform: beide\n\n## Ursachenanalyse\nDie Variablen USAGE_CACHE und USAGE_FETCHER wurden mit $(cygpath ...) gesetzt,\nohne Fallback für WSL/Linux.\n\n## Lösungsansätze\n1. Plattform-Erkennung: cygpath verfügbar -> Windows, sonst $HOME (WSL/Linux)\n2. _CLAUDE_HOME als gemeinsame Hilfsvariable\n3. USAGE_CACHE und USAGE_FETCHER davon ableiten\n\n## Hinweise zur Umsetzung\nÄnderungen wurden lokal vorgenommen, aber noch nicht commited oder gepushed.\nSiehe Kommentar für den konkreten Diff.",
|
|
7
|
+
"project": {
|
|
8
|
+
"id": 54,
|
|
9
|
+
"name": "11com7 Claude MetaRepo"
|
|
10
|
+
},
|
|
11
|
+
"category": {
|
|
12
|
+
"id": 350,
|
|
13
|
+
"name": "Konfiguration"
|
|
14
|
+
},
|
|
15
|
+
"reporter": {
|
|
16
|
+
"id": 52,
|
|
17
|
+
"name": "ppAgent"
|
|
18
|
+
},
|
|
19
|
+
"handler": {
|
|
20
|
+
"id": 51,
|
|
21
|
+
"name": "domAgent",
|
|
22
|
+
"real_name": "Dominik Pesch (via Agent)",
|
|
23
|
+
"email": "d.pesch+agent@11com7.de"
|
|
24
|
+
},
|
|
25
|
+
"status": {
|
|
26
|
+
"id": 80,
|
|
27
|
+
"name": "resolved",
|
|
28
|
+
"label": "erledigt",
|
|
29
|
+
"color": "#e8e8e8"
|
|
30
|
+
},
|
|
31
|
+
"resolution": {
|
|
32
|
+
"id": 20,
|
|
33
|
+
"name": "fixed",
|
|
34
|
+
"label": "erledigt"
|
|
35
|
+
},
|
|
36
|
+
"view_state": {
|
|
37
|
+
"id": 10,
|
|
38
|
+
"name": "public",
|
|
39
|
+
"label": "öffentlich"
|
|
40
|
+
},
|
|
41
|
+
"priority": {
|
|
42
|
+
"id": 30,
|
|
43
|
+
"name": "normal",
|
|
44
|
+
"label": "normal"
|
|
45
|
+
},
|
|
46
|
+
"severity": {
|
|
47
|
+
"id": 210,
|
|
48
|
+
"name": "Wartung",
|
|
49
|
+
"label": "Wartung"
|
|
50
|
+
},
|
|
51
|
+
"reproducibility": {
|
|
52
|
+
"id": 70,
|
|
53
|
+
"name": "have not tried",
|
|
54
|
+
"label": "nicht getestet"
|
|
55
|
+
},
|
|
56
|
+
"sticky": false,
|
|
57
|
+
"created_at": "2026-03-13T15:51:57+01:00",
|
|
58
|
+
"updated_at": "2026-03-15T08:35:48+01:00",
|
|
59
|
+
"notes": [
|
|
60
|
+
{
|
|
61
|
+
"id": 3982,
|
|
62
|
+
"reporter": {
|
|
63
|
+
"id": 52,
|
|
64
|
+
"name": "ppAgent"
|
|
65
|
+
},
|
|
66
|
+
"text": "## Ausstehende Aenderung — setup/statusline-command.sh\n\nDie Aenderung wurde lokal erstellt, aber noch nicht commited. Ein Agent kann sie direkt uebernehmen.\n\n### Diff\n\n```diff\n@@ -34,8 +34,13 @@ else\n fi\n \n # Rate-Limit-Usage aus Cache lesen; bei veraltetem Cache Refresh im Hintergrund anstoessen\n-USAGE_CACHE=\"$(cygpath \"$USERPROFILE\")/.claude/usage-rate-cache.json\"\n-USAGE_FETCHER=\"$(cygpath \"$USERPROFILE\")/.claude/usage-fetcher.sh\"\n+if command -v cygpath &>/dev/null; then\n+ _CLAUDE_HOME=\"$(cygpath \"$USERPROFILE\")/.claude\"\n+else\n+ _CLAUDE_HOME=\"$HOME/.claude\"\n+fi\n+USAGE_CACHE=\"$_CLAUDE_HOME/usage-rate-cache.json\"\n+USAGE_FETCHER=\"$_CLAUDE_HOME/usage-fetcher.sh\"\n usage_str=\"\"\n```\n\n### Commit-Vorschlag\n\n```\nErgaenze WSL/Linux-Pfad-Fallback in statusline-command.sh\n```\n\nDie Aenderung muss identisch in `setup/statusline-command.sh` (Repo) und\n`~/.claude/statusline-command.sh` (deployed) vorgenommen werden.",
|
|
67
|
+
"view_state": {
|
|
68
|
+
"id": 10,
|
|
69
|
+
"name": "public",
|
|
70
|
+
"label": "öffentlich"
|
|
71
|
+
},
|
|
72
|
+
"attachments": [],
|
|
73
|
+
"type": "note",
|
|
74
|
+
"created_at": "2026-03-13T15:58:50+01:00",
|
|
75
|
+
"updated_at": "2026-03-13T15:58:50+01:00"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": 3984,
|
|
79
|
+
"reporter": {
|
|
80
|
+
"id": 51,
|
|
81
|
+
"name": "domAgent",
|
|
82
|
+
"real_name": "Dominik Pesch (via Agent)",
|
|
83
|
+
"email": "d.pesch+agent@11com7.de"
|
|
84
|
+
},
|
|
85
|
+
"text": "`setup/statusline-command.sh` verwendete `cygpath \"$USERPROFILE\"` hartcodiert zum Auflösen der Pfade für `USAGE_CACHE` und `USAGE_FETCHER`. `cygpath` ist ausschließlich unter Windows (Git Bash / Cygwin) verfügbar — auf WSL und Linux ist der Befehl nicht vorhanden, weshalb die Variablen auf leere Strings gesetzt wurden und die Usage-Statistiken in der Statusleiste komplett fehlten.\n\nBehoben durch eine Plattform-Erkennung: Wenn `cygpath` verfügbar ist (Windows), wird `_CLAUDE_HOME` wie bisher per `cygpath \"$USERPROFILE\"` gesetzt; andernfalls (WSL/Linux) wird `$HOME/.claude` verwendet. `USAGE_CACHE` und `USAGE_FETCHER` leiten sich dann gemeinsam von `_CLAUDE_HOME` ab.\n\nCommit: e66a7ca",
|
|
86
|
+
"view_state": {
|
|
87
|
+
"id": 10,
|
|
88
|
+
"name": "public",
|
|
89
|
+
"label": "öffentlich"
|
|
90
|
+
},
|
|
91
|
+
"attachments": [],
|
|
92
|
+
"type": "note",
|
|
93
|
+
"created_at": "2026-03-13T16:22:40+01:00",
|
|
94
|
+
"updated_at": "2026-03-13T16:22:40+01:00"
|
|
95
|
+
}
|
|
96
|
+
],
|
|
97
|
+
"history": [
|
|
98
|
+
{
|
|
99
|
+
"created_at": "2026-03-13T15:51:57+01:00",
|
|
100
|
+
"user": {
|
|
101
|
+
"id": 52,
|
|
102
|
+
"name": "ppAgent"
|
|
103
|
+
},
|
|
104
|
+
"type": {
|
|
105
|
+
"id": 1,
|
|
106
|
+
"name": "issue-new"
|
|
107
|
+
},
|
|
108
|
+
"message": "Neuer Eintrag"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"created_at": "2026-03-13T15:51:57+01:00",
|
|
112
|
+
"user": {
|
|
113
|
+
"id": 52,
|
|
114
|
+
"name": "ppAgent"
|
|
115
|
+
},
|
|
116
|
+
"field": {
|
|
117
|
+
"name": "status",
|
|
118
|
+
"label": "Status"
|
|
119
|
+
},
|
|
120
|
+
"type": {
|
|
121
|
+
"id": 0,
|
|
122
|
+
"name": "field-updated"
|
|
123
|
+
},
|
|
124
|
+
"old_value": {
|
|
125
|
+
"id": 10,
|
|
126
|
+
"name": "new",
|
|
127
|
+
"label": "neu",
|
|
128
|
+
"color": "#eeb3aa"
|
|
129
|
+
},
|
|
130
|
+
"new_value": {
|
|
131
|
+
"id": 50,
|
|
132
|
+
"name": "assigned",
|
|
133
|
+
"label": "zugewiesen",
|
|
134
|
+
"color": "#afbed5"
|
|
135
|
+
},
|
|
136
|
+
"message": "Status",
|
|
137
|
+
"change": "neu => zugewiesen"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"created_at": "2026-03-13T15:51:57+01:00",
|
|
141
|
+
"user": {
|
|
142
|
+
"id": 52,
|
|
143
|
+
"name": "ppAgent"
|
|
144
|
+
},
|
|
145
|
+
"field": {
|
|
146
|
+
"name": "handler",
|
|
147
|
+
"label": "Bearbeitung durch"
|
|
148
|
+
},
|
|
149
|
+
"type": {
|
|
150
|
+
"id": 0,
|
|
151
|
+
"name": "field-updated"
|
|
152
|
+
},
|
|
153
|
+
"old_value": {
|
|
154
|
+
"id": 0
|
|
155
|
+
},
|
|
156
|
+
"new_value": {
|
|
157
|
+
"id": 51,
|
|
158
|
+
"name": "domAgent",
|
|
159
|
+
"real_name": "Dominik Pesch (via Agent)",
|
|
160
|
+
"email": "d.pesch+agent@11com7.de"
|
|
161
|
+
},
|
|
162
|
+
"message": "Bearbeitung durch",
|
|
163
|
+
"change": " => domAgent"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"created_at": "2026-03-13T15:58:50+01:00",
|
|
167
|
+
"user": {
|
|
168
|
+
"id": 52,
|
|
169
|
+
"name": "ppAgent"
|
|
170
|
+
},
|
|
171
|
+
"type": {
|
|
172
|
+
"id": 6,
|
|
173
|
+
"name": "issue-description-updated"
|
|
174
|
+
},
|
|
175
|
+
"message": "Beschreibung aktualisiert"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"created_at": "2026-03-13T15:58:50+01:00",
|
|
179
|
+
"user": {
|
|
180
|
+
"id": 52,
|
|
181
|
+
"name": "ppAgent"
|
|
182
|
+
},
|
|
183
|
+
"type": {
|
|
184
|
+
"id": 2,
|
|
185
|
+
"name": "note-added"
|
|
186
|
+
},
|
|
187
|
+
"note": {
|
|
188
|
+
"id": 3982
|
|
189
|
+
},
|
|
190
|
+
"message": "Notiz hinzugefügt: 0003982"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"created_at": "2026-03-13T16:10:05+01:00",
|
|
194
|
+
"user": {
|
|
195
|
+
"id": 52,
|
|
196
|
+
"name": "ppAgent"
|
|
197
|
+
},
|
|
198
|
+
"type": {
|
|
199
|
+
"id": 6,
|
|
200
|
+
"name": "issue-description-updated"
|
|
201
|
+
},
|
|
202
|
+
"message": "Beschreibung aktualisiert"
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"created_at": "2026-03-13T16:22:40+01:00",
|
|
206
|
+
"user": {
|
|
207
|
+
"id": 51,
|
|
208
|
+
"name": "domAgent",
|
|
209
|
+
"real_name": "Dominik Pesch (via Agent)",
|
|
210
|
+
"email": "d.pesch+agent@11com7.de"
|
|
211
|
+
},
|
|
212
|
+
"type": {
|
|
213
|
+
"id": 2,
|
|
214
|
+
"name": "note-added"
|
|
215
|
+
},
|
|
216
|
+
"note": {
|
|
217
|
+
"id": 3984
|
|
218
|
+
},
|
|
219
|
+
"message": "Notiz hinzugefügt: 0003984"
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"created_at": "2026-03-13T16:22:49+01:00",
|
|
223
|
+
"user": {
|
|
224
|
+
"id": 51,
|
|
225
|
+
"name": "domAgent",
|
|
226
|
+
"real_name": "Dominik Pesch (via Agent)",
|
|
227
|
+
"email": "d.pesch+agent@11com7.de"
|
|
228
|
+
},
|
|
229
|
+
"field": {
|
|
230
|
+
"name": "status",
|
|
231
|
+
"label": "Status"
|
|
232
|
+
},
|
|
233
|
+
"type": {
|
|
234
|
+
"id": 0,
|
|
235
|
+
"name": "field-updated"
|
|
236
|
+
},
|
|
237
|
+
"old_value": {
|
|
238
|
+
"id": 50,
|
|
239
|
+
"name": "assigned",
|
|
240
|
+
"label": "zugewiesen",
|
|
241
|
+
"color": "#afbed5"
|
|
242
|
+
},
|
|
243
|
+
"new_value": {
|
|
244
|
+
"id": 80,
|
|
245
|
+
"name": "resolved",
|
|
246
|
+
"label": "erledigt",
|
|
247
|
+
"color": "#e8e8e8"
|
|
248
|
+
},
|
|
249
|
+
"message": "Status",
|
|
250
|
+
"change": "zugewiesen => erledigt"
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"created_at": "2026-03-13T16:22:49+01:00",
|
|
254
|
+
"user": {
|
|
255
|
+
"id": 51,
|
|
256
|
+
"name": "domAgent",
|
|
257
|
+
"real_name": "Dominik Pesch (via Agent)",
|
|
258
|
+
"email": "d.pesch+agent@11com7.de"
|
|
259
|
+
},
|
|
260
|
+
"field": {
|
|
261
|
+
"name": "resolution",
|
|
262
|
+
"label": "Lösung"
|
|
263
|
+
},
|
|
264
|
+
"type": {
|
|
265
|
+
"id": 0,
|
|
266
|
+
"name": "field-updated"
|
|
267
|
+
},
|
|
268
|
+
"old_value": {
|
|
269
|
+
"id": 10,
|
|
270
|
+
"name": "open",
|
|
271
|
+
"label": "offen"
|
|
272
|
+
},
|
|
273
|
+
"new_value": {
|
|
274
|
+
"id": 20,
|
|
275
|
+
"name": "fixed",
|
|
276
|
+
"label": "erledigt"
|
|
277
|
+
},
|
|
278
|
+
"message": "Lösung",
|
|
279
|
+
"change": "offen => erledigt"
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"created_at": "2026-03-15T08:35:40+01:00",
|
|
283
|
+
"user": {
|
|
284
|
+
"id": 51,
|
|
285
|
+
"name": "domAgent",
|
|
286
|
+
"real_name": "Dominik Pesch (via Agent)",
|
|
287
|
+
"email": "d.pesch+agent@11com7.de"
|
|
288
|
+
},
|
|
289
|
+
"type": {
|
|
290
|
+
"id": 25,
|
|
291
|
+
"name": "tag-added"
|
|
292
|
+
},
|
|
293
|
+
"tag": {
|
|
294
|
+
"id": 25,
|
|
295
|
+
"name": "mcp-test"
|
|
296
|
+
},
|
|
297
|
+
"message": "Tag zugeordnet: mcp-test"
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"created_at": "2026-03-15T08:35:48+01:00",
|
|
301
|
+
"user": {
|
|
302
|
+
"id": 51,
|
|
303
|
+
"name": "domAgent",
|
|
304
|
+
"real_name": "Dominik Pesch (via Agent)",
|
|
305
|
+
"email": "d.pesch+agent@11com7.de"
|
|
306
|
+
},
|
|
307
|
+
"type": {
|
|
308
|
+
"id": 26,
|
|
309
|
+
"name": "tag-deleted"
|
|
310
|
+
},
|
|
311
|
+
"tag": {
|
|
312
|
+
"id": 25,
|
|
313
|
+
"name": "mcp-test"
|
|
314
|
+
},
|
|
315
|
+
"message": "Tag entfernt: mcp-test"
|
|
316
|
+
}
|
|
317
|
+
]
|
|
318
|
+
}
|
|
319
|
+
]
|
|
320
|
+
}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
{
|
|
2
|
+
"categories": [
|
|
3
|
+
{
|
|
4
|
+
"id": 369,
|
|
5
|
+
"name": "API",
|
|
6
|
+
"project": {
|
|
7
|
+
"id": 0,
|
|
8
|
+
"name": null
|
|
9
|
+
},
|
|
10
|
+
"status": "1"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": 176,
|
|
14
|
+
"name": "Außenbereich / GaLaBau",
|
|
15
|
+
"project": {
|
|
16
|
+
"id": 30,
|
|
17
|
+
"name": "((Haus)) (Bolliggasse 1a)"
|
|
18
|
+
},
|
|
19
|
+
"status": "1",
|
|
20
|
+
"default_handler": {
|
|
21
|
+
"id": 4,
|
|
22
|
+
"name": "st"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": 170,
|
|
27
|
+
"name": "Außenhülle",
|
|
28
|
+
"project": {
|
|
29
|
+
"id": 30,
|
|
30
|
+
"name": "((Haus)) (Bolliggasse 1a)"
|
|
31
|
+
},
|
|
32
|
+
"status": "1"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": 372,
|
|
36
|
+
"name": "Automatisierung",
|
|
37
|
+
"project": {
|
|
38
|
+
"id": 0,
|
|
39
|
+
"name": null
|
|
40
|
+
},
|
|
41
|
+
"status": "1"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": 351,
|
|
45
|
+
"name": "Build-Stack",
|
|
46
|
+
"project": {
|
|
47
|
+
"id": 0,
|
|
48
|
+
"name": null
|
|
49
|
+
},
|
|
50
|
+
"status": "1"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": 352,
|
|
54
|
+
"name": "CI (Jenkins)",
|
|
55
|
+
"project": {
|
|
56
|
+
"id": 0,
|
|
57
|
+
"name": null
|
|
58
|
+
},
|
|
59
|
+
"status": "1"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": 349,
|
|
63
|
+
"name": "code cleanup",
|
|
64
|
+
"project": {
|
|
65
|
+
"id": 0,
|
|
66
|
+
"name": null
|
|
67
|
+
},
|
|
68
|
+
"status": "1"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"id": 366,
|
|
72
|
+
"name": "Code-Review",
|
|
73
|
+
"project": {
|
|
74
|
+
"id": 0,
|
|
75
|
+
"name": null
|
|
76
|
+
},
|
|
77
|
+
"status": "1"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"id": 177,
|
|
81
|
+
"name": "Dach",
|
|
82
|
+
"project": {
|
|
83
|
+
"id": 30,
|
|
84
|
+
"name": "((Haus)) (Bolliggasse 1a)"
|
|
85
|
+
},
|
|
86
|
+
"status": "1"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"id": 371,
|
|
90
|
+
"name": "Datenbank",
|
|
91
|
+
"project": {
|
|
92
|
+
"id": 0,
|
|
93
|
+
"name": null
|
|
94
|
+
},
|
|
95
|
+
"status": "1"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"id": 367,
|
|
99
|
+
"name": "Datenschutz",
|
|
100
|
+
"project": {
|
|
101
|
+
"id": 0,
|
|
102
|
+
"name": null
|
|
103
|
+
},
|
|
104
|
+
"status": "1"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"id": 391,
|
|
108
|
+
"name": "E-Mail / Kommunikation",
|
|
109
|
+
"project": {
|
|
110
|
+
"id": 0,
|
|
111
|
+
"name": null
|
|
112
|
+
},
|
|
113
|
+
"status": "1"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"id": 171,
|
|
117
|
+
"name": "Elektro",
|
|
118
|
+
"project": {
|
|
119
|
+
"id": 30,
|
|
120
|
+
"name": "((Haus)) (Bolliggasse 1a)"
|
|
121
|
+
},
|
|
122
|
+
"status": "1",
|
|
123
|
+
"default_handler": {
|
|
124
|
+
"id": 2,
|
|
125
|
+
"name": "dom"
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"id": 174,
|
|
130
|
+
"name": "Fliesen/Bodenbeläge",
|
|
131
|
+
"project": {
|
|
132
|
+
"id": 30,
|
|
133
|
+
"name": "((Haus)) (Bolliggasse 1a)"
|
|
134
|
+
},
|
|
135
|
+
"status": "1"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"id": 172,
|
|
139
|
+
"name": "Heizung",
|
|
140
|
+
"project": {
|
|
141
|
+
"id": 30,
|
|
142
|
+
"name": "((Haus)) (Bolliggasse 1a)"
|
|
143
|
+
},
|
|
144
|
+
"status": "1"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"id": 392,
|
|
148
|
+
"name": "IT-Sicherheit/Security",
|
|
149
|
+
"project": {
|
|
150
|
+
"id": 0,
|
|
151
|
+
"name": null
|
|
152
|
+
},
|
|
153
|
+
"status": "1"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"id": 169,
|
|
157
|
+
"name": "KNX/Bussystem",
|
|
158
|
+
"project": {
|
|
159
|
+
"id": 30,
|
|
160
|
+
"name": "((Haus)) (Bolliggasse 1a)"
|
|
161
|
+
},
|
|
162
|
+
"status": "1",
|
|
163
|
+
"default_handler": {
|
|
164
|
+
"id": 2,
|
|
165
|
+
"name": "dom"
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"id": 350,
|
|
170
|
+
"name": "Konfiguration",
|
|
171
|
+
"project": {
|
|
172
|
+
"id": 0,
|
|
173
|
+
"name": null
|
|
174
|
+
},
|
|
175
|
+
"status": "1"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"id": 353,
|
|
179
|
+
"name": "Modell",
|
|
180
|
+
"project": {
|
|
181
|
+
"id": 0,
|
|
182
|
+
"name": null
|
|
183
|
+
},
|
|
184
|
+
"status": "1"
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"id": 364,
|
|
188
|
+
"name": "QS (Qualitätssicherung)",
|
|
189
|
+
"project": {
|
|
190
|
+
"id": 0,
|
|
191
|
+
"name": null
|
|
192
|
+
},
|
|
193
|
+
"status": "1"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"id": 173,
|
|
197
|
+
"name": "Sanitär",
|
|
198
|
+
"project": {
|
|
199
|
+
"id": 30,
|
|
200
|
+
"name": "((Haus)) (Bolliggasse 1a)"
|
|
201
|
+
},
|
|
202
|
+
"status": "1"
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"id": 398,
|
|
206
|
+
"name": "TODO: passende Kategorie zuordnen",
|
|
207
|
+
"project": {
|
|
208
|
+
"id": 0,
|
|
209
|
+
"name": null
|
|
210
|
+
},
|
|
211
|
+
"status": "1"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"id": 178,
|
|
215
|
+
"name": "Türen / Fenster",
|
|
216
|
+
"project": {
|
|
217
|
+
"id": 30,
|
|
218
|
+
"name": "((Haus)) (Bolliggasse 1a)"
|
|
219
|
+
},
|
|
220
|
+
"status": "1"
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"id": 175,
|
|
224
|
+
"name": "Wände/Decken",
|
|
225
|
+
"project": {
|
|
226
|
+
"id": 30,
|
|
227
|
+
"name": "((Haus)) (Bolliggasse 1a)"
|
|
228
|
+
},
|
|
229
|
+
"status": "1"
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"id": 365,
|
|
233
|
+
"name": "Wartung (u. a. Vendors)",
|
|
234
|
+
"project": {
|
|
235
|
+
"id": 0,
|
|
236
|
+
"name": null
|
|
237
|
+
},
|
|
238
|
+
"status": "1"
|
|
239
|
+
}
|
|
240
|
+
]
|
|
241
|
+
}
|