From 3b842eb4580b3af817b94d067c7c1a474a396750 Mon Sep 17 00:00:00 2001 From: Zhou Date: Sat, 24 May 2014 10:45:01 +0800 Subject: [PATCH 1/2] add category filter for TextContent folder --- .../Controllers/TextContentController.cs | 11 ++++- .../Views/TextContent/_AdvancedSearch.cshtml | 40 +++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/Kooboo.CMS/Kooboo.CMS.Web/Areas/Contents/Controllers/TextContentController.cs b/Kooboo.CMS/Kooboo.CMS.Web/Areas/Contents/Controllers/TextContentController.cs index 62c2d8e3..268a2a5e 100644 --- a/Kooboo.CMS/Kooboo.CMS.Web/Areas/Contents/Controllers/TextContentController.cs +++ b/Kooboo.CMS/Kooboo.CMS.Web/Areas/Contents/Controllers/TextContentController.cs @@ -78,7 +78,7 @@ public class ContentSorter [Kooboo.CMS.Web.Authorizations.Authorization(AreaName = "Contents", Group = "", Name = "Content", Order = 1)] public virtual ActionResult Index(string folderName, string parentUUID, string parentFolder, string search - , IEnumerable whereClause, int? page, int? pageSize, string sortField = null, string sortDir = null) + , IEnumerable whereClause, int? page, int? pageSize, string sortField = null, string sortDir = null, string category = null) { //compatible with the Folder parameter changed to FolderName. folderName = folderName ?? this.ControllerContext.RequestContext.GetRequestValue("Folder"); @@ -92,6 +92,7 @@ public virtual ActionResult Index(string folderName, string parentUUID, string p ViewData["Menu"] = textFolder.GetFormTemplate(FormType.Grid_Menu); ViewData["Template"] = textFolder.GetFormTemplate(FormType.Grid); ViewData["WhereClause"] = whereClause; + ViewData["Category"] = category; SetPermissionData(textFolder); @@ -151,6 +152,14 @@ public virtual ActionResult Index(string folderName, string parentUUID, string p .Where(it => it.Visible) .Where(it => Kooboo.CMS.Content.Services.ServiceFactory.WorkflowManager.AvailableViewContent(it, User.Identity.Name)); } + + // Category filter + if (!string.IsNullOrEmpty(category) && textFolder.Categories != null) + { + var categories = Kooboo.CMS.Sites.View.ContentHelper.TextFolder(textFolder.Categories.FirstOrDefault().FolderName).CreateQuery().WhereEquals("UUID", category); + query = query.WhereCategory(categories); + } + page = page ?? 1; pageSize = pageSize ?? textFolder.PageSize; diff --git a/Kooboo.CMS/Kooboo.CMS.Web/Areas/Contents/Views/TextContent/_AdvancedSearch.cshtml b/Kooboo.CMS/Kooboo.CMS.Web/Areas/Contents/Views/TextContent/_AdvancedSearch.cshtml index f0591cd1..3e611e85 100644 --- a/Kooboo.CMS/Kooboo.CMS.Web/Areas/Contents/Views/TextContent/_AdvancedSearch.cshtml +++ b/Kooboo.CMS/Kooboo.CMS.Web/Areas/Contents/Views/TextContent/_AdvancedSearch.cshtml @@ -172,5 +172,45 @@ }); + + if (folder.Categories != null) + { + var categoryFolderName = folder.Categories.FirstOrDefault().FolderName; + var categoryFolder = ContentHelper.TextFolder(categoryFolderName); + var categorySchema = categoryFolder.GetSchema(); + string categoryTextColumnName = categorySchema.AsActual().Columns.OrderBy(m => m.Order).FirstOrDefault(m => m.ShowInGrid).Name; + + var categoriesSelectListItems = new List { + new System.Web.Mvc.SelectListItem { Text = "All Categories".Localize(),Value = ""} + }.Union(categoryFolder.CreateQuery().Select(m => new System.Web.Mvc.SelectListItem { Text = (string)m[categoryTextColumnName], Value = m.UUID })); + + + + } } @*end if*@ From 0071a36fdf63299b1f8323cc1a29caab45d7aa45 Mon Sep 17 00:00:00 2001 From: Apphost <125987965@qq.com> Date: Sun, 25 May 2014 06:42:18 +0800 Subject: [PATCH 2/2] add multiple category folders support --- .../Controllers/TextContentController.cs | 13 +++- .../Views/TextContent/_AdvancedSearch.cshtml | 66 ++++++++++--------- 2 files changed, 45 insertions(+), 34 deletions(-) diff --git a/Kooboo.CMS/Kooboo.CMS.Web/Areas/Contents/Controllers/TextContentController.cs b/Kooboo.CMS/Kooboo.CMS.Web/Areas/Contents/Controllers/TextContentController.cs index 268a2a5e..40ac151f 100644 --- a/Kooboo.CMS/Kooboo.CMS.Web/Areas/Contents/Controllers/TextContentController.cs +++ b/Kooboo.CMS/Kooboo.CMS.Web/Areas/Contents/Controllers/TextContentController.cs @@ -153,11 +153,18 @@ public virtual ActionResult Index(string folderName, string parentUUID, string p .Where(it => Kooboo.CMS.Content.Services.ServiceFactory.WorkflowManager.AvailableViewContent(it, User.Identity.Name)); } - // Category filter + // Category filter, only ONE category currently if (!string.IsNullOrEmpty(category) && textFolder.Categories != null) { - var categories = Kooboo.CMS.Sites.View.ContentHelper.TextFolder(textFolder.Categories.FirstOrDefault().FolderName).CreateQuery().WhereEquals("UUID", category); - query = query.WhereCategory(categories); + foreach (var item in textFolder.Categories) + { + var categories = Kooboo.CMS.Sites.View.ContentHelper.TextFolder(item.FolderName).CreateQuery().WhereEquals("UUID", category); + if (categories.Count() > 0) + { + query = query.WhereCategory(categories); + break; + } + } } page = page ?? 1; diff --git a/Kooboo.CMS/Kooboo.CMS.Web/Areas/Contents/Views/TextContent/_AdvancedSearch.cshtml b/Kooboo.CMS/Kooboo.CMS.Web/Areas/Contents/Views/TextContent/_AdvancedSearch.cshtml index 3e611e85..c76013ad 100644 --- a/Kooboo.CMS/Kooboo.CMS.Web/Areas/Contents/Views/TextContent/_AdvancedSearch.cshtml +++ b/Kooboo.CMS/Kooboo.CMS.Web/Areas/Contents/Views/TextContent/_AdvancedSearch.cshtml @@ -172,45 +172,49 @@ }); - + if (folder.Categories != null) { - var categoryFolderName = folder.Categories.FirstOrDefault().FolderName; - var categoryFolder = ContentHelper.TextFolder(categoryFolderName); - var categorySchema = categoryFolder.GetSchema(); - string categoryTextColumnName = categorySchema.AsActual().Columns.OrderBy(m => m.Order).FirstOrDefault(m => m.ShowInGrid).Name; - - var categoriesSelectListItems = new List { - new System.Web.Mvc.SelectListItem { Text = "All Categories".Localize(),Value = ""} - }.Union(categoryFolder.CreateQuery().Select(m => new System.Web.Mvc.SelectListItem { Text = (string)m[categoryTextColumnName], Value = m.UUID })); - - } } @*end if*@