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)); } } }
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++; } }