mirror of https://github.com/Squidex/squidex.git
43 changed files with 338 additions and 121 deletions
@ -0,0 +1 @@ |
|||
<router-outlet></router-outlet> |
|||
@ -0,0 +1,14 @@ |
|||
/* |
|||
* Squidex Headless CMS |
|||
* |
|||
* @license |
|||
* Copyright (c) Sebastian Stehle. All rights reserved |
|||
*/ |
|||
|
|||
import * as Ng2 from '@angular/core'; |
|||
|
|||
@Ng2.Component({ |
|||
selector: 'sqx-app-area', |
|||
template |
|||
}) |
|||
export class AppAreaComponent { } |
|||
@ -0,0 +1,14 @@ |
|||
/* |
|||
* Squidex Headless CMS |
|||
* |
|||
* @license |
|||
* Copyright (c) Sebastian Stehle. All rights reserved |
|||
*/ |
|||
|
|||
import * as Ng2 from '@angular/core'; |
|||
|
|||
@Ng2.Component({ |
|||
selector: 'sqx-dashboard-page', |
|||
template |
|||
}) |
|||
export class DashboardComponent { } |
|||
@ -1,5 +1,5 @@ |
|||
@import '../../theme/_vars.scss'; |
|||
@import '../../theme/_mixins.scss'; |
|||
@import '../../../theme/_vars.scss'; |
|||
@import '../../../theme/_mixins.scss'; |
|||
|
|||
content { |
|||
padding: 20px; |
|||
@ -0,0 +1,12 @@ |
|||
/* |
|||
* Squidex Headless CMS |
|||
* |
|||
* @license |
|||
* Copyright (c) Sebastian Stehle. All rights reserved |
|||
*/ |
|||
|
|||
export * from './apps/apps-page.component'; |
|||
export * from './app/app-area.component'; |
|||
export * from './app/dashboard/dashboard-page.component'; |
|||
|
|||
export * from './internal-area.component'; |
|||
@ -0,0 +1,17 @@ |
|||
<nav class="navbar navbar-fixed-top navbar-dark bg-primary bg-faded"> |
|||
<span class="navbar-brand"> |
|||
<i class="icon-logo"></i> |
|||
</span> |
|||
|
|||
<div class="float-xs-left apps-menu"> |
|||
<sqx-apps-menu></sqx-apps-menu> |
|||
</div> |
|||
|
|||
<div class="float-xs-left search-form"> |
|||
<sqx-search-form></sqx-search-form> |
|||
</div> |
|||
</nav> |
|||
|
|||
<main> |
|||
<router-outlet></router-outlet> |
|||
</main> |
|||
@ -1,4 +1,4 @@ |
|||
@import 'theme/mixins.scss'; |
|||
@import '../../theme/mixins.scss'; |
|||
|
|||
.navbar { |
|||
@include box-shadow(0, 4px, 4px, 0.2px); |
|||
@ -0,0 +1,35 @@ |
|||
/* |
|||
* Squidex Headless CMS |
|||
* |
|||
* @license |
|||
* Copyright (c) Sebastian Stehle. All rights reserved |
|||
*/ |
|||
|
|||
import * as Ng2 from '@angular/core'; |
|||
|
|||
import { |
|||
fadeAnimation, |
|||
ModalView, |
|||
TitleService |
|||
} from './../../framework'; |
|||
|
|||
@Ng2.Component({ |
|||
selector: 'sqx-internal-area', |
|||
styles, |
|||
template, |
|||
animations: [ |
|||
fadeAnimation() |
|||
] |
|||
}) |
|||
export class InternalAreaComponent implements Ng2.OnInit { |
|||
public modalDialog = new ModalView(); |
|||
|
|||
constructor( |
|||
private readonly title: TitleService |
|||
) { |
|||
} |
|||
|
|||
public ngOnInit() { |
|||
this.title.setTitle('Apps'); |
|||
} |
|||
} |
|||
@ -0,0 +1,32 @@ |
|||
/* |
|||
* Squidex Headless CMS |
|||
* |
|||
* @license |
|||
* Copyright (c) Sebastian Stehle. All rights reserved |
|||
*/ |
|||
|
|||
import * as Ng2 from '@angular/core'; |
|||
|
|||
import { SqxFrameworkModule } from './../../framework'; |
|||
import { SqxLayoutModule } from './../layout'; |
|||
|
|||
import { |
|||
AppAreaComponent, |
|||
AppsPageComponent, |
|||
DashboardComponent, |
|||
InternalAreaComponent |
|||
} from './declarations'; |
|||
|
|||
@Ng2.NgModule({ |
|||
imports: [ |
|||
SqxFrameworkModule, |
|||
SqxLayoutModule |
|||
], |
|||
declarations: [ |
|||
AppAreaComponent, |
|||
AppsPageComponent, |
|||
DashboardComponent, |
|||
InternalAreaComponent |
|||
] |
|||
}) |
|||
export class SqxAppModule { } |
|||
@ -0,0 +1,12 @@ |
|||
<a class="dropdown-item all-apps" routerLink="/apps"> |
|||
<span class="all-apps-text">All Apps</span> |
|||
<span class="all-apps-pill tag tag-pill tag-default">{{apps.length || 0}}</span> |
|||
</a> |
|||
|
|||
<div class="dropdown-divider"></div> |
|||
|
|||
<div *ngIf="apps && apps.length > 0"> |
|||
<a class="dropdown-item" *ngFor="let app of apps" [routerLink]="['/app', app.name]">{{app.name}}</a> |
|||
|
|||
<div class="dropdown-divider"></div> |
|||
</div> |
|||
@ -0,0 +1,19 @@ |
|||
@import '_vars.scss'; |
|||
@import '_mixins.scss'; |
|||
|
|||
.all-apps { |
|||
& { |
|||
position: relative; |
|||
} |
|||
|
|||
&-text { |
|||
font-weight: bold; |
|||
} |
|||
|
|||
&-pill { |
|||
@include absolute(6px, 10px, auto, auto); |
|||
color: $accent-blue; |
|||
border: none; |
|||
background: $accent-blue-lighter; |
|||
} |
|||
} |
|||
@ -0,0 +1,21 @@ |
|||
/* |
|||
* Squidex Headless CMS |
|||
* |
|||
* @license |
|||
* Copyright (c) Sebastian Stehle. All rights reserved |
|||
*/ |
|||
|
|||
import * as Ng2 from '@angular/core'; |
|||
|
|||
import { AppDto } from 'shared'; |
|||
|
|||
@Ng2.Component({ |
|||
selector: 'sqx-apps-menu-list', |
|||
styles, |
|||
template |
|||
}) |
|||
export class AppsMenuListComponent { |
|||
|
|||
@Ng2.Input() |
|||
public apps: AppDto[]; |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
/* |
|||
* Squidex Headless CMS |
|||
* |
|||
* @license |
|||
* Copyright (c) Sebastian Stehle. All rights reserved |
|||
*/ |
|||
|
|||
export * from './declarations'; |
|||
|
|||
export * from './public.module'; |
|||
Loading…
Reference in new issue