Browse Source

Content pages integrated

pull/1/head
Sebastian 9 years ago
parent
commit
819e993ff3
  1. 6
      src/Squidex.Infrastructure/CQRS/Events/EventReceiver.cs
  2. 8
      src/Squidex/app/features/schemas/module.ts
  3. 3
      src/Squidex/app/features/schemas/pages/schema/schema-page.component.html
  4. 22
      src/Squidex/app/features/settings/module.ts
  5. 3
      src/Squidex/app/features/settings/pages/clients/clients-page.component.html
  6. 5
      src/Squidex/app/features/settings/pages/contributors/contributors-page.component.html
  7. 3
      src/Squidex/app/features/settings/pages/languages/languages-page.component.html
  8. 2
      src/Squidex/app/features/settings/pages/languages/languages-page.component.scss
  9. 17
      src/Squidex/app/shared/components/help.component.html
  10. 6
      src/Squidex/app/shared/components/help.component.scss
  11. 27
      src/Squidex/app/shared/components/help.component.ts
  12. 2
      src/Squidex/app/shared/components/history.component.html
  13. 2
      src/Squidex/app/shared/declarations.ts
  14. 5
      src/Squidex/app/shared/module.ts
  15. 1
      src/Squidex/app/shared/services/auth.service.ts
  16. 37
      src/Squidex/app/shared/services/help.service.ts
  17. 1
      src/Squidex/app/theme/_panels.scss

6
src/Squidex.Infrastructure/CQRS/Events/EventReceiver.cs

@ -106,9 +106,9 @@ namespace Squidex.Infrastructure.CQRS.Events
} }
await eventStore.GetEventsAsync(lastHandledEventNumber) await eventStore.GetEventsAsync(lastHandledEventNumber)
.SelectMany(async storedEvent => .Select(storedEvent =>
{ {
await HandleEventAsync(eventConsumer, storedEvent, consumerName); HandleEventAsync(eventConsumer, storedEvent, consumerName).Wait();
return storedEvent; return storedEvent;
}).DefaultIfEmpty(); }).DefaultIfEmpty();
@ -156,6 +156,8 @@ namespace Squidex.Infrastructure.CQRS.Events
{ {
try try
{ {
logger.LogDebug("[{0}]: Handling event {1} ({2})", eventConsumer, @event.Payload, @event.Headers.EventId());
await eventConsumer.On(@event); await eventConsumer.On(@event);
logger.LogDebug("[{0}]: Handled event {1} ({2})", eventConsumer, @event.Payload, @event.Headers.EventId()); logger.LogDebug("[{0}]: Handled event {1} ({2})", eventConsumer, @event.Payload, @event.Headers.EventId());

8
src/Squidex/app/features/schemas/module.ts

@ -9,6 +9,7 @@ import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router'; import { RouterModule, Routes } from '@angular/router';
import { import {
HelpComponent,
HistoryComponent, HistoryComponent,
ResolveSchemaGuard, ResolveSchemaGuard,
SqxFrameworkModule, SqxFrameworkModule,
@ -50,6 +51,13 @@ const routes: Routes = [
data: { data: {
channel: 'schemas.{schemaName}' channel: 'schemas.{schemaName}'
} }
},
{
path: 'help',
component: HelpComponent,
data: {
helpPage: '04-guides/schemas'
}
} }
] ]
}] }]

3
src/Squidex/app/features/schemas/pages/schema/schema-page.component.html

@ -59,6 +59,9 @@
<a class="panel-link" routerLink="history" routerLinkActive="active"> <a class="panel-link" routerLink="history" routerLinkActive="active">
<i class="icon-time"></i> <i class="icon-time"></i>
</a> </a>
<a class="panel-link" routerLink="help" routerLinkActive="active">
<i class="icon-help"></i>
</a>
</div> </div>
</div> </div>
</sqx-panel> </sqx-panel>

22
src/Squidex/app/features/settings/module.ts

