diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts index 27a2e656d5..a7dd2952af 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/template.data.ts @@ -8,6 +8,10 @@ import { TemplateScaffoldResponseModel, CreateTemplateRequestModel, TemplateItemResponseModel, + TemplateQuerySettingsResponseModel, + TemplateQueryPropertyTypeModel, + OperatorModel, + TemplateQueryResultResponseModel, } from '@umbraco-cms/backoffice/backend-api'; type TemplateDBItem = TemplateResponseModel & EntityTreeItemResponseModel; @@ -105,58 +109,81 @@ export const createTemplateScaffold = (masterTemplateAlias: string) => { }`; }; -export const templateQuerySettings = { +const templateQueryExpressions = [ + `Umbraco.ContentAtRoot().FirstOrDefault() + .ChildrenOfType("docTypeWithTemplate") + .Where(x => x.IsVisible())`, + `Umbraco.Content(Guid.Parse("0b3498dc-255a-4d62-aa4f-ef7bff333544")) + .ChildrenOfType("docTypeWithTemplate") + .Where(x => x.IsVisible())`, + `Umbraco.Content(Guid.Parse("0b3498dc-255a-4d62-aa4f-ef7bff333544")) + .ChildrenOfType("docTypeWithTemplate") + .Where(x => (x.Id > 5)) + .Where(x => x.IsVisible()) + .OrderByDescending(x => x.UpdateDate)`, +]; + +const randomIndex = () => Math.floor(Math.random() * 3); + +export const templateQueryResult: TemplateQueryResultResponseModel = { + queryExpression: templateQueryExpressions[randomIndex()], + sampleResults: [], + resultCount: 0, + executionTime: 0, +}; + +export const templateQuerySettings: TemplateQuerySettingsResponseModel = { contentTypeAliases: [], properties: [ { alias: 'Id', - type: 'Integer', + type: TemplateQueryPropertyTypeModel.INTEGER, }, { alias: 'Name', - type: 'String', + type: TemplateQueryPropertyTypeModel.STRING, }, { alias: 'CreateDate', - type: 'DateTime', + type: TemplateQueryPropertyTypeModel.DATE_TIME, }, { alias: 'UpdateDate', - type: 'DateTime', + type: TemplateQueryPropertyTypeModel.DATE_TIME, }, ], operators: [ { - operator: 'Equals', - applicableTypes: ['Integer', 'String'], + operator: OperatorModel.EQUALS, + applicableTypes: [TemplateQueryPropertyTypeModel.INTEGER, TemplateQueryPropertyTypeModel.STRING], }, { - operator: 'NotEquals', - applicableTypes: ['Integer', 'String'], + operator: OperatorModel.NOT_EQUALS, + applicableTypes: [TemplateQueryPropertyTypeModel.INTEGER, TemplateQueryPropertyTypeModel.STRING], }, { - operator: 'LessThan', - applicableTypes: ['Integer', 'DateTime'], + operator: OperatorModel.LESS_THAN, + applicableTypes: [TemplateQueryPropertyTypeModel.INTEGER, TemplateQueryPropertyTypeModel.DATE_TIME], }, { - operator: 'LessThanEqualTo', - applicableTypes: ['Integer', 'DateTime'], + operator: OperatorModel.GREATER_THAN_EQUAL_TO, + applicableTypes: [TemplateQueryPropertyTypeModel.INTEGER, TemplateQueryPropertyTypeModel.DATE_TIME], }, { - operator: 'GreaterThan', - applicableTypes: ['Integer', 'DateTime'], + operator: OperatorModel.GREATER_THAN, + applicableTypes: [TemplateQueryPropertyTypeModel.INTEGER, TemplateQueryPropertyTypeModel.DATE_TIME], }, { - operator: 'GreaterThanEqualTo', - applicableTypes: ['Integer', 'DateTime'], + operator: OperatorModel.GREATER_THAN_EQUAL_TO, + applicableTypes: [TemplateQueryPropertyTypeModel.INTEGER, TemplateQueryPropertyTypeModel.DATE_TIME], }, { - operator: 'Contains', - applicableTypes: ['String'], + operator: OperatorModel.CONTAINS, + applicableTypes: [TemplateQueryPropertyTypeModel.STRING], }, { - operator: 'NotContains', - applicableTypes: ['String'], + operator: OperatorModel.NOT_CONTAINS, + applicableTypes: [TemplateQueryPropertyTypeModel.STRING], }, ], }; @@ -192,6 +219,8 @@ class UmbTemplateData extends UmbEntityData { getTemplateQuerySettings = () => templateQuerySettings; + getTemplateQueryResult = () => templateQueryResult; + create(templateData: CreateTemplateRequestModel) { const template = { $type: '', diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers/template.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/handlers/template.handlers.ts index 41ed949c17..84a5e5898e 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers/template.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/handlers/template.handlers.ts @@ -48,6 +48,11 @@ export const handlers = [ return res(ctx.status(200), ctx.json(response)); }), + rest.get(umbracoPath('/template/query/execute'), (req, res, ctx) => { + const response = umbTemplateData.getTemplateQueryResult(); + return res(ctx.status(200), ctx.json(response)); + }), + rest.get(umbracoPath('/template/:id'), (req, res, ctx) => { const id = req.params.id as string; if (!id) return;