/// <summary> /// Generate the breadcrumbs for the file view/upload. /// </summary> /// <param name="folderId">Folder Id to get parent folder heirarchy.</param> /// <param name="slug"></param> /// <param name="filename">Name of file to append as non clickable text</param> /// <returns></returns> private BreadcrumbsViewModel GetBreadcrumbs(Guid?folderId, string slug, string filename = null) { var breadCrumbs = new BreadcrumbsViewModel() { BreadcrumbLinks = new List <BreadCrumbItem>() }; var x = @Url.RouteUrl("GroupUrls", new { slug = slug, tab = Constants.GroupFilesTab }); breadCrumbs.BreadcrumbLinks.Add(new BreadCrumbItem() { Url = @Url.RouteUrl("GroupUrls", new { slug = slug, tab = Constants.GroupFilesTab }), Name = "Files" }); if (folderId.HasValue) { var bc = _folderService.GenerateBreadcrumbTrailAsync(folderId.Value, CancellationToken.None).Result; if (bc != null) { if (bc.Count() == 4) { bc.First().Name = "..."; } breadCrumbs.BreadcrumbLinks.AddRange(bc.Select(b => new BreadCrumbItem { Name = b.Name, Url = @Url.RouteUrl("GroupUrls", new { slug = slug, tab = Constants.GroupFilesTab, folder = b.Id }) })); } } breadCrumbs.LastEntry = filename; return(breadCrumbs); }
public IViewComponentResult Invoke(string additional) { var currentPage = ViewContext.GetCurrentItem(); var model = new BreadcrumbsViewModel(currentPage, additional); return(View(model)); }
public IViewComponentResult Invoke() { var model = new BreadcrumbsViewModel() { Breadcrumbs = BuildBreadcrumbs() }; return(View(model)); }
public ActionResult Index() { IList <BreadcrumbsViewModel> breadcrumbs = new List <BreadcrumbsViewModel>(); Category lastCategory = null; Product product = CatalogContext.CurrentProduct; foreach (var category in CatalogContext.CurrentCategories) { var breadcrumb = new BreadcrumbsViewModel { BreadcrumbName = category.DisplayName, BreadcrumbUrl = UrlService.GetUrl(CatalogContext.CurrentCatalog, new[] { category }) }; lastCategory = category; breadcrumbs.Add(breadcrumb); } if (product != null) { var breadcrumb = new BreadcrumbsViewModel { BreadcrumbName = product.DisplayName, BreadcrumbUrl = UrlService.GetUrl(CatalogContext.CurrentCatalog, new[] { lastCategory }.Compact().ToArray(), product) }; breadcrumbs.Add(breadcrumb); } if (product == null && lastCategory == null) { var currentNode = CurrentPage; foreach (var level in currentNode.Ancestors().Where(IsVisible)) { var breadcrumb = new BreadcrumbsViewModel() { BreadcrumbName = level.Name, BreadcrumbUrl = level.Url }; breadcrumbs.Add(breadcrumb); } var currentBreadcrumb = new BreadcrumbsViewModel() { BreadcrumbName = currentNode.Name, BreadcrumbUrl = currentNode.Url }; breadcrumbs.Add(currentBreadcrumb); } return(View("/Views/PartialView/Breadcrumbs.cshtml", breadcrumbs)); }
public ActionResult Index() { IList <BreadcrumbsViewModel> breadcrumbs = new List <BreadcrumbsViewModel>(); Category lastCategory = null; Product product = SiteContext.Current.CatalogContext.CurrentProduct; foreach (var category in SiteContext.Current.CatalogContext.CurrentCategories) { var breadcrumb = new BreadcrumbsViewModel { BreadcrumbName = category.DisplayName(), BreadcrumbUrl = CatalogLibrary.GetNiceUrlForCategory(category) }; lastCategory = category; breadcrumbs.Add(breadcrumb); } if (product != null) { var breadcrumb = new BreadcrumbsViewModel { BreadcrumbName = product.DisplayName(), BreadcrumbUrl = CatalogLibrary.GetNiceUrlForProduct(product, lastCategory) }; breadcrumbs.Add(breadcrumb); } if (product == null && lastCategory == null) { var currentNode = CurrentPage; foreach (var level in currentNode.Ancestors().Where(IsVisible)) { var breadcrumb = new BreadcrumbsViewModel() { BreadcrumbName = level.Name, BreadcrumbUrl = level.Url }; breadcrumbs.Add(breadcrumb); } var currentBreadcrumb = new BreadcrumbsViewModel() { BreadcrumbName = currentNode.Name, BreadcrumbUrl = currentNode.Url }; breadcrumbs.Add(currentBreadcrumb); } return(View("/Views/PartialView/Breadcrumbs.cshtml", breadcrumbs)); }
public ActionResult RenderBreadcrumbs() { var visibleOrderedAncestors = CurrentPage.Ancestors() .Where(x => x.IsVisible()) .OrderBy(x => x.Level) .ToList(); var viewModel = new BreadcrumbsViewModel() { Ancestors = _navigationItemService.GetViewModels(visibleOrderedAncestors), CurrentPage = CurrentPage.Name }; return(PartialView("~/Views/Partials/Breadcrumbs.cshtml", viewModel)); }
private async Task <BreadcrumbsViewModel> GetBreadcrumbsAsync(Guid?folderId, string slug, string lastEntry = null, CancellationToken cancellationToken = default(CancellationToken)) { var breadCrumbs = new BreadcrumbsViewModel() { BreadcrumbLinks = new List <BreadCrumbItem>() }; if (!folderId.HasValue) { return(breadCrumbs); } // Only add the root item if there is a folder Id, if it's null then we're at the root folder and no need to show breadcrumbs breadCrumbs.BreadcrumbLinks.Add(new BreadCrumbItem() { Url = @Url.RouteUrl("GroupUrls", new { slug = slug, tab = Constants.GroupFilesTab }), Name = "Files" }); var bc = await _folderService.GenerateBreadcrumbTrailAsync(folderId.Value, cancellationToken); if (!(bc is null)) { if (bc.Count() == 4) { bc.First().Name = "..."; } if (!string.IsNullOrWhiteSpace(lastEntry)) { // Last entry not passed in use all the folder heirarchy as links with last entry - add only breadCrumbs.BreadcrumbLinks.AddRange(bc.Select(b => new BreadCrumbItem { Name = b.Name, Url = @Url.RouteUrl("GroupUrls", new { slug = slug, tab = Constants.GroupFilesTab, folder = b.Id }) })); breadCrumbs.LastEntry = lastEntry; } else { // Exclude the last folder as this is the folder being viewed and should not be clickable, add last folder as non clickable breadCrumbs.BreadcrumbLinks.AddRange(bc.Take(bc.Count() - 1).Select(b => new BreadCrumbItem { Name = b.Name, Url = @Url.RouteUrl("GroupUrls", new { slug = slug, tab = Constants.GroupFilesTab, folder = b.Id }) })); breadCrumbs.LastEntry = bc.Last().Name; } } return(breadCrumbs); }
public static List <BreadcrumbItemListElementViewModel> GetBreadcrumbItemList(this PageData pageData, ContentReference startPageReference = null) { if (IsBlockContext) { return(new List <BreadcrumbItemListElementViewModel>()); } if (pageData == null) { return(new List <BreadcrumbItemListElementViewModel>()); } var reference = startPageReference; if (reference == null || ContentReference.IsNullOrEmpty(reference)) { reference = ContentReference.StartPage; } var breadcrumbModel = new BreadcrumbsViewModel(pageData, reference); return(breadcrumbModel.BreadcrumbItemList); }
public static IHtmlContent GovUkBreadcrumbs( this IHtmlHelper htmlHelper, BreadcrumbsViewModel breadcrumbsViewModel) { return(htmlHelper.Partial("/GovUkDesignSystemComponents/Breadcrumbs.cshtml", breadcrumbsViewModel)); }
public static IHtmlContent GovUkBreadcrumbs( this IHtmlHelper htmlHelper, BreadcrumbsViewModel breadcrumbsViewModel) { return(htmlHelper.Partial("~/Partials/Breadcrumbs.cshtml", breadcrumbsViewModel)); }