Skip to content

Merge in editly #60

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 14 commits into from
Dec 8, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ obj/
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad
.vs/

#Tooling
_ReSharper*/
Expand Down
1 change: 1 addition & 0 deletions Build/CommonAssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,4 @@
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.4.5")]
[assembly: AssemblyFileVersion("1.4.5")]
[assembly: AssemblyInformationalVersion("1.4.5-editlyalpha2")]
3 changes: 2 additions & 1 deletion Build/build.proj
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@
<Libs Include="$(BaseDir)\Griddly.Mvc\bin\$(Configuration)\Griddly.Mvc.dll" />
<Content Include="$(BaseDir)\Griddly\**\griddly.js" />
<Content Include="$(BaseDir)\Griddly\**\griddly.css" />
<Content Include="$(BaseDir)\Griddly\**\Griddly\*.*" />
<Content Include="$(BaseDir)\Griddly\**\Griddly\*.*" />
<Content Include="$(BaseDir)\Griddly\**\editly.js" />
</ItemGroup>

<Exec Command="rd $(PackageDir) /s /q" />
Expand Down
29 changes: 29 additions & 0 deletions Griddly.Mvc/GriddlyColumn.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ public GriddlyColumn()

public GriddlyFilter Filter { get; set; }

public abstract HtmlString RenderUnderlyingValue(object row);
public abstract HtmlString RenderCell(object row, GriddlySettings settings, bool encode = true);
public abstract object RenderCellValue(object row, bool stripHtml = false);

Expand Down Expand Up @@ -76,6 +77,7 @@ public virtual HtmlString RenderValue(object value, bool encode = true)
public class GriddlyColumn<TRow> : GriddlyColumn
{
public Func<TRow, object> Template { get; set; }
public Func<TRow, object> UnderlyingValueTemplate { get; set; }
public Func<TRow, string> ClassNameTemplate { get; set; }
public Func<TRow, object> HtmlAttributesTemplate { get; set; }

Expand Down Expand Up @@ -155,6 +157,33 @@ public override HtmlString RenderCell(object row, GriddlySettings settings, bool
return RenderValue(value, encode);
}

public override HtmlString RenderUnderlyingValue(object row)
{
if (UnderlyingValueTemplate == null) return null;

object value = null;

try
{
value = UnderlyingValueTemplate((TRow)row);
}
catch (NullReferenceException)
{
// Eat
}
catch (Exception ex)
{
throw new InvalidOperationException("Error rendering underlying value or column \"" + Caption + "\"", ex);
}

if (value == null)
return null;
else if (value is HtmlString)
return (HtmlString)value;
else
return new HtmlString(value.ToString());
}

public override object RenderCellValue(object row, bool stripHtml = false)
{
object value = null;
Expand Down
2 changes: 1 addition & 1 deletion Griddly.Mvc/GriddlyFilterExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ public static GriddlyFilterList FilterList(this GriddlyColumn column, IEnumerabl
return filter;
}

static string GetField(GriddlyColumn column)
public static string GetField(GriddlyColumn column)
{
string value = null;

Expand Down
5 changes: 5 additions & 0 deletions Griddly.Mvc/GriddlySelectColumn.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,5 +52,10 @@ public override object RenderCellValue(object row, bool stripHtml = false)
{
return null;
}

public override HtmlString RenderUnderlyingValue(object row)
{
return null;
}
}
}
10 changes: 6 additions & 4 deletions Griddly.Mvc/GriddlySettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,7 @@ public GriddlySettings<TRow> RowId(Expression<Func<TRow, object>> expression, st
return this;
}

public GriddlySettings<TRow> Column<TProperty>(Expression<Func<TRow, TProperty>> expression, string caption = null, string format = null, string expressionString = null, SortDirection? defaultSort = null, string className = null, bool isExportOnly = false, string width = null, SummaryAggregateFunction? summaryFunction = null, object summaryValue = null, Func<TRow, object> template = null, Func<GriddlyColumn, GriddlyFilter> filter = null, Func<TRow, object> htmlAttributes = null, object headerHtmlAttributes = null, int defaultSortOrder = 0)
public GriddlySettings<TRow> Column<TProperty>(Expression<Func<TRow, TProperty>> expression, string caption = null, string format = null, string expressionString = null, SortDirection? defaultSort = null, string className = null, bool isExportOnly = false, string width = null, SummaryAggregateFunction? summaryFunction = null, object summaryValue = null, Func<TRow, object> template = null, Func<GriddlyColumn, GriddlyFilter> filter = null, Func<TRow, object> htmlAttributes = null, object headerHtmlAttributes = null, int defaultSortOrder = 0, Expression<Func<TRow, object>> value = null)
{
ModelMetadata metadata = null;

Expand Down Expand Up @@ -446,6 +446,7 @@ public GriddlySettings<TRow> Column<TProperty>(Expression<Func<TRow, TProperty>>
if (headerHtmlAttributes != null && !(headerHtmlAttributes is IDictionary<string, object>))
headerHtmlAttributes = HtmlHelper.AnonymousObjectToHtmlAttributes(headerHtmlAttributes);

var valueTemplate = value == null ? null : value.Compile();
Add(new GriddlyColumn<TRow>()
{
Template = template,
Expand All @@ -460,15 +461,16 @@ public GriddlySettings<TRow> Column<TProperty>(Expression<Func<TRow, TProperty>>
IsExportOnly = isExportOnly,
Width = width,
HtmlAttributesTemplate = htmlAttributes,
HeaderHtmlAttributes = (IDictionary<string, object>)headerHtmlAttributes
HeaderHtmlAttributes = (IDictionary<string, object>)headerHtmlAttributes,
UnderlyingValueTemplate = valueTemplate
}, filter);

return this;
}

public GriddlySettings<TRow> Column(string caption = null, string format = null, string expressionString = null, SortDirection? defaultSort = null, string className = null, bool isExportOnly = false, string width = null, SummaryAggregateFunction? summaryFunction = null, object summaryValue = null, Func<TRow, object> template = null, Func<GriddlyColumn, GriddlyFilter> filter = null, Func<TRow, object> htmlAttributes = null, object headerHtmlAttributes = null, int defaultSortOrder = 0)
public GriddlySettings<TRow> Column(string caption = null, string format = null, string expressionString = null, SortDirection? defaultSort = null, string className = null, bool isExportOnly = false, string width = null, SummaryAggregateFunction? summaryFunction = null, object summaryValue = null, Func<TRow, object> template = null, Func<GriddlyColumn, GriddlyFilter> filter = null, Func<TRow, object> htmlAttributes = null, object headerHtmlAttributes = null, int defaultSortOrder = 0, Expression<Func<TRow, object>> value = null)
{
return Column<object>(null, caption, format, expressionString, defaultSort, className, isExportOnly, width, summaryFunction, summaryValue, template, filter, htmlAttributes, headerHtmlAttributes, defaultSortOrder);
return Column<object>(null, caption, format, expressionString, defaultSort, className, isExportOnly, width, summaryFunction, summaryValue, template, filter, htmlAttributes, headerHtmlAttributes, defaultSortOrder, value);
}

public GriddlySettings<TRow> SelectColumn(Expression<Func<TRow, object>> id, object summaryValue = null)
Expand Down
4 changes: 3 additions & 1 deletion Griddly/App_Start/BundleConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ public class BundleConfig
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery.validate.js",
"~/Scripts/jquery.validate.unobtrusive.js"));

// Use the development version of Modernizr to develop with and learn from. Then, when you're
// ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
Expand Down
40 changes: 40 additions & 0 deletions Griddly/Controllers/HomeController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,46 @@ public ActionResult HistoryTest()
return View();
}


