Skip to content

Commit fa7a124

Browse files
Ticket #891 : Can add grid component
1 parent ef5e6f8 commit fa7a124

21 files changed

Lines changed: 167 additions & 66 deletions

formbuilder/FormBuilder.Tailwindcss/TailwindCssTemplate.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public static Template DefaultTemplate
3636
.SetImageClasses(string.Empty, "h-auto mx-auto")
3737
.SetDividerClasses("my-4 flex items-center before:mt-0.5 before:flex-1 before:border-t before:border-neutral-300 after:mt-0.5 after:flex-1 after:border-t after:border-neutral-300 dark:before:border-neutral-500 dark:after:border-neutral-500", "absolute px-3 font-medium text-gray-900 -translate-x-1/2 bg-white left-1/2 dark:text-white dark:bg-gray-800")
3838
.SetInputTextFieldClasses("mb-4 w-full", "w-full block mb-2 text-sm font-medium text-gray-900 dark:text-white", "w-full bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500")
39-
.SetPasswordFieldClasses("mb-4 w-full", "w-full block mb-2 text-sm font-medium text-gray-900 dark:text-white", "w-full bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500")
39+
.SetPasswordFieldClasses("mb-4 w-full", "w-full block mb-2 text-sm font-medium text-gray-900 dark:text-white", "w-full bg-gray-50 border border-gray-300 text-gray-900 rounded-lg focus:ring-primary-600 focus:border-primary-600 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500", "", "")
4040
.SetCheckboxClass("flex items-center mb-4", "w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded-sm focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600", "ms-2 text-sm font-medium text-gray-900 dark:text-gray-300")
4141
.SetBackClass("w-full text-white bg-primary-600 hover:bg-primary-700 focus:ring-4 focus:outline-none focus:ring-primary-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800")
4242
.SetButtonClass("w-full text-white bg-primary-600 hover:bg-primary-700 focus:ring-4 focus:outline-none focus:ring-primary-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800")

formbuilder/FormBuilder/Builders/TemplateBuilder.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using FormBuilder.Components.FormElements.Divider;
99
using FormBuilder.Components.FormElements.Image;
1010
using FormBuilder.Components.FormElements.Input;
11+
using FormBuilder.Components.FormElements.Paragraph;
1112
using FormBuilder.Components.FormElements.Password;
1213
using FormBuilder.Models;
1314

@@ -129,11 +130,13 @@ public TemplateBuilder SetInputTextFieldClasses(string containerClass, string la
129130
return this;
130131
}
131132

132-
public TemplateBuilder SetPasswordFieldClasses(string containerClass, string labelClass, string textBoxClass)
133+
public TemplateBuilder SetPasswordFieldClasses(string containerClass, string labelClass, string textBoxClass, string viewPasswordContainer, string viewPasswordBtn)
133134
{
134135
SetClass(nameof(FormPasswordFieldRecord), FormPasswordElementNames.Container, containerClass);
135136
SetClass(nameof(FormPasswordFieldRecord), FormPasswordElementNames.Label, labelClass);
136137
SetClass(nameof(FormPasswordFieldRecord), FormPasswordElementNames.Password, textBoxClass);
138+
SetClass(nameof(FormPasswordFieldRecord), FormPasswordElementNames.ViewPasswordContainer, viewPasswordContainer);
139+
SetClass(nameof(FormPasswordFieldRecord), FormPasswordElementNames.ViewPasswordBtn, viewPasswordBtn);
137140
return this;
138141
}
139142

@@ -171,6 +174,12 @@ public TemplateBuilder SetCheckboxClass(string containerClass, string checkboxCl
171174
return this;
172175
}
173176

