Skip to content

Commit

Permalink
updates for razor pages crud and blazor crud templates (#3086) (#3110)
Browse files Browse the repository at this point in the history
* updates for razor pages crud and blazor crud templates (#3086)

* updates for razor pages crud and blazor crud templates

* PR fixes

* remove extra files

* remove extra files
  • Loading branch information
deepchoudhery authored Dec 5, 2024
1 parent b64caac commit 6b42105
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 24 deletions.
10 changes: 7 additions & 3 deletions src/Scaffolding/VS.Web.CG.Mvc/Templates/Blazor/Create.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,13 @@ public virtual string TransformText()
string propertyShortTypeName = property.ShortTypeName.Replace("?", string.Empty);
var inputTypeName = Model.GetInputType(propertyShortTypeName);
var inputClass = Model.GetInputClassType(propertyShortTypeName);
var requiredAttributeHtml = property.IsRequired ? "aria-required=\"true\"" : string.Empty;
var ariaRequiredAttributeHtml = property.IsRequired ? "aria-required=\"true\"" : string.Empty;
var divWhitespace = new string(' ', 16);
var requiredSpanAttributeHtml = property.IsRequired ? $"\r\n{divWhitespace}<span class=\"text-danger\">*</span>" : string.Empty;

this.Write("<div class=\"mb-3\">\r\n <label for=\"");
this.Write("<div class=\"mb-3\">");
this.Write(this.ToStringHelper.ToStringWithCulture(requiredSpanAttributeHtml));
this.Write("\r\n <label for=\"");
this.Write(this.ToStringHelper.ToStringWithCulture(modelPropertyNameLowercase));
this.Write("\" class=\"form-label\">");
this.Write(this.ToStringHelper.ToStringWithCulture(modelPropertyName));
Expand All @@ -85,7 +89,7 @@ public virtual string TransformText()
this.Write("\" class=\"");
this.Write(this.ToStringHelper.ToStringWithCulture(inputClass));
this.Write("\" ");
this.Write(this.ToStringHelper.ToStringWithCulture(requiredAttributeHtml));
this.Write(this.ToStringHelper.ToStringWithCulture(ariaRequiredAttributeHtml));
this.Write("/> \r\n <ValidationMessage For=\"() => ");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
this.Write(".");
Expand Down
8 changes: 5 additions & 3 deletions src/Scaffolding/VS.Web.CG.Mvc/Templates/Blazor/Create.tt
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,13 @@
string propertyShortTypeName = property.ShortTypeName.Replace("?", string.Empty);
var inputTypeName = Model.GetInputType(propertyShortTypeName);
var inputClass = Model.GetInputClassType(propertyShortTypeName);
var requiredAttributeHtml = property.IsRequired ? "aria-required=\"true\"" : string.Empty;
var ariaRequiredAttributeHtml = property.IsRequired ? "aria-required=\"true\"" : string.Empty;
var divWhitespace = new string(' ', 16);
var requiredSpanAttributeHtml = property.IsRequired ? $"\r\n{divWhitespace}<span class=\"text-danger\">*</span>" : string.Empty;
#>
<div class="mb-3">
<div class="mb-3"><#= requiredSpanAttributeHtml #>
<label for="<#= modelPropertyNameLowercase #>" class="form-label"><#= modelPropertyName #>:</label>
<<#= inputTypeName #> id="<#= modelPropertyNameLowercase #>" @bind-Value="<#= modelName #>.<#= modelPropertyName #>" class="<#= inputClass #>" <#= requiredAttributeHtml #>/>
<<#= inputTypeName #> id="<#= modelPropertyNameLowercase #>" @bind-Value="<#= modelName #>.<#= modelPropertyName #>" class="<#= inputClass #>" <#= ariaRequiredAttributeHtml #>/>
<ValidationMessage For="() => <#= modelName #>.<#= modelPropertyName #>" class="text-danger" />
</div>
<# } #>
Expand Down
10 changes: 7 additions & 3 deletions src/Scaffolding/VS.Web.CG.Mvc/Templates/Blazor/Edit.cs
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,13 @@ public virtual string TransformText()
string propertyShortTypeName = property.ShortTypeName.Replace("?", string.Empty);
var inputTypeName = Model.GetInputType(propertyShortTypeName);
var inputClass = Model.GetInputClassType(propertyShortTypeName);
var requiredHtml = property.IsRequired ? "aria-required=\"true\"" : string.Empty;
var ariaRequiredAttributeHtml = property.IsRequired ? "aria-required=\"true\"" : string.Empty;
var divWhitespace = new string(' ', 16);
var requiredSpanAttributeHtml = property.IsRequired ? $"\r\n{divWhitespace}<span class=\"text-danger\">*</span>" : string.Empty;

this.Write(" <div class=\"mb-3\">\r\n <label for=\"");
this.Write(" <div class=\"mb-3\">");
this.Write(this.ToStringHelper.ToStringWithCulture(requiredSpanAttributeHtml));
this.Write("\r\n <label for=\"");
this.Write(this.ToStringHelper.ToStringWithCulture(modelPropertyNameLowercase));
this.Write("\" class=\"form-label\">");
this.Write(this.ToStringHelper.ToStringWithCulture(modelPropertyName));
Expand All @@ -100,7 +104,7 @@ public virtual string TransformText()
this.Write("\" class=\"");
this.Write(this.ToStringHelper.ToStringWithCulture(inputClass));
this.Write("\" ");
this.Write(this.ToStringHelper.ToStringWithCulture(requiredHtml));
this.Write(this.ToStringHelper.ToStringWithCulture(ariaRequiredAttributeHtml));
this.Write("/>\r\n <ValidationMessage For=\"() => ");
this.Write(this.ToStringHelper.ToStringWithCulture(modelName));
this.Write(".");
Expand Down
8 changes: 5 additions & 3 deletions src/Scaffolding/VS.Web.CG.Mvc/Templates/Blazor/Edit.tt
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,13 @@ else
string propertyShortTypeName = property.ShortTypeName.Replace("?", string.Empty);
var inputTypeName = Model.GetInputType(propertyShortTypeName);
var inputClass = Model.GetInputClassType(propertyShortTypeName);
var requiredHtml = property.IsRequired ? "aria-required=\"true\"" : string.Empty;
var ariaRequiredAttributeHtml = property.IsRequired ? "aria-required=\"true\"" : string.Empty;
var divWhitespace = new string(' ', 16);
var requiredSpanAttributeHtml = property.IsRequired ? $"\r\n{divWhitespace}<span class=\"text-danger\">*</span>" : string.Empty;
#>
<div class="mb-3">
<div class="mb-3"><#= requiredSpanAttributeHtml #>
<label for="<#= modelPropertyNameLowercase #>" class="form-label"><#= modelPropertyName #>:</label>
<<#= inputTypeName #> id="<#= modelPropertyNameLowercase #>" @bind-Value="<#= modelName #>.<#= modelPropertyName #>" class="<#= inputClass #>" <#= requiredHtml #>/>
<<#= inputTypeName #> id="<#= modelPropertyNameLowercase #>" @bind-Value="<#= modelName #>.<#= modelPropertyName #>" class="<#= inputClass #>" <#= ariaRequiredAttributeHtml #>/>
<ValidationMessage For="() => <#= modelName #>.<#= modelPropertyName #>" class="text-danger" />
</div>
<# } #>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,15 @@
foreach (var property in Model.ModelMetadata.Properties)
{
var sixteenWhitespace = new string(' ', 16);
var propertyRequiredText = property.IsRequired ? $"\n{sixteenWhitespace}<span class=\"text-danger\">*</span>" : string.Empty;
var propertyRequiredText = property.IsRequired ? $"\r\n{sixteenWhitespace}<span class=\"text-danger\">*</span>" : string.Empty;
var ariaRequiredAttributeHtml = property.IsRequired ? "aria-required=\"true\"" : string.Empty;
if (property.Scaffold && !property.IsAutoGenerated && !property.IsReadOnly)
{
if (property.IsForeignKey)
{
@:<div class="form-group">@propertyRequiredText
@:<label asp-for="@(Model.ModelTypeName)[email protected]" class="control-label"></label>
@:<select asp-for="@(Model.ModelTypeName)[email protected]" class ="form-control" asp-items="[email protected]"></select>
@:<select asp-for="@(Model.ModelTypeName)[email protected]" class ="form-control" asp-items="[email protected]" @ariaRequiredAttributeHtml></select>
@:</div>
continue;
}
Expand All @@ -65,31 +66,31 @@
{
@:<div class="form-group form-check">@propertyRequiredText
@:<label class="form-check-label">
@:<input class="form-check-input" asp-for="@(Model.ModelTypeName)[email protected]" /> @@Html.DisplayNameFor(model => model.@(Model.ModelTypeName).@GetValueExpression(property))
@:<input class="form-check-input" asp-for="@(Model.ModelTypeName)[email protected]" @ariaRequiredAttributeHtml/> @@Html.DisplayNameFor(model => model.@(Model.ModelTypeName).@GetValueExpression(property))
@:</label>
@:</div>
}
else if (property.IsEnum && !property.IsEnumFlags)
{
@:<div class="form-group">@propertyRequiredText
@:<label asp-for="@(Model.ModelTypeName)[email protected]" class="control-label"></label>
@:<select asp-for="@(Model.ModelTypeName)[email protected]" class="form-control"></select>
@:<select asp-for="@(Model.ModelTypeName)[email protected]" class="form-control" @ariaRequiredAttributeHtml></select>
@:<span asp-validation-for="@(Model.ModelTypeName)[email protected]" class="text-danger"></span>
@:</div>
}
else if (property.IsMultilineText)
{
@:<div class="form-group">@propertyRequiredText
@:<label asp-for="@(Model.ModelTypeName)[email protected]" class="control-label"></label>
@:<textarea asp-for="@(Model.ModelTypeName)[email protected]" class="form-control"></textarea>
@:<textarea asp-for="@(Model.ModelTypeName)[email protected]" class="form-control" @ariaRequiredAttributeHtml></textarea>
@:<span asp-validation-for="@(Model.ModelTypeName)[email protected]" class="text-danger"></span>
@:</div>
}
else
{
@:<div class="form-group">@propertyRequiredText
@:<label asp-for="@(Model.ModelTypeName)[email protected]" class="control-label"></label>
@:<input asp-for="@(Model.ModelTypeName)[email protected]" class="form-control" />
@:<input asp-for="@(Model.ModelTypeName)[email protected]" class="form-control" @ariaRequiredAttributeHtml/>
@:<span asp-validation-for="@(Model.ModelTypeName)[email protected]" class="text-danger"></span>
@:</div>
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@
foreach (PropertyMetadata property in Model.ModelMetadata.Properties)
{
var sixteenWhitespace = new string(' ', 16);
var propertyRequiredText = property.IsRequired ? $"\n{sixteenWhitespace}<span class=\"text-danger\">*</span>" : string.Empty;
var propertyRequiredText = property.IsRequired ? "\r\n<span class=\"text-danger\">*</span>" : string.Empty;
var ariaRequiredAttributeHtml = property.IsRequired ? "aria-required=\"true\"" : string.Empty;
if (property.IsPrimaryKey)
{
@:<input type="hidden" asp-for="@(Model.ModelTypeName)[email protected]" />
Expand All @@ -66,7 +67,7 @@
{
@:<div class="form-group">@propertyRequiredText
@:<label asp-for="@(Model.ModelTypeName)[email protected]" class="control-label"></label>
@:<select asp-for="@(Model.ModelTypeName)[email protected]" class="form-control" asp-items="[email protected]"></select>
@:<select asp-for="@(Model.ModelTypeName)[email protected]" class="form-control" asp-items="[email protected]" @ariaRequiredAttributeHtml></select>
@:<span asp-validation-for="@(Model.ModelTypeName)[email protected]" class="text-danger"></span>
@:</div>
continue;
Expand All @@ -77,31 +78,31 @@
{
@:<div class="form-group form-check">@propertyRequiredText
@:<label class="form-check-label">
@:<input class="form-check-input" asp-for="@(Model.ModelTypeName)[email protected]" /> @@Html.DisplayNameFor(model => model.@(Model.ModelTypeName).@GetValueExpression(property))
@:<input class="form-check-input" asp-for="@(Model.ModelTypeName)[email protected]" @ariaRequiredAttributeHtml/> @@Html.DisplayNameFor(model => model.@(Model.ModelTypeName).@GetValueExpression(property))
@:</label>
@:</div>
}
else if (property.IsEnum && !property.IsEnumFlags)
{
@:<div class="form-group">@propertyRequiredText
@:<label asp-for="@(Model.ModelTypeName)[email protected]" class="control-label"></label>
@:<select asp-for="@(Model.ModelTypeName)[email protected]" class="form-control"></select>
@:<select asp-for="@(Model.ModelTypeName)[email protected]" class="form-control" @ariaRequiredAttributeHtml></select>
@:<span asp-validation-for="@(Model.ModelTypeName)[email protected]" class="text-danger"></span>
@:</div>
}
else if (property.IsMultilineText)
{
@:<div class="form-group">@propertyRequiredText
@:<label asp-for="@(Model.ModelTypeName)[email protected]" class="control-label"></label>
@:<textarea asp-for="@(Model.ModelTypeName)[email protected]" class="form-control"></textarea>
@:<textarea asp-for="@(Model.ModelTypeName)[email protected]" class="form-control" @ariaRequiredAttributeHtml></textarea>
@:<span asp-validation-for="@(Model.ModelTypeName)[email protected]" class="text-danger"></span>
@:</div>
}
else
{
@:<div class="form-group">@propertyRequiredText
@:<label asp-for="@(Model.ModelTypeName)[email protected]" class="control-label"></label>
@:<input asp-for="@(Model.ModelTypeName)[email protected]" class="form-control" />
@:<input asp-for="@(Model.ModelTypeName)[email protected]" class="form-control" @ariaRequiredAttributeHtml/>
@:<span asp-validation-for="@(Model.ModelTypeName)[email protected]" class="text-danger"></span>
@:</div>
}
Expand Down

0 comments on commit 6b42105

Please sign in to comment.