- Models Builder
+
+ Models Builder
+
+ Reload
+
+
+ Version: ${this._modelsBuilder?.version}
+
+
+
${unsafeHTML(this._modelsBuilder?.modelsNamespace)}
+
+
+ ${this._modelsBuilder?.outOfDateModels === true
+ ? html`Models are out of date
`
+ : nothing}
+ ${this._modelsBuilder?.canGenerate === true
+ ? html`
+ Generate models
+ `
+ : nothing}
+ ${this._modelsBuilder?.lastError
+ ? html`Last generation failed with the following error:
+ ${this._modelsBuilder.lastError}`
+ : nothing}
`;
}
diff --git a/src/Umbraco.Web.UI.Client/src/core/mocks/browser-handlers.ts b/src/Umbraco.Web.UI.Client/src/core/mocks/browser-handlers.ts
index aec1422525..a72c20b0bb 100644
--- a/src/Umbraco.Web.UI.Client/src/core/mocks/browser-handlers.ts
+++ b/src/Umbraco.Web.UI.Client/src/core/mocks/browser-handlers.ts
@@ -12,6 +12,7 @@ import { handlers as telemetryHandlers } from './domains/telemetry.handlers';
import { handlers as usersHandlers } from './domains/users.handlers';
import { handlers as userGroupsHandlers } from './domains/user-groups.handlers';
import { handlers as examineManagementHandlers } from './domains/examine-management.handlers';
+import { handlers as modelsBuilderHandlers } from './domains/modelsbuilder.handlers';
const handlers = [
serverHandlers.serverVersionHandler,
@@ -28,6 +29,7 @@ const handlers = [
...usersHandlers,
...userGroupsHandlers,
...examineManagementHandlers,
+ ...modelsBuilderHandlers,
];
switch (import.meta.env.VITE_UMBRACO_INSTALL_STATUS) {
diff --git a/src/Umbraco.Web.UI.Client/src/core/mocks/domains/modelsbuilder.handlers.ts b/src/Umbraco.Web.UI.Client/src/core/mocks/domains/modelsbuilder.handlers.ts
new file mode 100644
index 0000000000..4e54347ecd
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/core/mocks/domains/modelsbuilder.handlers.ts
@@ -0,0 +1,50 @@
+import { rest } from 'msw';
+
+import { umbracoPath } from '@umbraco-cms/utils';
+import { CreatedResult, ModelsBuilder, OutOfDateStatus } from '@umbraco-cms/backend-api';
+
+export const handlers = [
+ rest.post(umbracoPath('/models-builder/build'), async (_req, res, ctx) => {
+ await new Promise((resolve) => setTimeout(resolve, (Math.random() + 1) * 1000)); // simulate a delay of 1-2 seconds
+ return res(
+ // Respond with a 200 status code
+ ctx.status(200),
+ ctx.json