Exemple #1
0
        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);
        }
Exemple #2
0
        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);
                }
            }
        }
Exemple #3
0
        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);


                            //}
                        }
                    }
                }
            }
        }