|
|
|
@ -24,55 +24,80 @@ |
|
|
|
<abp-modal-header title="@(L["Features"].Value)"></abp-modal-header> |
|
|
|
@if (Model.FeatureListResultDto != null && Model.FeatureListResultDto.Groups.Any()) |
|
|
|
{ |
|
|
|
var featureGroups = Model.FeatureListResultDto.Groups; |
|
|
|
|
|
|
|
<abp-modal-body class="ml-4"> |
|
|
|
<input asp-for="@Model.ProviderKey"/> |
|
|
|
<input asp-for="@Model.ProviderName"/> |
|
|
|
<abp-tabs name="FeaturesTabs" tab-style="PillVertical" vertical-header-size="_4" class="custom-scroll-container"> |
|
|
|
@for (var i = 0; i < Model.FeatureListResultDto.Groups.Count; i++) |
|
|
|
@for (var i = 0; i < featureGroups.Count; i++) |
|
|
|
{ |
|
|
|
<abp-tab title="@Model.FeatureListResultDto.Groups[i].DisplayName" name="v-pills-tab-@Model.FeatureListResultDto.Groups[i].GetNormalizedGroupName()"> |
|
|
|
<h4>@Model.FeatureListResultDto.Groups[i].DisplayName</h4> |
|
|
|
<abp-tab title="@featureGroups[i].DisplayName" name="v-pills-tab-@featureGroups[i].GetNormalizedGroupName()"> |
|
|
|
<h4>@featureGroups[i].DisplayName</h4> |
|
|
|
<hr class="mt-2 mb-3"/> |
|
|
|
<div class="custom-scroll-content"> |
|
|
|
<div class="pl-1 pt-1"> |
|
|
|
@for (var j = 0; j < Model.FeatureListResultDto.Groups[i].Features.Count; j++) |
|
|
|
@for (var j = 0; j < featureGroups[i].Features.Count; j++) |
|
|
|
{ |
|
|
|
var feature = Model.FeatureListResultDto.Groups[i].Features[j]; |
|
|
|
var feature = featureGroups[i].Features[j]; |
|
|
|
var disabled = Model.IsDisabled(feature.Provider.Name); |
|
|
|
<div class="mt-2" style="padding-left: @(feature.Depth * 20)px"> |
|
|
|
|
|
|
|
<span class="mr-2">@feature.DisplayName @(disabled ? $"({feature.Provider.Name})" : "")</span> |
|
|
|
<div class="mt-2"> |
|
|
|
|
|
|
|
<input type="text" name="FeatureGroups[@i].Features[@j].ProviderName" value="@feature.Provider.Name" hidden/> |
|
|
|
<input type="text" name="FeatureGroups[@i].Features[@j].Type" value="@feature.ValueType?.Name" hidden/> |
|
|
|
|
|
|
|
@if (feature.ValueType is ToggleStringValueType) |
|
|
|
{ |
|
|
|
<abp-input asp-for="@featureGroups[i].Features[j].Value" |
|
|
|
type="checkbox" |
|
|
|
name="FeatureGroups[@i].Features[@j].BoolValue" |
|
|
|
label="@feature.DisplayName" |
|
|
|
disabled="@disabled" |
|
|
|
group-data-feature-name="@feature.Name" |
|
|
|
group-data-parent-name="@(feature.ParentName ?? "")" |
|
|
|
group-style="margin-left: @(feature.Depth * 20)px"/> |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
@if (feature.ValueType is FreeTextStringValueType) |
|
|
|
{ |
|
|
|
<input type="text" name="FeatureGroups[@i].Features[@j].Name" value="@feature.Name" hidden/> |
|
|
|
<input disabled="@disabled" type="text" name="FeatureGroups[@i].Features[@j].Value" value="@feature.Value"/> |
|
|
|
var type = "text"; |
|
|
|
if(feature.ValueType.Validator is NumericValueValidator) |
|
|
|
{ |
|
|
|
type = "number"; |
|
|
|
} |
|
|
|
|
|
|
|
<abp-input asp-for="@featureGroups[i].Features[j].Value" |
|
|
|
label="@feature.DisplayName" |
|
|
|
disabled="@disabled" |
|
|
|
type="@type" |
|
|
|
group-data-feature-name="@feature.Name" |
|
|
|
group-data-parent-name="@(feature.ParentName ?? "")" |
|
|
|
group-style="margin-left: @(feature.Depth * 25)px"/> |
|
|
|
} |
|
|
|
@if (feature.ValueType is SelectionStringValueType) |
|
|
|
|
|
|
|
@if (feature.ValueType is SelectionStringValueType selectType) |
|
|
|
{ |
|
|
|
<input type="text" name="FeatureGroups[@i].Features[@j].Name" value="@feature.Name" hidden/> |
|
|
|
<select disabled="@disabled" name="FeatureGroups[@i].Features[@j].Value"> |
|
|
|
@foreach (var item in (feature.ValueType as SelectionStringValueType).ItemSource.Items) |
|
|
|
{ |
|
|
|
if (item.Value == feature.Value) |
|
|
|
{ |
|
|
|
<option value="@item.Value" selected="selected"> @CreateHtmlLocalizer(item.DisplayText.ResourceName).GetString(item.DisplayText.Name) </option> |
|
|
|
} |
|
|
|
else |
|
|
|
<div data-feature-name="@feature.Name" data-parent-name="@(feature.ParentName ?? "")" style="margin-left: @(feature.Depth * 25)px" class="form-group"> |
|
|
|
<label for="@feature.Name">@feature.DisplayName</label> |
|
|
|
|
|
|
|
<select id="@feature.Name" name="FeatureGroups[@i].Features[@j].Value" class="custom-select form-control"> |
|
|
|
@foreach (var item in selectType.ItemSource.Items) |
|
|
|
{ |
|
|
|
<option value="@item.Value"> @CreateHtmlLocalizer(item.DisplayText.ResourceName).GetString(item.DisplayText.Name) </option> |
|
|
|
if (item.Value == feature.Value) |
|
|
|
{ |
|
|
|
<option value="@item.Value" selected="selected"> @CreateHtmlLocalizer(item.DisplayText.ResourceName).GetString(item.DisplayText.Name) </option> |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
<option value="@item.Value"> @CreateHtmlLocalizer(item.DisplayText.ResourceName).GetString(item.DisplayText.Name) </option> |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
</select> |
|
|
|
} |
|
|
|
@if (feature.ValueType is ToggleStringValueType) |
|
|
|
{ |
|
|
|
<input type="text" name="FeatureGroups[@i].Features[@j].Name" value="@feature.Name" hidden/> |
|
|
|
<input disabled="@disabled" type="checkbox" class="FeatureValueCheckbox" name="FeatureGroups[@i].Features[@j].BoolValue" value="@feature.Value" |
|
|
|
@Html.Raw(feature.Value == "True" ? "checked" : "")/> |
|
|
|
</select> |
|
|
|
</div> |
|
|
|
} |
|
|
|
|
|
|
|
<input value="@feature.Name" name="FeatureGroups[@i].Features[@j].Name" hidden=""/> |
|
|
|
</div> |
|
|
|
} |
|
|
|
</div> |
|
|
|
|