Ejemplo n.º 1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (StopProcessing)
        {
            return;
        }

        // Handle the pre-selection
        preselectedItem = QueryHelper.GetString(QueryParameterName, "");
        if (preselectedItem.StartsWithCSafe("cms.", true))
        {
            preselectedItem = preselectedItem.Substring(4);
        }

        uniMenu.HighlightItem = preselectedItem;

        // If element name is not set, use root module element
        string elemName = ElementName;

        if (String.IsNullOrEmpty(elemName))
        {
            elemName = ModuleName.Replace(".", "");
        }

        // Get the UI elements
        DataSet ds = UIElementInfoProvider.GetChildUIElements(ModuleName, elemName);

        if (!DataHelper.DataSourceIsEmpty(ds))
        {
            FilterElements(ds);

            // Prepare the list of elements
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                string url = ValidationHelper.GetString(dr["ElementTargetURL"], "");

                Group group = new Group();
                if (url.EndsWithCSafe("ascx"))
                {
                    group.ControlPath = url;
                }
                else
                {
                    group.UIElementID = ValidationHelper.GetInteger(dr["ElementID"], 0);
                }

                group.CssClass = "ContentMenuGroup";

                if (GenerateElementCssClass)
                {
                    string name = ValidationHelper.GetString(dr["ElementName"], String.Empty).Replace(".", String.Empty);
                    group.CssClass         += " ContentMenuGroup" + name;
                    group.SeparatorCssClass = "UniMenuSeparator" + name;
                }

                group.Caption = ResHelper.LocalizeString(ValidationHelper.GetString(dr["ElementCaption"], ""));
                uniMenu.Groups.Add(group);
            }

            // Raise groups created event
            if (OnGroupsCreated != null)
            {
                OnGroupsCreated(this, uniMenu.Groups);
            }

            // Button created & filtered event handler
            if (OnButtonCreating != null)
            {
                uniMenu.OnButtonCreating += uniMenu_OnButtonCreating;
            }
            if (OnButtonCreated != null)
            {
                uniMenu.OnButtonCreated += uniMenu_OnButtonCreated;
            }
            if (OnButtonFiltered != null)
            {
                uniMenu.OnButtonFiltered += uniMenu_OnButtonFiltered;
            }
        }

        // Add editing icon in development mode
        if (SettingsKeyProvider.DevelopmentMode && CMSContext.CurrentUser.IsGlobalAdministrator && !DisableEditIcon)
        {
            ResourceInfo ri = ResourceInfoProvider.GetResourceInfo(ModuleName);
            if (ri != null)
            {
                ltlAfter.Text += String.Format("<div class=\"UIElementsLink\" >{0}</div>", UIHelper.GetResourceUIElementsLink(Page, ri.ResourceId));
            }
        }
    }
