private HtmlGenericControl buildMenuItem(string ResourceSet, string resourceKeyPrefix, CodeTorch.Core.MenuItem item) { HtmlGenericControl menuItem = new HtmlGenericControl("li"); HyperLink link = new HyperLink(); string url = item.Location; string context = item.Context; if (url != String.Empty) { link.NavigateUrl = Common.CreateUrlWithQueryStringContext(url, context); } bool isSelected = IsMenuItemSelected(url); if (!String.IsNullOrEmpty(item.CssClass)) { if (isSelected) { menuItem.Attributes.Add("class", String.Format("{0} selected", item.CssClass)); } else { menuItem.Attributes.Add("class", item.CssClass); } } else { if (isSelected) { menuItem.Attributes.Add("class", "selected"); } } link.Text = MenuFunctions.GetMenuItemText(app, this.Page, ResourceSet, resourceKeyPrefix, item.Code, item.Name); menuItem.Controls.Add(link); return(menuItem); }
private void AddMenuItems(CodeTorch.Core.Menu menu, DataTable dt, CodeTorch.Core.MenuItem menuItem, DataRow[] rows, bool addToMenu) { bool containsContext = dt.Columns.Contains("Context"); bool containsLocation = dt.Columns.Contains("Location"); bool containsMenuItemName = dt.Columns.Contains("MenuItemName"); bool containsCheckPermission = dt.Columns.Contains("CheckPermission"); bool containsPermissionName = dt.Columns.Contains("PermissionName"); bool containsCssClass = dt.Columns.Contains("CssClass"); bool containsTarget = dt.Columns.Contains("Target"); bool containsCode = dt.Columns.Contains("Code"); foreach (DataRow row in rows) { CodeTorch.Core.MenuItem newItem = new CodeTorch.Core.MenuItem(); if (containsCode) { newItem.Code = row["Code"].ToString(); } if (containsContext) { newItem.Context = row["Context"].ToString(); } if (containsLocation) { newItem.Location = row["Location"].ToString(); } if (containsMenuItemName) { newItem.Name = row["MenuItemName"].ToString(); } if (containsCheckPermission) { newItem.Permission.CheckPermission = Convert.ToBoolean(row["CheckPermission"]); } if (containsPermissionName) { newItem.Permission.Name = row["PermissionName"].ToString(); } if (containsCssClass) { newItem.CssClass = row["CssClass"].ToString(); } if (containsTarget) { if (row["Target"] != DBNull.Value) { newItem.Target = row["Target"].ToString(); } } newItem.UseCommand = false; PopulateChildItems(menu, dt, row, newItem, false); if (addToMenu) { menu.Items.Add(newItem); } else { menuItem.Items.Add(newItem); } } }
public void PopulateChildrenMenuItems(HtmlGenericControl parentMenuItem, CodeTorch.Core.MenuItem parentItem, string ResourceSet, string resourceKeyPrefix) { if (parentItem.Items.Count > 0) { HtmlGenericControl list = new HtmlGenericControl("ul"); parentMenuItem.Controls.Add(list); foreach (CodeTorch.Core.MenuItem item in parentItem.Items) { bool displayItem = true; if (item.Permission != null) { if ((item.Permission.CheckPermission) && (!String.IsNullOrEmpty(item.Permission.Name))) { displayItem = Common.HasPermission(item.Permission.Name); } } if (displayItem) { if (!item.UseCommand) { HtmlGenericControl menuItem = buildMenuItem(ResourceSet, resourceKeyPrefix, item); string newResourceKeyPrefix = resourceKeyPrefix + "." + item.Code; PopulateChildrenMenuItems(menuItem, item, ResourceSet, newResourceKeyPrefix); list.Controls.Add(menuItem); } else { //SHOULD REALLY NEVER GET HERE - as DATA DRIVEN HAS ALREADY RUN FROM TOP LEVEL //CLEAN UP LATER AFTER VERIFIED - OR KEEP IF WE WANT TO SUPPORT MULTI REQUEST DB ITEMS //DataCommandDB dataCommandDB = new DataCommandDB(); //PageDB pageDB = new PageDB(); //List<ScreenDataCommandParameter> parameters = new List<ScreenDataCommandParameter>(); //DataCommand cmd = DataCommand.GetDataCommand(item.CommandName); //foreach (DataCommandParameter cmdParam in cmd.Parameters) //{ // ScreenDataCommandParameter p = new ScreenDataCommandParameter(); // //TODO: need to support context with multiple items - presently assumes one item // if (cmdParam.Name.ToLower().EndsWith(item.Context.ToLower())) // { // p.Name = cmdParam.Name; // p.InputType = ScreenInputType.QueryString; // p.InputKey = item.Context; // p.Value = this.Page.Request.QueryString[item.Context]; // } // if (cmdParam.Name.ToLower().EndsWith("username")) // { // p.Name = cmdParam.Name; // p.InputType = ScreenInputType.Special; // p.InputKey = "UserName"; // p.Value = Common.UserName; // } // parameters.Add(p); //} //DataTable dt = dataCommandDB.GetDataForDataCommand(item.CommandName, parameters); //foreach (DataRow row in dt.Rows) //{ // HtmlGenericControl newMenuItem = new HtmlGenericControl("li"); // HyperLink newLink = new HyperLink(); // string Url = row["Location"].ToString(); // string Context = row["Context"].ToString(); // if (Url != String.Empty) // { // newLink.NavigateUrl = Common.CreateUrlWithQueryStringContext(Url, Context); // } // //newLink.Text = MenuFunctions.GetMenuItemText(app, this.Page, ResourceSet, resourceKeyPrefix, row["MenuItemName"].ToString()); // newMenuItem.Widgets.Add(newLink); // list.Widgets.Add(newMenuItem); //} } } } } }