11using System . Collections . Generic ;
2- using EPiServer . Security ;
32using EPiServer . Shell ;
43using EPiServer . Shell . Navigation ;
54
6- namespace DeveloperTools . Core
7- {
8- [ MenuProvider ]
9- public class DeveloperMenuProvider : IMenuProvider
10- {
11- const string ModuleName = "EPiServer.DeveloperTools" ;
5+ namespace DeveloperTools . Core ;
126
13- const string GlobalMenuTitle = "Developer" ;
14- const string GlobalMenuLogicalPath = "/global/DeveloperTools" ;
7+ [ MenuProvider ]
8+ public class DeveloperMenuProvider : IMenuProvider
9+ {
10+ const string GlobalMenuTitle = "Developer" ;
1511
16- const string TimeMetersTitle = "Startup Perf" ;
17- const string TimeMetersPath = "global/DeveloperTools/ StartupPerf" ;
12+ const string TimeMetersTitle = "Startup Perf" ;
13+ const string TimeMetersPath = "StartupPerf" ;
1814
19- const string TemplatesTitle = "Templates" ;
20- const string TemplatesPath = "global/DeveloperTools/Templates" ;
15+ const string TemplatesTitle = "Templates" ;
16+ const string TemplatesPath = "global/DeveloperTools/Templates" ;
2117
22- const string IocTitle = "Container" ;
23- const string IocPath = "global/DeveloperTools/IOC" ;
18+ const string IocTitle = "Container" ;
19+ const string IocPath = "global/DeveloperTools/IOC" ;
2420
25- const string LoadedAssembliesTitle = "Loaded Assemblies" ;
26- const string LoadedAssembliesPath = "global/DeveloperTools/LoadedAssemblies" ;
21+ const string LoadedAssembliesTitle = "Loaded Assemblies" ;
22+ const string LoadedAssembliesPath = "global/DeveloperTools/LoadedAssemblies" ;
2723
28- const string RevertToDefaultTitle = "Revert Content Types" ;
29- const string RevertToDefaultPath = "global/DeveloperTools/RevertToDefault" ;
24+ const string RevertToDefaultTitle = "Revert Content Types" ;
25+ const string RevertToDefaultPath = "global/DeveloperTools/RevertToDefault" ;
3026
31- const string ContentTypeAnalyzerTitle = "Content Type Analyzer" ;
32- const string ContentTypeAnalyzerPath = "global/DeveloperTools/ContentTypeAnalyzer" ;
27+ const string ContentTypeAnalyzerTitle = "Content Type Analyzer" ;
28+ const string ContentTypeAnalyzerPath = "global/DeveloperTools/ContentTypeAnalyzer" ;
3329
34- const string LogViewerTitle = "Log Viewer" ;
35- const string LogViewerPath = "global/DeveloperTools/LogViewer" ;
30+ const string LogViewerTitle = "Log Viewer" ;
31+ const string LogViewerPath = "global/DeveloperTools/LogViewer" ;
3632
37- const string MemoryDumpTitle = "Memory Dump" ;
38- const string MemoryDumpPath = "global/DeveloperTools/Memory Dump" ;
33+ const string MemoryDumpTitle = "Memory Dump" ;
34+ const string MemoryDumpPath = "global/DeveloperTools/Memory Dump" ;
3935
40- const string RemoteEventTitle = "Remote Event" ;
41- const string RemoteEventPath = "global/DeveloperTools/Remote Event" ;
36+ const string RemoteEventTitle = "Remote Event" ;
37+ const string RemoteEventPath = "global/DeveloperTools/Remote Event" ;
4238
43- const string RoutesTitle = "Routes" ;
44- const string RoutesPath = "global/DeveloperTools/Routes" ;
39+ const string RoutesTitle = "Routes" ;
40+ const string RoutesPath = "global/DeveloperTools/Routes" ;
4541
46- const string ViewLocationsTitle = "View Locations" ;
47- const string ViewLocationsPath = "global/DeveloperTools/ViewLocations" ;
42+ const string ViewLocationsTitle = "View Locations" ;
43+ const string ViewLocationsPath = "global/DeveloperTools/ViewLocations" ;
4844
49- const string ModuleDependenciesTitle = "Module Dependencies" ;
50- const string ModuleDependenciesPath = "global/DeveloperTools/ModuleDependencies" ;
45+ const string ModuleDependenciesTitle = "Module Dependencies" ;
46+ const string ModuleDependenciesPath = "global/DeveloperTools/ModuleDependencies" ;
5147
52- const string LocalObjectCacheTitle = "Local Object Cache" ;
53- const string LocalObjectCachePath = "global/DeveloperTools/LocalObjectCache" ;
48+ const string LocalObjectCacheTitle = "Local Object Cache" ;
49+ const string LocalObjectCachePath = "global/DeveloperTools/LocalObjectCache" ;
5450
55- public IEnumerable < MenuItem > GetMenuItems ( )
51+ public IEnumerable < MenuItem > GetMenuItems ( )
52+ {
53+ // Create the top menu section
54+ var developerSection = new SectionMenuItem ( GlobalMenuTitle , MenuPaths . Global + "DeveloperTools" )
5655 {
57- // Create the top menu section
58- var developerSection = new SectionMenuItem ( GlobalMenuTitle , GlobalMenuLogicalPath )
59- {
60- //IsAvailable = request => PrincipalInfo.HasAdminAccess
61- AuthorizationPolicy = "episerver:cmsadmin"
62- } ;
63-
64- var timeMeters = CreateUrlMenuItem ( TimeMetersTitle , TimeMetersPath , Paths . ToResource ( ModuleName , "TimeMeters" ) ) ;
65- var templates = CreateUrlMenuItem ( TemplatesTitle , TemplatesPath , Paths . ToResource ( ModuleName , "Templates" ) ) ;
66- var ioc = CreateUrlMenuItem ( IocTitle , IocPath , Paths . ToResource ( ModuleName , "IOC" ) ) ;
67- var loadedAssemblies = CreateUrlMenuItem ( LoadedAssembliesTitle , LoadedAssembliesPath , Paths . ToResource ( ModuleName , "LoadedAssemblies" ) ) ;
68- var revertToDefault = CreateUrlMenuItem ( RevertToDefaultTitle , RevertToDefaultPath , Paths . ToResource ( ModuleName , "RevertToDefault" ) ) ;
69- var contentTypeAnalyzer = CreateUrlMenuItem ( ContentTypeAnalyzerTitle , ContentTypeAnalyzerPath , Paths . ToResource ( ModuleName , "ContentTypeAnalyzer" ) ) ;
70- var logViewer = CreateUrlMenuItem ( LogViewerTitle , LogViewerPath , Paths . ToResource ( ModuleName , "LogViewer" ) ) ;
71- var memoryDumperViewer = CreateUrlMenuItem ( MemoryDumpTitle , MemoryDumpPath , Paths . ToResource ( ModuleName , "MemoryDump" ) ) ;
72- var remoteEventViewer = CreateUrlMenuItem ( RemoteEventTitle , RemoteEventPath , Paths . ToResource ( ModuleName , "RemoteEvent" ) ) ;
73- var routes = CreateUrlMenuItem ( RoutesTitle , RoutesPath , Paths . ToResource ( ModuleName , "Routes" ) ) ;
74- var viewLocations = CreateUrlMenuItem ( ViewLocationsTitle , ViewLocationsPath , Paths . ToResource ( ModuleName , "ViewEngineLocations" ) ) ;
75- var moduleDependencies = CreateUrlMenuItem ( ModuleDependenciesTitle , ModuleDependenciesPath , Paths . ToResource ( ModuleName , "ModuleDependencies" ) ) ;
76- var localobjectcache = CreateUrlMenuItem ( LocalObjectCacheTitle , LocalObjectCachePath , Paths . ToResource ( ModuleName , "LocalObjectCache" ) ) ;
77-
78- return new MenuItem [ ]
79- {
80- developerSection ,
81- timeMeters ,
82- ioc ,
83- loadedAssemblies ,
84- revertToDefault ,
85- contentTypeAnalyzer ,
86- templates ,
87- logViewer ,
88- memoryDumperViewer ,
89- remoteEventViewer ,
90- routes ,
91- viewLocations ,
92- moduleDependencies ,
93- localobjectcache
94- } ;
95- }
96-
97- protected virtual UrlMenuItem CreateUrlMenuItem ( string title , string logicalPath , string resourcePath )
56+ SortIndex = 100 ,
57+ AuthorizationPolicy = Constants . PolicyName
58+ } ;
59+
60+ var timeMeters = CreateUrlMenuItem ( TimeMetersTitle , TimeMetersPath , "TimeMeters" ) ;
61+ var templates = CreateUrlMenuItem ( TemplatesTitle , TemplatesPath , "Templates" ) ;
62+ var ioc = CreateUrlMenuItem ( IocTitle , IocPath , "IOC" ) ;
63+ var loadedAssemblies = CreateUrlMenuItem ( LoadedAssembliesTitle , LoadedAssembliesPath , "LoadedAssemblies" ) ;
64+ var revertToDefault = CreateUrlMenuItem ( RevertToDefaultTitle , RevertToDefaultPath , "RevertToDefault" ) ;
65+ var contentTypeAnalyzer = CreateUrlMenuItem ( ContentTypeAnalyzerTitle , ContentTypeAnalyzerPath , "ContentTypeAnalyzer" ) ;
66+ var logViewer = CreateUrlMenuItem ( LogViewerTitle , LogViewerPath , "LogViewer" ) ;
67+ var memoryDumperViewer = CreateUrlMenuItem ( MemoryDumpTitle , MemoryDumpPath , "MemoryDump" ) ;
68+ var remoteEventViewer = CreateUrlMenuItem ( RemoteEventTitle , RemoteEventPath , "RemoteEvent" ) ;
69+ var routes = CreateUrlMenuItem ( RoutesTitle , RoutesPath , "Routes" ) ;
70+ var viewLocations = CreateUrlMenuItem ( ViewLocationsTitle , ViewLocationsPath , "ViewEngineLocations" ) ;
71+ var moduleDependencies = CreateUrlMenuItem ( ModuleDependenciesTitle , ModuleDependenciesPath , "ModuleDependencies" ) ;
72+ var localObjectCache = CreateUrlMenuItem ( LocalObjectCacheTitle , LocalObjectCachePath , "LocalObjectCache" ) ;
73+
74+ return new MenuItem [ ]
9875 {
99- return new UrlMenuItem ( title , logicalPath , resourcePath )
100- {
101- AuthorizationPolicy = "episerver:cmsadmin"
102- //IsAvailable = request => PrincipalInfo.HasAdminAccess
103- } ;
104- }
76+ developerSection ,
77+ timeMeters ,
78+ ioc ,
79+ loadedAssemblies ,
80+ revertToDefault ,
81+ contentTypeAnalyzer ,
82+ templates ,
83+ logViewer ,
84+ memoryDumperViewer ,
85+ remoteEventViewer ,
86+ routes ,
87+ viewLocations ,
88+ moduleDependencies ,
89+ localObjectCache
90+ } ;
91+ }
92+
93+ protected virtual UrlMenuItem CreateUrlMenuItem ( string title , string logicalPath , string resourcePath )
94+ {
95+ var link = new UrlMenuItem (
96+ title ,
97+ MenuPaths . Global + "DeveloperTools/" + logicalPath ,
98+ Paths . ToResource ( GetType ( ) , resourcePath ) )
99+ {
100+ AuthorizationPolicy = Constants . PolicyName
101+ } ;
102+
103+ return link ;
105104 }
106- }
105+ }
0 commit comments