Skip to content

Commit c787263

Browse files
committed
Fixed html encoding
Fixed issue with wrong settings view
1 parent 547332c commit c787263

File tree

6 files changed

+57
-39
lines changed

6 files changed

+57
-39
lines changed

Build/CommonAssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@
1515
//
1616
// You can specify all the values or you can default the Revision and Build Numbers
1717
// by using the '*' as shown below:
18-
[assembly: AssemblyVersion("1.0.36.0")]
19-
[assembly: AssemblyFileVersion("1.0.36.0")]
18+
[assembly: AssemblyVersion("1.0.40.0")]
19+
[assembly: AssemblyFileVersion("1.0.40.0")]

Griddly.Mvc/GriddlyColumn.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -125,18 +125,21 @@ public override object RenderCellValue(object row, bool stripHtml = false)
125125
throw new InvalidOperationException("Error rendering column \"" + Caption + "\"", ex);
126126
}
127127

128+
128129
// TODO: test if we need to match separately -- maybe we get a real string here and could strip?
129-
if (stripHtml && (value is HtmlString || value is HelperResult || value is string))
130-
value = _htmlMatch.Replace((string)value, "").Trim().Replace(" ", " ");
131-
else if (value is HtmlString)
132-
value = value.ToString();
133-
else if (value is HelperResult)
130+
if (value is HelperResult)
134131
value = new HtmlString(((HelperResult)value).ToString());
132+
133+
if (value is HtmlString)
134+
value = value.ToString();
135135
else if (value is Enum)
136136
value = Extensions.ToStringDescription((Enum)value);
137137
else if (value != null && value.GetType().HasCastOperator<DateTime>())
138138
value = (DateTime)value;
139139

140+
if (stripHtml && value is string)
141+
value = HttpUtility.HtmlDecode(_htmlMatch.Replace(value.ToString(), "").Trim().Replace(" ", " "));
142+
140143
return value;
141144
}
142145
}

Griddly.Mvc/GriddlyDefaultParametersAttribute.cs

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -21,44 +21,51 @@ public override void OnActionExecuting(ActionExecutingContext filterContext)
2121
{
2222
if (filterContext.IsChildAction)
2323
{
24-
if (filterContext.ActionDescriptor.GetFilterAttributes(true).Any(x => x.GetType() == typeof(GriddlyDefaultParametersAttribute)) ||
25-
typeof(GriddlyResult).IsAssignableFrom(filterContext.GetExpectedReturnType()))
24+
if (filterContext.ActionDescriptor.GetFilterAttributes(true).Any(x => x.GetType() == typeof(GriddlyDefaultParametersAttribute))
25+
|| typeof(GriddlyResult).IsAssignableFrom(filterContext.GetExpectedReturnType()))
2626
{
2727
GriddlySettings settings = GriddlySettingsResult.GetSettings(filterContext.Controller.ControllerContext, ViewName);
2828

29-
foreach (GriddlyFilter filter in settings.Filters.Union(settings.Columns.Where(x => x.Filter != null).Select(x => x.Filter)))
29+
if (settings != null)
3030
{
31-
if (filter.Default != null)
31+
foreach (GriddlyFilter filter in settings.Filters.Union(settings.Columns.Where(x => x.Filter != null).Select(x => x.Filter)))
3232
{
33-
object value = filter.Default;
34-
35-
GriddlyFilterList filterList = filter as GriddlyFilterList;
36-
37-
if (filterList != null && filterList.IsMultiple && !value.GetType().IsArray)
33+
if (filter.Default != null)
3834
{
39-
Type type = filter.Default.GetType();
35+
object value = filter.Default;
36+
37+
GriddlyFilterList filterList = filter as GriddlyFilterList;
38+
39+
if (filterList != null && filterList.IsMultiple && !value.GetType().IsArray)
40+
{
41+
Type type = filter.Default.GetType();
4042

41-
if (filterList.IsNullable)
42-
type = typeof(Nullable<>).MakeGenericType(type);
43+
if (filterList.IsNullable)
44+
type = typeof(Nullable<>).MakeGenericType(type);
4345

44-
Array array = Array.CreateInstance(type, 1);
46+
Array array = Array.CreateInstance(type, 1);
4547

46-
array.SetValue(filter.Default, 0);
48+
array.SetValue(filter.Default, 0);
4749

48-
value = array;
50+
value = array;
51+
}
52+
53+
settings.FilterDefaults[filter.Field] = value;
4954
}
5055

51-
settings.FilterDefaults[filter.Field] = value;
52-
}
56+
GriddlyFilterRange filterRange = filter as GriddlyFilterRange;
5357

54-
GriddlyFilterRange filterRange = filter as GriddlyFilterRange;
58+
if (filterRange != null && filterRange.DefaultEnd != null)
59+
settings.FilterDefaults[filterRange.FieldEnd] = filterRange.DefaultEnd;
60+
}
5561

56-
if (filterRange != null && filterRange.DefaultEnd != null)
57-
settings.FilterDefaults[filterRange.FieldEnd] = filterRange.DefaultEnd;
62+
foreach (KeyValuePair<string, object> param in settings.FilterDefaults)
63+
{
64+
filterContext.ActionParameters[param.Key] = param.Value;
65+
// TODO: use a value provider to make this work
66+
//filterContext.RouteData.Values[param.Key] = param.Value;
67+
}
5868
}
59-
60-
foreach (KeyValuePair<string, object> param in settings.FilterDefaults)
61-
filterContext.ActionParameters[param.Key] = param.Value;
6269
}
6370
}
6471

