From d1a865a44d67b5829e81cc9c71cf40a1bf8a35e4 Mon Sep 17 00:00:00 2001 From: Julia Gru <56249914+julczka@users.noreply.github.com> Date: Fri, 21 Apr 2023 10:31:43 +0200 Subject: [PATCH] add snippet utils --- .../modals/insert-value-sidebar.element.ts | 25 ++------ .../src/backoffice/templating/utils.ts | 64 +++++++++++++++++++ 2 files changed, 68 insertions(+), 21 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/templating/modals/insert-value-sidebar.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/templating/modals/insert-value-sidebar.element.ts index 8a1466b8d4..c60737763b 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/templating/modals/insert-value-sidebar.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/templating/modals/insert-value-sidebar.element.ts @@ -1,8 +1,9 @@ import { UUITextStyles } from '@umbraco-ui/uui-css'; -import { PropertyValueMap, css, html } from 'lit'; +import { css, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; -import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; import { UUIComboboxElement, UUIInputElement } from '@umbraco-ui/uui'; +import { getUmbracoFieldSnippet } from '../utils'; +import { UmbModalBaseElement } from '@umbraco-cms/internal/modal'; @customElement('umb-insert-value-sidebar') export default class UmbInsertValueSidebarElement extends UmbModalBaseElement { @@ -60,7 +61,7 @@ export default class UmbInsertValueSidebarElement extends UmbModalBaseElement encodeURIComp // TODO: we can try and make pretty urls if we want to export const serverFilePathFromUrlFriendlyPath = (unique: string) => decodeURIComponent(unique.replace('-', '.')); + +//Below are a copy of +export const getInsertDictionarySnippet = (nodeName: string) => { + return `@Umbraco.GetDictionaryValue("${nodeName}")`; +} + +export const getInsertPartialSnippet = (nodeName: string, parentId = '') => { + + let partialViewName = nodeName.replace(".cshtml", ""); + + if(parentId) { + partialViewName = parentId + "/" + partialViewName; + } + + return `@await Html.PartialAsync("${partialViewName}")` +} + +export const getQuerySnippet = (queryExpression: string) => { + let code = "\n@{\n" + "\tvar selection = " + queryExpression + ";\n}\n"; + code += "\n\n"; + return code; +} + +export const getRenderBodySnippet = () => "@RenderBody()"; + + +export const getRenderSectionSnippet = (sectionName: string, isMandatory: boolean) => `@RenderSection("${sectionName}", ${isMandatory})`; + + +export const getAddSectionSnippet = (sectionName: string) => `@section ${sectionName} +{ + + + +}` + + +export const getUmbracoFieldSnippet = (field: string, defaultValue: string | null = null, recursive = false) => { + let fallback = null; + + if (recursive !== false && defaultValue !== null) { + fallback = 'Fallback.To(Fallback.Ancestors, Fallback.DefaultValue)'; + } else if (recursive !== false) { + fallback = 'Fallback.ToAncestors'; + } else if (defaultValue !== null) { + fallback = 'Fallback.ToDefaultValue'; + } + + const value = `${field !== null ? `@Model.Value("${field}"` : ''}, ${ + fallback !== null ? `fallback: ${fallback}` : '' + }, ${defaultValue !== null ? `defaultValue: new HtmlString("${defaultValue}")` : ''}${ + field ? ')' : '' + }`; + + return value; +} +