177+
public TemplateBuilder SetParagraphClass(string containerClass)
178+
{
179+
SetClass(nameof(ParagraphRecord), ParagraphElementNames.Container, containerClass);
180+
return this;
181+
}
182+
174183
public TemplateBuilder SetImageClasses(string containerClass, string imgClass)
175184
{
176185
SetClass(nameof(ImageRecord), ImageElementNames.Container, containerClass);

formbuilder/FormBuilder/Components/FormElements/Anchor/FormAnchor.razor

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@
77
<Children>
88
@if(Value.ActAsButton)
99
{
10-
<button class="@BtnClass"
10+
<button id="@CssId" class="@BtnClass"
1111
@onclick=@(async (e) => await Navigate())>
1212
@translationHelper.Translate(Value, IsEditModeEnabled ? "Please provide a name" : string.Empty, !IsEditModeEnabled)
1313
</button>
1414
}
1515
else
1616
{
1717
<a href="#"
18+
id="@CssId"
1819
class="@AnchorClass"
1920
@onclick:stopPropagation="true"
2021
@onclick:preventDefault="true"

formbuilder/FormBuilder/Components/FormElements/Anchor/FormAnchor.razor.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@ public partial class FormAnchor : IGenericFormElement<FormAnchorRecord>
1212
[Parameter] public FormAnchorRecord Value { get; set; }
1313
[Parameter] public bool IsEditModeEnabled { get; set; }
1414
[Parameter] public WorkflowContext Context { get; set; }
15+
public string CssId
16+
{
17+
get
18+
{
19+
return Value.CssId ?? string.Empty;
20+
}
21+
}
1522
[Inject] private IWorkflowLinkActionFactory WorkflowLinkActionFactory { get; set; }
1623
[Inject] private IHtmlClassResolver htmlClassResolver { get; set; }
1724
public JsonNode InputData

formbuilder/FormBuilder/Components/FormElements/Paragraph/ParagraphComponent.razor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<DraggableFormElement IsEditModeEnabled=@IsEditModeEnabled ParentContext="@ParentContext" Context="@Context" TDialog="ParagraphDialog" TRecord="ParagraphRecord" Record="@Value">
66
<Children>
7-
<p>
7+
<p class="@ContainerClass">
88
@translationHelper.Translate(Value, (IsEditModeEnabled ? "Please provide a description" : string.Empty), InputData, !IsEditModeEnabled)
99
</p>
1010
</Children>

formbuilder/FormBuilder/Components/FormElements/Paragraph/ParagraphComponent.razor.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using FormBuilder.Components.Drag;
2+
using FormBuilder.Helpers;
23
using Microsoft.AspNetCore.Components;
34
using System.Text.Json.Nodes;
45

@@ -10,6 +11,15 @@ public partial class ParagraphComponent : IGenericFormElement<ParagraphRecord>
1011
[Parameter] public ParentEltContext ParentContext { get; set; }
1112
[Parameter] public WorkflowContext Context { get; set; }
1213
[Parameter] public bool IsEditModeEnabled { get; set; }
14+
[Inject] private IHtmlClassResolver htmlClassResolver { get; set; }
15+
public string ContainerClass
16+
{
17+
get
18+
{
19+
return htmlClassResolver.Resolve(Value, ParagraphElementNames.Container, Context);
20+
}
21+
}
22+
1323
public JsonNode InputData
1424
{
1525
get
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace FormBuilder.Components.FormElements.Paragraph;
2+
3+
public static class ParagraphElementNames
4+
{
5+
public const string Container = "Container";
6+
}

formbuilder/FormBuilder/Components/FormElements/Password/FormPasswordDialog.razor

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,27 @@
33
@inject DialogService dialogService
44

55
<RadzenStack>
6-
<EditLabelsComponent Labels="@CopyRecord.Labels" />
6+
<RadzenTabs @bind-SelectedIndex=@selectedIndex>
7+
<Tabs>
8+
<RadzenTabsItem Text="Properties">
9+
<RadzenStack>
10+
<!-- Can view the password -->
11+
<div>
12+
<RadzenCheckBox @bind-Value="CopyRecord.CanViewPassword" />
13+
<RadzenLabel>Can view the password ?</RadzenLabel>
14+
</div>
15+
</RadzenStack>
16+
</RadzenTabsItem>
17+
<RadzenTabsItem Text="Label">
18+
<EditLabelsComponent Labels="@CopyRecord.Labels" />
19+
</RadzenTabsItem>
20+
</Tabs>
21+
</RadzenTabs>
722
<RadzenButton Text="Save" Click="@HandleSave"></RadzenButton>
823
</RadzenStack>
924

1025
@code {
26+
public int selectedIndex { get; set; } = 0;
1127
FormPasswordFieldRecord CopyRecord { get; set; } = new FormPasswordFieldRecord();
1228
[Parameter] public FormPasswordFieldRecord Record { get; set; }
1329
[Parameter] public WorkflowContext WorkflowContext { get; set; }
@@ -24,6 +40,7 @@
2440
private void HandleSave()
2541
{
2642
Record.Labels = CopyRecord.Labels;
43+
Record.CanViewPassword = CopyRecord.CanViewPassword;
2744
dialogService.Close();
2845
}
2946
}

formbuilder/FormBuilder/Components/FormElements/Password/FormPasswordElementNames.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,6 @@ public static class FormPasswordElementNames
55
public const string Container = "Container";
66
public const string Label = "Label";
77
public const string Password = "Password";
8+
public const string ViewPasswordContainer = "ViewPasswordContainer";
9+
public const string ViewPasswordBtn = "ViewPasswordBtn";
810
}

formbuilder/FormBuilder/Components/FormElements/Password/FormPasswordField.razor

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,28 @@
33
@inject ITranslationHelper translationHelper
44

55
<DraggableFormElement IsEditModeEnabled=@IsEditModeEnabled ParentContext="@ParentContext" Context="@Context" TDialog="FormPasswordDialog" TRecord="FormPasswordFieldRecord" Record="@Value">
6-
<Children>
6+
<Children>
77
<div class="@ContainerClass">
88
<RadzenLabel class="@LabelClass" Text="@translationHelper.Translate(Value, InputData, !IsEditModeEnabled)"></RadzenLabel>
9-
<RadzenPassword class="@PasswordClass" @bind-Value="@Value.Value"></RadzenPassword>
9+
@if (Value.CanViewPassword)
10+
{
11+
<div class="@ViewPasswordContainerClass">
12+
@if(isPasswordVisible)
13+
{
14+
<RadzenTextBox class="@PasswordClass" @bind-Value="@Value.Value"></RadzenTextBox>
15+
}
16+
else
17+
{
18+
<RadzenPassword class="@PasswordClass" @bind-Value="@Value.Value"></RadzenPassword>
19+
}
20+
21+
<RadzenButton Variant="Variant.Outlined" ButtonStyle="ButtonStyle.Base" class="@ViewPasswordBtnClass" Click="TogglePasswordVisibility" Icon="@(isPasswordVisible ? "visibility_off" : "visibility")"></RadzenButton>
22+
</div>
23+
}
24+
else
25+
{
26+
<RadzenPassword class="@PasswordClass" @bind-Value="@Value.Value"></RadzenPassword>
27+
}
1028
</div>
1129
</Children>
1230
</DraggableFormElement>

0 commit comments

Comments
 (0)