public ActionResult List(ListContentsViewModel model, PagerParameters pagerParameters) { var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters); var query = _contentManager.Query<ProductPart, ProductPartRecord>(VersionOptions.Latest); switch (model.Options.OrderBy) { case ContentsOrder.Modified: query.OrderByDescending<CommonPartRecord>(cr => cr.ModifiedUtc); break; case ContentsOrder.Published: query.OrderByDescending<CommonPartRecord>(cr => cr.PublishedUtc); break; case ContentsOrder.Created: query.OrderByDescending<CommonPartRecord>(cr => cr.CreatedUtc); break; } var pagerShape = Shape.Pager(pager).TotalItemCount(query.Count()); var pageOfContentItems = query.Slice(pager.GetStartIndex(), pager.PageSize).ToList(); var list = Shape.List(); list.AddRange(pageOfContentItems.Select(ci => _contentManager.BuildDisplay(ci, "SummaryAdmin"))); dynamic viewModel = Shape.ViewModel() .ContentItems(list) .Pager(pagerShape) .Options(model.Options); // Casting to avoid invalid (under medium trust) reflection over the protected View method and force a static invocation. return View((object)viewModel); }
public ActionResult Index(ListContentsViewModel model, PagerParameters pagerParameters) { var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters); var query = Services.ContentManager.Query(VersionOptions.Latest, GetCreatableTypes(false).Select(ctd => ctd.Name).ToArray()); if (!string.IsNullOrEmpty(model.Options.SelectedFilter)) { var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(model.Options.SelectedFilter); if (contentTypeDefinition == null) return HttpNotFound(); model.TypeDisplayName = !string.IsNullOrWhiteSpace(contentTypeDefinition.DisplayName) ? contentTypeDefinition.DisplayName : contentTypeDefinition.Name; query = query.ForType(model.Options.SelectedFilter); } switch (model.Options.OrderBy) { case ContentsOrder.Modified: query = query.OrderByDescending<CommonPartRecord>(cr => cr.ModifiedUtc); break; case ContentsOrder.Published: query = query.OrderByDescending<CommonPartRecord>(cr => cr.PublishedUtc); break; case ContentsOrder.Created: query = query.OrderByDescending<CommonPartRecord>(cr => cr.CreatedUtc); break; } model.Options.FilterOptions = GetCreatableTypes(false) .Select(ctd => new KeyValuePair<string, string>(ctd.Name, ctd.DisplayName)) .ToList().OrderBy(kvp => kvp.Value); var pagerShape = Services.New.Pager(pager).TotalItemCount(query.Count()); var pageOfContentItems = query.Slice(pager.GetStartIndex(), pager.PageSize).ToList(); var list = Services.New.List(); list.AddRange(pageOfContentItems.Select(ci => Services.ContentManager.BuildDisplay(ci, "SummaryAdmin"))); foreach(IShape item in list.Items) { item.Metadata.Type = "ContentPicker"; } dynamic tab = Services.New.RecentContentTab() .ContentItems(list) .Pager(pagerShape) .Options(model.Options) .TypeDisplayName(model.TypeDisplayName ?? ""); // retain the parameter in the pager links RouteData.Values["Options.SelectedFilter"] = model.Options.SelectedFilter; RouteData.Values["Options.OrderBy"] = model.Options.OrderBy.ToString(); return new ShapeResult(this, Services.New.ContentPicker().Tab(tab)); }
public ActionResult List(ListContentsViewModel model, PagerParameters pagerParameters) { if (!Services.Authorizer.Authorize(Permissions.ManageTemplates, T("Not authorized to manage templates"))) { return new HttpUnauthorizedResult(); } var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters); var query = _contentManager.Query(VersionOptions.Latest, GetShapeTypes().Select(ctd => ctd.Name).ToArray()); if (!string.IsNullOrEmpty(model.TypeName)) { var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(model.TypeName); if (contentTypeDefinition == null) return HttpNotFound(); model.TypeDisplayName = !string.IsNullOrWhiteSpace(contentTypeDefinition.DisplayName) ? contentTypeDefinition.DisplayName : contentTypeDefinition.Name; query = query.ForType(model.TypeName); } switch (model.Options.OrderBy) { case ContentsOrder.Modified: query = query.OrderByDescending<CommonPartRecord>(cr => cr.ModifiedUtc); break; case ContentsOrder.Published: query = query.OrderByDescending<CommonPartRecord>(cr => cr.PublishedUtc); break; case ContentsOrder.Created: query = query.OrderByDescending<CommonPartRecord>(cr => cr.CreatedUtc); break; } model.Options.SelectedFilter = model.TypeName; model.Options.FilterOptions = GetShapeTypes() .Select(x => new KeyValuePair<string, string>(x.Name, x.DisplayName)) .ToList().OrderBy(x => x.Value); var pagerShape = Shape.Pager(pager).TotalItemCount(query.Count()); var pageOfContentItems = query.Slice(pager.GetStartIndex(), pager.PageSize).ToList(); var list = Shape.List(); list.AddRange(pageOfContentItems.Select(ci => _contentManager.BuildDisplay(ci, "SummaryAdmin"))); var viewModel = Shape.ViewModel() .ContentItems(list) .Pager(pagerShape) .Options(model.Options) .TypeDisplayName(model.TypeDisplayName ?? ""); return View(viewModel); }
public ActionResult Index(ListContentsViewModel model, PagerParameters pagerParameters) { var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters); var query = Services.ContentManager.Query( VersionOptions.Latest, GetBlogPostTypes().Select( ctd => ctd.Name ).ToArray( ) ); switch (model.Options.OrderBy) { case ContentsOrder.Modified: query = query.OrderByDescending<CommonPartRecord>(cr => cr.ModifiedUtc); break; case ContentsOrder.Published: query = query.OrderByDescending<CommonPartRecord>(cr => cr.PublishedUtc); break; case ContentsOrder.Created: query = query.OrderByDescending<CommonPartRecord>(cr => cr.CreatedUtc); break; } var pagerShape = Services.New.Pager(pager).TotalItemCount(query.Count()); var pageOfContentItems = query.Slice(pager.GetStartIndex(), pager.PageSize).ToList(); var list = Services.New.List(); list.AddRange(pageOfContentItems.Select(ci => Services.ContentManager.BuildDisplay(ci, "SummaryAdmin"))); foreach(IShape item in list.Items) { item.Metadata.Type = "BlogPostPicker"; } dynamic tab = Services.New.RecentBlogPostTab() .ContentItems(list) .Pager(pagerShape) .Options(model.Options) .TypeDisplayName(model.TypeDisplayName ?? ""); return new ShapeResult(this, Services.New.BlogPostPicker().Tab(tab)); }
public ActionResult List(ListContentsViewModel model, PagerParameters pagerParameters) { var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters); var versionOptions = VersionOptions.Latest; switch (model.Options.ContentsStatus) { case ContentsStatus.Published: versionOptions = VersionOptions.Published; break; case ContentsStatus.Draft: versionOptions = VersionOptions.Draft; break; case ContentsStatus.AllVersions: versionOptions = VersionOptions.AllVersions; break; default: versionOptions = VersionOptions.Latest; break; } var query = _productService .GetProductsQuery() .ForVersion(versionOptions); if (!string.IsNullOrEmpty(model.TypeName)) { var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(model.TypeName); if (contentTypeDefinition == null) return HttpNotFound(); model.TypeDisplayName = !string.IsNullOrWhiteSpace(contentTypeDefinition.DisplayName) ? contentTypeDefinition.DisplayName : contentTypeDefinition.Name; query = query.ForType(model.TypeName); } switch (model.Options.OrderBy) { case ContentsOrder.Modified: //query = query.OrderByDescending<ContentPartRecord, int>(ci => ci.ContentItemRecord.Versions.Single(civr => civr.Latest).Id); query = query.OrderByDescending<CommonPartRecord>(cr => cr.ModifiedUtc); break; case ContentsOrder.Published: query = query.OrderByDescending<CommonPartRecord>(cr => cr.PublishedUtc); break; case ContentsOrder.Created: //query = query.OrderByDescending<ContentPartRecord, int>(ci => ci.Id); query = query.OrderByDescending<CommonPartRecord>(cr => cr.CreatedUtc); break; } model.Options.SelectedFilter = model.TypeName; model.Options.FilterOptions = GetListableTypes(false) .Select(ctd => new KeyValuePair<string, string>(ctd.Name, ctd.DisplayName)) .ToList().OrderBy(kvp => kvp.Value); model.Options.Cultures = _cultureManager.ListCultures(); var maxPagedCount = _siteService.GetSiteSettings().MaxPagedCount; if (maxPagedCount > 0 && pager.PageSize > maxPagedCount) pager.PageSize = maxPagedCount; var pagerShape = Shape.Pager(pager).TotalItemCount(maxPagedCount > 0 ? maxPagedCount : query.Count()); var pageOfContentItems = query.Slice(pager.GetStartIndex(), pager.PageSize).ToList(); var list = Shape.List(); list.AddRange(pageOfContentItems.Select(ci => _contentManager.BuildDisplay(ci, "SummaryAdmin"))); var viewModel = Shape.ViewModel() .ContentItems(list) .Pager(pagerShape) .Options(model.Options) .TypeDisplayName(model.TypeDisplayName ?? ""); return View(viewModel); }
public ActionResult Index(ListContentsViewModel model, PagerParameters pagerParameters, string part, string field, string types) { var menuItems = _navigationManager.BuildMenu("content-picker").ToList(); var contentPickerMenuItem = menuItems.FirstOrDefault(); if (contentPickerMenuItem == null) { return HttpNotFound(); } if (contentPickerMenuItem.Items.All(x => x.Text.TextHint != "Recent Content")) { // the default tab should not be displayed, redirect to the next one var root = menuItems.FirstOrDefault(); if (root == null) { return HttpNotFound(); } var firstChild = root.Items.First(); if (firstChild == null) { return HttpNotFound(); } var routeData = new RouteValueDictionary(firstChild.RouteValues); var queryString = Request.QueryString; foreach (var key in queryString.AllKeys) { if (!String.IsNullOrEmpty(key)) { routeData[key] = queryString[key]; } } return RedirectToRoute(routeData); } ContentPickerFieldSettings settings = null; // if the picker is loaded for a specific field, apply custom settings if (!String.IsNullOrEmpty(part) && !String.IsNullOrEmpty(field)) { var definition = _contentDefinitionManager.GetPartDefinition(part).Fields.FirstOrDefault(x => x.Name == field); if (definition != null) { settings = definition.Settings.GetModel<ContentPickerFieldSettings>(); } } if (settings != null && !String.IsNullOrEmpty(settings.DisplayedContentTypes)) { types = settings.DisplayedContentTypes; } IEnumerable<ContentTypeDefinition> contentTypes; if (!String.IsNullOrEmpty(types)) { var rawTypes = types.Split(new[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList(); contentTypes = _contentDefinitionManager .ListTypeDefinitions() .Where(x => x.Parts.Any(p => rawTypes.Contains(p.PartDefinition.Name)) || rawTypes.Contains(x.Name)) .ToArray(); } else { contentTypes = GetListableTypes(false).ToList(); } var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters); var query = Services.ContentManager.Query(VersionOptions.Latest, contentTypes.Select(ctd => ctd.Name).ToArray()); if (!string.IsNullOrEmpty(model.Options.SelectedFilter)) { var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(model.Options.SelectedFilter); if (contentTypeDefinition == null) return HttpNotFound(); model.TypeDisplayName = !string.IsNullOrWhiteSpace(contentTypeDefinition.DisplayName) ? contentTypeDefinition.DisplayName : contentTypeDefinition.Name; query = query.ForType(model.Options.SelectedFilter); } switch (model.Options.OrderBy) { case ContentsOrder.Modified: query = query.OrderByDescending<CommonPartRecord>(cr => cr.ModifiedUtc); break; case ContentsOrder.Published: query = query.OrderByDescending<CommonPartRecord>(cr => cr.PublishedUtc); break; case ContentsOrder.Created: query = query.OrderByDescending<CommonPartRecord>(cr => cr.CreatedUtc); break; } model.Options.FilterOptions = contentTypes .Select(ctd => new KeyValuePair<string, string>(ctd.Name, ctd.DisplayName)) .ToList().OrderBy(kvp => kvp.Value); var pagerShape = Services.New.Pager(pager).TotalItemCount(query.Count()); var pageOfContentItems = query.Slice(pager.GetStartIndex(), pager.PageSize).ToList(); var list = Services.New.List(); list.AddRange(pageOfContentItems.Select(ci => Services.ContentManager.BuildDisplay(ci, "SummaryAdmin"))); foreach(IShape item in list.Items) { item.Metadata.Type = "ContentPicker"; } var tab = Services.New.RecentContentTab() .ContentItems(list) .Pager(pagerShape) .Options(model.Options) .TypeDisplayName(model.TypeDisplayName ?? ""); // retain the parameter in the pager links RouteData.Values["Options.SelectedFilter"] = model.Options.SelectedFilter; RouteData.Values["Options.OrderBy"] = model.Options.OrderBy.ToString(); RouteData.Values["Options.ContentsStatus"] = model.Options.ContentsStatus.ToString(); return new ShapeResult(this, Services.New.ContentPicker().Tab(tab)); }
public ActionResult Rates(ListContentsViewModel model, PagerParameters pagerParameters) { if (!Services.Authorizer.Authorize(OShopPermissions.ManageShopSettings, T("Not allowed to manage VAT rates"))) return new HttpUnauthorizedResult(); var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters); var query = _contentManager.Query<VatRatePart, VatRatePartRecord>(VersionOptions.Latest); switch (model.Options.OrderBy) { case ContentsOrder.Modified: query.OrderByDescending<CommonPartRecord>(cr => cr.ModifiedUtc); break; case ContentsOrder.Published: query.OrderByDescending<CommonPartRecord>(cr => cr.PublishedUtc); break; case ContentsOrder.Created: query.OrderByDescending<CommonPartRecord>(cr => cr.CreatedUtc); break; } var pagerShape = Shape.Pager(pager).TotalItemCount(query.Count()); var pageOfContentItems = query.Slice(pager.GetStartIndex(), pager.PageSize).ToList(); var list = Shape.List(); list.AddRange(pageOfContentItems.Select(ci => _contentManager.BuildDisplay(ci, "SummaryAdmin"))); var viewModel = Shape.ViewModel() .ContentItems(list) .Pager(pagerShape) .Options(model.Options); // Casting to avoid invalid (under medium trust) reflection over the protected View method and force a static invocation. return View(viewModel); }
public ActionResult Index(ListContentsViewModel model, PagerParameters pagerParameters) { if (!Services.Authorizer.Authorize(Permissions.OShopPermissions.AccessShopPanel, T("Not allowed to manage products"))) return new HttpUnauthorizedResult(); var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters); var versionOptions = VersionOptions.Latest; switch (model.Options.ContentsStatus) { case ContentsStatus.Published: versionOptions = VersionOptions.Published; break; case ContentsStatus.Draft: versionOptions = VersionOptions.Draft; break; case ContentsStatus.AllVersions: versionOptions = VersionOptions.AllVersions; break; default: versionOptions = VersionOptions.Latest; break; } var productTypes = GetProductTypes(); if (productTypes.Count() == 0) { Services.Notifier.Information(T("There is no product enabled content type. Please create one.")); return RedirectToAction("Index", "Admin", new { Area = "Orchard.ContentTypes" }); } var query = _contentManager.Query(versionOptions, productTypes.Select(ctd => ctd.Name).ToArray()); if (!string.IsNullOrEmpty(model.TypeName)) { var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(model.TypeName); if (contentTypeDefinition == null) return HttpNotFound(); model.TypeDisplayName = !string.IsNullOrWhiteSpace(contentTypeDefinition.DisplayName) ? contentTypeDefinition.DisplayName : contentTypeDefinition.Name; query = query.ForType(model.TypeName); } switch (model.Options.OrderBy) { case ContentsOrder.Modified: query = query.OrderByDescending<CommonPartRecord>(cr => cr.ModifiedUtc); break; case ContentsOrder.Published: query = query.OrderByDescending<CommonPartRecord>(cr => cr.PublishedUtc); break; case ContentsOrder.Created: query = query.OrderByDescending<CommonPartRecord>(cr => cr.CreatedUtc); break; } model.Options.SelectedFilter = model.TypeName; model.Options.FilterOptions = GetProductTypes() .Select(ctd => new KeyValuePair<string, string>(ctd.Name, ctd.DisplayName)) .ToList().OrderBy(kvp => kvp.Value); var pagerShape = Shape.Pager(pager).TotalItemCount(query.Count()); var pageOfContentItems = query.Slice(pager.GetStartIndex(), pager.PageSize).ToList(); var list = Shape.List(); list.AddRange(pageOfContentItems.Select(ci => _contentManager.BuildDisplay(ci, "SummaryAdmin"))); var viewModel = Shape.ViewModel() .ContentItems(list) .Pager(pagerShape) .Options(model.Options); return View(viewModel); }