Skip to content

Commit 9ac8059

Browse files
started to convert project to CMS12
1 parent 58f3d91 commit 9ac8059

File tree

9 files changed

+168
-122
lines changed

9 files changed

+168
-122
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using Microsoft.AspNetCore.Builder;
2+
using Microsoft.Extensions.DependencyInjection;
3+
4+
namespace DeveloperTools;
5+
6+
public static class ApplicationBuilderExtensions
7+
{
8+
public static IApplicationBuilder UseOptimizelyDeveloperTools(this IApplicationBuilder app)
9+
{
10+
var services = app.ApplicationServices;
11+
12+
return app;
13+
}
14+
}

DeveloperTools/Constants.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace DeveloperTools;
2+
3+
public static class Constants
4+
{
5+
public const string PolicyName = "optimizely:developertools";
6+
}
Lines changed: 83 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,106 +1,105 @@
11
using System.Collections.Generic;
2-
using EPiServer.Security;
32
using EPiServer.Shell;
43
using 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+
}
Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,45 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk.Razor">
2+
23
<PropertyGroup>
34
<OutputType>Library</OutputType>
4-
<AssemblyName>EPiServer.DeveloperTools</AssemblyName>
5-
<TargetFramework>net5.0</TargetFramework>
6-
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
7-
<RestorePackages>true</RestorePackages>
85
</PropertyGroup>
9-
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
10-
<UseVSHostingProcess>false</UseVSHostingProcess>
6+
7+
<PropertyGroup>
8+
<TargetFramework>net6.0</TargetFramework>
9+
<Version>4.0.0</Version>
10+
<PackageVersion>4.0.0</PackageVersion>
11+
<AssemblyVersion>4.0.0.0</AssemblyVersion>
12+
<FileVersion>4.0.0.0</FileVersion>
13+
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
14+
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
15+
<PackageId>EPiServer.DeveloperTools</PackageId>
16+
<Title>EPiServer Developer Tools (EXPERIMENTAL)</Title>
17+
<PackageIcon>icon.png</PackageIcon>
18+
<Authors>EPiServer</Authors>
19+
<Description>EXPERIMENTAL! Allows to run various support tools on the site. Currently not officially supported by EPiServer Support Services. Use at your own risk!</Description>
20+
<PackageTags>Optimizely Episerver SQL</PackageTags>
21+
<PackageProjectUrl>https://github.com/episerver/DeveloperTools</PackageProjectUrl>
22+
<RepositoryUrl>https://github.com/episerver/DeveloperTools</RepositoryUrl>
23+
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
24+
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
25+
<PackageReleaseNotes>Initial release for CMS v12</PackageReleaseNotes>
1126
</PropertyGroup>
27+
1228
<ItemGroup>
1329
<FrameworkReference Include="Microsoft.AspNetCore.App" />
1430
</ItemGroup>
31+
1532
<ItemGroup>
16-
<PackageReference Include="EPiServer.CMS.AspNetCore" Version="12.0.0-inte-020304" />
17-
<PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
18-
<PackageReference Include="System.Configuration.ConfigurationManager" Version="5.0.0" />
19-
<PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.2.222702">
20-
<PrivateAssets>all</PrivateAssets>
21-
</PackageReference>
22-
<PackageReference Include="EPiServer.CMS.UI.Core" Version="12.0.0-inte-020863" />
33+
<PackageReference Include="EPiServer.CMS.Core" Version="[12.0.3, 13.0.0)" />
34+
<PackageReference Include="EPiServer.CMS.UI.Core" Version="[12.0.2, 13.0.0)" />
2335
</ItemGroup>
36+
2437
<ItemGroup>
25-
<None Update="DeveloperTools.nuspec">
26-
<SubType>Designer</SubType>
27-
</None>
38+
<None Include="..\..\images\icon.png" Pack="true" PackagePath="\" />
2839
</ItemGroup>
40+
2941
<PropertyGroup>
30-
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
31-
</PropertyGroup>
32-
<PropertyGroup>
33-
<!--<PostBuildEvent>powershell.exe -noexit -file "$(ProjectDir)copy-to-sandbox.ps1"</PostBuildEvent>-->
42+
<PostBuildEvent>powershell.exe -noexit -file "$(ProjectDir)copy-to-sandbox.ps1"</PostBuildEvent>
3443
</PropertyGroup>
35-
</Project>
44+
45+
</Project>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
using System;
2+
using Microsoft.AspNetCore.Authorization;
3+
using Microsoft.Extensions.DependencyInjection;
4+
5+
namespace DeveloperTools;
6+
7+
public static class IServiceCollectionExtensions
8+
{
9+
private static readonly Action<AuthorizationPolicyBuilder> DefaultPolicy = p => p.RequireRole("Administrators");
10+
11+
public static IServiceCollection AddOptimizelyDeveloperTools(this IServiceCollection services)
12+
{
13+
return AddOptimizelyDeveloperTools(services, _ => { }, DefaultPolicy);
14+
}
15+
16+
public static IServiceCollection AddOptimizelyDeveloperTools(
17+
this IServiceCollection services,
18+
Action<OptimizelyDeveloperToolsOptions> setupAction)
19+
{
20+
return AddOptimizelyDeveloperTools(services, setupAction, DefaultPolicy);
21+
}
22+
23+
public static IServiceCollection AddOptimizelyDeveloperTools(
24+
this IServiceCollection services,
25+
Action<OptimizelyDeveloperToolsOptions> setupAction,
26+
Action<AuthorizationPolicyBuilder> configurePolicy)
27+
{
28+
return services;
29+
}
30+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
namespace DeveloperTools;
2+
3+
public class OptimizelyDeveloperToolsOptions { }

DeveloperTools/Properties/AssemblyInfo.cs

Lines changed: 0 additions & 16 deletions
This file was deleted.

images/icon.png

5.33 KB
Loading

images/redirects.png

41.4 KB
Loading

0 commit comments

Comments
 (0)