private static string MenuString(Castellano.Membresia.MenuItem menuItem, int padding) { string retorno = string.Empty; foreach (Castellano.Membresia.MenuItem m in Castellano.Membresia.MenuItem.GetAll(menuItem)) { string style = string.Format("style='padding-left: {0}px;'", padding); List <Castellano.Membresia.MenuItem> items = Castellano.Membresia.MenuItem.GetAll(m); if (items.Any()) { retorno += string.Format("<li><a href='{0}'><span {1}>" + m.Nombre + "</span><i class='fa fa-chevron-down parent'></i></a>", m.Url, style); retorno += "<ul class=\"sub-menu\">"; retorno += MenuExtension.MenuString(m, padding + 5); retorno += "</ul></li>"; } else { retorno += string.Format("<li><a href='{0}'><span {1}>" + m.Nombre + "</span></a>", m.Url, style); retorno += "</li>"; } } return(retorno); }
private static string MenuOrderable(Castellano.Membresia.MenuItem menuItem) { string retorno = string.Empty; foreach (Castellano.Membresia.MenuItem m in Castellano.Membresia.MenuItem.GetAll(menuItem)) { List <Castellano.Membresia.MenuItem> items = Castellano.Membresia.MenuItem.GetAll(m); if (items.Any()) { retorno += string.Format("<li class='dd-item' data-id='{0}'>", m.Id); retorno += string.Format("<div class='dd-handle'>{0}</div>", m.Nombre); retorno += string.Format("<div>{0}{1}{2}</div>", Castellano.Helpers.ActionLinkExtension.ActionLinkCrudEmbedded(m.Id, m.MenuItemId, TypeButton.Add), Castellano.Helpers.ActionLinkExtension.ActionLinkCrudEmbedded(m.Id, m.MenuItemId, TypeButton.Edit), Castellano.Helpers.ActionLinkExtension.ActionLinkCrudEmbedded(m.Id, m.MenuItemId, TypeButton.Delete)); retorno += "<ol class='dd-list'>"; retorno += MenuExtension.MenuOrderable(m); retorno += "</ol></li>"; } else { retorno += string.Format("<li class='dd-item' data-id='{0}'>", m.Id); retorno += string.Format("<div class='dd-handle'>{0}</div>", m.Nombre); retorno += string.Format("<div>{0}{1}</div>", Castellano.Helpers.ActionLinkExtension.ActionLinkCrudEmbedded(m.Id, m.MenuItemId, TypeButton.Edit), Castellano.Helpers.ActionLinkExtension.ActionLinkCrudEmbedded(m.Id, m.MenuItemId, TypeButton.Delete)); retorno += "</li>"; } } return(retorno); }
public static MvcHtmlString MenuOrderable(this HtmlHelper helper, Castellano.Membresia.Aplicacion aplicacion) { if (!aplicacion.MenuItemId.HasValue) { throw new Exception("La aplicación no tiene la relación con el ítem de menú root"); } TagBuilder t = new TagBuilder("div"); t.Attributes.Add("id", "menu"); t.AddCssClass("dd"); t.InnerHtml += "<ol class='dd-list'>"; foreach (Castellano.Membresia.MenuItem menuItem in Castellano.Membresia.MenuItem.GetAll(Castellano.Membresia.Menu.MenuPrincipal, aplicacion, aplicacion.Inicio)) { t.InnerHtml += "<li class='dd-item' data-id='" + menuItem.Id.ToString() + "'>"; t.InnerHtml += string.Format("<div class='dd-handle'>{0}</div>", menuItem.Nombre); t.InnerHtml += string.Format("<div>{0}{1}{2}</div>", Castellano.Helpers.ActionLinkExtension.ActionLinkCrudEmbedded(menuItem.Id, menuItem.MenuItemId, TypeButton.Add), Castellano.Helpers.ActionLinkExtension.ActionLinkCrudEmbedded(menuItem.Id, menuItem.MenuItemId, TypeButton.Edit), Castellano.Helpers.ActionLinkExtension.ActionLinkCrudEmbedded(menuItem.Id, menuItem.MenuItemId, TypeButton.Delete)); string html = MenuExtension.MenuOrderable(menuItem); if (string.IsNullOrEmpty(html)) { t.InnerHtml += "</li>"; } else { t.InnerHtml += "<ol class='dd-list'>"; t.InnerHtml += html; t.InnerHtml += "</ol></li>"; } } t.InnerHtml += "</ol>"; return(new MvcHtmlString(t.ToString(TagRenderMode.Normal))); }
public static MvcHtmlString Menu(this HtmlHelper helper, Guid usuarioId) { Castellano.Membresia.Usuario usuario = Castellano.Membresia.Usuario.Get(usuarioId); Castellano.Persona persona = usuario.Persona; TagBuilder t = new TagBuilder("ul"); t.Attributes.Add("id", "MenuPrincipal"); t.AddCssClass("cl-vnavigation"); bool primero = true; foreach (Castellano.Membresia.Aplicacion aplicacion in Castellano.Membresia.Aplicacion.GetAll(persona)) { List <Castellano.Membresia.MenuItem> itemPadre = Castellano.Membresia.MenuItem.GetAll(Castellano.Membresia.Menu.MenuPrincipal, aplicacion, aplicacion.Inicio); t.InnerHtml += "<li><a href='#'><i class='fa fa-home'></i><span>" + aplicacion.Nombre + "</span></a>"; t.InnerHtml += "<ul class='sub-menu'>"; foreach (Castellano.Membresia.MenuItem menuItem in itemPadre) { List <Castellano.Membresia.MenuItem> items = Castellano.Membresia.MenuItem.GetAll(menuItem); if (items.Any()) { if (primero) { t.InnerHtml += "<li class='active'><a href='#'><span>" + menuItem.Nombre + "</span><i class='fa fa-chevron-down'></i></a>"; primero = false; } else { t.InnerHtml += "<li><a href='#'>" + menuItem.Nombre + "<i class='fa fa-chevron-down'></i></a>"; } t.InnerHtml += "<ul class='sub-menu'>"; t.InnerHtml += MenuExtension.MenuString(menuItem, 10); t.InnerHtml += "</ul></li>"; } else { if (primero) { t.InnerHtml += string.Format("<li class='active'><a href='{0}'>{1}</a></li>", menuItem.Url, menuItem.Nombre); primero = false; } else { t.InnerHtml += string.Format("<li><a href='{0}'>{1}</a></li>", menuItem.Url, menuItem.Nombre); } } } t.InnerHtml += "</ul></li>"; } return(new MvcHtmlString(t.ToString(TagRenderMode.Normal))); }