Skip to content

Commit

Permalink
#104 Offline support for app shell and media files. Fixed asset links.
Browse files Browse the repository at this point in the history
  • Loading branch information
JudahGabriel committed Oct 15, 2020
1 parent b6a8b54 commit cbc85ab
Show file tree
Hide file tree
Showing 7 changed files with 501 additions and 145 deletions.
6 changes: 5 additions & 1 deletion Chavah.NetCore/Controllers/HomeController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,11 @@ public JsonResult AssetLinks()
{
@namespace = "android_app",
package_name = "com.messianicradio",
sha256_cert_fingerprints = new[] { "4B:C1:D7:C7:8D:74:21:56:8C:E0:13:00:12:35:19:94:4B:33:1E:3C:2B:E5:7A:04:04:FE:F9:3E:58:30:B0:F4" }
sha256_cert_fingerprints = new[]
{
"4B:C1:D7:C7:8D:74:21:56:8C:E0:13:00:12:35:19:94:4B:33:1E:3C:2B:E5:7A:04:04:FE:F9:3E:58:30:B0:F4",
"62:BF:25:D6:5B:C9:E8:2F:CE:3B:BB:77:F7:F0:D1:DF:E9:BB:53:11:68:E9:22:31:01:AE:B4:ED:5F:86:7B:FD"
}
}
};

Expand Down
54 changes: 27 additions & 27 deletions Chavah.NetCore/Views/Shared/_Layout.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,16 @@

@* Fav icons *@
<!--[if IE]>
<link rel="shortcut icon" type="image/ico" href="~/FavIcon.ico")">
<link rel="shortcut icon" type="image/ico" href="~/favicon.ico?v=1")">
<!--<![endif]-->
<!--[if !IE]>-->
<link rel="icon" type="image/png" href="~/images/chavah32x32.png?v=1" sizes="32x32">
<link rel="icon" type="image/png" href="~/images/chavah64x64.png?v=1" sizes="64x64">
<link rel="icon" type="image/png" href="~/images/chavah128x128.png?v=1" sizes="128x128">
<link rel="icon" type="image/png" href="~/images/chavah256x256.png?v=1" sizes="256x256">
<link rel="icon" type="image/png" href="~/images/chavah512x512.png?v=1" sizes="512x512">

<!--<![endif]-->

@* Apple iOS shortcut *@
<link rel="apple-touch-icon" href="~/images/chavah180x180.png?v=1" />

Expand Down Expand Up @@ -82,11 +82,11 @@
@*CSS for development*@
<environment include="Development">
<link href='https://fonts.googleapis.com/css?family=Lato:400,700,400italic|EB+Garamond|Simonetta:400italic' rel='stylesheet' type='text/css' async />
<link rel="stylesheet" href="~/lib/font-awesome/css/font-awesome.css" async />
<link rel="stylesheet" href="~/css/bootswatch.css" async />
<link rel="stylesheet" href="~/css/bootstrap-flatly.css" async />
<link rel="stylesheet" href="~/css/bootstrap-flatly-tweaks.css" async />
<link rel="stylesheet" href="~/css/nprogress.css" async />
<link rel="stylesheet" href="~/lib/font-awesome/css/font-awesome.css" asp-append-version="true" async />
<link rel="stylesheet" href="~/css/bootswatch.css" async asp-append-version="true" />
<link rel="stylesheet" href="~/css/bootstrap-flatly.css" async asp-append-version="true" />
<link rel="stylesheet" href="~/css/bootstrap-flatly-tweaks.css" async asp-append-version="true" />
<link rel="stylesheet" href="~/css/nprogress.css" async asp-append-version="true" />
<link rel="stylesheet" asp-href-include="~/css/app/*.min.css" asp-append-version="true" async />
</environment>