public ActionResult Editly()
{
return View();
}

public ActionResult EditlyGrid(string item, int? quantityStart, int? quantityEnd, decimal? totalStart, decimal? totalEnd, string firstName, string lastName, bool? isApproved)
{
this.SetGriddlyDefault(ref isApproved, "isApproved", true);

IQueryable<SimpleOrder> query = _indexTestData;

if (!string.IsNullOrWhiteSpace(item))
query = query.Where(x => x.Item.ToLower().Contains(item.ToLower()));

if (quantityStart != null && quantityEnd != null)
query = query.Where(x => x.Quantity >= quantityStart && x.Quantity <= quantityEnd);
if (quantityStart != null)
query = query.Where(x => x.Quantity >= quantityStart);
if (quantityEnd != null)
query = query.Where(x => x.Quantity <= quantityEnd);

if (totalStart != null && totalEnd != null)
query = query.Where(x => x.Total >= totalStart && x.Total <= totalEnd);
if (totalStart != null)
query = query.Where(x => x.Total >= totalStart);
if (totalEnd != null)
query = query.Where(x => x.Total <= totalEnd);

if (!string.IsNullOrWhiteSpace(firstName))
query = query.Where(x => x.Person.FirstName.ToLower().Contains(firstName.ToLower()));
if (!string.IsNullOrWhiteSpace(lastName))
query = query.Where(x => x.Person.LastName.ToLower().Contains(lastName.ToLower()));

if (isApproved != null)
query = query.Where(x => x.IsApproved == isApproved);

return new QueryableResult<SimpleOrder>(query);
}

public GriddlyResult TestGrid(string firstName, int? zipStart, int? zipEnd)
{
IQueryable<TestGridItem> query = _testData;
Expand Down
8 changes: 8 additions & 0 deletions Griddly/Griddly.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@
<Content Include="Scripts\bootstrap-multiselect.js" />
<Content Include="Scripts\bootstrap.js" />
<Content Include="Scripts\bootstrap.min.js" />
<Content Include="Scripts\editly.js" />
<Content Include="Scripts\griddly.js" />
<Content Include="Scripts\bootstrap.min.js.map">
<DependentUpon>bootstrap.min.js</DependentUpon>
Expand All @@ -187,6 +188,11 @@
<None Include="Scripts\jquery-2.1.0.intellisense.js" />
<Content Include="Scripts\jquery-2.1.0.js" />
<Content Include="Scripts\jquery-2.1.0.min.js" />
<None Include="Scripts\jquery.validate-vsdoc.js" />
<Content Include="Scripts\jquery.validate.js" />
<Content Include="Scripts\jquery.validate.min.js" />
<Content Include="Scripts\jquery.validate.unobtrusive.js" />
<Content Include="Scripts\jquery.validate.unobtrusive.min.js" />
<Content Include="Scripts\modernizr-2.7.1.js" />
<Content Include="Scripts\npm.js" />
<Content Include="Scripts\respond.js" />
Expand Down Expand Up @@ -249,6 +255,8 @@
<Content Include="Views\Home\IndexGrid.cshtml" />
<Content Include="Views\Shared\Griddly\GriddlyFilterInline.cshtml" />
<Content Include="Views\Shared\Griddly\GriddlyFilterForm.cshtml" />
<Content Include="Views\Home\Editly.cshtml" />
<Content Include="Views\Home\EditlyGrid.cshtml" />
<Content Include="Views\Home\HistoryTest.cshtml" />
</ItemGroup>
<ItemGroup>
Expand Down
Binary file modified Griddly/Scripts/_references.js
Binary file not shown.
Loading