@ -9,6 +9,7 @@ import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router'; import { RouterModule, Routes } from '@angular/router';
import { import {
HelpComponent,
HistoryComponent, HistoryComponent,
SqxFrameworkModule, SqxFrameworkModule,
SqxSharedModule SqxSharedModule
@ -40,6 +41,13 @@ const routes: Routes = [
data: { data: {
channel: 'settings.clients' channel: 'settings.clients'
} }
},
{
path: 'help',
component: HelpComponent,
data: {
helpPage: '04-guides/clients'
}
} }
] ]
}, { }, {
@ -52,6 +60,13 @@ const routes: Routes = [
data: { data: {
channel: 'settings.contributors' channel: 'settings.contributors'
} }
},
{
path: 'help',
component: HelpComponent,
data: {
helpPage: '04-guides/contributors'
}
} }
] ]
}, { }, {
@ -64,6 +79,13 @@ const routes: Routes = [
data: { data: {
channel: 'settings.languages' channel: 'settings.languages'
} }
},
{
path: 'help',
component: HelpComponent,
data: {
helpPage: '04-guides/languages'
}
} }
] ]
} }

3
src/Squidex/app/features/settings/pages/clients/clients-page.component.html

@ -40,6 +40,9 @@
<a class="panel-link" routerLink="history" routerLinkActive="active"> <a class="panel-link" routerLink="history" routerLinkActive="active">
<i class="icon-time"></i> <i class="icon-time"></i>
</a> </a>
<a class="panel-link" routerLink="help" routerLinkActive="active">
<i class="icon-help"></i>
</a>
</div> </div>
</div> </div>
</sqx-panel> </sqx-panel>

5
src/Squidex/app/features/settings/pages/contributors/contributors-page.component.html

@ -1,6 +1,6 @@
<sqx-title message="{app} | Contributors | Settings" parameter1="app" value1="{{appName() | async}}"></sqx-title> <sqx-title message="{app} | Contributors | Settings" parameter1="app" value1="{{appName() | async}}"></sqx-title>
<sqx-panel panelWidth="42rem"> <sqx-panel panelWidth="50rem">
<div class="panel-header"> <div class="panel-header">
<div class="panel-title-row"> <div class="panel-title-row">
<h3 class="panel-title">Contributors</h3> <h3 class="panel-title">Contributors</h3>
@ -81,6 +81,9 @@
<a class="panel-link" routerLink="history" routerLinkActive="active"> <a class="panel-link" routerLink="history" routerLinkActive="active">
<i class="icon-time"></i> <i class="icon-time"></i>
</a> </a>
<a class="panel-link" routerLink="help" routerLinkActive="active">
<i class="icon-help"></i>
</a>
</div> </div>
</div> </div>
</sqx-panel> </sqx-panel>

3
src/Squidex/app/features/settings/pages/languages/languages-page.component.html

@ -80,6 +80,9 @@
<a class="panel-link" routerLink="history" routerLinkActive="active"> <a class="panel-link" routerLink="history" routerLinkActive="active">
<i class="icon-time"></i> <i class="icon-time"></i>
</a> </a>
<a class="panel-link" routerLink="help" routerLinkActive="active">
<i class="icon-help"></i>
</a>
</div> </div>
</div> </div>
</sqx-panel> </sqx-panel>

2
src/Squidex/app/features/settings/pages/languages/languages-page.component.scss

