private string BuildUrl(string sortPropertyName, string linkText) { var orderDirectionQuery = string.Empty; var routeValues = new RouteValueDictionary(); foreach (var key in viewContext_.RequestContext.HttpContext.Request.QueryString.AllKeys.Where(key => key != null)) { routeValues[key] = viewContext_.RequestContext.HttpContext.Request.QueryString[key]; } var arrowSpan = Tag.Span.Class("t-order-icon"); if (Orders.Any(x => x.PropertyName == sortPropertyName)) { if (Orders.First(x => x.PropertyName == sortPropertyName).Direction == GridParameters.Ascending) { orderDirectionQuery += sortPropertyName + GridParameters.PropertyDirectionSeparator + GridParameters.Descending; AddOrUpdate(routeValues, GridParameters.OrderKey, orderDirectionQuery); arrowSpan.Class(GridClass.TopIcon); } else { routeValues.Remove(GridParameters.OrderKey); arrowSpan.Class(GridClass.BottomIcon); } } else { orderDirectionQuery += sortPropertyName + GridParameters.PropertyDirectionSeparator + GridParameters.Ascending; AddOrUpdate(routeValues, GridParameters.OrderKey, orderDirectionQuery); } var url = UrlHelper.GenerateUrl(null, null, null, routeValues, RouteTable.Routes, GridModel.Context.RequestContext, true); var link = Tag.A(url).Id(sortPropertyName).Class(GridClass.GridShift).Html(linkText).Html(arrowSpan.Style("display:inline-block")).ToString(); return(link); }
public dynamic CtaList(dynamic ctas) { var ctaList = Tag.Div(); foreach (var cta in AsList(ctas)) { ctaList.Add(Tag.A(cta.Label).Class("btn btn-primary btn-lg cta").Href(cta.Link).Attr("data-id", cta.EntityId).Attr("data-moduleid", CmsContext.Module.Id).Attr("data-trackingevent", "cta")); } return(ctaList); }
public dynamic TitleLogo(string path, string link, int size = 0) { var img = Tag.Div(Tag.Img().Src(App.Path + "/" + path + "?w=75&h=75").Class("img-fluid")).Class("icon-wrapper"); if (size != 0) { img.Style("height: " + size + "px;" + " width: " + size + "px;"); } return(Tag.A().Href(link).Target("_blank").Wrap(img.Class("float-right ml-3 float-end"))); }
public dynamic InfoContent(string title, string link = "", string textColor = "") { var content = Tag.Li(title); if (Text.Has(link)) { return(Tag.A(content).Href(link).Target("_blank").Class(textColor)); } return(content.Class(textColor)); }
// Create an image which opens a larger version in a lighbox public dynamic PreviewWithLightbox(string url, int width = 100, int height = 100, string classes = "", string label = null) { // Make sure the fancybox is added to the page, but only once GetService <IPageService>().Activate("fancybox4"); return(Tag.Figure( Tag.A().Attr("data-fancybox='gallery'").Href(url).Class(classes).Attr("data-caption", label).Wrap( Tag.Img().Src(Link.Image(url, width: width, height: height)) ) )); }
private dynamic Breadcrumb(string name, string topicUrl) { var result = Tag.Custom(null).Wrap( Tag.A("Tutorial Home").Href(Link.To()) ); if (!string.IsNullOrEmpty(name)) { result.Add(" › ", Tag.A(name).Href(Link.To(parameters: topicUrl.Replace("/", "=")))); } return(result); }
public dynamic TutorialLinkHome(string label, string target, string description, string newText = null) { return(Tag.Li( Tag.Strong( Tag.A().Href(Link.To(parameters: target + "=home")).Wrap( label + " ", Highlighted(newText) ) ), Tag.Br(), description )); }
public virtual string Render(T dataItem, IList <IGridDataKey <T> > dataKeys, ControllerContext context) { if (CheckIfHidden(dataItem)) { return(string.Empty); } var url = dataItem == null ? context.BuildUrl(RouteValueDictionary, dataKeys) : context.BuildUrl(dataItem, RouteValueDictionary, dataKeys); if (!TextOnly) { var image = Tag.A(url).Style("display:inline-block") .Html(Tag.Span.Class("grid-icon", ImageUrl).Title(AlternateText)) .MergeAttributes(HtmlAttributes.DictionaryParse()); return(image.ToString()); } return(Tag.A(url).Style("display:inline-block").Class(ImageUrl) .Text(AlternateText).MergeAttributes(HtmlAttributes.DictionaryParse()) .ToString()); }
protected virtual FluentTagBuilder RenderLeftSideOfPager() { var ul = Tag.Ul; //If we're on page 1 then there's no need to render a link to the first page. ul.Html(Tag.Li.Html(GetPrevNext(1, paginationFirst_, pagination_.PageNumber > 1, GridMessages.FirstPage))); //If we're on page 2 or later, then render a link to the previous page. //If we're on the first page, then there is no need to render a link to the previous page. ul.Html(Tag.Li.Html(GetPrevNext(pagination_.PageNumber - 1, paginationPrev_, pagination_.HasPreviousPage, GridMessages.PreviousPage))); if (PaginationStart > 1) { ul.Html(Tag.Li.Html(Tag.A(urlBuilder_(PreviousPagination)).SetInnerText("..").Title(GridMessages.PreviousPagerElements))); } for (var i = PaginationStart; i <= MaxPagination; i++) { ul.Html(Tag.Li.Html(GetNumeratedLink(i))); } if (MaxPagination < pagination_.TotalPages) { ul.Html(Tag.Li.Html(Tag.A(urlBuilder_(NextPagination)).SetInnerText("..").Title(GridMessages.NextPagerElements))); } //Only render a link to the next page if there is another page after the current page. ul.Html(Tag.Li.Html(GetPrevNext(pagination_.PageNumber + 1, paginationNext_, pagination_.HasNextPage, GridMessages.NextPage))); var lastPage = pagination_.TotalPages; //Only render a link to the last page if we're not on the last page already. ul.Html(Tag.Li.Html(GetPrevNext(lastPage, paginationLast_, pagination_.PageNumber < lastPage, GridMessages.LastPage))); return(ul); }
// ReSharper disable once InconsistentNaming public void TableBasic() { Is("<a href='...'>hello there</a>", Tag.A("hello there").Href("...")); }
// Shows a back to list button public dynamic BackToListButton() { return(Tag.A(App.Resources.LabelBackToList).Class("btn").Class("btn-outline-primary").Class("app-backtolist").Href(Link.To().ToString())); }
public dynamic TutLink(string label, string target) { return(Tag.A(label).Href(Link.To(parameters: GetTargetUrl(target)))); }
public dynamic ExternalLink(string target, string description) { return(Tag.A(description).Href(target).Target("_blank")); }
private FluentTagBuilder GetNumeratedLink(int pageNumber) { return(pageNumber == pagination_.PageNumber ? Tag.Span.Class(GridClass.ActivePage).SetInnerText(pageNumber.ToString()) : Tag.A(urlBuilder_(pageNumber)).Html(pageNumber.ToString())); }
private FluentTagBuilder GetPrevNext(int pageNumber, FluentTagBuilder span, bool activateLink, string title) { return(activateLink ? Tag.A(urlBuilder_(pageNumber)).Title(title).Html(span) : span.AddCssClass(GridClass.GridDisabled)); }