Skip to content

Commit a6dffc7

Browse files
authored
Builtin Menu Reorganization (#5709)
1 parent 5f5f5af commit a6dffc7

File tree

3 files changed

+108
-128
lines changed

3 files changed

+108
-128
lines changed

backend/infrahub/menu/menu.py

Lines changed: 105 additions & 126 deletions
Original file line numberDiff line numberDiff line change
@@ -96,14 +96,24 @@ def _extract_node_icon(model: MainSchemaTypes) -> str:
9696
section=MenuSection.INTERNAL,
9797
order_weight=1000,
9898
),
99+
MenuItemDefinition(
100+
namespace="Builtin",
101+
name="Branches",
102+
label="Branches",
103+
path="/branches",
104+
icon="mdi:layers-triple",
105+
protected=True,
106+
section=MenuSection.INTERNAL,
107+
order_weight=1500,
108+
),
99109
MenuItemDefinition(
100110
namespace="Builtin",
101111
name="ObjectManagement",
102112
label="Object Management",
103113
icon="mdi:cube-outline",
104114
protected=True,
105115
section=MenuSection.INTERNAL,
106-
order_weight=1500,
116+
order_weight=2000,
107117
children=[
108118
MenuItemDefinition(
109119
namespace="Builtin",
@@ -123,58 +133,47 @@ def _extract_node_icon(model: MainSchemaTypes) -> str:
123133
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.PROFILE)),
124134
protected=True,
125135
section=MenuSection.INTERNAL,
126-
order_weight=2000,
136+
order_weight=1500,
127137
),
128138
MenuItemDefinition(
129139
namespace="Builtin",
130140
name="ResourceManager",
131-
label="Resource Manager",
141+
label="Resource Managers",
132142
path="/resource-manager",
133143
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.RESOURCEPOOL)),
134144
protected=True,
135145
section=MenuSection.INTERNAL,
136-
order_weight=3000,
146+
order_weight=2000,
137147
),
138-
],
139-
),
140-
MenuItemDefinition(
141-
namespace="Builtin",
142-
name="ChangeControl",
143-
label="Change Control",
144-
icon="mdi:source-branch",
145-
protected=True,
146-
section=MenuSection.INTERNAL,
147-
order_weight=2000,
148-
children=[
149148
MenuItemDefinition(
150149
namespace="Builtin",
151-
name="Branches",
152-
label="Branches",
153-
path="/branches",
154-
icon="mdi:layers-triple",
150+
name="Artifact",
151+
label="Artifacts",
152+
kind=InfrahubKind.ARTIFACT,
153+
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.ARTIFACT)),
155154
protected=True,
156155
section=MenuSection.INTERNAL,
157-
order_weight=1000,
156+
order_weight=2500,
158157
),
159158
MenuItemDefinition(
160159
namespace="Builtin",
161-
name="CheckDefinition",
162-
label="Check Definition",
163-
kind=InfrahubKind.CHECKDEFINITION,
164-
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.CHECKDEFINITION)),
160+
name="Schema",
161+
label="Schemas",
162+
path="/schema",
163+
icon="mdi:file-code",
165164
protected=True,
166165
section=MenuSection.INTERNAL,
167166
order_weight=2000,
168167
),
169168
MenuItemDefinition(
170169
namespace="Builtin",
171-
name="Tasks",
172-
label="Tasks",
173-
path="/tasks",
174-
icon="mdi:shield-check",
170+
name="GraphqlQuery",
171+
label="GraphQL Queries",
172+
kind=InfrahubKind.GRAPHQLQUERY,
173+
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.GRAPHQLQUERY)),
175174
protected=True,
176175
section=MenuSection.INTERNAL,
177-
order_weight=3000,
176+
order_weight=3500,
178177
),
179178
MenuItemDefinition(
180179
namespace="Builtin",
@@ -190,175 +189,155 @@ def _extract_node_icon(model: MainSchemaTypes) -> str:
190189
),
191190
MenuItemDefinition(
192191
namespace="Builtin",
193-
name="UnifiedStorage",
194-
label="Unified Storage",
195-
icon="mdi:nas",
192+
name="Actions",
193+
label="Actions",
194+
icon="mdi:rocket-launch",
196195
protected=True,
197196
section=MenuSection.INTERNAL,
198197
order_weight=2500,
199198
children=[
200199
MenuItemDefinition(
201200
namespace="Builtin",
202-
name="Schema",
203-
label="Schema",
204-
path="/schema",
205-
icon="mdi:file-code",
201+
name="CheckDefinition",
202+
label="Check Definition",
203+
kind=InfrahubKind.CHECKDEFINITION,
204+
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.CHECKDEFINITION)),
205+
protected=True,
206+
section=MenuSection.INTERNAL,
207+
order_weight=3000,
208+
),
209+
MenuItemDefinition(
210+
namespace="Builtin",
211+
name="ArtifactDefinition",
212+
label="Artifact Definitions",
213+
kind=InfrahubKind.ARTIFACTDEFINITION,
214+
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.ARTIFACTDEFINITION)),
206215
protected=True,
207216
section=MenuSection.INTERNAL,
208217
order_weight=1000,
209218
),
210219
MenuItemDefinition(
211220
namespace="Builtin",
212-
name="Git Repository",
213-
label="Repository",
214-
kind=InfrahubKind.GENERICREPOSITORY,
215-
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.GENERICREPOSITORY)),
221+
name="Transformation",
222+
label="Transformations",
223+
kind=InfrahubKind.TRANSFORM,
224+
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.TRANSFORM)),
216225
protected=True,
217226
section=MenuSection.INTERNAL,
218-
order_weight=2000,
227+
order_weight=3000,
219228
),
220229
MenuItemDefinition(
221230
namespace="Builtin",
222-
name="Credentials",
223-
label="Credentials",
224-
kind=InfrahubKind.CREDENTIAL,
225-
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.CREDENTIAL)),
231+
name="GeneratorInstance",
232+
label="Generators",
233+
kind=InfrahubKind.GENERATORINSTANCE,
234+
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.GENERATORINSTANCE)),
226235
protected=True,
227236
section=MenuSection.INTERNAL,
228-
order_weight=2000,
237+
order_weight=1000,
229238
),
230239
MenuItemDefinition(
231240
namespace="Builtin",
232-
name="GraphqlQuery",
233-
label="GraphQL Query",
234-
kind=InfrahubKind.GRAPHQLQUERY,
235-
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.GRAPHQLQUERY)),
241+
name="GeneratorDefinition",
242+
label="Generator Definitions",
243+
kind=InfrahubKind.GENERATORDEFINITION,
244+
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.GENERATORDEFINITION)),
236245
protected=True,
237246
section=MenuSection.INTERNAL,
238-
order_weight=3000,
247+
order_weight=2000,
239248
),
240249
],
241250
),
242251
MenuItemDefinition(
243252
namespace="Builtin",
244-
name="Deployment",
245-
label="Deployment",
246-
icon="mdi:rocket-launch",
253+
name="Integration",
254+
label="Integrations",
255+
icon="mdi:connection",
247256
protected=True,
248257
section=MenuSection.INTERNAL,
249258
order_weight=3000,
250259
children=[
251260
MenuItemDefinition(
252261
namespace="Builtin",
253-
name="ArtifactMenu",
254-
label="Artifact",
262+
name="Webhooks",
263+
label="Webhooks",
264+
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.CUSTOMWEBHOOK)),
255265
protected=True,
256266
section=MenuSection.INTERNAL,
257-
order_weight=1000,
267+
order_weight=3000,
258268
children=[
259269
MenuItemDefinition(
260270
namespace="Builtin",
261-
name="Artifact",
262-
label="Artifact",
263-
kind=InfrahubKind.ARTIFACT,
264-
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.ARTIFACT)),
271+
name="WebhookStandard",
272+
label="Webhooks",
273+
kind=InfrahubKind.STANDARDWEBHOOK,
274+
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.STANDARDWEBHOOK)),
265275
protected=True,
266276
section=MenuSection.INTERNAL,
267277
order_weight=1000,
268278
),
269279
MenuItemDefinition(
270280
namespace="Builtin",
271-
name="ArtifactDefinition",
272-
label="Artifact Definition",
273-
kind=InfrahubKind.ARTIFACTDEFINITION,
274-
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.ARTIFACTDEFINITION)),
281+
name="WebhookCustom",
282+
label="Custom Webhooks",
283+
kind=InfrahubKind.CUSTOMWEBHOOK,
284+
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.CUSTOMWEBHOOK)),
275285
protected=True,
276286
section=MenuSection.INTERNAL,
277-
order_weight=1000,
287+
order_weight=2000,
278288
),
279289
],
280290
),
281291
MenuItemDefinition(
282292
namespace="Builtin",
283-
name="GeneratorMenu",
284-
label="Generator",
293+
name="Git Repository",
294+
label="Git Repositories",
295+
kind=InfrahubKind.GENERICREPOSITORY,
296+
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.GENERICREPOSITORY)),
285297
protected=True,
286298
section=MenuSection.INTERNAL,
287-
order_weight=1000,
288-
children=[
289-
MenuItemDefinition(
290-
namespace="Builtin",
291-
name="GeneratorInstance",
292-
label="Generator Instance",
293-
kind=InfrahubKind.GENERATORINSTANCE,
294-
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.GENERATORINSTANCE)),
295-
protected=True,
296-
section=MenuSection.INTERNAL,
297-
order_weight=1000,
298-
),
299-
MenuItemDefinition(
300-
namespace="Builtin",
301-
name="GeneratorDefinition",
302-
label="Generator Definition",
303-
kind=InfrahubKind.GENERATORDEFINITION,
304-
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.GENERATORDEFINITION)),
305-
protected=True,
306-
section=MenuSection.INTERNAL,
307-
order_weight=2000,
308-
),
309-
],
299+
order_weight=2000,
310300
),
311301
MenuItemDefinition(
312302
namespace="Builtin",
313-
name="Transformation",
314-
label="Transformation",
315-
kind=InfrahubKind.TRANSFORM,
316-
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.TRANSFORM)),
303+
name="Credentials",
304+
label="Credentials",
305+
kind=InfrahubKind.CREDENTIAL,
306+
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.CREDENTIAL)),
317307
protected=True,
318308
section=MenuSection.INTERNAL,
319-
order_weight=3000,
309+
order_weight=2000,
320310
),
321311
],
322312
),
323313
MenuItemDefinition(
324314
namespace="Builtin",
325-
name="Integration",
326-
label="Integrations",
327-
icon="mdi:connection",
315+
name="Activity",
316+
label="Activity",
317+
icon="mdi:chart-bar-stacked",
328318
protected=True,
329319
section=MenuSection.INTERNAL,
330-
order_weight=3500,
320+
order_weight=4000,
331321
children=[
332322
MenuItemDefinition(
333323
namespace="Builtin",
334-
name="Webhooks",
335-
label="Webhooks",
336-
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.CUSTOMWEBHOOK)),
324+
name="Tasks",
325+
label="Tasks",
326+
path="/tasks",
327+
icon="mdi:shield-check",
337328
protected=True,
338329
section=MenuSection.INTERNAL,
339-
order_weight=3000,
340-
children=[
341-
MenuItemDefinition(
342-
namespace="Builtin",
343-
name="WebhookStandard",
344-
label="Webhook",
345-
kind=InfrahubKind.STANDARDWEBHOOK,
346-
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.STANDARDWEBHOOK)),
347-
protected=True,
348-
section=MenuSection.INTERNAL,
349-
order_weight=1000,
350-
),
351-
MenuItemDefinition(
352-
namespace="Builtin",
353-
name="WebhookCustom",
354-
label="Custom Webhook",
355-
kind=InfrahubKind.CUSTOMWEBHOOK,
356-
icon=_extract_node_icon(infrahub_schema.get(InfrahubKind.CUSTOMWEBHOOK)),
357-
protected=True,
358-
section=MenuSection.INTERNAL,
359-
order_weight=2000,
360-
),
361-
],
330+
order_weight=1000,
331+
),
332+
MenuItemDefinition(
333+
namespace="Builtin",
334+
name="ActivityLog",
335+
label="Activity Log",
336+
path="/activity-log",
337+
icon="mdi:timeline-text",
338+
protected=True,
339+
section=MenuSection.INTERNAL,
340+
order_weight=2000,
362341
),
363342
],
364343
),

changelog/+menu_reorg.changed

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Reorganized builtin/default menu to provide a better user experience.

frontend/app/tests/e2e/tutorial/tutorial-3_schema.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ test.describe("Getting started with Infrahub - Data lineage and metadata", () =>
1515

1616
test("1. Visualize the active schema", async ({ page }) => {
1717
await page.goto("/");
18-
await page.getByRole("button", { name: "Unified Storage" }).click();
19-
await page.getByRole("menuitem", { name: "Schema" }).click();
18+
await page.getByRole("button", { name: "Object Management" }).click();
19+
await page.getByRole("menuitem", { name: "Schemas" }).click();
2020
await expect(page.getByText("Artifact Check")).toBeVisible();
2121
await saveScreenshotForDocs(page, "tutorial_3_schema");
2222
});

0 commit comments

Comments
 (0)