@ -8,7 +8,7 @@ sqx-panel {
.language { .language {
&-select { &-select {
max-width: 12rem; width: 16rem;
} }
&-name { &-name {

17
src/Squidex/app/shared/components/help.component.html

@ -0,0 +1,17 @@
<sqx-panel panelWidth="16rem">
<div class="panel-header">
<div class="panel-title-row">
<h3 class="panel-title">Help</h3>
</div>
<a class="panel-close" routerLink="../">
<i class="icon-close"></i>
</a>
</div>
<div class="panel-main">
<div class="panel-content panel-content-blank">
<p *ngFor="let section of helpSections | async" [innerHTML]="section"></p>
</div>
</div>
</sqx-panel>

6
src/Squidex/app/shared/components/help.component.scss

@ -0,0 +1,6 @@
@import '_vars';
@import '_mixins';
p {
font-size: .9rem;
}

27
src/Squidex/app/shared/components/help.component.ts

@ -0,0 +1,27 @@
/*
* Squidex Headless CMS
*
* @license
* Copyright (c) Sebastian Stehle. All rights reserved
*/
import { Component } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { HelpService } from './../services/help.service';
@Component({
selector: 'sqx-help',
styleUrls: ['./help.component.scss'],
templateUrl: './help.component.html'
})
export class HelpComponent {
public helpSections =
this.helpService.getHelp(this.route.snapshot.data['helpPage']);
constructor(
private readonly helpService: HelpService,
private readonly route: ActivatedRoute
) {
}
}

2
src/Squidex/app/shared/components/history.component.html

@ -1,5 +1,3 @@
<sqx-title message="{app} | Contributors | Settings" parameter1="app" value1="{{appName() | async}}"></sqx-title>
<sqx-panel panelWidth="16rem"> <sqx-panel panelWidth="16rem">
<div class="panel-header"> <div class="panel-header">
<div class="panel-title-row"> <div class="panel-title-row">

2
src/Squidex/app/shared/declarations.ts

@ -8,6 +8,7 @@
export * from './components/app-component-base'; export * from './components/app-component-base';
export * from './components/app-form.component'; export * from './components/app-form.component';
export * from './components/dashboard-link.directive'; export * from './components/dashboard-link.directive';
export * from './components/help.component';
export * from './components/history.component'; export * from './components/history.component';
export * from './components/language-selector.component'; export * from './components/language-selector.component';
@ -27,6 +28,7 @@ export * from './services/apps.service';
export * from './services/auth.service'; export * from './services/auth.service';
export * from './services/contents.service'; export * from './services/contents.service';
export * from './services/event-consumers.service'; export * from './services/event-consumers.service';
export * from './services/help.service';
export * from './services/history.service'; export * from './services/history.service';
export * from './services/languages.service'; export * from './services/languages.service';
export * from './services/schemas.service'; export * from './services/schemas.service';

5
src/Squidex/app/shared/module.ts

@ -21,6 +21,8 @@ import {
ContentsService, ContentsService,
DashboardLinkDirective, DashboardLinkDirective,
EventConsumersService, EventConsumersService,
HelpComponent,
HelpService,
HistoryComponent, HistoryComponent,
HistoryService, HistoryService,
LanguageSelectorComponent, LanguageSelectorComponent,
@ -43,12 +45,14 @@ import {
declarations: [ declarations: [
AppFormComponent, AppFormComponent,
DashboardLinkDirective, DashboardLinkDirective,
HelpComponent,
HistoryComponent, HistoryComponent,
LanguageSelectorComponent LanguageSelectorComponent
], ],
exports: [ exports: [
AppFormComponent, AppFormComponent,
DashboardLinkDirective, DashboardLinkDirective,
HelpComponent,
HistoryComponent, HistoryComponent,
LanguageSelectorComponent LanguageSelectorComponent
] ]
@ -67,6 +71,7 @@ export class SqxSharedModule {
AuthService, AuthService,
ContentsService, ContentsService,
EventConsumersService, EventConsumersService,
HelpService,
HistoryService, HistoryService,
LanguageService, LanguageService,
MustBeAuthenticatedGuard, MustBeAuthenticatedGuard,

1
src/Squidex/app/shared/services/auth.service.ts

@ -219,6 +219,7 @@ export class AuthService {
} }
options.headers.append('Accept-Language', '*'); options.headers.append('Accept-Language', '*');
options.headers.append('Pragma', 'no-cache');
if (this.currentUser && this.currentUser.user) { if (this.currentUser && this.currentUser.user) {
options.headers.append('Authorization', `${this.currentUser.user.token_type} ${this.currentUser.user.access_token}`); options.headers.append('Authorization', `${this.currentUser.user.token_type} ${this.currentUser.user.access_token}`);

37
src/Squidex/app/shared/services/help.service.ts

@ -0,0 +1,37 @@
/*
* Squidex Headless CMS
*
* @license
* Copyright (c) Sebastian Stehle. All rights reserved
*/
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Observable } from 'rxjs';
@Injectable()
export class HelpService {
constructor(
private readonly http: Http
) {
}
public getHelp(helpPage: string): Observable<string[]> {
const url = `https://api.gitbook.com/book/squidex/squidex/contents/${helpPage}.json`;
return this.http.get(url)
.map(response => response.json())
.map(response => {
const result: string[] = [];
for (let section of response.sections) {
const content = section.content.replace(/href="\.\.\/GLOSSARY\.html/, 'target="_blank" href="https://docs.squidex.io/GLOSSARY.html');
result.push(content);
}
return result;
})
.catch(err => []);
}
}

1
src/Squidex/app/theme/_panels.scss

@ -56,7 +56,6 @@
@include flex-box; @include flex-box;
@include flex-flow(row); @include flex-flow(row);
@include flex-grow(1); @include flex-grow(1);
overflow: hidden;
} }
&-content { &-content {

Loading…
Cancel
Save