Skip to content

Commit

Permalink
updated for mobile mvc navbars
Browse files Browse the repository at this point in the history
  • Loading branch information
shellscape committed Nov 1, 2012
1 parent d200be2 commit 0a79861
Show file tree
Hide file tree
Showing 2 changed files with 142 additions and 3 deletions.
31 changes: 31 additions & 0 deletions Juice/Mvc/Mobile/Navbar.cs
Expand Up @@ -36,7 +36,10 @@ public partial class MobileHelpers {

public class NavbarWidget : JuiceMobileWidget<NavbarWidget>, IDisposable {

private List<HelperResult> _items = new List<HelperResult>();

public NavbarWidget(HtmlHelper helper) : base(helper, "navbar") {

_optionsMap = new Dictionary<String, String> {
{ "icon", "icon" },
{ "iconpos", "iconpos" },
Expand All @@ -54,5 +57,33 @@ public class NavbarWidget : JuiceMobileWidget<NavbarWidget>, IDisposable {
return this;
}

public NavbarWidget AddItem(Func<NavbarWidget, HelperResult> content) {

HelperResult res = content(this);

_items.Add(res);

return this;
}

public override void RenderStart() {
base.RenderStart();

_writer.WriteFullBeginTag("ul");

foreach(var item in _items) {

_writer.WriteBeginTag("li");
_writer.Write(System.Web.UI.HtmlTextWriter.TagRightChar);

_writer.Write(item.ToHtmlString());

_writer.WriteEndTag("li");
}

_writer.WriteEndTag("ul");

}

}
}
114 changes: 111 additions & 3 deletions Tests/Mvc/Areas/Mobile/Views/Navbars/Index.cshtml
Expand Up @@ -2,9 +2,7 @@

@Html.Juice().Mobile.BeginHeader().Content(@<h1>Navbars</h1>)
@{
Html.Juice().Mobile.Anchor(iconpos: MobileIconPosition.NoText, icon: MobileIcon.Home, direction: MobileDirection.Reverse)
.AddAttribute("href", "/")
.AddAttribute("id", "_Home")
Html.Juice().Mobile.Anchor("_Home", "/", iconpos: MobileIconPosition.NoText, icon: MobileIcon.Home, direction: MobileDirection.Reverse)
.Content(@<text>Home</text>)
.Render();
}
Expand All @@ -13,6 +11,116 @@

@Html.Juice().Mobile.BeginContent()

@{
Html.Juice().Mobile.BeginNavbar()
.AddItem(@<a href="#" class="ui-btn-active">One</a>)
.AddItem(@<a href="#">Two</a>)
.Render();
}
@Html.Juice().Mobile.EndNavbar()

@{ Html.Juice().Mobile.BeginNavbar()
.AddItem(@<a href="#" class="ui-btn-active">One</a>)
.AddItem(@<a href="#">Two</a>)
.AddItem(@<a href="#">Three</a>)
.AddItem(@<a href="#">Four</a>)
.Render(); }
@Html.Juice().Mobile.EndNavbar()

@{ Html.Juice().Mobile.BeginNavbar()
.AddItem(@<a href="#" class="ui-btn-active">One</a>)
.AddItem(@<a href="#">Two</a>)
.AddItem(@<a href="#">Three</a>)
.AddItem(@<a href="#">Four</a>)
.AddItem(@<a href="#">Five</a>)
.Render(); }
@Html.Juice().Mobile.EndNavbar()

@{ Html.Juice().Mobile.BeginNavbar()
.AddItem(@<a href="#" class="ui-btn-active">One</a>)
.AddItem(@<a href="#">Two</a>)
.AddItem(@<a href="#">Three</a>)
.AddItem(@<a href="#">Four</a>)
.AddItem(@<a href="#">Five</a>)
.AddItem(@<a href="#">Six</a>)
.AddItem(@<a href="#">Seven</a>)
.AddItem(@<a href="#">Eight</a>)
.AddItem(@<a href="#">Nine</a>)
.AddItem(@<a href="#">Ten</a>)
.Render(); }
@Html.Juice().Mobile.EndNavbar()

@Html.Juice().Mobile.BeginNavbar().AddItem(@<a href="#" class="ui-btn-active">One</a>)
@Html.Juice().Mobile.EndNavbar()

@Html.Juice().Mobile.BeginHeader().Content(@<h1>I'm a header</h1>)
<a href="index.html" data-icon="gear" class="ui-btn-right">Options</a>

@{ Html.Juice().Mobile.BeginNavbar()
.AddItem(@<a href="#">One</a>)
.AddItem(@<a href="#">Two</a>)
.AddItem(@<a href="#">Three</a>)
.Render(); }
@Html.Juice().Mobile.EndNavbar()
@Html.Juice().Mobile.EndHeader()

@Html.Juice().Mobile.BeginFooter()
@{ Html.Juice().Mobile.BeginNavbar()
.AddItem(@<a href="#">One</a>)
.AddItem(@<a href="#">Two</a>)
.AddItem(@<a href="#">Three</a>)
.Render(); }
@Html.Juice().Mobile.EndNavbar()
@Html.Juice().Mobile.BeginFooter()

@Html.Juice().Mobile.BeginFooter()
@{ Html.Juice().Mobile.BeginNavbar()
.AddItem(@<a href="#" data-icon="grid">Summary</a>)
.AddItem(@<a href="#" data-icon="star" class="ui-btn-active">Favs</a>)
.AddItem(@<a href="#" data-icon="gear">Setup</a>)
.Render(); }
@Html.Juice().Mobile.EndNavbar()
@Html.Juice().Mobile.EndFooter()

@Html.Juice().Mobile.BeginFooter()
@{ Html.Juice().Mobile.BeginNavbar(iconpos: MobileIconPosition.Bottom)
.AddItem(@<a href="#" data-icon="grid">Summary</a>)
.AddItem(@<a href="#" data-icon="star" class="ui-btn-active">Favs</a>)
.AddItem(@<a href="#" data-icon="gear">Setup</a>)
.Render(); }
@Html.Juice().Mobile.EndNavbar()
@Html.Juice().Mobile.EndFooter()

@Html.Juice().Mobile.BeginFooter()
@{ Html.Juice().Mobile.BeginNavbar(iconpos: MobileIconPosition.Left)
.AddItem(@<a href="#" data-icon="grid">Summary</a>)
.AddItem(@<a href="#" data-icon="star" class="ui-btn-active">Favs</a>)
.AddItem(@<a href="#" data-icon="gear">Setup</a>)
.Render(); }
@Html.Juice().Mobile.EndNavbar()
@Html.Juice().Mobile.EndFooter()


@Html.Juice().Mobile.BeginFooter()
@{ Html.Juice().Mobile.BeginNavbar(iconpos: MobileIconPosition.Right)
.AddItem(@<a href="#" data-icon="grid">Summary</a>)
.AddItem(@<a href="#" data-icon="star" class="ui-btn-active">Favs</a>)
.AddItem(@<a href="#" data-icon="gear">Setup</a>)
.Render(); }
@Html.Juice().Mobile.EndNavbar()
@Html.Juice().Mobile.EndFooter()

@Html.Juice().Mobile.BeginFooter()
@{ Html.Juice().Mobile.BeginNavbar()
.AddItem(@<a href="#" data-icon="grid"data-theme="a">A</a>)
.AddItem(@<a href="#" data-icon="star" data-theme="b">B</a>)
.AddItem(@<a href="#" data-icon="gear" data-theme="c">C</a>)
.AddItem(@<a href="#" data-icon="arrow-l" data-theme="d">D</a>)
.AddItem(@<a href="#" data-icon="arrow-r" data-theme="e">E</a>)
.Render(); }
@Html.Juice().Mobile.EndNavbar()
@Html.Juice().Mobile.EndFooter()


@Html.Juice().Mobile.EndContent()

Expand Down

0 comments on commit 0a79861

Please sign in to comment.