Ejemplo n.º 2
0
        public override IConsoleResultModel Run()
        {
            var max = Max <= 0 ? 10 : (Max > 500 ? 500 : Max);

            int total;
            var portalDesktopModules = DesktopModuleController.GetPortalDesktopModules(PortalId);

            var pageIndex = (Page > 0 ? Page - 1 : 0);

            pageIndex = pageIndex < 0 ? 0 : pageIndex;
            var pageSize = Max;

            pageSize    = pageSize > 0 && pageSize <= 100 ? pageSize : 10;
            ModuleName  = ModuleName?.Replace("*", "");
            ModuleTitle = ModuleTitle?.Replace("*", "");
            var modules = ModuleController.Instance.GetModules(PortalSettings.PortalId)
                          .Cast <ModuleInfo>().Where(ModulePermissionController.CanViewModule);

            if (!string.IsNullOrEmpty(ModuleName))
            {
                modules = modules.Where(module => module.DesktopModule.ModuleName.IndexOf(ModuleName, StringComparison.OrdinalIgnoreCase) >= 0);
            }
            if (!string.IsNullOrEmpty(ModuleTitle))
            {
                modules = modules.Where(module => module.ModuleTitle.IndexOf(ModuleTitle, StringComparison.OrdinalIgnoreCase) >= 0);
            }

            //Return only deleted modules with matching criteria.
            if (PageId.HasValue && PageId.Value > 0)
            {
                modules = modules.Where(x => x.TabID == PageId.Value);
            }
            if (Deleted.HasValue)
            {
                modules = modules.Where(module => module.IsDeleted == Deleted);
            }

            //Get distincts.
            modules = modules.GroupBy(x => x.ModuleID).Select(group => group.First()).OrderBy(x => x.ModuleID);
            var moduleInfos = modules as IList <ModuleInfo> ?? modules.ToList();

            total   = moduleInfos.Count;
            modules = moduleInfos.Skip(pageIndex * pageSize).Take(pageSize)
                      .Where(m =>
            {
                var moduleDefinition = ModuleDefinitionController.GetModuleDefinitionByID(m.ModuleDefID);
                return(portalDesktopModules.Any(kvp =>
                                                kvp.Value.DesktopModuleID == moduleDefinition?.DesktopModuleID));
            });

            var results = modules.Select(x => PromptModuleInfo.FromDnnModuleInfo(x, Deleted));

            var totalPages = total / max + (total % max == 0 ? 0 : 1);
            var pageNo     = Page > 0 ? Page : 1;

            return(new ConsoleResultModel
            {
                Data = results,
                PagingInfo = new PagingInfo
                {
                    PageNo = pageNo,
                    TotalPages = totalPages,
                    TotalRecords = total,
                    PageSize = max
                },
                Records = results.Count(),
                Output = results.Count() == 0 ? LocalizeString("Prompt_NoModules") : ""
            });
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (StopProcessing)
        {
            return;
        }

        string localizationCulture = PortalHelper.GetUILocalizationCulture();

        uniMenu.ResourceCulture = localizationCulture;

        // Handle the pre-selection
        mPreselectedItem = QueryHelper.GetString(QueryParameterName, "");
        if (mPreselectedItem.StartsWith("cms.", StringComparison.OrdinalIgnoreCase))
        {
            mPreselectedItem = mPreselectedItem.Substring(4);
        }

        uniMenu.HighlightItem = mPreselectedItem;

        // If element name is not set, use root module element
        string elemName = ElementName;

        if (String.IsNullOrEmpty(elemName))
        {
            elemName = ModuleName.Replace(".", "");
        }

        // Get the UI elements
        DataSet ds = UIElementInfoProvider.GetChildUIElements(ModuleName, elemName);

        if (!DataHelper.DataSourceIsEmpty(ds))
        {
            FilterElements(ds);

            // Prepare the list of elements
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                string            url  = ValidationHelper.GetString(dr["ElementTargetURL"], "");
                UIElementTypeEnum type = ValidationHelper.GetString(dr["ElementType"], "").ToEnum <UIElementTypeEnum>();

                Group group = new Group();
                if (url.EndsWith("ascx", StringComparison.OrdinalIgnoreCase) && (type == UIElementTypeEnum.UserControl))
                {
                    group.ControlPath = url;
                }
                else
                {
                    group.UIElementID = ValidationHelper.GetInteger(dr["ElementID"], 0);
                }

                group.CssClass = "ContentMenuGroup";

                if (GenerateElementCssClass)
                {
                    string name = ValidationHelper.GetString(dr["ElementName"], String.Empty).Replace(".", String.Empty);
                    group.CssClass         += " ContentMenuGroup" + name;
                    group.SeparatorCssClass = "UniMenuSeparator" + name;
                }

                group.Caption = ResHelper.LocalizeString(ValidationHelper.GetString(dr["ElementCaption"], ""), localizationCulture);
                if (group.Caption == String.Empty)
                {
                    group.Caption = ResHelper.LocalizeString(ValidationHelper.GetString(dr["ElementDisplayName"], ""), localizationCulture);
                }
                uniMenu.Groups.Add(group);
            }

            // Raise groups created event
            RaiseOnGroupsCreated(this, uniMenu.Groups);

            // Button created & filtered event handler
            uniMenu.OnButtonCreating += uniMenu_OnButtonCreating;
            uniMenu.OnButtonCreated  += uniMenu_OnButtonCreated;
            uniMenu.OnButtonFiltered += uniMenu_OnButtonFiltered;
        }

        // Add editing icon in development mode
        if (SystemContext.DevelopmentMode && MembershipContext.AuthenticatedUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.Admin) && !DisableEditIcon)
        {
            var link = PortalUIHelper.GetResourceUIElementLink(ModuleName, ElementName);
            if (!String.IsNullOrEmpty(link))
            {
                ltlAfter.Text += $"<div class=\"UIElementsLink\" >{link}</div>";
            }
        }
    }
        public ModuleData(ProjectData projectData, XmlNode xmlNode, XmlNode Elements)
        {
            XmlNode = xmlNode;

            Parent = projectData;
            Native = false;

            Name        = xmlNode.Attributes["name"].Value;
            ClassicName = Name.Replace("/", "_").Replace(" ", "_").ToLower();

            if (xmlNode.Attributes["xmi:id"] != null)
            {
                ID = xmlNode.Attributes["xmi:id"].Value;
            }
            else
            {
                ID = xmlNode.Attributes["xmi:idref"].Value;
            }

            NameDirectory = xmlNode.Attributes["name"].Value;
            NameDirectory = NameDirectory.Replace("/", "_");
            NameDirectory = NameDirectory.ToLower();

            Data = new Dictionary <string, object>();

            Depends = new List <string>();
            Depends.Add("base");
            Depends.Add("board");


            Documentation = "";

            ListOfClass = new List <ClassData>();

            ListOfMenu = new Dictionary <string, string>();

            Menus      = "";
            Dashboard  = "";
            menu_count = 1;

            ModuleName = Utils.getExtra(xmlNode, "module", ClassicName)[0];
            ModulePath = Utils.getExtra(xmlNode, "modulepath", ModuleName.Replace('.', '_'))[0];


            foreach (XmlNode element in Elements.ChildNodes)
            {
                if (element.Attributes["name"] != null)
                {
                    if (element.Attributes["xmi:idref"].Value.Equals(ID))
                    {
                        if (element["properties"] != null)
                        {
                            Documentation = (element["properties"].Attributes["documentation"] != null) ? element["properties"].Attributes["documentation"].Value : "Gestion du module : " + Utils.firstCharUpper(Name.Replace("_", " "));
                            Alias         = (element["properties"].Attributes["alias"] != null) ? element["properties"].Attributes["alias"].Value : Utils.firstCharUpper(Name.Replace("_", " "));

                            Menus = "<menuitem name=\"" + Alias + "\" id=\"menu_" + ClassicName + "\" web_icon=\"images/icon.png\" web_icon_hover=\"images/icon-hover.png\"/>";


                            Menus += "\r\n\t\t" + "<menuitem name=\"" + Alias + "\" parent=\"menu_" + ClassicName + "\" id=\"leftmenu_" + ClassicName + "\" sequence=\"" + menu_count.ToString() + "\"/>";

                            //Menus = "<menuitem name=\"" + Alias + "\" parent=\"menu_" + ClassicName + "\" id=\"leftmenu_" + ClassicName + "\" sequence=\"" + menu_count.ToString() + "\"/>";

                            if (!ListOfMenu.ContainsKey("default"))
                            {
                                ListOfMenu["default"] = "leftmenu_" + ClassicName;
                            }

                            ListOfMenu["leftmenu_" + ClassicName] = "leftmenu_" + ClassicName;

                            menu_count++;


                            //------------------------


                            Menus += "\r\n\t\t" + "<menuitem name=\"Rapports\" parent=\"menu_" + ClassicName + "\" id=\"leftmenu_rapport_" + ClassicName + "\" sequence=\"%sequence1%\"/>";

                            ListOfMenu["leftmenu_rapport_" + ClassicName] = "leftmenu_rapport_" + ClassicName;



                            Menus += "\r\n\t\t" + "<menuitem name=\"" + Alias + "\" parent=\"leftmenu_rapport_" + ClassicName + "\" id=\"leftsubmenu_rapport_" + ClassicName + "\" sequence=\"%sequence2%\"/>";

                            ListOfMenu["leftsubmenu_rapport_" + ClassicName] = "leftsubmenu_rapport_" + ClassicName;
                        }

                        if (element["tags"] != null)
                        {
                            foreach (XmlNode tagNode in element["tags"].ChildNodes)
                            {
                                switch (tagNode.Attributes["name"].Value)
                                {
                                case "category":
                                {
                                    Category = tagNode.Attributes["value"].Value;
                                    break;
                                }

                                case "menu":
                                {
                                    /*
                                     * string[] menu = tagNode.Attributes["value"].Value.Split(new char[]{ ':' });
                                     *
                                     * Menus += "\r\n\t\t" + "<menuitem name=\"" + menu[1].Trim() + "\" parent=\"menu_" + ClassicName + "\" id=\"leftmenu_" + menu[0].Trim() + "\" sequence=\"" + menu_count.ToString() + "\"/>";
                                     *
                                     * if (!ListOfMenu.ContainsKey("default"))
                                     * {
                                     *  ListOfMenu["default"] = "leftmenu_" + menu[0].Trim();
                                     * }
                                     *
                                     * ListOfMenu["leftmenu_" + menu[0].Trim()] = "leftmenu_" + menu[0].Trim();
                                     *
                                     * menu_count++;
                                     *
                                     */



                                    break;
                                }
                                }
                            }
                        }
                    }
                    else if (element.Attributes["name"].Value.Equals("Class Model"))
                    {
                        if (element["model"].Attributes["package"].Value.Equals(ID))
                        {
                            string ClassModelID = element.Attributes["xmi:idref"].Value;

                            foreach (XmlNode subElementXmlNode in Elements.ChildNodes)
                            {
                                if (subElementXmlNode.Attributes["xmi:type"] != null)
                                {
                                    if (subElementXmlNode.Attributes["xmi:type"].Value.Equals("uml:Class"))
                                    {
                                        if (subElementXmlNode["model"].Attributes["package"].Value.Equals(ClassModelID))
                                        {
                                            ClassData classData = new ClassData(this, subElementXmlNode);

                                            ListOfClass.Add(classData);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else if (xmlNode.Attributes["xmi:id"] == null)
                    {
                        if (element.Attributes["xmi:type"] != null)
                        {
                            if (element.Attributes["xmi:type"].Value.Equals("uml:Class"))
                            {
                                if (element["model"].Attributes["package"].Value.Equals(ID))
                                {
                                    ClassData classData = new ClassData(this, element);

                                    ListOfClass.Add(classData);
                                }
                            }
                        }
                    }
                }
            }

            if (!Menus.Equals(""))
            {
                Menus = Menus.Replace("%sequence1%", menu_count.ToString());
                menu_count++;

                Menus = Menus.Replace("%sequence2%", menu_count.ToString());
                menu_count++;
            }
        }