Requirements
Formulas affecting Groups of Fields
We'll show you examples where formulas can be applied to change visibility, collpased, Help Text and more.
Formulas V2 has intellisense, stoppability, support for promises and more.
Important: The feature "Public Use of Edit Form" is disabled
If you want this demo to run for anonymous users you would need it. Register your site on patrons.2sxc.org to get access to the feature.Group visibility
Try it:
This formula determines the visibility of the Advanced settings group. The group becomes visible, when the Advanced toggle is active.
Click on the (Σ) button above to see the edit-UI with the formula.
Formulas of FormulasVisibleGroup.AdvancedSettings
Field.Settings.Visible (Formula-Target: Field.Settings.Visible)
v2((data) => { return data.Advanced == true; });
Group Name - Text summary
Try it:
This formula changes the Name of the PersonGroup field. The name becomes Person - Profile complete if all group fields are filled out and Person - Profile incomplete if not.
Click on the (Σ) button above to see the edit-UI with the formula.
Formulas of FormulasTextSummary.PersonGroup
Field.Settings.Name (Formula-Target: Field.Settings.Name)
v2((data) => { if (data.Firstname != "" && data.Lastname != "" && data.Address != "") return "Person - Profile complete"; return "Person - Profile incomplete" });
Group Name - Emoji summary
Try it:
This formula changes the Name of the ProductGroup field. The name becomes "Product ✅" if all group fields are filled out and "Product ✏️" if not.
Click on the (Σ) button above to see the edit-UI with the formula.
Formulas of FormulasEmojiSummary.ProductGroup
Field.Settings.Name (Formula-Target: Field.Settings.Name)
v2((data) => { if (data.Name != "" && data.Pricing != null) { return "Product ✅"; } return "Product ✏️"; });
Helptext
Try it:
This formula adds a help text based on the ProductCode Field text. If the ProductCode field contains n0t0k the helptext gets this added: This product code is deprecated. Please request a new product code. If it contains spaces the helptext gets this added: Please remove all spaces from your product code.
Click on the (Σ) button above to see the edit-UI with the formula.
Formulas of FormulasHelpText.ProductCode
Setting Notes (Formula-Target: Field.Settings.Notes)
v2((data) => { const isDeprecated = data.ProductCode.includes("n0t0k"); const hasSpaces = data.ProductCode.includes(" "); return (isDeprecated ? "This product code is deprecated. Please request a new product code. " : "") + (hasSpaces ? "Please remove all spaces from your product code." : ""); });
Run Code Only when Form Opens
Try it:
This formula determines the initial open/closed state - in this case randomly. Normally it would do this based on how complete data in that section is or based on other criterias.
This is often used to improve initial state of a form based on how much data is already filled in.
Click on the (Σ) button above to see the edit-UI with the formula.
Formulas of FormulasRunAtStart.GroupRandomlyOpen
Field.Settings.Collapsed (Formula-Target: Field.Settings.Collapsed)
v2(() => { console.log('Formula to set Collapsed ran - will only run once.'); // Get random true/false var random = Math.random() < 0.5; return { value: random, stop: true }; });
Source Code of this file
Below you'll see the source code of the file. Note that we're just showing the main part, and hiding some parts of the file which are not relevant for understanding the essentials. Click to expand the code
@inherits Custom.Hybrid.Razor14 @using ToSic.Razor.Blade; <!-- unimportant stuff, hidden --> <div @Sys.PageParts.InfoWrapper()> @Html.Partial("../shared/DefaultInfoSection.cshtml") <div @Sys.PageParts.InfoIntro()> <h2>Formulas affecting Groups of Fields</h2> <p>We'll show you examples where formulas can be applied to change visibility, collpased, Help Text and more.</p> @Html.Partial("./Part NowUsingV2.cshtml") </div> </div> @Html.Partial("../shared/WarnAnonymousIfFeatureIsOff.cshtml") @{ var specs = Sys.SourceCode.Formulas.Specs( title: "Group visibility", instructions: "This formula determines the visibility of the Advanced settings group. The group becomes visible, when the Advanced toggle is active.", contentType: "FormulasVisibleGroup", field: "AdvancedSettings" );} @* Footer *@ @Html.Partial("../Shared/Layout/FooterWithSource.cshtml", new { Sys = Sys })