Browse Source

Base path got working.

pull/352/head
Sebastian 7 years ago
parent
commit
fbe4c55973
  1. 4
      src/Squidex.Web/ApiController.cs
  2. 61
      src/Squidex/Areas/Api/Controllers/ApiController.cs
  3. 1
      src/Squidex/Areas/Api/Controllers/Docs/DocsController.cs
  4. 8
      src/Squidex/Areas/Frontend/Middlewares/IndexExtensions.cs
  5. 19
      src/Squidex/Areas/Frontend/Middlewares/IndexMiddleware.cs
  6. 28
      src/Squidex/Areas/Frontend/Middlewares/WebpackMiddleware.cs
  7. 5
      src/Squidex/Areas/IdentityServer/Controllers/IdentityServerController.cs
  8. 16
      src/Squidex/app-config/webpack.config.js
  9. 2
      src/Squidex/app-config/webpack.run.base.js
  10. 2
      src/Squidex/app/app.component.html
  11. 17
      src/Squidex/app/app.module.ts
  12. 8
      src/Squidex/app/features/apps/pages/apps-page.component.html
  13. 12
      src/Squidex/app/features/apps/pages/onboarding-dialog.component.html
  14. 2
      src/Squidex/app/features/apps/pages/onboarding-dialog.component.scss
  15. 8
      src/Squidex/app/features/dashboard/pages/dashboard-page.component.html
  16. 4
      src/Squidex/app/shared/components/pipes.ts
  17. 2
      src/Squidex/app/shell/pages/home/home-page.component.html
  18. 2
      src/Squidex/app/shell/pages/internal/internal-area.component.html
  19. 259
      src/Squidex/wwwroot/_theme.html
  20. 11
      src/Squidex/wwwroot/client-callback-popup.html
  21. 11
      src/Squidex/wwwroot/client-callback-silent.html

4
src/Squidex.Web/ApiController.cs

@ -51,7 +51,9 @@ namespace Squidex.Web
public override void OnActionExecuting(ActionExecutingContext context)
{
if (!context.HttpContext.Request.PathBase.StartsWithSegments("/api"))
var request = context.HttpContext.Request;
if (!request.PathBase.HasValue || !request.PathBase.Value.EndsWith("/api", StringComparison.OrdinalIgnoreCase))
{
context.Result = new RedirectResult("/");
}

61
src/Squidex/Areas/Api/Controllers/ApiController.cs

@ -1,61 +0,0 @@
// ==========================================================================
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschränkt)
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using System;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using Squidex.Domain.Apps.Entities.Apps;
using Squidex.Infrastructure;
using Squidex.Infrastructure.Commands;
using Squidex.Web;
namespace Squidex.Areas.Api.Controllers
{
[Area("Api")]
[ApiController]
[ApiExceptionFilter]
[ApiModelValidation(false)]
public abstract class ApiController : Controller
{
protected ICommandBus CommandBus { get; }
protected IAppEntity App
{
get
{
var appFeature = HttpContext.Features.Get<IAppFeature>();
if (appFeature == null)
{
throw new InvalidOperationException("Not in a app context.");
}
return appFeature.App;
}
}
protected Guid AppId
{
get { return App.Id; }
}
protected ApiController(ICommandBus commandBus)
{
Guard.NotNull(commandBus, nameof(commandBus));
CommandBus = commandBus;
}
public override void OnActionExecuting(ActionExecutingContext context)
{
if (!context.HttpContext.Request.PathBase.StartsWithSegments("/api"))
{
context.Result = new RedirectResult("/");
}
}
}
}

1
src/Squidex/Areas/Api/Controllers/Docs/DocsController.cs