Griddly.Mvc/GriddlySettingsResult.cs

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,24 @@ public override void ExecuteResult(ControllerContext context)
4343

4444
public static GriddlySettings GetSettings(ControllerContext context, string viewName)
4545
{
46-
GriddlySettingsResult settingsResult = new GriddlySettingsResult()
46+
try
4747
{
48-
ViewName = viewName,
49-
ViewData = context.Controller.ViewData
50-
};
48+
GriddlySettingsResult settingsResult = new GriddlySettingsResult()
49+
{
50+
ViewName = viewName,
51+
ViewData = context.Controller.ViewData
52+
};
5153

52-
ControllerContext settingsContext = new ControllerContext(new RequestContext(new EmptyHttpContext(), context.RouteData), context.Controller);
54+
ControllerContext settingsContext = new ControllerContext(new RequestContext(new EmptyHttpContext(), context.RouteData), context.Controller);
5355

54-
settingsResult.ExecuteResult(settingsContext);
56+
settingsResult.ExecuteResult(settingsContext);
5557

56-
return settingsResult.Settings;
58+
return settingsResult.Settings;
59+
}
60+
catch
61+
{
62+
return null;
63+
}
5764
}
5865

5966
class EmptyHttpContext : HttpContextBase

Griddly/Views/Home/TestGrid.cshtml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@
1414
.Column(x => x.Address, "Address")
1515
.Column(x => x.City, "City")
1616
.Column(x => x.State, "State")
17-
.Column(x => x.PostalCode, "Zip")
17+
.TemplateColumn(x => Html.ActionLink("&" + x.PostalCode, "Profile"), "Zip")
18+
.Button("", "export", action: GriddlyButtonAction.Javascript, className: "export-xlsx")
1819
)

Griddly/Views/Shared/Griddly/Griddly.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@
126126
@Html.AttributeNullable("data-id", TryEval(row, settings.IdProperty))>
127127
@foreach (GriddlyColumn column in settings.Columns)
128128
{
129-
<td class="@column.RenderClassName()">@column.RenderCell(row)</td>
129+
<td class="@column.RenderClassName(row)">@column.RenderCell(row)</td>
130130
}
131131
</tr>
132132
}

0 commit comments

Comments
 (0)