Expand All @@ -110,6 +110,7 @@
<picture style="width: 120px; height: 120px;">
<source srcset="@Model.CdnUrl/chavah-splash.webp?v=1" type="image/webp">
<source srcset="@Model.CdnUrl/chavah-splash.png?v=1" type="image/png">
<img src="@Model.CdnUrl/chavah-splash.png?v=1" type="image/png">
</picture>
}
<br />
Expand All @@ -129,7 +130,7 @@
<script src="~/lib/angular-bootstrap/ui-bootstrap.js"></script>
<script src="~/lib/angular-bootstrap/ui-bootstrap-tpls.js"></script>
<script src="~/lib/angular-local-storage/angular-local-storage.js"></script>
<script src="~/lib//modernizr/modernizr.dev.js"></script>
<script src="~/lib/modernizr/modernizr.dev.js"></script>
<script src="~/lib/nprogress/nprogress.js"></script>
<script src="~/lib/moment/moment.js"></script>
<script src="~/lib/lodash/lodash.js"></script>
Expand All @@ -151,29 +152,29 @@
@*JS for production*@
<environment names="Test,Staging,Production">
@*3rd party JS*@
<script src="https://code.jquery.com/jquery-2.2.4.min.js" asp-fallback-src="~/lib/jquery/dist/jquery.min.js" asp-fallback-test="window.jQuery"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js" asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.min.js" asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.8/angular.min.js" asp-fallback-src="~/lib/angular/angular.js" asp-fallback-test="window.angular"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.8/angular-route.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.8/angular-animate.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.5.0/ui-bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.5.0/ui-bootstrap-tpls.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-local-storage/0.7.1/angular-local-storage.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.7.1/modernizr.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/nprogress@0.2.0/nprogress.min.js" asp-fallback-src="~/lib/nprogress/nprogress.js" asp-fallback-test="window.NProgress"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js" asp-fallback-src="~/lib/moment/moment.js" asp-fallback-test="window.moment"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js" asp-fallback-src="~/lib/lodash/dist/lodash.js" asp-fallback-test="window._"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/4.1.0/rx.lite.js" asp-fallback-src="~/lib/rxjs/dist/rx.all.min.js" asp-fallback-test="window.Rx && window.Rx.Observable"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tslib/1.11.1/tslib.min.js" asp-fallback-src="~/lib/tslib/tslib.js" asp-fallback-test="window.__asyncValues"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.6/fastclick.min.js" asp-fallback-src="~/lib/fastclick/lib/fastclick.js" asp-fallback-test="window.FastClick"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tinycolor/1.4.1/tinycolor.min.js" asp-fallback-src="~/lib/tinycolor/tinycolor.js" asp-fallback-test="window.tinycolor"></script>
<script src="https://code.jquery.com/jquery-2.2.4.min.js" crossorigin="anonymous" asp-fallback-src="~/lib/jquery/dist/jquery.min.js" asp-fallback-test="window.jQuery"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js" crossorigin="anonymous" asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.min.js" asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.8/angular.min.js" crossorigin="anonymous" asp-fallback-src="~/lib/angular/angular.js" asp-fallback-test="window.angular"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.8/angular-route.min.js" crossorigin="anonymous"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.8/angular-animate.min.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.5.0/ui-bootstrap.min.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.5.0/ui-bootstrap-tpls.min.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-local-storage/0.7.1/angular-local-storage.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.7.1/modernizr.min.js" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/nprogress@0.2.0/nprogress.min.js" crossorigin="anonymous" asp-fallback-src="~/lib/nprogress/nprogress.js" asp-fallback-test="window.NProgress"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.1/moment.min.js" crossorigin="anonymous" asp-fallback-src="~/lib/moment/moment.js" asp-fallback-test="window.moment"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js" crossorigin="anonymous" asp-fallback-src="~/lib/lodash/dist/lodash.js" asp-fallback-test="window._"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/4.1.0/rx.lite.js" crossorigin="anonymous" asp-fallback-src="~/lib/rxjs/dist/rx.all.min.js" asp-fallback-test="window.Rx && window.Rx.Observable"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tslib/1.11.1/tslib.min.js" crossorigin="anonymous" asp-fallback-src="~/lib/tslib/tslib.js" asp-fallback-test="window.__asyncValues"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fastclick/1.0.6/fastclick.min.js" crossorigin="anonymous" asp-fallback-src="~/lib/fastclick/lib/fastclick.js" asp-fallback-test="window.FastClick"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tinycolor/1.4.1/tinycolor.min.js" crossorigin="anonymous" asp-fallback-src="~/lib/tinycolor/tinycolor.js" asp-fallback-test="window.tinycolor"></script>

@*Chavah JS*@
<script src="~/js/dist/app.min.js" asp-append-version="true"></script>

</environment>

@await RenderSectionAsync("Scripts", required: false).ConfigureAwait(false)
@await RenderSectionAsync("Scripts", required: false)

@*Hanukkah partial*@
@*@Html.Partial("Hanukkah")*@
Expand All @@ -196,9 +197,8 @@
</script>

<script>
// Install our service worker
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register("/serviceworker");
window.addEventListener('load', function () { navigator.serviceWorker.register('/serviceworker'); });
}
</script>
</body>
Expand Down
4 changes: 2 additions & 2 deletions Chavah.NetCore/wwwroot/js/App.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
// Gets the relative path to a cache-busted angular view.
// The view URL is appended a hash of the contents of the file. See AngularCacheBustedViewsProvider.cs
function findCacheBustedView(viewName: string) {
let cacheBustedView = homeVm.cacheBustedAngularViews.find(v => v.search(new RegExp(viewName, "i")) !== -1);
const cacheBustedView = homeVm.cacheBustedAngularViews.find(v => v.search(new RegExp(viewName, "i")) !== -1);
if (!cacheBustedView) {
throw new Error("Unable to find cache-busted Angular view " + viewName);
}
Expand All @@ -27,7 +27,7 @@
export const FindAppView = findCacheBustedView;

function createRoute(templateUrl: string, access = RouteAccess.Anonymous): AppRoute {
let cacheBustedView = findCacheBustedView(templateUrl);
const cacheBustedView = findCacheBustedView(templateUrl);
return {
templateUrl: cacheBustedView,
access,
Expand Down

0 comments on commit cbc85ab

Please sign in to comment.