private void Save_Click(object sender, EventArgs e) { try { if (ValidateSaveRequest()) { CodeTorch.Core.Menu menu = new CodeTorch.Core.Menu(); menu.Name = MenuName.Text; Configuration.GetInstance().Menus.Add(menu); CodeTorch.Core.Menu.Save(menu); this.DialogResult = DialogResult.OK; } } catch (Exception ex) { ErrorManager.HandleError(ex); } }
private void PopulateTopLevelNodes(CodeTorch.Core.Menu menuobject) { //control = new HtmlGenericControl("ul"); CodeTorch.Core.Menu menu = PopulateDynamicMenuItems(menuobject); if (menu != null) { if (!String.IsNullOrEmpty(menu.CssClass)) { control.Attributes.Add("class", menu.CssClass); } foreach (CodeTorch.Core.MenuItem item in menu.Items) { bool displayItem = true; string resourceSet = String.Format("Menu.{0}", menu.Name); string resourceKeyPrefix = String.Format("{0}", item.Code); if (item.Permission != null) { if ((item.Permission.CheckPermission) && (!String.IsNullOrEmpty(item.Permission.Name))) { displayItem = Common.HasPermission(item.Permission.Name); } } if (displayItem) { HtmlGenericControl menuItem = buildMenuItem(resourceSet, resourceKeyPrefix, item); PopulateChildrenMenuItems(menuItem, item, resourceSet, resourceKeyPrefix); this.control.Controls.Add(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); } } }
protected override void OnInit(EventArgs e) { base.OnInit(e); EnsureChildControls(); app = CodeTorch.Core.Configuration.GetInstance().App; CodeTorch.Core.Menu menuobject = null; string menuToSelect = null; if (!String.IsNullOrEmpty(this.MenuType)) { switch (this.MenuType.ToLower()) { case "secondary": if (this.Page is BasePage) { menuToSelect = ((BasePage)this.Page).Screen.Menu.Name; } break; default: //handles primary - currently for root menu menuToSelect = String.IsNullOrEmpty(MenuName) ? app.DefaultMenu : MenuName; break; } } if (!String.IsNullOrEmpty(menuToSelect)) { menuobject = CodeTorch.Core.Menu.GetMenu(menuToSelect); } if (menuobject != null) { bool renderMenu = false; if ( ((menuobject.RequiresAuthentication) && (this.Page.User.Identity.IsAuthenticated)) || (!menuobject.RequiresAuthentication) ) { renderMenu = true; } if ((this.Page.Request.QueryString["DisplayMenu"] != null) && (this.Page.Request.QueryString["DisplayMenu"] == "0")) { renderMenu = false; } if (renderMenu) { PopulateTopLevelNodes(menuobject); } } //if(control != null) // this.Widgets.Add(control); }
private CodeTorch.Core.Menu PopulateDynamicMenuItems(CodeTorch.Core.Menu menuObject) { CodeTorch.Core.Menu retVal = null; DataCommandService dataCommandDB = DataCommandService.GetInstance(); List <ScreenDataCommandParameter> parameters = new List <ScreenDataCommandParameter>(); var items = from item in menuObject.Items where item.UseCommand == true select item; if (items.Count() > 0) { retVal = new Core.Menu(); retVal.Name = menuObject.Name; retVal.CssClass = menuObject.CssClass; foreach (Core.MenuItem item in menuObject.Items) { if (item.UseCommand == false) { Core.MenuItem copiedItem = ObjectCopier.Clone <Core.MenuItem>(item); retVal.Items.Add(copiedItem); } else { 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 (!String.IsNullOrEmpty(item.Context)) { 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; } if (cmdParam.Name.ToLower().EndsWith("hostheader")) { p.Name = cmdParam.Name; p.InputType = ScreenInputType.Special; p.InputKey = "HostHeader"; p.Value = Common.HostHeader; } parameters.Add(p); } DataTable dt = dataCommandDB.GetDataForDataCommand(item.CommandName, parameters); DataRow[] rows = null; bool containsParentID = dt.Columns.Contains("ParentID"); if (containsParentID) { rows = dt.Select("ParentID IS NULL"); } else { rows = dt.Select(); } AddMenuItems(retVal, dt, item, rows, true); } } } else { retVal = menuObject; } return(retVal); }