diff --git a/Oqtane.Client/Modules/ModuleBase.cs b/Oqtane.Client/Modules/ModuleBase.cs index a2da022e..fee2d4e5 100644 --- a/Oqtane.Client/Modules/ModuleBase.cs +++ b/Oqtane.Client/Modules/ModuleBase.cs @@ -79,7 +79,7 @@ namespace Oqtane.Modules { if (PageState.Page.Resources != null) { - resources = PageState.Page.Resources.Where(item => item.ResourceType == ResourceType.Script && item.Level != ResourceLevel.Site && item.Namespace == type.Namespace).ToList(); + resources = PageState.Page.Resources.Where(item => item.ResourceType == ResourceType.Script && item.Level == ResourceLevel.Module && item.Namespace == type.Namespace).ToList(); } } else // modulecontrolbase diff --git a/Oqtane.Client/Themes/ThemeBase.cs b/Oqtane.Client/Themes/ThemeBase.cs index f94edb68..68da1a70 100644 --- a/Oqtane.Client/Themes/ThemeBase.cs +++ b/Oqtane.Client/Themes/ThemeBase.cs @@ -45,7 +45,7 @@ namespace Oqtane.Themes { if (PageState.Page.Resources != null) { - resources = PageState.Page.Resources.Where(item => item.ResourceType == ResourceType.Script && item.Level != ResourceLevel.Site && item.Namespace == type.Namespace).ToList(); + resources = PageState.Page.Resources.Where(item => item.ResourceType == ResourceType.Script && item.Level == ResourceLevel.Page && item.Namespace == type.Namespace).ToList(); } } else // themecontrolbase, containerbase diff --git a/Oqtane.Server/Components/App.razor b/Oqtane.Server/Components/App.razor index c4116e33..ff1ad466 100644 --- a/Oqtane.Server/Components/App.razor +++ b/Oqtane.Server/Components/App.razor @@ -581,69 +581,66 @@ } } - foreach (Module module in site.Modules) + foreach (Module module in site.Modules.Where(item => item.PageId == page.PageId || item.ModuleId == moduleid)) { - if (module.PageId == page.PageId || module.ModuleId == moduleid) + var typename = ""; + if (module.ModuleDefinition != null) { - var typename = ""; - if (module.ModuleDefinition != null) + resources = AddResources(resources, module.ModuleDefinition.Resources, ResourceLevel.Module, alias, "Modules", Utilities.GetTypeName(module.ModuleDefinition.ModuleDefinitionName)); + + // handle default action + if (action == Constants.DefaultAction && !string.IsNullOrEmpty(module.ModuleDefinition.DefaultAction)) { - resources = AddResources(resources, module.ModuleDefinition.Resources, ResourceLevel.Module, alias, "Modules", Utilities.GetTypeName(module.ModuleDefinition.ModuleDefinitionName)); + action = module.ModuleDefinition.DefaultAction; + } - // handle default action - if (action == Constants.DefaultAction && !string.IsNullOrEmpty(module.ModuleDefinition.DefaultAction)) + // get typename template + typename = module.ModuleDefinition.ControlTypeTemplate; + if (module.ModuleDefinition.ControlTypeRoutes != "") + { + // process custom action routes + foreach (string route in module.ModuleDefinition.ControlTypeRoutes.Split(';', StringSplitOptions.RemoveEmptyEntries)) { - action = module.ModuleDefinition.DefaultAction; - } - - // get typename template - typename = module.ModuleDefinition.ControlTypeTemplate; - if (module.ModuleDefinition.ControlTypeRoutes != "") - { - // process custom action routes - foreach (string route in module.ModuleDefinition.ControlTypeRoutes.Split(';', StringSplitOptions.RemoveEmptyEntries)) + if (route.StartsWith(action + "=")) { - if (route.StartsWith(action + "=")) - { - typename = route.Replace(action + "=", ""); - break; - } + typename = route.Replace(action + "=", ""); + break; } } } + } - // create typename - if (Constants.DefaultModuleActions.Contains(action, StringComparer.OrdinalIgnoreCase)) - { - typename = Constants.DefaultModuleActionsTemplate.Replace(Constants.ActionToken, action); - } - else - { - typename = typename.Replace(Constants.ActionToken, action); - } + // create typename + if (Constants.DefaultModuleActions.Contains(action, StringComparer.OrdinalIgnoreCase)) + { + typename = Constants.DefaultModuleActionsTemplate.Replace(Constants.ActionToken, action); + } + else + { + typename = typename.Replace(Constants.ActionToken, action); + } - // ensure component exists and implements IModuleControl - module.ModuleType = ""; - Type moduletype = Type.GetType(typename, false, true); // case insensitive - if (moduletype != null && moduletype.GetInterfaces().Contains(typeof(IModuleControl))) + // ensure component exists and implements IModuleControl + module.ModuleType = ""; + Type moduletype = Type.GetType(typename, false, true); // case insensitive + if (moduletype != null && moduletype.GetInterfaces().Contains(typeof(IModuleControl))) + { + module.ModuleType = Utilities.GetFullTypeName(moduletype.AssemblyQualifiedName); // get actual type name + } + if (moduletype != null && module.ModuleType != "") + { + var obj = Activator.CreateInstance(moduletype) as IModuleControl; + if (obj != null) { - module.ModuleType = Utilities.GetFullTypeName(moduletype.AssemblyQualifiedName); // get actual type name - } - if (moduletype != null && module.ModuleType != "") - { - var obj = Activator.CreateInstance(moduletype) as IModuleControl; - if (obj != null) + resources = AddResources(resources, obj.Resources, ResourceLevel.Module, alias, "Modules", moduletype.Namespace); + if (action.ToLower() == "settings" && module.ModuleDefinition != null) { - resources = AddResources(resources, obj.Resources, ResourceLevel.Module, alias, "Modules", moduletype.Namespace); - if (action.ToLower() == "settings" && module.ModuleDefinition != null) + // settings components are embedded within a framework settings module + moduletype = Type.GetType(module.ModuleDefinition.ControlTypeTemplate.Replace(Constants.ActionToken, action), false, true); + if (moduletype != null) { - // settings components are embedded within a framework settings module - moduletype = Type.GetType(module.ModuleDefinition.ControlTypeTemplate.Replace(Constants.ActionToken, action), false, true); - if (moduletype != null) - { - obj = Activator.CreateInstance(moduletype) as IModuleControl; - resources = AddResources(resources, obj.Resources, ResourceLevel.Module, alias, "Modules", moduletype.Namespace); - } + obj = Activator.CreateInstance(moduletype) as IModuleControl; + resources = AddResources(resources, obj.Resources, ResourceLevel.Module, alias, "Modules", moduletype.Namespace); } } }