Browse Source

Refactor feature management modal to simplify disabled state handling and remove unused CSS styles

pull/22628/head
maliming 1 year ago
parent
commit
6991515d6d
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 78
      modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml
  2. 15
      modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/feature-management-modal.css

78
modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml

@ -51,21 +51,20 @@
@if (feature.ValueType is ToggleStringValueType) @if (feature.ValueType is ToggleStringValueType)
{ {
<div class="@(Model.IsDisabled(feature) ? "disabled-container" : "")"> <abp-input asp-for="@feature.Value"
<abp-input asp-for="@feature.Value" type="checkbox"
type="checkbox" class="d-inline"
class="d-inline" abp-id-name="@Model.FeatureGroups[i].Features[j].BoolValue"
abp-id-name="@Model.FeatureGroups[i].Features[j].BoolValue" label="@feature.DisplayName"
label="@feature.DisplayName" disabled="@Model.IsDisabled(feature)"
group-data-feature-name="@feature.Name" group-data-feature-name="@feature.Name"
group-data-parent-name="@(feature.ParentName ?? "")" group-data-parent-name="@(feature.ParentName ?? "")"
group-style="margin-inline-start: @(feature.Depth * 20)px"/> group-style="margin-inline-start: @(feature.Depth * 20)px"/>
@if (feature.Description != null) @if (feature.Description != null)
{ {
<div class="form-text" style="margin-inline-start: @(feature.Depth * 20)px">@feature.Description</div> <div class="form-text" style="margin-inline-start: @(feature.Depth * 20)px">@feature.Description</div>
} }
</div>
} }
@if (feature.ValueType is FreeTextStringValueType) @if (feature.ValueType is FreeTextStringValueType)
@ -75,45 +74,42 @@
{ {
type = "number"; type = "number";
} }
<div class="@(Model.IsDisabled(feature) ? "disabled-container" : "")"> <abp-input asp-for="@feature.Value"
<abp-input asp-for="@feature.Value"
label="@feature.DisplayName" label="@feature.DisplayName"
abp-id-name="@Model.FeatureGroups[i].Features[j].Value" abp-id-name="@Model.FeatureGroups[i].Features[j].Value"
type="@type" type="@type"
disabled="@Model.IsDisabled(feature)"
group-data-feature-name="@feature.Name" group-data-feature-name="@feature.Name"
group-data-parent-name="@(feature.ParentName ?? "")" group-data-parent-name="@(feature.ParentName ?? "")"
group-style="margin-inline-start: @(feature.Depth * 25)px"/> group-style="margin-inline-start: @(feature.Depth * 25)px"/>
@if (feature.Description != null) @if (feature.Description != null)
{ {
<div class="form-text" style="margin-inline-start: @(feature.Depth * 25)px">@feature.Description</div> <div class="form-text" style="margin-inline-start: @(feature.Depth * 25)px">@feature.Description</div>
} }
</div>
} }
@if (feature.ValueType is SelectionStringValueType selectType) @if (feature.ValueType is SelectionStringValueType selectType)
{ {
<div class="@(Model.IsDisabled(feature) ? "disabled-container" : "")"> var disabled = Model.IsDisabled(feature) ? "disabled" : "";
<div data-feature-name="@feature.Name" data-parent-name="@(feature.ParentName ?? "")" style="margin-inline-start: @(feature.Depth * 25)px" class="mb-3"> <div data-feature-name="@feature.Name" data-parent-name="@(feature.ParentName ?? "")" style="margin-inline-start: @(feature.Depth * 25)px" class="mb-3">
<label class="form-label" for="@feature.Name">@feature.DisplayName</label> <label class="form-label" for="@feature.Name">@feature.DisplayName</label>
<select id="@feature.Name" name="FeatureGroups[@i].Features[@j].Value" class="form-select" @(disabled) >
<select id="@feature.Name" name="FeatureGroups[@i].Features[@j].Value" class="form-select"> @foreach (var item in selectType.ItemSource.Items)
@foreach (var item in selectType.ItemSource.Items) {
if (item.Value == feature.Value)
{ {
if (item.Value == feature.Value) <option value="@item.Value" selected="selected"> @CreateHtmlLocalizer(item.DisplayText.ResourceName).GetString(item.DisplayText.Name) </option>
{ }
<option value="@item.Value" selected="selected"> @CreateHtmlLocalizer(item.DisplayText.ResourceName).GetString(item.DisplayText.Name) </option> else
} {
else <option value="@item.Value"> @CreateHtmlLocalizer(item.DisplayText.ResourceName).GetString(item.DisplayText.Name) </option>
{
<option value="@item.Value"> @CreateHtmlLocalizer(item.DisplayText.ResourceName).GetString(item.DisplayText.Name) </option>
}
} }
</select>
@if (feature.Description != null)
{
<div class="form-text" style="margin-inline-start: @(feature.Depth * 25)px">@feature.Description</div>
} }
</div> </select>
@if (feature.Description != null)
{
<div class="form-text" style="margin-inline-start: @(feature.Depth * 25)px">@feature.Description</div>
}
</div> </div>
} }

15
modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/feature-management-modal.css

@ -2,19 +2,6 @@
max-height: 400px; max-height: 400px;
} }
.custom-scroll-container > .col-md-4 { .custom-scroll-container > .col-md-4 {
max-height: 500px; max-height: 500px;
} }
.disabled-container {
pointer-events: none;
opacity: 0.5;
}
.disabled-container input,
.disabled-container select,
.disabled-container button {
background-color: #e9ecef;
color: #6c757d;
}
Loading…
Cancel
Save