@ -7,6 +7,7 @@
using Microsoft.AspNetCore.Mvc;
using Squidex.Infrastructure.Commands;
using Squidex.Web;
namespace Squidex.Areas.Api.Controllers.Docs
{

8
src/Squidex/Areas/Frontend/Middlewares/IndexExtensions.cs

@ -12,14 +12,14 @@ namespace Squidex.Areas.Frontend.Middlewares
{
public static class IndexExtensions
{
public static bool IsIndexHtml(this HttpContext context)
public static bool IsIndex(this HttpContext context)
{
return context.IsIndex() && context.IsHtml();
return context.Request.Path.Value.EndsWith("/index.html", StringComparison.OrdinalIgnoreCase);
}
public static bool IsIndex(this HttpContext context)
public static bool IsHtmlPath(this HttpContext context)
{
return context.Request.Path.Value.EndsWith("/index.html", StringComparison.OrdinalIgnoreCase);
return context.Request.Path.Value.EndsWith(".html", StringComparison.OrdinalIgnoreCase);
}
public static bool IsHtml(this HttpContext context)

19
src/Squidex/Areas/Frontend/Middlewares/IndexMiddleware.cs

@ -25,7 +25,7 @@ namespace Squidex.Areas.Frontend.Middlewares
{
var basePath = context.Request.PathBase;
if (context.IsIndex() && basePath.HasValue)
if (context.IsHtmlPath() && basePath.HasValue)
{
var responseBuffer = new MemoryStream();
var responseBody = context.Response.Body;
@ -36,21 +36,14 @@ namespace Squidex.Areas.Frontend.Middlewares
context.Response.Body = responseBody;
if (context.Response.StatusCode == 200 && context.IsIndexHtml())
{
var response = Encoding.UTF8.GetString(responseBuffer.ToArray());
var response = Encoding.UTF8.GetString(responseBuffer.ToArray());
response = AdjustBase(response, basePath);
response = AdjustBase(response, basePath);
context.Response.ContentLength = Encoding.UTF8.GetByteCount(response);
context.Response.Body = responseBody;
context.Response.ContentLength = Encoding.UTF8.GetByteCount(response);
context.Response.Body = responseBody;
await context.Response.WriteAsync(response);
}
else if (context.Response.StatusCode != 304)
{
await responseBuffer.CopyToAsync(responseBody);
}
await context.Response.WriteAsync(response);
}
else
{

28
src/Squidex/Areas/Frontend/Middlewares/WebpackMiddleware.cs

@ -28,7 +28,7 @@ namespace Squidex.Areas.Frontend.Middlewares
public async Task Invoke(HttpContext context)
{
if (context.IsIndex())
if (context.IsHtmlPath())
{
var responseBuffer = new MemoryStream();
var responseBody = context.Response.Body;
@ -39,22 +39,25 @@ namespace Squidex.Areas.Frontend.Middlewares
context.Response.Body = responseBody;
if (context.Response.StatusCode == 200 && context.IsIndexHtml())
{
var response = Encoding.UTF8.GetString(responseBuffer.ToArray());
var response = Encoding.UTF8.GetString(responseBuffer.ToArray());
if (context.IsIndex())
{
response = InjectStyles(response);
response = InjectScripts(response);
}
context.Response.ContentLength = Encoding.UTF8.GetByteCount(response);
context.Response.Body = responseBody;
var basePath = context.Request.PathBase;
await context.Response.WriteAsync(response);
}
else if (context.Response.StatusCode != 304)
if (basePath.HasValue)
{
await responseBuffer.CopyToAsync(responseBody);
response = AdjustBase(response, basePath.Value);
}
context.Response.ContentLength = Encoding.UTF8.GetByteCount(response);
context.Response.Body = responseBody;
await context.Response.WriteAsync(response);
}
else
{
@ -99,5 +102,10 @@ namespace Squidex.Areas.Frontend.Middlewares
return response;
}
private static string AdjustBase(string response, string baseUrl)
{
return response.Replace("<base href=\"/\">", $"<base href=\"{baseUrl}/\">");
}
}
}

5
src/Squidex/Areas/IdentityServer/Controllers/IdentityServerController.cs

@ -5,6 +5,7 @@
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using System;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
@ -15,7 +16,9 @@ namespace Squidex.Areas.IdentityServer.Controllers
{
public override void OnActionExecuting(ActionExecutingContext context)
{
if (!context.HttpContext.Request.PathBase.StartsWithSegments("/identity-server"))
var request = context.HttpContext.Request;
if (!request.PathBase.HasValue || !request.PathBase.Value.EndsWith("/identity-server", StringComparison.OrdinalIgnoreCase))
{
context.Result = new NotFoundResult();
}

16
src/Squidex/app-config/webpack.config.js

@ -9,6 +9,8 @@ const plugins = {
TsconfigPathsPlugin: require('tsconfig-paths-webpack-plugin')
};
const isDevServer = path.basename(require.main.filename) === 'webpack-dev-server.js';
module.exports = {
/**
* Options affecting the resolving of modules.
@ -83,16 +85,22 @@ module.exports = {
}, {
test: /\.(woff|woff2|ttf|eot)(\?.*$|$)/,
use: [{
loader: 'file-loader?name=assets/[name].[hash].[ext]',
loader: 'file-loader?name=[name].[hash].[ext]',
options: {
publicPath: 'assets/',
outputPath: 'assets'
outputPath: 'assets',
/*
* Use custom public path as ./ is not supported by fonts.
*/
publicPath: isDevServer ? undefined : 'assets'
}
}]
}, {
test: /\.(png|jpe?g|gif|svg|ico)(\?.*$|$)/,
use: [{
loader: 'file-loader?name=assets/[name].[hash].[ext]'
loader: 'file-loader?name=[name].[hash].[ext]',
options: {
outputPath: 'assets'
}
}]
}, {
test: /\.css$/,

2
src/Squidex/app-config/webpack.run.base.js

@ -28,7 +28,7 @@ module.exports = webpackMerge(commonConfig, {
}),
new plugins.HtmlWebpackPlugin({
template: 'wwwroot/theme.html', hash: true, chunksSortMode: 'none', filename: 'theme.html'
template: 'wwwroot/_theme.html', hash: true, chunksSortMode: 'none', filename: 'theme.html'
})
]
});

2
src/Squidex/app/app.component.html

@ -3,7 +3,7 @@
<sqx-dialog-renderer>
<router-outlet (activate)="isLoaded = true">
<div class="loading" *ngIf="!isLoaded">
<img alt="Loading" src="/images/loader.gif" />
<img alt="Loading" src="./images/loader.gif" />
<div>Loading Squidex</div>
</div>

17
src/Squidex/app/app.module.ts

@ -32,7 +32,22 @@ import { SqxShellModule } from './shell';
import { routing } from './app.routes';
export function configApiUrl() {
return new ApiUrlConfig(window.location.protocol + '//' + window.location.host + '/');
let bases = document.getElementsByTagName('base');
let baseHref = null;
if (bases.length > 0) {
baseHref = bases[0].href;
}
if (!baseHref) {
baseHref = '/';
}
if (baseHref.indexOf(window.location.protocol) === 0) {
return new ApiUrlConfig(baseHref);
} else {
return new ApiUrlConfig(window.location.protocol + '//' + window.location.host + baseHref);
}
}
export function configTitles() {

8
src/Squidex/app/features/apps/pages/apps-page.component.html

@ -30,7 +30,7 @@
<div class="card card-template card-href" (click)="createNewApp('')">
<div class="card-body">
<div class="card-image">
<img src="/images/add-app.png" />
<img src="./images/add-app.png" />
</div>
<h4 class="card-title">New App</h4>
@ -44,7 +44,7 @@
<div class="card card-template card-href" (click)="createNewApp('Blog')">
<div class="card-body">
<div class="card-image">
<img src="/images/add-blog.png" />
<img src="./images/add-blog.png" />
</div>
<h4 class="card-title">New Blog Sample</h4>
@ -61,7 +61,7 @@
<div class="card card-template card-href" (click)="createNewApp('Profile')">
<div class="card-body">
<div class="card-image">
<img src="/images/add-profile.png" />
<img src="./images/add-profile.png" />
</div>
<h4 class="card-title">New Profile Sample</h4>
@ -78,7 +78,7 @@
<div class="card card-template card-href" (click)="createNewApp('Identity')">
<div class="card-body">
<div class="card-image">
<img src="/images/add-identity.png" />
<img src="./images/add-identity.png" />
</div>
<h4 class="card-title">New Identity App</h4>

12
src/Squidex/app/features/apps/pages/onboarding-dialog.component.html

@ -3,7 +3,7 @@
<a class="header-right modal-close" (click)="emitClose()">Skip Tour</a>
<div class="onboarding-step" *ngIf="step === 0">
<img @fade class="header-left" src="/images/logo-white-small.png" />
<img @fade class="header-left" src="./images/logo-white-small.png" />
<div @slide class="onboarding-enter-leave">
<h1>Welcome to <span class="header-focus">Squidex CMS</span></h1>
@ -34,7 +34,7 @@
</div>
</div>
<div class="col col-image">
<img src="/images/onboarding-step1.png" />
<img src="./images/onboarding-step1.png" />
</div>
</div>
@ -59,7 +59,7 @@
</div>
</div>
<div class="col col-image">
<img src="/images/onboarding-step2.png" />
<img src="./images/onboarding-step2.png" />
</div>
</div>
@ -84,7 +84,7 @@
</div>
</div>
<div class="col col-image">
<img src="/images/onboarding-step3.png" />
<img src="./images/onboarding-step3.png" />
</div>
</div>
@ -109,7 +109,7 @@
</div>
</div>
<div class="col col-image">
<img src="/images/onboarding-step4.png" />
<img src="./images/onboarding-step4.png" />
</div>
</div>
@ -119,7 +119,7 @@
</div>
</div>
<div class="onboarding-step" *ngIf="step === 5">
<img @fade class="header-left" src="/images/logo-white-small.png" />
<img @fade class="header-left" src="./images/logo-white-small.png" />
<div @slide class="onboarding-enter-leave">
<h1>Awesome, now you know the basics!</h1>

2
src/Squidex/app/features/apps/pages/onboarding-dialog.component.scss

@ -31,7 +31,7 @@ p {
&-content {
color: $color-dark-foreground;
background-color: $color-dark-onboarding;
background-image: url('/images/onboarding-background.png');
background-image: url('./images/onboarding-background.png');
position: relative;
}

8
src/Squidex/app/features/dashboard/pages/dashboard-page.component.html

@ -15,7 +15,7 @@
<a class="card card-href" [routerLink]="['schemas', { showDialog: true }]" *sqxPermission="'squidex.apps.{app}.schemas.*.read'">
<div class="card-body">
<div class="card-image">
<img src="/images/dashboard-schema.png" />
<img src="./images/dashboard-schema.png" />
</div>
<h4 class="card-title">New Schema</h4>
@ -29,7 +29,7 @@
<a class="card card-href" href="/api/docs" sqxExternalLink="noicon">
<div class="card-body">
<div class="card-image">
<img src="/images/dashboard-api.png" />
<img src="./images/dashboard-api.png" />
</div>
<h4 class="card-title">API Documentation <i class="icon-external-link"></i></h4>
@ -43,7 +43,7 @@
<a class="card card-href" href="https://support.squidex.io" sqxExternalLink="noicon">
<div class="card-body">
<div class="card-image">
<img src="/images/dashboard-feedback.png" />
<img src="./images/dashboard-feedback.png" />
</div>
<h4 class="card-title">Feedback & Support <i class="icon-external-link"></i></h4>
@ -57,7 +57,7 @@
<a class="card card-href" href="https://github.com/squidex/squidex" sqxExternalLink="noicon">
<div class="card-body">
<div class="card-image">
<img src="/images/dashboard-github.png" />
<img src="./images/dashboard-github.png" />
</div>
<h4 class="card-title">Github <i class="icon-external-link"></i></h4>

4
src/Squidex/app/shared/components/pipes.ts

@ -202,7 +202,7 @@ export class UserPictureRefPipe extends UserAsyncPipe implements PipeTransform {
if (parts[0] === 'subject') {
return users.getUser(parts[1]).pipe(map(u => this.apiUrl.buildUrl(`api/users/${u.id}/picture`)));
} else {
return of('/images/client.png');
return of('./images/client.png');
}
});
}
@ -259,6 +259,6 @@ export class FileIconPipe implements PipeTransform {
mimeIcon = knownTypes.indexOf(asset.fileType) >= 0 ? asset.fileType : 'generic';
}
return `/images/asset_${mimeIcon}.png`;
return `./images/asset_${mimeIcon}.png`;
}
}

