/// <summary> /// Adds the page nodes. /// </summary> /// <param name="page">The page.</param> /// <returns></returns> protected string PageNode( Page page ) { var sb = new StringBuilder(); sb.AppendFormat( "<li data-expanded='false' data-model='Page' data-id='{0}'><span><i class=\"fa fa-file-o\"> </i> <a href='{1}'>{2}</a></span>{3}", page.Id, new PageReference( page.Id ).BuildUrl(), page.InternalName, Environment.NewLine ); if ( page.Pages.Any() || page.Blocks.Any() ) { sb.AppendLine( "<ul>" ); foreach ( var childPage in page.Pages.OrderBy( a => a.Order ).ThenBy( a => a.InternalName ) ) { sb.Append( PageNode( childPage ) ); } foreach ( var block in page.Blocks.OrderBy( b => b.Order ) ) { sb.AppendFormat( "<li data-expanded='false' data-model='Block' data-id='{0}'><span>{1}{2}:{3}</span></li>{4}", block.Id, CreateConfigIcon( block ), block.Name, block.BlockType.Name, Environment.NewLine ); } sb.AppendLine( "</ul>" ); } sb.AppendLine( "</li>" ); return sb.ToString(); }
/// <summary> /// Adds the page nodes. /// </summary> /// <param name="page">The page.</param> /// <returns></returns> protected string PageNode( Page page, List<int> expandedPageIdList ) { var sb = new StringBuilder(); string pageSearch = this.PageParameter( "pageSearch" ); bool isSelected = false; if ( !string.IsNullOrWhiteSpace( pageSearch ) ) { isSelected = page.InternalName.IndexOf( pageSearch, StringComparison.OrdinalIgnoreCase ) >= 0; } bool isExpanded = expandedPageIdList.Contains(page.Id); sb.AppendFormat( "<li data-expanded='{4}' data-model='Page' data-id='p{0}'><span><i class=\"fa fa-file-o\"> </i> <a href='{1}'>{2}</a></span>{3}", page.Id, new PageReference( page.Id ).BuildUrl(), isSelected ? "<strong>" + page.InternalName + "</strong>" : page.InternalName, Environment.NewLine, isExpanded.ToString().ToLower() ); if ( page.Pages.Any() || page.Blocks.Any() ) { sb.AppendLine( "<ul>" ); foreach ( var childPage in page.Pages.OrderBy( a => a.Order ).ThenBy( a => a.InternalName ) ) { sb.Append( PageNode( childPage, expandedPageIdList ) ); } foreach ( var block in page.Blocks.OrderBy( b => b.Order ) ) { sb.AppendFormat( "<li data-expanded='false' data-model='Block' data-id='b{0}'><span>{1}{2}:{3}</span></li>{4}", block.Id, CreateConfigIcon( block ), block.Name, block.BlockType.Name, Environment.NewLine ); } sb.AppendLine( "</ul>" ); } sb.AppendLine( "</li>" ); return sb.ToString(); }