Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# pwakit
aiming to provide tools to facilitate building PWAs (Progressive Web Apps) with ASP.NET Core
aiming to provide tools to facilitate building PWAs (Progressive Web Apps) with ASP.NET Core

[Documentation at cloudscribe.com](https://www.cloudscribe.com/cloudscribe-pwakit)

Expand Down
3 changes: 1 addition & 2 deletions demos/cloudscribe.DemoWeb/Program.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
Expand Down
56 changes: 28 additions & 28 deletions demos/cloudscribe.DemoWeb/cloudscribe.DemoWeb.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net10.0</TargetFramework>
<UserSecretsId>cloudscribe.DemoWeb-779D298B-C8F9-443A-BE6A-DB87C4EF59CB</UserSecretsId>
<IsPackable>false</IsPackable>
</PropertyGroup>
Expand Down Expand Up @@ -37,37 +37,37 @@
</ItemGroup>

<ItemGroup Label="Package References">
<PackageReference Include="cloudscribe.Core.Web" Version="8.6.*" />
<PackageReference Include="cloudscribe.Core.CompiledViews.Bootstrap4" Version="8.6.*" />
<PackageReference Include="cloudscribe.Web.StaticFiles" Version="8.6.*" />
<PackageReference Include="cloudscribe.Core.Storage.NoDb" Version="8.6.*" />
<PackageReference Include="cloudscribe.Core.Storage.EFCore.MSSQL" Version="8.6.*" />
<PackageReference Include="cloudscribe.Core.Storage.EFCore.PostgreSql" Version="8.6.*" />
<PackageReference Include="cloudscribe.Core.Storage.EFCore.MySql" Version="8.6.*" />
<PackageReference Include="cloudscribe.Core.Storage.EFCore.SQLite" Version="8.6.*" />
<PackageReference Include="cloudscribe.Core.Web" Version="10.0.*" />
<PackageReference Include="cloudscribe.Core.CompiledViews.Bootstrap5" Version="10.0.*" />
<PackageReference Include="cloudscribe.Web.StaticFiles" Version="10.0.*" />
<PackageReference Include="cloudscribe.Core.Storage.NoDb" Version="10.0.*" />
<PackageReference Include="cloudscribe.Core.Storage.EFCore.MSSQL" Version="10.0.*" />
<PackageReference Include="cloudscribe.Core.Storage.EFCore.PostgreSql" Version="10.0.*" />
<PackageReference Include="cloudscribe.Core.Storage.EFCore.MySql" Version="10.0.*" />
<PackageReference Include="cloudscribe.Core.Storage.EFCore.SQLite" Version="10.0.*" />

<PackageReference Include="cloudscribe.Core.SimpleContent" Version="8.6.*" />
<PackageReference Include="cloudscribe.SimpleContent.Web" Version="8.6.*" />
<PackageReference Include="cloudscribe.Core.SimpleContent.CompiledViews.Bootstrap4" Version="8.6.*" />
<PackageReference Include="cloudscribe.Core.SimpleContent" Version="10.0.*" />
<PackageReference Include="cloudscribe.SimpleContent.Web" Version="10.0.*" />
<PackageReference Include="cloudscribe.Core.SimpleContent.CompiledViews.Bootstrap5" Version="10.0.*" />

<PackageReference Include="cloudscribe.SimpleContent.CompiledViews.Bootstrap4" Version="8.6.*" />
<PackageReference Include="cloudscribe.SimpleContent.MetaWeblog" Version="8.6.*" />
<PackageReference Include="cloudscribe.SimpleContent.Syndication" Version="8.6.*" />
<PackageReference Include="cloudscribe.SimpleContent.ContentTemplates.Bootstrap4" Version="8.6.*" />
<PackageReference Include="cloudscribe.SimpleContent.Storage.NoDb" Version="8.6.*" />
<PackageReference Include="cloudscribe.SimpleContent.CompiledViews.Bootstrap5" Version="10.0.*" />
<PackageReference Include="cloudscribe.SimpleContent.MetaWeblog" Version="10.0.*" />
<PackageReference Include="cloudscribe.SimpleContent.Syndication" Version="10.0.*" />
<PackageReference Include="cloudscribe.SimpleContent.ContentTemplates.Bootstrap5" Version="10.0.*" />
<PackageReference Include="cloudscribe.SimpleContent.Storage.NoDb" Version="10.0.*" />

<PackageReference Include="cloudscribe.SimpleContent.Storage.EFCore.MSSQL" Version="8.6.*" />
<PackageReference Include="cloudscribe.SimpleContent.Storage.EFCore.PostgreSql" Version="8.6.*" />
<PackageReference Include="cloudscribe.SimpleContent.Storage.EFCore.MySql" Version="8.6.*" />
<PackageReference Include="cloudscribe.SimpleContent.Storage.EFCore.SQLite" Version="8.6.*" />
<PackageReference Include="cloudscribe.SimpleContent.Storage.EFCore.MSSQL" Version="10.0.*" />
<PackageReference Include="cloudscribe.SimpleContent.Storage.EFCore.PostgreSql" Version="10.0.*" />
<PackageReference Include="cloudscribe.SimpleContent.Storage.EFCore.MySql" Version="10.0.*" />
<PackageReference Include="cloudscribe.SimpleContent.Storage.EFCore.SQLite" Version="10.0.*" />

<PackageReference Include="cloudscribe.Logging.Web" Version="8.6.*" />
<PackageReference Include="cloudscribe.Logging.NoDb" Version="8.6.*" />
<PackageReference Include="cloudscribe.Logging.EFCore.MSSQL" Version="8.6.*" />
<PackageReference Include="cloudscribe.Logging.EFCore.PostgreSql" Version="8.6.*" />
<PackageReference Include="cloudscribe.Logging.EFCore.MySql" Version="8.6.*" />
<PackageReference Include="cloudscribe.Logging.EFCore.SQLite" Version="8.6.*" />
<PackageReference Include="cloudscribe.Web.Localization" Version="8.6.*" />
<PackageReference Include="cloudscribe.Logging.Web" Version="10.0.*" />
<PackageReference Include="cloudscribe.Logging.NoDb" Version="10.0.*" />
<PackageReference Include="cloudscribe.Logging.EFCore.MSSQL" Version="10.0.*" />
<PackageReference Include="cloudscribe.Logging.EFCore.PostgreSql" Version="10.0.*" />
<PackageReference Include="cloudscribe.Logging.EFCore.MySql" Version="10.0.*" />
<PackageReference Include="cloudscribe.Logging.EFCore.SQLite" Version="10.0.*" />
<PackageReference Include="cloudscribe.Web.Localization" Version="10.0.*" />
</ItemGroup>

<ItemGroup>
Expand Down
46 changes: 46 additions & 0 deletions demos/cloudscribe.DemoWeb/wwwroot/rss-style.xsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="utf-8" indent="yes"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
<xsl:value-of select="/rss/channel/title"/>
</title>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<link rel="stylesheet" href="/rss.css"/>
</head>
<body>
<header>
<h1>
<xsl:value-of select="/rss/channel/title"/>
</h1>
<p>
<xsl:value-of select="/rss/channel/description"/>
</p>
</header>
<main>
<xsl:for-each select="/rss/channel/item">
<article>
<h3>
<a>
<xsl:attribute name="href">
<xsl:value-of select="link"/>
</xsl:attribute>
<xsl:value-of select="title"/>
</a>
</h3>
<p>
<xsl:value-of select="description"/>
</p>
<p>
<xsl:value-of select="pubDate"/>
</p>
</article>
</xsl:for-each>
</main>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
59 changes: 59 additions & 0 deletions demos/cloudscribe.DemoWeb/wwwroot/rss.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
* {
box-sizing: border-box;
font-family: sans-serif;
line-height: 1.4;
margin: 0;
padding: 0;
}

html {
background: #FFFFFF;
color: #212529;
}

body {
padding: 1.5rem;
}

a {
color: #337ab7;
}

a:hover {
color: #296292;
}

main, header {
margin-block-end: 3rem;
margin-inline: auto;
max-inline-size: 80ch;
}

article {
margin-block-end: 3rem;
}

h1 {
font-size: 2.5rem;
line-height: 1.2;
margin-block: 1rem;
}

h2 {
font-size: 2rem;
margin-block: 2rem;
}

h3 {
font-size: 1.75rem;
margin-block: 1rem;
}

p {
font-size: 1.25rem;
margin-block-end: 1rem;
}

small {
font-size: 1rem;
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
using cloudscribe.PwaKit.Interfaces;
using cloudscribe.PwaKit.Interfaces;
using cloudscribe.PwaKit.Models;
using cloudscribe.Web.Navigation;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Infrastructure;
using Microsoft.AspNetCore.Mvc.Abstractions;
using Microsoft.AspNetCore.Mvc.Routing;
using Microsoft.AspNetCore.Routing;
using System.Collections.Generic;
using System.Threading.Tasks;

Expand All @@ -16,21 +18,21 @@ public NavigationRuntimeCacheItemProvider(
IEnumerable<INavigationNodePermissionResolver> permissionResolvers,
IEnumerable<INavigationNodeServiceWorkerFilter> navigationNodeServiceWorkerFilters,
IUrlHelperFactory urlHelperFactory,
IActionContextAccessor actionContextAccesor
IHttpContextAccessor contextAccessor
)
{
_siteMapTreeBuilder = siteMapTreeBuilder;
_permissionResolvers = permissionResolvers;
_navigationNodeServiceWorkerFilters = navigationNodeServiceWorkerFilters;
_urlHelperFactory = urlHelperFactory;
_actionContextAccesor = actionContextAccesor;
_contextAccessor = contextAccessor;
}



private readonly NavigationTreeBuilderService _siteMapTreeBuilder;
private readonly IUrlHelperFactory _urlHelperFactory;
private readonly IActionContextAccessor _actionContextAccesor;
private readonly IHttpContextAccessor _contextAccessor;
private readonly IEnumerable<INavigationNodePermissionResolver> _permissionResolvers;
private readonly IEnumerable<INavigationNodeServiceWorkerFilter> _navigationNodeServiceWorkerFilters;

Expand All @@ -42,7 +44,12 @@ public async Task<List<ServiceWorkerCacheItem>> GetItems()
var result = new List<ServiceWorkerCacheItem>();
var rootNode = await _siteMapTreeBuilder.GetTree();

var urlHelper = _urlHelperFactory.GetUrlHelper(_actionContextAccesor.ActionContext);
var actionContext = new ActionContext(
_contextAccessor.HttpContext,
_contextAccessor.HttpContext.GetRouteData(),
new ActionDescriptor()
);
var urlHelper = _urlHelperFactory.GetUrlHelper(actionContext);
foreach (var navNode in rootNode.Flatten())
{
bool include = true;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
using cloudscribe.PwaKit.Interfaces;
using cloudscribe.PwaKit.Interfaces;
using cloudscribe.PwaKit.Models;
using cloudscribe.Web.Navigation;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Infrastructure;
using Microsoft.AspNetCore.Mvc.Abstractions;
using Microsoft.AspNetCore.Mvc.Routing;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.Options;
using System.Collections.Generic;
using System.Threading.Tasks;
Expand All @@ -17,14 +18,14 @@ public NetworkOnlyUrlProvider(
NavigationTreeBuilderService siteMapTreeBuilder,
IEnumerable<INavigationNodePermissionResolver> permissionResolvers,
IUrlHelperFactory urlHelperFactory,
IActionContextAccessor actionContextAccesor,
IHttpContextAccessor contextAccessor,
IOptions<PwaNetworkOnlyUrlOptions> optionsAccessor
)
{
_siteMapTreeBuilder = siteMapTreeBuilder;
_permissionResolvers = permissionResolvers;
_urlHelperFactory = urlHelperFactory;
_actionContextAccesor = actionContextAccesor;
_contextAccessor = contextAccessor;
_options = optionsAccessor.Value;

_networkOnlyControllers = new List<string>()
Expand All @@ -46,7 +47,7 @@ IOptions<PwaNetworkOnlyUrlOptions> optionsAccessor
private readonly NavigationTreeBuilderService _siteMapTreeBuilder;
private readonly IEnumerable<INavigationNodePermissionResolver> _permissionResolvers;
private readonly IUrlHelperFactory _urlHelperFactory;
private readonly IActionContextAccessor _actionContextAccesor;
private readonly IHttpContextAccessor _contextAccessor;
private readonly PwaNetworkOnlyUrlOptions _options;

private List<string> _networkOnlyControllers;
Expand Down Expand Up @@ -79,7 +80,12 @@ public async Task<List<string>> GetNetworkOnlyUrls(PwaOptions options, HttpConte

var rootNode = await _siteMapTreeBuilder.GetTree();

var urlHelper = _urlHelperFactory.GetUrlHelper(_actionContextAccesor.ActionContext);
var actionContext = new ActionContext(
_contextAccessor.HttpContext,
_contextAccessor.HttpContext.GetRouteData(),
new ActionDescriptor()
);
var urlHelper = _urlHelperFactory.GetUrlHelper(actionContext);
foreach (var navNode in rootNode.Flatten())
{
if(await WouldRenderNode(navNode))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

<PropertyGroup>
<Description>Integration between cloudscribe.Core and cloudscribe.PwaKit</Description>
<Version>8.6.0</Version>
<TargetFramework>net8.0</TargetFramework>
<Version>10.0.0</Version>
<TargetFramework>net10.0</TargetFramework>
<Authors>Joe Audette</Authors>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
<PackageTags>pwa,serviceworker,cloudscribe</PackageTags>
Expand Down Expand Up @@ -39,7 +39,7 @@

<ItemGroup>

<PackageReference Include="cloudscribe.Core.Web" Version="8.6.*" />
<PackageReference Include="cloudscribe.Core.Web" Version="10.0.*" />


</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

<PropertyGroup>
<Description>Integration between cloudscribe.SimpleContent and cloudscribe.PwaKit</Description>
<Version>8.6.0</Version>
<TargetFramework>net8.0</TargetFramework>
<Version>10.0.0</Version>
<TargetFramework>net10.0</TargetFramework>
<Authors>Joe Audette</Authors>
<PackageTags>pwa,serviceworker,cloudscribe</PackageTags>
<PackageIcon>icon.png</PackageIcon>
Expand All @@ -22,7 +22,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="cloudscribe.SimpleContent.Web" Version="8.6.*" />
<PackageReference Include="cloudscribe.SimpleContent.Web" Version="10.0.*" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

<PropertyGroup>
<Description>EFCore common code for cloudscribe.PwaKit</Description>
<Version>8.6.0</Version>
<TargetFramework>net8.0</TargetFramework>
<Version>10.0.0</Version>
<TargetFramework>net10.0</TargetFramework>
<Authors>Joe Audette</Authors>
<PackageTags>pwa,serviceworker,cloudscribe</PackageTags>
<PackageIcon>icon.png</PackageIcon>
Expand All @@ -18,10 +18,10 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" />
<PackageReference Include="cloudscribe.Pagination.Models" Version="8.6.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="10.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="10.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.0" />
<PackageReference Include="cloudscribe.Pagination.Models" Version="10.0.0" />
</ItemGroup>

<ItemGroup>
Expand Down
Loading
Loading