2
src/Squidex/app/shell/pages/home/home-page.component.html

@ -1,7 +1,7 @@
<div class="login-area">
<div class="card">
<div class="card-body text-center">
<img alt="Logo" class="login-icon login-element" src="/images/logo-half.png" />
<img alt="Logo" class="login-icon login-element" src="./images/logo-half.png" />
<div>
<button type="button" class="btn btn-success btn-lg login-button login-element" (click)="login()">

2
src/Squidex/app/shell/pages/internal/internal-area.component.html

@ -1,7 +1,7 @@
<nav class="navbar fixed-top navbar-dark bg-primary bg-faded">
<span class="navbar-brand" routerLink="/app">
<ng-container *ngIf="loadingService.loading | async; else noLoading">
<img class="loader" src="/images/loader-white.gif" @fade />
<img class="loader" src="./images/loader-white.gif" @fade />
</ng-container>
<ng-template #noLoading>

259
src/Squidex/wwwroot/theme.html → src/Squidex/wwwroot/_theme.html

@ -1,4 +1,4 @@
<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en">
<head>
@ -51,7 +51,7 @@
<div class="bs-component">
<nav class="navbar navbar-toggleable-md navbar-dark bg-primary">
<button type="button" classnavbar-toggler navbar-toggler-right" type="button">
<button type="button" classnavbar-toggler navbar-toggler-right">
<span class="navbar-toggler-icon"></span>
</button>
@ -75,7 +75,7 @@
<form class="form-inline">
<input class="form-control mr-sm-2" type="text" placeholder="Search">
<button type="button" class="btn btn-secondary my-2 my-sm-0" type="submit">Search</button>
<button type="button" class="btn btn-secondary my-2 my-sm-0">Search</button>
</form>
</div>
</nav>
@ -83,7 +83,7 @@
<div class="bs-component">
<nav class="navbar navbar-toggleable-md navbar-dark bg-inverse">
<button type="button" classnavbar-toggler navbar-toggler-right" type="button">
<button type="button" classnavbar-toggler navbar-toggler-right">
<span class="navbar-toggler-icon"></span>
</button>
@ -107,7 +107,7 @@
<form class="form-inline">
<input class="form-control mr-sm-2" type="text" placeholder="Search">
<button type="button" class="btn btn-secondary my-2 my-sm-0" type="submit">Search</button>
<button type="button" class="btn btn-secondary my-2 my-sm-0">Search</button>
</form>
</div>
</nav>
@ -1242,159 +1242,158 @@
</div>
<div class="bs-docs-section">
<div class="row">
<div class="col-lg-12">
<div class="page-header">
<h1>Modals</h1>
</div>
<div class="row">
<div class="col-lg-12">
<div class="page-header">
<h1>Modals</h1>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<h2>Default</h2>
<div class="bs-component">
<div class="panel panel-light">
<div class="panel-header">
<div class="panel-title-row">
<div class="float-right">
<button type="button" class="btn btn-success">New</button>
</div>
<h3 class="panel-title">
Title
</h3>
</div>
<div class="row">
<div class="col-lg-12">
<h2>Default</h2>
<div class="bs-component">
<div class="panel panel-light">
<div class="panel-header">
<div class="panel-title-row">
<div class="float-right">
<button type="button" class="btn btn-success">New</button>
</div>
<a class="panel-close">
<i class="icon-close"></i>
</a>
<h3 class="panel-title">
Title
</h3>
</div>
<div class="panel-main">
<div class="panel-content">
<div class="panel-alert panel-alert-danger">
Alert
</div>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
</div>
<a class="panel-close">
<i class="icon-close"></i>
</a>
</div>
<div class="panel-sidebar">
<a href="#" class="panel-link">
<i class="icon-help"></i>
</a>
<div class="panel-main">
<div class="panel-content">
<div class="panel-alert panel-alert-danger">
Alert
</div>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
</div>
<div class="panel-sidebar">
<a href="#" class="panel-link">
<i class="icon-help"></i>
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6">
<h2>Light</h2>
<div class="bs-component">
<div class="panel panel-light">
<div class="panel-header">
<div class="panel-title-row">
<div class="float-right">
<button type="button" class="btn btn-success">New</button>
</div>
<h3 class="panel-title">
Title
</h3>
<div class="row">
<div class="col-lg-6">
<h2>Light</h2>
<div class="bs-component">
<div class="panel panel-light">
<div class="panel-header">
<div class="panel-title-row">
<div class="float-right">
<button type="button" class="btn btn-success">New</button>
</div>
<a class="panel-close">
<i class="icon-close"></i>
</a>
<h3 class="panel-title">
Title
</h3>
</div>
<div class="panel-main">
<div class="panel-content panel-content-blank">
<ul class="nav nav-panel nav-dark-bordered flex-column">
<li class="nav-item">
<a class="nav-link">Link 1
<i class="icon-angle-right"></i>
</a>
</li>
<li class="nav-item">
<a class="nav-link">Link 2
<i class="icon-angle-right"></i>
</a>
</li>
<li class="nav-item">
<a class="nav-link active">Link 3
<i class="icon-angle-right"></i>
</a>
</li>
<li class="nav-item">
<a class="nav-link">Link 4
<i class="icon-angle-right"></i>
</a>
</li>
</ul>
</div>
<a class="panel-close">
<i class="icon-close"></i>
</a>
</div>
<div class="panel-main">
<div class="panel-content panel-content-blank">
<ul class="nav nav-panel nav-dark-bordered flex-column">
<li class="nav-item">
<a class="nav-link">Link 1
<i class="icon-angle-right"></i>
</a>
</li>
<li class="nav-item">
<a class="nav-link">Link 2
<i class="icon-angle-right"></i>
</a>
</li>
<li class="nav-item">
<a class="nav-link active">Link 3
<i class="icon-angle-right"></i>
</a>
</li>
<li class="nav-item">
<a class="nav-link">Link 4
<i class="icon-angle-right"></i>
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="col-lg-6">
<h2>Dark</h2>
<div class="bs-component">
<div class="panel panel-dark">
<div class="panel-header large">
<div class="panel-title-row">
<div class="float-right">
<button type="button" class="btn btn-success">New</button>
</div>
<h3 class="panel-title">
Title
</h3>
</div>
<div class="col-lg-6">
<h2>Dark</h2>
<div class="bs-component">
<div class="panel panel-dark">
<div class="panel-header large">
<div class="panel-title-row">
<div class="float-right">
<button type="button" class="btn btn-success">New</button>
</div>
<a class="panel-close">
<i class="icon-close"></i>
</a>
<h3 class="panel-title">
Title
</h3>
</div>
<a class="panel-close">
<i class="icon-close"></i>
</a>
<div class="panel-header-row">
<div class="search-form">
<input class="form-control form-control-dark" placeholder="Search here..." />
</div>
<div class="panel-header-row">
<div class="search-form">
<input class="form-control form-control-dark" placeholder="Search here..." />
</div>
</div>
</div>
<div class="panel-main">
<div class="panel-content">
<ul class="nav nav-panel nav-dark nav-dark-bordered flex-column">
<li class="nav-item">
<a class="nav-link">Link 1
<i class="icon-angle-right"></i>
</a>
</li>
<li class="nav-item">
<a class="nav-link">Link 2
<i class="icon-angle-right"></i>
</a>
</li>
<li class="nav-item">
<a class="nav-link active">Link 3
<i class="icon-angle-right"></i>
</a>
</li>
<li class="nav-item">
<a class="nav-link">Link 4
<i class="icon-angle-right"></i>
</a>
</li>
</ul>
</div>
<div class="panel-main">
<div class="panel-content">
<ul class="nav nav-panel nav-dark nav-dark-bordered flex-column">
<li class="nav-item">
<a class="nav-link">Link 1
<i class="icon-angle-right"></i>
</a>
</li>
<li class="nav-item">
<a class="nav-link">Link 2
<i class="icon-angle-right"></i>
</a>
</li>
<li class="nav-item">
<a class="nav-link active">Link 3
<i class="icon-angle-right"></i>
</a>
</li>
<li class="nav-item">
<a class="nav-link">Link 4
<i class="icon-angle-right"></i>
</a>
</li>
</ul>
</div>
</div>
</div>

11
src/Squidex/wwwroot/client-callback-popup.html

@ -1,12 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<base href="/">
</head>
<body>
<script src="/scripts/oidc-client.min.js"></script>
<script src="./scripts/oidc-client.min.js"></script>
<script>
Oidc.Log.logger = console;
Oidc.Log.logLevel = Oidc.Log.INFO;
Oidc.Log.logger = console;
Oidc.Log.logLevel = Oidc.Log.INFO;
new Oidc.UserManager().signinPopupCallback();
new Oidc.UserManager().signinPopupCallback();
</script>
</body>
</html>

11
src/Squidex/wwwroot/client-callback-silent.html

@ -1,12 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<base href="/">
</head>
<body>
<script src="/scripts/oidc-client.min.js"></script>
<script src="./scripts/oidc-client.min.js"></script>
<script>
Oidc.Log.logger = console;
Oidc.Log.logLevel = Oidc.Log.INFO;
Oidc.Log.logger = console;
Oidc.Log.logLevel = Oidc.Log.INFO;
new Oidc.UserManager().signinSilentCallback();
new Oidc.UserManager().signinSilentCallback();
</script>
</body>
</html>

Loading…
Cancel
Save