Normalize dashboard date dimensions, update grid UI
Added normalization for date dimensions in SqlDashboardStorage to ensure consistent grouping for "AddedWhen" and "ChangedWhen" fields. Refactored CatalogsGrid.razor to use custom sort icons and default DxGrid filter row UI, simplifying markup and improving visual consistency. Updated related CSS for sortable headers and filter inputs.
This commit is contained in:
@@ -52,7 +52,33 @@ public sealed class SqlDashboardStorage : IEditableDashboardStorage
|
||||
}
|
||||
|
||||
var xml = Encoding.UTF8.GetString(data);
|
||||
return XDocument.Parse(xml);
|
||||
var doc = XDocument.Parse(xml);
|
||||
NormalizeCatalogDateDimensions(doc);
|
||||
return doc;
|
||||
}
|
||||
|
||||
private static void NormalizeCatalogDateDimensions(XDocument doc)
|
||||
{
|
||||
var dateMembers = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
|
||||
{
|
||||
"AddedWhen",
|
||||
"ChangedWhen"
|
||||
};
|
||||
|
||||
foreach (var dimension in doc.Descendants("Dimension"))
|
||||
{
|
||||
var member = dimension.Attribute("DataMember")?.Value;
|
||||
if (member == null || !dateMembers.Contains(member))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
var interval = dimension.Attribute("DateTimeGroupInterval")?.Value;
|
||||
if (string.IsNullOrWhiteSpace(interval) || string.Equals(interval, "Year", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
dimension.SetAttributeValue("DateTimeGroupInterval", "DayMonthYear");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string AddDashboard(XDocument dashboard, string dashboardName)
|
||||
|
||||
Reference in New Issue
Block a user